4#ifndef AUBO_SDK_TYPE_DEF_H 
    5#define AUBO_SDK_TYPE_DEF_H 
   16#pragma execution_character_set("utf-8") 
   22namespace common_interface {
 
   25#define CARTESIAN_DOF 6 
   26#define SAFETY_PARAM_SELECT_NUM 2  
   27#define SAFETY_PLANES_NUM 8  
   28#define SAFETY_CUBIC_NUM 10  
   29#define TOOL_CONFIGURATION_NUM 3  
   45            params[i].stop_distance = 0.;
 
   46            params[i].reduced_entry_time = 0.;
 
   47            params[i].reduced_entry_distance = 0.;
 
   49            params[i].elbow_speed = 0.;
 
   51            params[i].elbow_force = 0.;
 
   56                      params[i].joint_torque.end(), 0.);
 
   57            params[i].tool_orientation.fill(0.);
 
   58            params[i].tool_deviation = 0.;
 
   60                params[i].planes[j].fill(0.);
 
   61                params[i].restrict_elbow[j] = 0;
 
   69            cubic[i].orig.fill(0.);
 
   70            cubic[i].size.fill(0.);
 
   71            cubic[i].restrict_elbow = 0;
 
 
 
  205    std::vector<double> 
obj_coord{ std::vector<double>(6, 0) };
 
 
  217#define ENUM_AuboErrorCodes_DECLARES                                           \ 
  218    ENUM_ITEM(AUBO_OK, 0, "Success")                                           \ 
  219    ENUM_ITEM(AUBO_BAD_STATE, 1, "State error")                                \ 
  220    ENUM_ITEM(AUBO_QUEUE_FULL, 2, "Planning queue full")                       \ 
  221    ENUM_ITEM(AUBO_BUSY, 3, "The previous command is executing")               \ 
  222    ENUM_ITEM(AUBO_TIMEOUT, 4, "Timeout")                                      \ 
  223    ENUM_ITEM(AUBO_INVL_ARGUMENT, 5, "Invalid parameters")                     \ 
  224    ENUM_ITEM(AUBO_NOT_IMPLETEMENT, 6, "Interface not implemented")            \ 
  225    ENUM_ITEM(AUBO_NO_ACCESS, 7, "Cannot access")                              \ 
  226    ENUM_ITEM(AUBO_CONN_REFUSED, 8, "Connection refused")                      \ 
  227    ENUM_ITEM(AUBO_CONN_RESET, 9, "Connection is reset")                       \ 
  228    ENUM_ITEM(AUBO_INPROGRESS, 10, "Execution in progress")                    \ 
  229    ENUM_ITEM(AUBO_EIO, 11, "Input/Output error")                              \ 
  230    ENUM_ITEM(AUBO_NOBUFFS, 12, "")                                            \ 
  231    ENUM_ITEM(AUBO_REQUEST_IGNORE, 13, "Request was ignored")                  \ 
  232    ENUM_ITEM(AUBO_ALGORITHM_PLAN_FAILED, 14,                                  \ 
  233              "Motion planning algorithm error")                               \ 
  234    ENUM_ITEM(AUBO_VERSION_INCOMPAT, 15, "Interface version unmatch")          \ 
  235    ENUM_ITEM(AUBO_DIMENSION_ERR, 16,                                          \ 
  236              "Input parameter dimension is incorrect")                        \ 
  237    ENUM_ITEM(AUBO_SINGULAR_ERR, 17, "Input configuration may be singular")    \ 
  238    ENUM_ITEM(AUBO_POS_BOUND_ERR, 18,                                          \ 
  239              "Input position boundary exceeds the limit range")               \ 
  240    ENUM_ITEM(AUBO_INIT_POS_ERR, 19, "Initial position input is unreasonable") \ 
  241    ENUM_ITEM(AUBO_ELP_SETTING_ERR, 20, "Envelope body setting error")         \ 
  242    ENUM_ITEM(AUBO_TRAJ_GEN_FAIL, 21, "Trajectory generation failed")          \ 
  243    ENUM_ITEM(AUBO_TRAJ_SELF_COLLISION, 22, "Trajectory self collision")       \ 
  245        AUBO_IK_NO_CONVERGE, 23,                                               \ 
  246        "Inverse kinematics computation did not converge; computation failed") \ 
  247    ENUM_ITEM(AUBO_IK_OUT_OF_RANGE, 24,                                        \ 
  248              "Inverse kinematics result out of robot range")                  \ 
  249    ENUM_ITEM(AUBO_IK_CONFIG_DISMATCH, 25,                                     \ 
  250              "Inverse kinematics input configuration contains errors")        \ 
  251    ENUM_ITEM(AUBO_IK_JACOBIAN_FAILED, 26,                                     \ 
  252              "The calculation of the inverse Jacobian matrix failed")         \ 
  253    ENUM_ITEM(AUBO_IK_NO_SOLU, 27,                                             \ 
  254              "The target point has solutions, but it has exceeded the joint " \ 
  255              "limit conditions")                                              \ 
  256    ENUM_ITEM(AUBO_IK_UNKOWN_ERROR, 28, "Inverse kinematics unkown error")     \ 
  257    ENUM_ITEM(AUBO_MOVE_IGNORED_SERVOMODE, 29,                                 \ 
  258              "Robot is in servo mode where movement is disabled")             \ 
  259    ENUM_ITEM(AUBO_INST_QUEUED, 100, "Instruction pused into queue succeed")   \ 
  260    ENUM_ITEM(AUBO_INTERNAL_ERR, 101, "Internal error caused by alg .etc.")    \ 
  261    ENUM_ITEM(AUBO_BADSTATE_THREAD_DETACHED, 200,                               \ 
  262              "Bad state: Operation not allowed on detached thread")          \ 
  263    ENUM_ITEM(AUBO_BADSTATE_THREAD_KILLED, 201,                              \ 
  264              "Bad state: Operation not allowed on killed thread")            \ 
  265    ENUM_ITEM(AUBO_BADSTATE_TASK_NOT_FOUND, 202,                             \ 
  266              "Bad state: Specified task id does not exist in the task queue")\ 
  267    ENUM_ITEM(AUBO_BADSTATE_RTM_NOT_STARTED, 203,                            \ 
  268              "Bad state: RuntimeMachine has not been started yet")           \ 
  269    ENUM_ITEM(AUBO_BADSTATE_RTM_NOT_STOPPED, 204,                            \ 
  270              "Bad state: RuntimeMachine must be in Stopped state for this operation") \ 
  271    ENUM_ITEM(AUBO_BADSTATE_RTM_NOT_PAUSED, 205,                             \ 
  272              "Bad state: RuntimeMachine must be in Paused state for this operation") \ 
  273    ENUM_ITEM(AUBO_BADSTATE_RTM_ABORTING, 206, "Bad state: RuntimeMachine is in aborting state") \ 
  274    ENUM_ITEM(AUBO_BADSTATE_PSTOP, 207, "Bad state: Operation blocked by protective stop") \ 
  275    ENUM_ITEM(AUBO_BADSTATE_ROBOT_ESTOP, 208, "Bad state: Robot emergency stop triggered") \ 
  276    ENUM_ITEM(AUBO_BADSTATE_SYSTEM_ESTOP, 209, "Bad state: System emergency stop triggered") \ 
  277    ENUM_ITEM(AUBO_BADSTATE_INVALID_ROBOT_MODE, 210,                         \ 
  278              "Bad state: Robot is not in required operation mode")           \ 
  279    ENUM_ITEM(AUBO_BADSTATE_INVALID_SAFETY_MODE, 211,                        \ 
  280              "Bad state: Robot is not in required safety mode")              \ 
  281    ENUM_ITEM(AUBO_BADSTATE_ROBOT_NOT_RUNNING, 212,                          \ 
  282              "Bad state: Robot must be in Running mode for this operation")  \ 
  283    ENUM_ITEM(AUBO_BADSTATE_ROBOT_NOT_POWERED_OFF, 213,                      \ 
  284              "Bad state: Robot must be in PowerOff mode for this operation") \ 
  285    ENUM_ITEM(AUBO_BADSTATE_SERIAL_OPEN_FAILED, 214, "Bad state: Failed to open serial device") \ 
  286    ENUM_ITEM(AUBO_BADSTATE_SERIAL_NOT_A_TERMINAL, 215,                       \ 
  287              "Bad state: Specified device is not a terminal")                \ 
  288    ENUM_ITEM(AUBO_BADSTATE_SERIAL_CONFIG_FAILED, 216,                        \ 
  289              "Bad state: Failed to configure serial port parameters")        \ 
  290    ENUM_ITEM(AUBO_BADSTATE_KINEMATICS_COMPENSATE_FAILED, 217,                \ 
  291              "Bad state: Failed to set kinematics compensation parameters")  \ 
  292    ENUM_ITEM(AUBO_BADSTATE_ROBOT_NOT_STEADY, 218, "Bad state: Robot is not in steady state") \ 
  293    ENUM_ITEM(AUBO_BADSTATE_FREE_DRIVE_ACTIVE, 219, "Bad state: Free-drive mode is active") \ 
  294    ENUM_ITEM(AUBO_BADSTATE_FORCE_CTRL_ACTIVE, 220, "Bad state: Force control mode is active") \ 
  295    ENUM_ITEM(AUBO_BADSTATE_SIMULATION_MODE_ACTIVE, 221,                      \ 
  296              "Bad state: Operation not allowed in simulation mode")          \ 
  297    ENUM_ITEM(AUBO_ERR_UNKOWN, 99999, "Unkown error occurred.") 
 
  303#define ENUM_RuntimeState_DECLARES                           \ 
  304    ENUM_ITEM(Running, 0, "正在运行中")                        \ 
  305    ENUM_ITEM(Retracting, 1, "倒退")                          \ 
  306    ENUM_ITEM(Pausing, 2, "暂停中")                           \ 
  307    ENUM_ITEM(Paused, 3, "暂停状态")                          \ 
  308    ENUM_ITEM(Stepping, 4, "单步执行中")                       \ 
  309    ENUM_ITEM(Stopping, 5, "受控停止中(保持原有轨迹)")           \ 
  310    ENUM_ITEM(Stopped, 6, "已停止")                           \ 
  311    ENUM_ITEM(Aborting, 7, "停止(最大速度关节运动停机)") 
 
  326#define ENUM_RobotModeType_DECLARES                                                                     \ 
  327    ENUM_ITEM(NoController, -1,          "提供给示教器使用的, 如果aubo_control进程崩溃则会显示为NoController") \ 
  328    ENUM_ITEM(Disconnected, 0,           "没有连接到机械臂本体(控制器与接口板断开连接或是 EtherCAT 等总线断开)")  \ 
  329    ENUM_ITEM(ConfirmSafety, 1,          "正在进行安全配置, 断电状态下进行")                                  \ 
  330    ENUM_ITEM(Booting, 2,                "机械臂本体正在上电初始化")                                         \ 
  331    ENUM_ITEM(PowerOff, 3,               "机械臂本体处于断电状态")                                           \ 
  332    ENUM_ITEM(PowerOn, 4,                "机械臂本体上电成功, 刹车暂未松开(抱死), 关节初始状态未获取")            \ 
  333    ENUM_ITEM(Idle, 5,                   "机械臂上电成功, 刹车暂未松开(抱死), 电机不通电, 关节初始状态获取完成")    \ 
  334    ENUM_ITEM(BrakeReleasing, 6,         "机械臂上电成功, 刹车正在松开")                                      \ 
  335    ENUM_ITEM(BackDrive, 7,              "反向驱动:刹车松开, 电机不通电")                                    \ 
  336    ENUM_ITEM(Running, 8,                "机械臂刹车松开, 运行模式, 控制权由硬件移交给软件")                     \ 
  337    ENUM_ITEM(Maintaince, 9,             "维护模式: 包括固件升级、参数写入等")                                 \ 
  338    ENUM_ITEM(Error, 10,                 "")                                                              \ 
  339    ENUM_ITEM(PowerOffing, 11,           "机械臂本体处于断电过程中") 
 
  341#define ENUM_SafetyModeType_DECLARES                           \ 
  342    ENUM_ITEM(Undefined, 0,          "安全状态待定")             \ 
  343    ENUM_ITEM(Normal, 1,             "正常运行模式")             \ 
  344    ENUM_ITEM(ReducedMode, 2,        "缩减运行模式")             \ 
  345    ENUM_ITEM(Recovery, 3,           "启动时如果在安全限制之外, 机器人将进入recovery模式") \ 
  346    ENUM_ITEM(Violation, 4,          "超出安全限制(根据安全配置, 例如速度超限等)") \ 
  347    ENUM_ITEM(ProtectiveStop, 5,     "软件触发的停机(保持轨迹, 不抱闸, 不断电)") \ 
  348    ENUM_ITEM(SafeguardStop, 6,      "IO触发的防护停机(不保持轨迹, 抱闸, 不断电)") \ 
  349    ENUM_ITEM(SystemEmergencyStop,7, "系统急停:急停信号由外部输入(可配置输入), 不对外输出急停信号") \ 
  350    ENUM_ITEM(RobotEmergencyStop, 8, "机器人急停:控制柜急停输入或者示教器急停按键触发, 对外输出急停信号") \ 
  351    ENUM_ITEM(Fault, 9,              "机械臂硬件故障或者系统故障") 
 
  370#define ENUM_OperationalModeType_DECLARES                                                \ 
  371    ENUM_ITEM(Disabled, 0, "禁用模式: 不使用 Operational Mode")                              \ 
  372    ENUM_ITEM(Automatic, 1, "自动模式: 机器人正常工作模式, 运行速度不会被限制 (auto mode: robot normal operation, speed will not be limited)")            \ 
  373    ENUM_ITEM(Manual, 2, "手动模式: 机器人编程示教模式(T1), 机器人运行速度将会被限制或者机器人程序校验模式(T2) (manual mode: robot programming teaching mode (T1), robot running speed will be limited or robot program verification mode (T2)") \ 
 
  378#define ENUM_RobotControlModeType_DECLARES                 \ 
  379    ENUM_ITEM(Unknown, 0,   "未知的控制模式 (unknown control mode)")                \ 
  380    ENUM_ITEM(Position, 1,  "位置控制  movej (position control)")              \ 
  381    ENUM_ITEM(Speed, 2,     "速度控制  speedj/speedl (speed control)")      \ 
  382    ENUM_ITEM(Servo, 3,     "位置控制  servoj (position control)")             \ 
  383    ENUM_ITEM(Freedrive, 4, "拖动示教  freedrive_mode")     \ 
  384    ENUM_ITEM(Force, 5,     "末端力控  force_mode")         \ 
  385    ENUM_ITEM(Torque, 6,    "关节力矩控制 (joint torque control)")                  \ 
  386    ENUM_ITEM(Collision, 7,    "碰撞模式 (collision mode)") \ 
 
  388#define ENUM_JointServoModeType_DECLARES                  \ 
  389    ENUM_ITEM(Unknown, -1, "未知")                         \ 
  390    ENUM_ITEM(Open, 0, "开环模式 (open loop mode)")                          \ 
  391    ENUM_ITEM(Current, 1, "电流伺服模式 (current servo mode)")                    \ 
  392    ENUM_ITEM(Velocity, 2, "速度伺服模式 (speed servo mode)")                   \ 
  393    ENUM_ITEM(Position, 3, "位置伺服模式 (position servo mode)")                   \ 
  394    ENUM_ITEM(Torque, 4, "力矩伺服模式 (torque servo mode)") \ 
 
  396#define ENUM_JointStateType_DECLARES                             \ 
  397    ENUM_ITEM(Poweroff, 0, "节点未连接到接口板或者已经断电 (node not conected to interface board or already powered off)")          \ 
  398    ENUM_ITEM(Idle, 2,        "节点空闲 (node idle)")                         \ 
  399    ENUM_ITEM(Fault, 3,       "节点错误, 节点停止伺服运动, 刹车抱死 (node error, node stopped servo move, brake engaged)") \ 
  400    ENUM_ITEM(Running, 4,     "节点伺服 (node servo)")                         \ 
  401    ENUM_ITEM(Bootload, 5,     "节点bootloader状态, 暂停一切通讯 (node bootloader state, pause all communication)") \ 
 
  403#define ENUM_StandardInputAction_DECLARES                        \ 
  404    ENUM_ITEM(Default, 0,  "无触发")                              \ 
  405    ENUM_ITEM(Handguide, 1, "拖动示教,高电平触发")                 \ 
  406    ENUM_ITEM(GoHome, 2, "运动到工程初始位姿,高电平触发")            \ 
  407    ENUM_ITEM(StartProgram, 3, "开始工程,上升沿触发")              \ 
  408    ENUM_ITEM(StopProgram, 4, "停止工程,上升沿触发")               \ 
  409    ENUM_ITEM(PauseProgram, 5, "暂停工程,上升沿触发")              \ 
  410    ENUM_ITEM(PopupDismiss, 6, "消除弹窗,上升沿触发")              \ 
  411    ENUM_ITEM(PowerOn, 7, "机器人上电/松刹车,上升沿触发")           \ 
  412    ENUM_ITEM(PowerOff, 8, "机器人抱死刹车/断电,上升沿触发")         \ 
  413    ENUM_ITEM(ResumeProgram, 9, "恢复工程,上升沿触发")             \ 
  414    ENUM_ITEM(SlowDown1, 10, "机器人减速触发1,高电平触发")          \ 
  415    ENUM_ITEM(SlowDown2, 11, "机器人减速触发2,高电平触发")          \ 
  416    ENUM_ITEM(SafeStop, 12, "安全停止,高电平触发")                 \ 
  417    ENUM_ITEM(RunningGuard, 13, "信号,高电平有效")                \ 
  418    ENUM_ITEM(MoveToFirstPoint, 14, "运动到工程初始位姿,高电平触发") \ 
  419    ENUM_ITEM(xSlowDown1, 15, "机器人减速触发1,低电平触发")         \ 
  420    ENUM_ITEM(xSlowDown2, 16, "机器人减速触发2,低电平触发")         \ 
  421    ENUM_ITEM(ConveyorTrack, 17, "传送带检测到物品触发,高电平触发")  \ 
  422    ENUM_ITEM(xConveyorTrack, 18, "传送带检测到物品触发,低电平触发") \ 
  423    ENUM_ITEM(UnlockProtectiveStop, 19, "解除保护性停止,上升沿触发") \ 
  424    ENUM_ITEM(ArbitraryResumeProgram , 20, "恢复工程,不检查当前位置和暂停点之间的距离,上升沿触发") 
 
  426#define ENUM_StandardOutputRunState_DECLARES             \ 
  427    ENUM_ITEM(None, 0,     "标准输出状态未定义")            \ 
  428    ENUM_ITEM(StopLow, 1, "低电平指示工程停止")             \ 
  429    ENUM_ITEM(StopHigh, 2, "高电平指示机器人停止")          \ 
  430    ENUM_ITEM(RunningHigh, 3,  "指示工程正在运行")         \ 
  431    ENUM_ITEM(PausedHigh, 4,  "指示工程已经暂停")          \ 
  432    ENUM_ITEM(AtHome, 5, "高电平指示机器人正在拖动")         \ 
  433    ENUM_ITEM(Handguiding, 6, "高电平指示机器人正在拖动")    \ 
  434    ENUM_ITEM(PowerOn, 7, "高电平指示机器人已经上电")           \ 
  435    ENUM_ITEM(RobotEmergencyStop, 8, "高电平指示机器人急停按下") \ 
  436    ENUM_ITEM(SystemEmergencyStop, 9, "高电平指示外部输入系统急停按下") \ 
  437    ENUM_ITEM(InternalEmergencyStop, 8, "高电平指示机器人急停按下") \ 
  438    ENUM_ITEM(ExternalEmergencyStop, 9, "高电平指示外部输入系统急停按下") \ 
  439    ENUM_ITEM(SystemError, 10, "系统错误,包括故障、超限、急停、安全停止、防护停止 ") \ 
  440    ENUM_ITEM(NotSystemError, 11, "无系统错误,包括普通模式、缩减模式和恢复模式 ") \ 
  441    ENUM_ITEM(RobotOperable, 12, "机器人可操作,机器人上电且松刹车了 ") \ 
  442    ENUM_ITEM(OperationalMode, 13, "高电平指示自动模式,低电平指示手动模式") \ 
  443    ENUM_ITEM(SafeguardStop, 14, "高电平指示处于安全停止状态") \ 
  444    ENUM_ITEM(ProtectiveStop, 15, "高电平指示处于防护停止状态") 
 
  446#define ENUM_SafetyInputAction_DECLARES                        \ 
  447    ENUM_ITEM(Unassigned, 0, "安全输入未分配动作")                \ 
  448    ENUM_ITEM(EmergencyStop, 1, "安全输入触发急停")               \ 
  449    ENUM_ITEM(SafeguardStop, 2, "安全输入触发防护停止, 边沿触发")   \ 
  450    ENUM_ITEM(SafeguardReset, 3, "安全输入触发防护重置, 边沿触发")  \ 
  451    ENUM_ITEM(ThreePositionSwitch, 4, "3档位使能开关")           \ 
  452    ENUM_ITEM(OperationalMode, 5, "切换自动模式和手动模式")        \ 
  453    ENUM_ITEM(HandGuide, 6, "拖动示教")              \ 
  454    ENUM_ITEM(ReducedMode, 7, "安全参数切换1(缩减模式),序号越低优先级越高,三路输出都无效时,选用第0组安全参数")         \ 
  455    ENUM_ITEM(AutomaticModeSafeguardStop, 8, "自动模式下防护停机输入(需要配置三档位使能设备)") \ 
  456    ENUM_ITEM(AutomaticModeSafeguardReset, 9, "自动模式下上升沿触发防护重置(需要配置三档位使能设备)") 
 
  458#define ENUM_SafetyOutputRunState_DECLARES                         \ 
  459    ENUM_ITEM(Unassigned, 0, "安全输出未定义")                       \ 
  460    ENUM_ITEM(SystemEmergencyStop, 1, "输出高当有机器人急停输入或者急停按键被按下")         \ 
  461    ENUM_ITEM(NotSystemEmergencyStop, 2, "输出低当有机器人急停输入或者急停按键被按下")      \ 
  462    ENUM_ITEM(RobotMoving, 3, "输出高当有关节运动速度超过 0.1rad/s")                     \ 
  463    ENUM_ITEM(RobotNotMoving, 4, "输出高当所有的关节运动速度不超过 0.1rad/s")             \ 
  464    ENUM_ITEM(ReducedMode, 5, "输出高当机器人处于缩减模式")                       \ 
  465    ENUM_ITEM(NotReducedMode, 6, "输出高当机器人不处于缩减模式")                   \ 
  466    ENUM_ITEM(SafeHome, 7, "输出高当机器人已经处于安全Home位姿")                    \ 
  467    ENUM_ITEM(RobotNotStopping, 8, "输出低当机器人正在急停或者安全停止中") 
 
  469#define ENUM_PayloadIdentifyMoveAxis_DECLARES      \ 
  470    ENUM_ITEM(Joint_2_6, 0,"第2和6关节运动")         \ 
  471    ENUM_ITEM(Joint_3_6, 1,"第3和6关节运动")         \ 
  472    ENUM_ITEM(Joint_4_6, 2,"第4和6关节运动")         \ 
  473    ENUM_ITEM(Joint_4_5_6, 3,"第4、5、6关节运动")    \ 
 
  475#define ENUM_EnvelopingShape_DECLARES \ 
  476    ENUM_ITEM(Cube, 1,"立方体") \ 
  477    ENUM_ITEM(Column, 2,"柱状体") \ 
  478    ENUM_ITEM(Stl, 3,"以STL文件的形式描述负载碰撞集合体") 
 
  480#define ENUM_TaskFrameType_DECLARES                           \ 
  481    ENUM_ITEM(NONE, 0,"")        \ 
  482    ENUM_ITEM(POINT_FORCE, 1, "力控坐标系发生变换, 使得力控参考坐标系的y轴沿着机器人TCP指向力控所选特征的原点, x和z轴取决于所选特征的原始方向" \ 
  483                              "力控坐标系发生变换, 使得力控参考坐标系的y轴沿着机器人TCP指向力控所选特征的原点, x和z轴取决于所选特征的原始方向" \ 
  484                              "机器人TCP与所选特征的起点之间的距离至少为10mm" \ 
  485                              "优先选择X轴, 为所选特征的X轴在力控坐标系Y轴垂直平面上的投影, 如果所选特征的X轴与力控坐标系的Y轴平行, " \ 
  486                              "通过类似方法确定力控坐标系Z轴, Y-X或者Y-Z轴确定之后, 通过右手法则确定剩下的轴") \ 
  487    ENUM_ITEM(FRAME_FORCE, 2,"力控坐标系不发生变换 SIMPLE_FORC") \ 
  488    ENUM_ITEM(MOTION_FORCE, 3,"力控坐标系发生变换, 使得力控参考坐标系的x轴为机器人TCP速度在所选特征x-y平面上的投影y轴将垂直于机械臂运动, 并在所选特征的x-y平面内")\ 
  489    ENUM_ITEM(TOOL_FORCE, 4,"以工具末端坐标系作为力控参考坐标系") 
 
  495#define ENUM_TraceLevel_DECLARES  \ 
  496    ENUM_ITEM(FATAL, 0, "") \ 
  497    ENUM_ITEM(ERROR, 1, "") \ 
  498    ENUM_ITEM(WARNING, 2, "") \ 
  499    ENUM_ITEM(INFO, 3, "") \ 
  500    ENUM_ITEM(DEBUG, 4, "") 
 
  502#define ENUM_AxisModeType_DECLARES  \ 
  503    ENUM_ITEM(NoController, -1, "提供给示教器使用的, 如果aubo_control进程崩溃则会显示为NoController") \ 
  504    ENUM_ITEM(Disconnected, 0, "未连接") \ 
  505    ENUM_ITEM(PowerOff, 1, "断电") \ 
  506    ENUM_ITEM(BrakeReleasing, 2, "刹车松开中") \ 
  507    ENUM_ITEM(Idle, 3, "空闲") \ 
  508    ENUM_ITEM(Running, 4, "运行中") \ 
  509    ENUM_ITEM(Fault, 5, "错误状态") 
 
  511#define ENUM_SafeguedStopType_DECLARES  \ 
  512    ENUM_ITEM(None, 0, "无安全停止") \ 
  513    ENUM_ITEM(SafeguedStopIOInput, 1, "安全停止(IO输入)") \ 
  514    ENUM_ITEM(SafeguedStop3PE, 2, "安全停止(三态开关)") \ 
  515    ENUM_ITEM(SafeguedStopOperational, 3, "安全停止(操作模式)") 
 
  517#define ENUM_RobotEmergencyStopType_DECLARES  \ 
  518    ENUM_ITEM(RobotEmergencyStopNone, 0, "无紧急停止") \ 
  519    ENUM_ITEM(RobotEmergencyStopControlBox, 1, "紧急停止(控制柜急停)") \ 
  520    ENUM_ITEM(RobotEmergencyStopTeachPendant, 2, "紧急停止(示教器急停)") \ 
  521    ENUM_ITEM(RobotEmergencyStopHandle, 3, "紧急停止(手柄急停)") \ 
  522    ENUM_ITEM(RobotEmergencyStopEI, 4, "紧急停止(固定IO急停)") 
 
  524#define ENUM_ITEM(c, n, ...) c = n, 
  643#define DECL_TO_STRING_FUNC(ENUM)                             \ 
  644    inline std::string toString(ENUM v)                       \ 
  647        std::string name = #ENUM ".";                         \ 
  648        ENUM_##ENUM##_DECLARES                                \ 
  650            return #ENUM ".Unkown";                           \ 
  652    inline std::ostream &operator<<(std::ostream &os, ENUM v) \ 
 
  658#define ENUM_ITEM(c, n, ...) \ 
  767using Payload = std::tuple<double, std::vector<double>, std::vector<double>,
 
  768                           std::vector<double>>;
 
  772    std::tuple<std::vector<double>, std::vector<double>, double,
 
  773               std::vector<double>>;
 
  777    std::tuple<std::vector<double>, std::vector<double>, double,
 
  778               std::vector<double>, 
