всё правильно ...sasha_89 писал(а):компилирую
только компилировать нужно пробовать то ,что в #52
всё правильно ...sasha_89 писал(а):компилирую






какая сейчас работает кинематика?какой вариант?sasha_89 писал(а):что нужно дописать в кинематике чтоб работал правильно?
вот этотnkp писал(а):какая сейчас работает кинематика?какой вариант?sasha_89 писал(а):что нужно дописать в кинематике чтоб работал правильно?
Код: Выделить всё
КОД: ВЫДЕЛИТЬ ВСЁ • РАЗВЕРНУТЬ
/********************************************************************
* Description: angularkins.c
* Angular kinematics for 3 axis with angular axis along Z
*
* Derived from a work by Fred Proctor & Will Shackleford
*
* Author:
* License: GPL Version 2
* System: Linux
*
* Copyright (c) 2004 All rights reserved.
*
* Last change:
********************************************************************/
#include "posemath.h"
#include "hal.h"
#include "rtapi.h"
#include "rtapi_math.h"
#include "kinematics.h"
int kinematicsForward(const double *joints,
EmcPose * pos,
const KINEMATICS_FORWARD_FLAGS * fflags,
KINEMATICS_INVERSE_FLAGS * iflags)
{
pos->tran.x = joints[0] * (sin(joints[3] * (PM_PI/180.0)));
pos->tran.y = joints[0] * (cos(joints[3] * (PM_PI/180.0)));
pos->tran.z = joints[2];
pos->a = joints[3];
pos->b = joints[4];
pos->c = joints[5];
pos->u = joints[6];
pos->v = joints[7];
pos->w = joints[8];
return 0;
}
int kinematicsInverse(const EmcPose * pos,
double *joints,
const KINEMATICS_INVERSE_FLAGS * iflags,
KINEMATICS_FORWARD_FLAGS * fflags)
{
static double dx = 0 , dy = 0 , A = 0;
dx = pos->tran.x;
dy = pos->tran.y;
A = atan2(dx,dy);
joints[3] = A * (180.0/PM_PI);
joints[0] = sqrt(pos->tran.x * pos->tran.x + pos->tran.y * pos->tran.y);
joints[1] = pos->tran.y;
joints[2] = pos->tran.z;
joints[3] = pos->a;
joints[5] = pos->c;
joints[6] = pos->u;
joints[7] = pos->v;
joints[8] = pos->w;
return 0;
}
/* implemented for these kinematics as giving joints preference */
int kinematicsHome(EmcPose * world,
double *joint,
KINEMATICS_FORWARD_FLAGS * fflags,
KINEMATICS_INVERSE_FLAGS * iflags)
{
*fflags = 0;
*iflags = 0;
return kinematicsForward(joint, world, fflags, iflags);
}
KINEMATICS_TYPE kinematicsType()
{
return KINEMATICS_IDENTITY;
}
#include "rtapi.h" /* RTAPI realtime OS API */
#include "rtapi_app.h" /* RTAPI realtime module decls */
#include "hal.h"
EXPORT_SYMBOL(kinematicsType);
EXPORT_SYMBOL(kinematicsForward);
EXPORT_SYMBOL(kinematicsInverse);
MODULE_LICENSE("GPL");
int comp_id;
int rtapi_app_main(void) {
comp_id = hal_init("angularkins");
if(comp_id > 0) {
hal_ready(comp_id);
return 0;
}
return comp_id;
}
void rtapi_app_exit(void) { hal_exit(comp_id); } 
Код: Выделить всё
# finally connect physical pins to the signals
net Xstep parport.0.pin-03-out
net Xdir parport.0.pin-02-out
net Ystep parport.0.pin-05-out
net Ydir parport.0.pin-04-out
net Zstep parport.0.pin-07-out
net Zdir parport.0.pin-06-out
net Astep parport.0.pin-09-out
net Adir parport.0.pin-08-outnkp писал(а):из этого :что куда реально подключено???Код: Выделить всё
# finally connect physical pins to the signals net Xstep parport.0.pin-03-out net Xdir parport.0.pin-02-out net Ystep parport.0.pin-05-out net Ydir parport.0.pin-04-out net Zstep parport.0.pin-07-out net Zdir parport.0.pin-06-out net Astep parport.0.pin-09-out net Adir parport.0.pin-08-out
если так пины у тебя прописаны в хал-файле...
Код: Выделить всё
# finally connect physical pins to the signals
net Xstep parport.0.pin-07-out
net Xdir parport.0.pin-06-out
net Ystep parport.0.pin-03-out
net Ydir parport.0.pin-02-out
net Zstep parport.0.pin-05-out
net Zdir parport.0.pin-04-out
net Astep parport.0.pin-09-out
net Adir parport.0.pin-08-outну прописанны это одно - а подсоеденение реальное какое???sasha_89 писал(а):у меня прописаны так -
да у меня 4 мотора но 4-тый - ,,а ,, меня не интересует, только нужны x,z,y. Как на рисунке нарисовано соответствует каждая ось пинам!!!nkp писал(а):ну прописанны это одно - а подсоеденение реальное какое???sasha_89 писал(а):у меня прописаны так -
тут четыре "мотора" упрощенно говоря: x,y,z,a.
а у тебя на железяке сколько?
Код: Выделить всё
net Xstep parport.0.pin-07-out
net Xdir parport.0.pin-06-out
net Ystep parport.0.pin-03-out
net Ydir parport.0.pin-02-out
net Zstep parport.0.pin-05-out
net Zdir parport.0.pin-04-out
net Astep parport.0.pin-09-out
net Adir parport.0.pin-08-outКод: Выделить всё
net Xstep parport.0.pin-03-out
net Xdir parport.0.pin-02-out
net Ystep parport.0.pin-09-out
net Ydir parport.0.pin-08-out
net Zstep parport.0.pin-05-out
net Zdir parport.0.pin-04-out
net Astep parport.0.pin-07-out
net Adir parport.0.pin-06-outКод: Выделить всё
#+ First axis
[AXIS_0]
TYPE = ANGULAR
HOME = 0.000
MAX_VELOCITY = 3.0
MAX_ACCELERATION = 10.0
STEPGEN_MAXACCEL = 10.2
BACKLASH = 0.000
SCALE = 40
OUTPUT_SCALE = 1.000
MIN_LIMIT = -1000.0
MAX_LIMIT = 1000.0
FERROR = 5.050
MIN_FERROR = 5.0
HOME_OFFSET = -5.5
HOME_SEARCH_VEL = -3.0
HOME_LATCH_VEL = -3.0
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = YES
#+ Second axis
[AXIS_1]
TYPE = LINEAR
HOME = 0.000
MAX_VELOCITY = 10
MAX_ACCELERATION = 20.0
STEPGEN_MAXACCEL = 100.2
BACKLASH = 0.000
SCALE = 9.632
# 9.632 -KOEF OSI Y NALAGODZENO
OUTPUT_SCALE = 1.000
MIN_LIMIT = -1000.0
MAX_LIMIT = 1000.0
FERROR = 0.050
MIN_FERROR = 0.010
HOME_OFFSET = 191.0
HOME_SEARCH_VEL = 3.0
HOME_LATCH_VEL = 3.0
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = YES
#+ Third axis
[AXIS_2]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 1
MAX_ACCELERATION = 20.0
STEPGEN_MAXACCEL = 20.2
BACKLASH = 0.000
SCALE = 460
OUTPUT_SCALE = 1.000
MIN_LIMIT = -1000.0
MAX_LIMIT = 1000.0
FERROR = 0.050
MIN_FERROR = 0.010
HOME_OFFSET = 1.0
HOME_SEARCH_VEL = 1.0
HOME_LATCH_VEL = 1.0
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = YES
#+ Third axis
[AXIS_3]
TYPE = ANGULAR
HOME = 0.0
MAX_VELOCITY = 4
MAX_ACCELERATION = 360.0
STEPGEN_MAXACCEL = 396.0
BACKLASH = 0.000
SCALE = 400
OUTPUT_SCALE = 1.000
MIN_LIMIT = -36000.0
MAX_LIMIT = 36000.0
FERROR = 5.0
MIN_FERROR = 1.0
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 0.0
HOME_LATCH_VEL = 0.0
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = NOвыложи архив конфига ,актуальный на сейчас...sasha_89 писал(а):ок туплю! это еще в начале бил такой!
вот задумайся и ответь на такой вопрос:sasha_89 писал(а):Ось x у меня поворотная и она
тему можно закрывать))))))))sasha_89 писал(а):x - в градусах!