controller
MovePlan.h
浏览该文件的文档.
1 
11 #ifndef MOVEPLAN_H_
12 #define MOVEPLAN_H_
13 
14 /*---------------------------- Includes ------------------------------------*/
15 #include "Base/robotStruct.h"
16 
17 
18 
19 #ifdef __cplusplus
20 namespace HYYRobotBase
21 {
22 extern "C" {
23 #endif
24 
30 void setMoveThread(int isthread);
31 
38 int wait_move_finish(int robot_index);
39 
46 int get_robot_move_state(int robot_index);
47 
53 void Rsleep(int millisecond);
54 
62 extern void AccSet(double acc, double jerk, int robot_index);
63 
68 extern void move_start(void);
69 
74 extern void move_stop(void);
75 
86 extern int moveA(robjoint *rjoint, speed *rspeed, zone *rzone, tool *rtool, wobj *rwobj);
87 
103 extern int dual_moveA(robjoint *rjoint1, robjoint *rjoint2, speed *rspeed1, speed *rspeed2, zone *rzone1, zone *rzone2, tool *rtool1, tool *rtool2, wobj *rwobj1, wobj *rwobj2);
104 
116 extern int multi_moveA(robjoint *rjoint, speed *rspeed, zone *rzone, tool *rtool, wobj *rwobj, int _index);
117 
128 extern int moveJ(robpose *rpose, speed *rspeed, zone *rzone, tool *rtool, wobj *rwobj);
129 
145 extern int dual_moveJ(robpose *rpose1, robpose *rpose2, speed *rspeed1, speed *rspeed2, zone *rzone1, zone *rzone2, tool *rtool1, tool *rtool2, wobj *rwobj1, wobj *rwobj2);
146 
158 extern int multi_moveJ(robpose *rpose, speed *rspeed, zone *rzone, tool *rtool, wobj *rwobj, int _index);
159 
170 extern int moveL(robpose *rpose, speed *rspeed, zone *rzone, tool *rtool, wobj *rwobj);
171 
187 extern int dual_moveL(robpose *rpose1, robpose *rpose2, speed *rspeed1, speed *rspeed2, zone *rzone1, zone *rzone2, tool *rtool1, tool *rtool2, wobj *rwobj1, wobj *rwobj2);
188 
200 extern int multi_moveL(robpose *rpose, speed *rspeed, zone *rzone, tool *rtool, wobj *rwobj, int _index);
201 
213 extern int moveC(robpose *rpose, robpose *rpose_mid, speed *rspeed, zone *rzone, tool *rtool, wobj *rwobj);
214 
232 extern int dual_moveC(robpose *rpose1, robpose *rpose2, robpose *rpose_mid1, robpose *rpose_mid2, speed *rspeed1, speed *rspeed2, zone *rzone1, zone *rzone2, tool *rtool1, tool *rtool2, wobj *rwobj1, wobj *rwobj2);
233 
246 extern int multi_moveC(robpose *rpose, robpose *rpose_mid, speed *rspeed, zone *rzone, tool *rtool, wobj *rwobj, int _index);
247 
261 extern int moveH(robpose* rpose, robpose* rpose_mid, robpose* pose_line, double screw, speed* rspeed, zone* rzone, tool* rtool, wobj* rwobj);
262 
284 extern int dual_moveH(robpose* rpose1, robpose* rpose2, robpose* rpose_mid1, robpose* rpose_mid2, robpose* pose_line1,robpose* pose_line2, double screw1,double screw2,speed* rspeed1, speed* rspeed2, zone* rzone1, zone* rzone2, tool* rtool1, tool* rtool2, wobj* rwobj1, wobj* rwobj2);
285 
300 extern int multi_moveH(robpose* rpose, robpose* rpose_mid, robpose* pose_line, double screw, speed* rspeed, zone* rzone, tool* rtool, wobj* rwobj, int _index);
301 
311 extern int moveS(char *filename, speed *rspeed, tool *rtool, wobj *rwobj);
312 
326 extern int dual_moveS(char *filename1, char *filename2, speed *rspeed1, speed *rspeed2, tool *rtool1, tool *rtool2, wobj *rwobj1, wobj *rwobj2);
327 
338 extern int multi_moveS(char *filename, speed *rspeed, tool *rtool, wobj *rwobj, int _index);
339 
352 extern robpose Offs(const robpose* rpose, double x, double y, double z, double k, double p, double s);
353 
366 extern robpose OffsRel(const robpose* rpose, double x, double y, double z, double k, double p, double s);
367 
368 
369 
376 extern void robot_getJoint(double* joint, int _index);
377 
387 extern int robot_getCartesian(tool* rtool,wobj* rwobj, double* pospose, int _index);
388 
395 extern void SetDo(int id, int flag);
396 
403 extern int GetDi(int id);
404 
411 extern void WaitDi(int id, int value);
412 
419 extern void SetAo(int id, double flag);
420 
427 extern double GetAi(int id);
428 
429 
430 
437 extern int robot_getDOF(int _index);
438 
445 extern int additionaxis_getDOF(int _index);
446 
452 extern int robot_getNUM();
453 
459 extern int additionaxis_getNUM();
460 
461 //----------------------------------------------------------------------------------------communication interface--------------------------------------------------------------------------
462 
471 extern int SocketCreate(const char *ip, int port, const char *sName);
472 
481 extern int ClientCreate(const char *ip, int port, const char *sName);
482 
483 
490 extern int SocketClose(const char *sName);
491 
500 extern int SocketSendByteI(byte *data, int len, const char *sName);
501 
510 extern int SocketRecvByteI(byte *data, int len, const char *sName);
511 
512 
526 extern int SocketSendByteII(int *header, int (*header_format)[2], int hf_len,
527  int *data_int, float *data_float, int (*data_format)[2], int df_len, const char *sName);
528 
542 extern int SocketRecvByteII(int *header, int (*header_format)[2], int hf_len,
543  int *data_int, float *data_float, int (*data_format)[2], int df_len, const char *sName);
544 
545 
553 extern int SocketSendByte(byte data, const char *sName);
554 
562 extern int SocketRecvByte(byte *data, const char *sName);
563 
571 extern int SocketSendString(char *data, const char *sName);
572 
580 extern int SocketRecvString(char *data, const char *sName);
581 
589 extern int SocketSendDouble(double data, const char *sName);
590 
598 extern int SocketRecvDouble(double *data, const char *sName);
599 
607 extern int SocketSendInt(int data, const char *sName);
608 
616 extern int SocketRecvInt(int *data, const char *sName);
617 
626 extern int SocketSendByteArray(byte *data, int n, const char *sName);
627 
635 extern int SocketRecvByteArray(byte *data, const char *sName);
636 
645 extern int SocketSendDoubleArray(double *data, int n, const char *sName);
646 
654 extern int SocketRecvDoubleArray(double *data, const char *sName);
655 
664 extern int SocketSendIntArray(int *data, int n, const char *sName);
665 
673 extern int SocketRecvIntArray(int *data, const char *sName);
674 
683 extern int UDPSendByteI(byte *data, int len, const char *sName);
684 
693 extern int UDPRecvByteI(byte *data, int len, const char *sName);
694 
708 extern int UDPSendByteII(int *header, int (*header_format)[2], int hf_len,
709  int *data_int, float *data_float, int (*data_format)[2], int df_len, const char *sName);
710 
724 extern int UDPRecvByteII(int *header, int (*header_format)[2], int hf_len,
725  int *data_int, float *data_float, int (*data_format)[2], int df_len, const char *sName);
726 
734 extern int UDPSendByte(byte data, const char *sName);
735 
743 extern int UDPRecvByte(byte *data, const char *sName);
744 
752 extern int UDPSendString(char *data, const char *sName);
753 
761 extern int UDPRecvString(char *data, const char *sName);
762 
770 extern int UDPSendDouble(double data, const char *sName);
771 
779 extern int UDPRecvDouble(double *data, const char *sName);
780 
788 extern int UDPSendInt(int data, const char *sName);
789 
797 extern int UDPRecvInt(int *data, const char *sName);
798 
807 extern int UDPSendByteArray(int *data, int n, const char *sName);
808 
816 extern int UDPRecvByteArray(int *data, const char *sName);
817 
826 extern int UDPSendDoubleArray(double *data, int n, const char *sName);
827 
835 extern int UDPRecvDoubleArray(double *data, const char *sName);
836 
845 extern int UDPSendIntArray(int *data, int n, const char *sName);
846 
854 extern int UDPRecvIntArray(int *data, const char *sName);
855 
856 //----------------------------------------------------------------------------------------thread interface--------------------------------------------------------------------------
866 extern int ThreadCreat(void *(*fun)(void *), void *arg, const char *name, int detached_flag);
867 
874 extern int ThreadDataFree(const char *name);
875 
876 
883 extern int ThreadWait(const char *name);
884 
885 
886 #ifdef __cplusplus
887 }
888 }
889 #endif
890 
891 
892 #endif /* MOVEPLAN_H_ */
get_robot_move_state
int get_robot_move_state(int robot_index)
获取机器人运动状态
UDPSendByteI
int UDPSendByteI(byte *data, int len, const char *sName)
通过UDP发送byte型数组
dual_moveJ
int dual_moveJ(robpose *rpose1, robpose *rpose2, speed *rspeed1, speed *rspeed2, zone *rzone1, zone *rzone2, tool *rtool1, tool *rtool2, wobj *rwobj1, wobj *rwobj2)
双臂关节运动指令
UDPRecvByteArray
int UDPRecvByteArray(int *data, const char *sName)
通过UDP接收一个byte型数组
dual_moveC
int dual_moveC(robpose *rpose1, robpose *rpose2, robpose *rpose_mid1, robpose *rpose_mid2, speed *rspeed1, speed *rspeed2, zone *rzone1, zone *rzone2, tool *rtool1, tool *rtool2, wobj *rwobj1, wobj *rwobj2)
双臂圆弧运动指令
robotStruct.h
机器人运动指令数据类型
WaitDi
void WaitDi(int id, int value)
等待数字量输入赋值
SocketRecvDouble
int SocketRecvDouble(double *data, const char *sName)
通过TCP接收一个double型数据
robot_getDOF
int robot_getDOF(int _index)
获取机器人自由度
UDPRecvDoubleArray
int UDPRecvDoubleArray(double *data, const char *sName)
通过UDP接收一个double型数组
multi_moveJ
int multi_moveJ(robpose *rpose, speed *rspeed, zone *rzone, tool *rtool, wobj *rwobj, int _index)
选取多机械臂中的一个做绝对位置运动指令
moveJ
int moveJ(robpose *rpose, speed *rspeed, zone *rzone, tool *rtool, wobj *rwobj)
关节运动指令
UDPRecvInt
int UDPRecvInt(int *data, const char *sName)
通过UDP接收一个int型数据
AccSet
void AccSet(double acc, double jerk, int robot_index)
设置机器人运动速度的百分比(加速度和加加速度)
UDPSendByteII
int UDPSendByteII(int *header, int(*header_format)[2], int hf_len, int *data_int, float *data_float, int(*data_format)[2], int df_len, const char *sName)
UDP发送数据
zone
运动指令输入,转弯区数据
Definition: robotStruct.h:133
SocketSendByteI
int SocketSendByteI(byte *data, int len, const char *sName)
TCP发送Byte型数据
moveL
int moveL(robpose *rpose, speed *rspeed, zone *rzone, tool *rtool, wobj *rwobj)
线性运动指令
multi_moveS
int multi_moveS(char *filename, speed *rspeed, tool *rtool, wobj *rwobj, int _index)
选取多机械臂中的一个做关节空间的B样条运动
dual_moveA
int dual_moveA(robjoint *rjoint1, robjoint *rjoint2, speed *rspeed1, speed *rspeed2, zone *rzone1, zone *rzone2, tool *rtool1, tool *rtool2, wobj *rwobj1, wobj *rwobj2)
双臂绝对位置运动指令
SocketRecvString
int SocketRecvString(char *data, const char *sName)
通过TCP接收一个String型数据
SocketSendByteII
int SocketSendByteII(int *header, int(*header_format)[2], int hf_len, int *data_int, float *data_float, int(*data_format)[2], int df_len, const char *sName)
TCP发送数据
SocketRecvDoubleArray
int SocketRecvDoubleArray(double *data, const char *sName)
通过TCP接收一个double型数组
multi_moveH
int multi_moveH(robpose *rpose, robpose *rpose_mid, robpose *pose_line, double screw, speed *rspeed, zone *rzone, tool *rtool, wobj *rwobj, int _index)
选取多机械臂中的一个做螺旋线运动指令
wait_move_finish
int wait_move_finish(int robot_index)
等待运动结束(开线程运行时有效)
GetAi
double GetAi(int id)
获取模拟量输入
SetDo
void SetDo(int id, int flag)
设置数字量输出
dual_moveL
int dual_moveL(robpose *rpose1, robpose *rpose2, speed *rspeed1, speed *rspeed2, zone *rzone1, zone *rzone2, tool *rtool1, tool *rtool2, wobj *rwobj1, wobj *rwobj2)
双臂线性运动指令
UDPSendString
int UDPSendString(char *data, const char *sName)
通过UDP发送一个string型数据
speed
运动指令输入,速度数据
Definition: robotStruct.h:116
UDPRecvDouble
int UDPRecvDouble(double *data, const char *sName)
通过UDP接收一个double型数据
UDPSendIntArray
int UDPSendIntArray(int *data, int n, const char *sName)
通过UDP发送一个int型数组
SocketRecvByteArray
int SocketRecvByteArray(byte *data, const char *sName)
通过TCP接收一个byte型数组
moveA
int moveA(robjoint *rjoint, speed *rspeed, zone *rzone, tool *rtool, wobj *rwobj)
绝对位置运动指令
multi_moveC
int multi_moveC(robpose *rpose, robpose *rpose_mid, speed *rspeed, zone *rzone, tool *rtool, wobj *rwobj, int _index)
选取多机械臂中的一个做圆弧运动指令
ClientCreate
int ClientCreate(const char *ip, int port, const char *sName)
创建socket client
wobj
运动指令输入,工件标系数据
Definition: robotStruct.h:158
moveC
int moveC(robpose *rpose, robpose *rpose_mid, speed *rspeed, zone *rzone, tool *rtool, wobj *rwobj)
圆弧运动指令
move_start
void move_start(void)
上电或开始运动
SocketSendString
int SocketSendString(char *data, const char *sName)
通过TCP发送一个String型数据
moveH
int moveH(robpose *rpose, robpose *rpose_mid, robpose *pose_line, double screw, speed *rspeed, zone *rzone, tool *rtool, wobj *rwobj)
螺旋线运动指令
GetDi
int GetDi(int id)
获取数字量输入
ThreadDataFree
int ThreadDataFree(const char *name)
线程数据释放
multi_moveL
int multi_moveL(robpose *rpose, speed *rspeed, zone *rzone, tool *rtool, wobj *rwobj, int _index)
选取多机械臂中的一个做线性运动指令
robot_getNUM
int robot_getNUM()
获取机器人数量
SocketSendInt
int SocketSendInt(int data, const char *sName)
通过TCP发送一个int型数据
SocketSendDouble
int SocketSendDouble(double data, const char *sName)
通过TCP发送一个double型数据
SocketSendIntArray
int SocketSendIntArray(int *data, int n, const char *sName)
通过TCP发送一个int型数组
UDPSendByteArray
int UDPSendByteArray(int *data, int n, const char *sName)
通过UDP发送一个byte型数组
UDPSendByte
int UDPSendByte(byte data, const char *sName)
UDP发送byte型数据
dual_moveH
int dual_moveH(robpose *rpose1, robpose *rpose2, robpose *rpose_mid1, robpose *rpose_mid2, robpose *pose_line1, robpose *pose_line2, double screw1, double screw2, speed *rspeed1, speed *rspeed2, zone *rzone1, zone *rzone2, tool *rtool1, tool *rtool2, wobj *rwobj1, wobj *rwobj2)
双臂螺旋线运动指令
UDPRecvByte
int UDPRecvByte(byte *data, const char *sName)
UDP接收byte型数据
OffsRel
robpose OffsRel(const robpose *rpose, double x, double y, double z, double k, double p, double s)
机器人位姿相对工具偏移补偿
Rsleep
void Rsleep(int millisecond)
休眠
UDPSendInt
int UDPSendInt(int data, const char *sName)
通过UDP发送一个int型数据
dual_moveS
int dual_moveS(char *filename1, char *filename2, speed *rspeed1, speed *rspeed2, tool *rtool1, tool *rtool2, wobj *rwobj1, wobj *rwobj2)
双臂关节空间的B样条运动
Offs
robpose Offs(const robpose *rpose, double x, double y, double z, double k, double p, double s)
机器人位姿绝对工件偏移补偿
multi_moveA
int multi_moveA(robjoint *rjoint, speed *rspeed, zone *rzone, tool *rtool, wobj *rwobj, int _index)
选取多机械臂中的一个做绝对位置运动指令
move_stop
void move_stop(void)
停止运动或下电
ThreadCreat
int ThreadCreat(void *(*fun)(void *), void *arg, const char *name, int detached_flag)
创建线程
UDPRecvByteII
int UDPRecvByteII(int *header, int(*header_format)[2], int hf_len, int *data_int, float *data_float, int(*data_format)[2], int df_len, const char *sName)
UDP接收数据
robpose
运动指令输入,笛卡尔位置及姿态数据
Definition: robotStruct.h:104
SetAo
void SetAo(int id, double flag)
设置模拟量输出
SocketRecvInt
int SocketRecvInt(int *data, const char *sName)
通过TCP接收一个int型数据
UDPRecvString
int UDPRecvString(char *data, const char *sName)
通过UDP接收一个string型数据
SocketCreate
int SocketCreate(const char *ip, int port, const char *sName)
创建socket server
SocketRecvIntArray
int SocketRecvIntArray(int *data, const char *sName)
通过TCP接收一个int型数组
SocketClose
int SocketClose(const char *sName)
关闭socket(含server和client)
setMoveThread
void setMoveThread(int isthread)
设置指令线程运行方式,设置后对所有指令起作用
robjoint
运动指令输入,关节数据
Definition: robotStruct.h:92
SocketSendDoubleArray
int SocketSendDoubleArray(double *data, int n, const char *sName)
通过TCP发送一个double型数组
ThreadWait
int ThreadWait(const char *name)
thread join (当线程属性为PTHREAD_CREATE_JOINABLE时有效)
robot_getCartesian
int robot_getCartesian(tool *rtool, wobj *rwobj, double *pospose, int _index)
获取机器人当前位姿
robot_getJoint
void robot_getJoint(double *joint, int _index)
获取机器人当前关节角
UDPRecvIntArray
int UDPRecvIntArray(int *data, const char *sName)
通过UDP接收一个int型数组
SocketRecvByteI
int SocketRecvByteI(byte *data, int len, const char *sName)
TCP接收Byte型数据
SocketSendByteArray
int SocketSendByteArray(byte *data, int n, const char *sName)
通过TCP发送一个byte型数组
SocketRecvByte
int SocketRecvByte(byte *data, const char *sName)
通过TCPt接收一个byte型数据
additionaxis_getNUM
int additionaxis_getNUM()
获取附加轴组数量
SocketRecvByteII
int SocketRecvByteII(int *header, int(*header_format)[2], int hf_len, int *data_int, float *data_float, int(*data_format)[2], int df_len, const char *sName)
TCP接收数据
UDPRecvByteI
int UDPRecvByteI(byte *data, int len, const char *sName)
通过UDP接收byte型数组
tool
运动指令输入,工具数据
Definition: robotStruct.h:145
additionaxis_getDOF
int additionaxis_getDOF(int _index)
获取机器人附加轴数量
UDPSendDoubleArray
int UDPSendDoubleArray(double *data, int n, const char *sName)
通过UDP发送一个double型数组
SocketSendByte
int SocketSendByte(byte data, const char *sName)
通过TCP发送一个byte型数据
UDPSendDouble
int UDPSendDouble(double data, const char *sName)
通过UDP发送一个double型数据
moveS
int moveS(char *filename, speed *rspeed, tool *rtool, wobj *rwobj)
关节空间的B样条运动