数据类型
-
回调函数
- 笛卡尔空间位置数据类型
1 2 3 4 5
typedef struct { double x; // x轴坐标, 单位mm double y; // y轴坐标, 单位mm double z; // z轴坐标, 单位mm }CartesianTran;
- 欧拉角姿态数据类型
1 2 3 4 5
typedef struct { double rx; // 绕固定 轴X 旋转角度,单位: rad double ry; // 绕固定 轴Y 旋转角度,单位: rad double rz; // 绕固定 轴Z 旋转角度,单位: rad }Rpy;
- 笛卡尔空间位姿类型
1 2 3 4
typedef struct { CartesianTran tran; // 笛卡尔空间位置 Rpy rpy; // 笛卡尔空间姿态 }CartesianPose;
- 描述旋转有几种方式:旋转矩阵、欧拉角、旋转向量、四元数。
- 旋转矩阵用9个量描述3个自由度,具有冗余性;
- 欧拉角和旋转向量虽然是紧凑的,但是具有奇异性;
- 因此某个牛人找到了四元数,既紧凑又没有奇异性。
- 关节位置数据类型
1 2 3
typedef struct { double jVal[6]; // 6关节位置值,单位:rad }JointValue;
- 机器人状态数据类型
1 2 3 4 5
typedef struct { bool estoped; // 是否急停 bool poweredOn; // 是否打开电源 bool servoEnabled; // 是否使能 }RobotState;
- 机器人力矩数据类型
1 2 3
typedef struct { double jTorque[6]; // 各关节力矩值,单位:N }TorqueValue;
API
- 机器人登录
- 简介:连接机器人控制器
- 声明:
errno_t login_in(const char* ip);
- 参数:
ip
– 控制器ip地址
- 返回值:
ERR_SUCC
– 成功- 其他失败
- 机器人注销
- 简介:断开控制器连接
- 声明:
errno_t login_out();
- 参数:无
- 返回值:
ERR_SUCC
– 成功- 其他失败
- 机器人上电
- 简介:打开机器人电源
- 声明:
errno_t power_on();
- 参数:无
- 返回值:
ERR_SUCC
– 成功- 其他失败
- 机器人下电
- 简介:关闭机器人电源
- 声明:
errno_t power_off();
- 参数:无
- 返回值:
ERR_SUCC
– 成功- 其他失败
- 获取机器人状态
- 简介:获取机器人状态
- 声明:
errno_t get_robot_state(RobotState* state);
- 参数:
state
– 机器人状态查询结果
- 返回值:
ERR_SUCC
– 成功- 其他失败
- 获取当前设置下工具末端的位姿
- 简介:获取当前设置下工具末端的位姿
- 声明:
errno_t get_tcp_position(CartesianPose* tcp_position);
- 参数:
tcp_position
– 工具末端位置查询结果
- 返回值:
ERR_SUCC
– 成功- 其他失败
- 获取当前机器人关节角度
- 简介:获取当前机器人关节角度
- 声明:
errno_t get_joint_position(JointValue* joint_position);
- 参数:
joint_position
– 关节角度查询结果
- 返回值:
ERR_SUCC
– 成功- 其他失败
- 查询机器人运动是否停止
- 简介:查询机器人运动是否停止
- 声明:
errno_t is_in_pos(bool* in_pos);
- 参数:
in_pos
– 查询结果
- 返回值:
ERR_SUCC
– 成功- 其他失败
- 机器人求解逆解
- 简介:计算指定位姿在当前工具,当前安装角度以及当前用户坐标系设置下的逆解
- 声明:
errno_t kine_inverse(const JointValue* ref_pos, const CartesianPose* cartesian_pose, JointValue* joint_pos);