double>;
 
  782    std::tuple<std::vector<double>, std::vector<double>, std::vector<double>>;
 
  790using Box = std::vector<double>;
 
  872                  const std::string &message) noexcept
 
 
  886        } 
else if (
code_ >= -32099 && 
code_ <= -32000) {
 
  888        } 
else if (
code_ == -32700) {
 
 
  895    const char *
what() const noexcept
 override { 
return message_.c_str(); }
 
 
  904    static const char *retval_str[] = {
 
  905#define ENUM_ITEM(n, v, s) s, 
  912#define ENUM_ITEM(n, v, s) n##_INDEX, 
  919#define ENUM_ITEM(n, v, s) \ 
  920    if (abs(retval) == v)  \ 
  927        index = AUBO_ERR_UNKOWN_INDEX;
 
  930    return retval_str[(unsigned)index];
 
 
  939#if defined ENABLE_JSON_TYPES 
  940#include "bindings/jsonrpc/json_types.h" 
AuboException(int code, const std::string &prefix, const std::string &message) noexcept
std::string message_
异常消息 Exception message
const char * what() const noexcept override
AuboException(int code, const std::string &message) noexcept
@ ENUM_RobotEmergencyStopType_DECLARES
std::tuple< std::vector< double >, std::vector< double >, double, std::vector< double > > ForceSensorCalibResult
std::ostream & operator<<(std::ostream &os, const RobotSafetyParameterRange &vd)
std::tuple< std::vector< std::vector< double > >, int > ResultWithErrno1
std::array< float, 3 > Vector3f
@ ENUM_JointServoModeType_DECLARES
@ ENUM_SafetyOutputRunState_DECLARES
std::array< double, 3 > Vector3d
@ ENUM_SafeguedStopType_DECLARES
std::tuple< std::vector< double >, std::vector< double >, double, std::vector< double >, double > ForceSensorCalibResultWithError
RobotControlModeType
机器人控制模式
@ ENUM_RobotControlModeType_DECLARES
std::tuple< std::vector< double >, std::vector< double >, std::vector< double > > DynamicsModel
std::array< float, 6 > Vector6f
StandardInputAction
The StandardInputAction enum
@ ENUM_StandardInputAction_DECLARES
std::vector< double > Box
std::vector< double > Sphere
StandardOutputRunState
标准输出运行状态
@ ENUM_StandardOutputRunState_DECLARES
std::tuple< double, std::vector< double >, std::vector< double >, std::vector< double > > Payload
@ ENUM_JointStateType_DECLARES
@ ENUM_EnvelopingShape_DECLARES
const char * returnValue2Str(int retval)
@ ENUM_AuboErrorCodes_DECLARES
@ EC_METHOD_NOT_FOUND
方法未找到
std::array< float, 4 > Vector4f
@ ENUM_SafetyInputAction_DECLARES
@ ENUM_OperationalModeType_DECLARES
@ ENUM_SafetyModeType_DECLARES
std::array< double, 4 > Vector4d
@ ENUM_TraceLevel_DECLARES
@ ENUM_TaskFrameType_DECLARES
@ ENUM_RobotModeType_DECLARES
@ ENUM_PayloadIdentifyMoveAxis_DECLARES
std::tuple< std::vector< double >, int > ResultWithErrno
@ ENUM_RuntimeState_DECLARES
@ ENUM_AxisModeType_DECLARES
std::vector< RobotMsg > RobotMsgVector
std::vector< double > Cylinder
double duration
运行时间,单位: s
double blend_radius
交融半径,单位: m
std::vector< double > pose_via
圆周运动途中点的位姿
std::vector< double > pose_to
圆周运动结束点的位姿
std::vector< double > ep_args
std::string source
发送消息的机器人别名 alias 可在 /root/arcs_ws/config/aubo_control.conf 配置文件中查到机器人的alias
uint64_t timestamp
时间戳,即系统时间
std::vector< std::string > args
机器人参数
struct arcs::common_interface::RobotSafetyParameterRange::@1 trigger_planes[SAFETY_PLANES_NUM]
8个触发平面
struct arcs::common_interface::RobotSafetyParameterRange::@0 params[SAFETY_PARAM_SELECT_NUM]
最多可以保存2套参数, 默认使用第 0 套参数
uint32_t safety_output_robot_moving
uint32_t safety_input_auto_safeguard_stop
float stop_distance
停机距离 m
float power
关节力矩与关节角速度的乘积之和
std::vector< float > qmin
int allow_manual_high_speed
手动模式下允许高速运行 /~english Allow high-speed operation in manual mode
RobotSafetyParameterRange()
uint32_t safety_input_auto_safeguard_reset
uint32_t safety_input_safeguard_stop
uint32_t safety_output_robot_steady
int tp_3pe_for_handguide
是否将示教器三档位开关作为拖动功能开关
uint32_t safety_output_robot_not_stopping
uint32_t safety_input_reduced_mode
uint32_t safety_output_safetyguard_stop
std::vector< float > qmax
uint32_t safety_output_not_reduced_mode
uint32_t safety_input_handguide
uint32_t safety_output_emergency_stop
uint32_t safety_input_operational_mode
Vector6f orig
立方块的原点 (x,y,z,rx,ry,rz)
uint32_t safety_input_three_position_switch
struct arcs::common_interface::RobotSafetyParameterRange::@2 cubic[SAFETY_CUBIC_NUM]
10个安全空间
Vector3f size
立方块的尺寸 (x,y,z)
Vector4f tools[TOOL_CONFIGURATION_NUM]
3个工具
uint32_t safety_input_emergency_stop
可配置IO的输入输出安全功能配置
Vector3f tool_orientation
int restrict_elbow[SAFETY_PLANES_NUM]
x,y,z,displacement
std::vector< float > qdmax
float reduced_entry_time
进入缩减模式的最大时间
Vector4f planes[SAFETY_PLANES_NUM]
uint32_t safety_output_safe_home
std::vector< float > joint_torque
std::vector< float > safety_home
uint32_t safety_output_not_emergency_stop
float tool_inclination
x,y,z,radius
uint32_t safety_input_safeguard_reset
uint32_t safety_output_reduced_mode
float reduced_entry_distance
进入缩减模式的最大距离(可由安全平面触发)
int trigger
触发方式(该功能暂未实现): 0 - 周期; 1 - 变化
std::vector< std::string > segments
字段列表
double angle
转动的角度,如果为正数,机器人逆时针旋转
int plane
参考平面选择 0-XY 1-YZ 2-ZX
std::vector< double > frame
参考点,螺旋线的中心点和参考坐标系
std::vector< double > upper_joint_bound
std::vector< double > max_acceleration
std::vector< double > lower_joint_bound
std::vector< Enveloping > envelopings
std::vector< double > init_joint
PayloadIdentifyMoveAxis move_axis
std::vector< double > max_velocity
std::vector< double > obj_coord
工件坐标系,基于 uframe
std::vector< double > user_coord
用户坐标系 如果 robhold 为 false, 那 uframe 的数值是基于 world 否则,uframe 的数值是基于 flange
std::string attach_frame
工件坐标系耦合的
#define TOOL_CONFIGURATION_NUM
工具配置数量
#define SAFETY_PLANES_NUM
安全平面的数量
#define DECL_TO_STRING_FUNC(ENUM)
#define SAFETY_PARAM_SELECT_NUM
正常 + 缩减
#define SAFETY_CUBIC_NUM
安全立方体的数量