A1XY 软件介绍
环境依赖
- 操作系统依赖:Ubuntu 20.04 LTS
- 中间件依赖:ROS Noetic
软件资源
点击以下链接获取A1XY SDK文件:
- 百度云盘:https://pan.baidu.com/s/1jVEqjL-r_Ll7bKFB1XxKIw?pwd=a1xy
- Google Drive:https://drive.google.com/drive/folders/180qSZTc7bZgwklVuwcuhq5O2DPteI2nR?usp=sharing
当前为A1XY机械臂的首发软件版本。后续的版本更新您可以在A1XY软件版本更新日志中查看,获取最新的SDK包及更新信息。
点击获取A1XY URDF文件:
启动SDK
点击查看A1XY 启动与Demo演示指南
Demo演示
点击查看A1XY Demo演示
软件接口
驱动接口
话题名称 | I/O | 描述 | 消息类型 |
---|---|---|---|
/hdas/feedback_arm | Output | 各关节反馈位置/速度/力矩 | sensor_msgs::JointState |
/hdas/feedback_gripper | Output | 末端夹爪反馈行程 | sensor_msgs::JointState |
/hdas/feedback_status | Output | 各关节状态反馈 | hdas_msg::feedback_status |
/motion_control/control_arm | Input | 各关节电机控制接口 | hdas_msg::motor_control |
/motion_control/control_gripper | Input | 末端夹爪电机控制接口 | hdas_msg::motor_control |
/motion_control/position_control_gripper | Input | 末端夹爪行程控制接口 | std_msgs::Float32 |
/arm_node/function_frame_arm | Input | 机械臂功能帧 | hdas_msg/FunctionFrame |
针对以上话题的具体字段及其详细描述如下表所示:
话题名称 | 字段 | 描述 |
---|---|---|
/hdas/feedback_arm | header | 标准消息头 |
position | [Joint1_position, Joint2_position, Joint3_position, Joint4_position, Joint5_position, Joint6_position, gripper_position] | |
velocity | [Joint1_velocity, Joint2_velocity, Joint3_velocity, Joint4_velocity, Joint5_velocity, Joint6_velocity, gripper_velocity] | |
effort | [Joint1_effort, Joint2_effort, Joint3_effort, Joint4_effort, Joint5_effort, Joint6_effort, gripper_effort] | |
/hdas/feedback_gripper | header | 标准消息头 |
position | [gripper_stroke] | |
velocity | 未使用 | |
effort | 未使用 | |
/hdas/feedback_status_arm | header | 标准消息头 |
name_id | 关节名称 | |
errors | 包含错误代码及描述 | |
/motion_control/control_arm | header | 标准消息头 |
name | - | |
p_des | [Joint1_position, Joint2_position, Joint3_position, Joint4_position, Joint5_position, Joint6_position] | |
v_des | [Joint1_velocity, Joint2_velocity, Joint3_velocity, Joint4_velocity, Joint5_velocity, Joint6_velocity] | |
kp | [Joint1_kp, Joint2_kp, Joint3_kp, Joint4_kp, Joint5_kp, Joint6_kp] | |
kd | [Joint1_kd, Joint2_kd, Joint3_kd, Joint4_kd, Joint5_kd, Joint6_kd] | |
t_ff | [Joint1_effort, Joint2_effort, Joint3_effort, Joint4_effort, Joint5_effort, Joint6_effort] | |
mode | - | |
/motion_control/control_gripper | header | 标准消息头 |
name | - | |
p_des | [gripper_position] | |
v_des | [gripper_velocity] | |
kp | [gripper_kp] | |
kd | [gripper_kd] | |
t_ff | [gripper_effort] | |
mode | - | |
/motion_control/position_control_gripper | header | 标准消息头 |
data | desired_gripper_stroke, range (0 to 100) mm | |
/arm_node/function_frame_arm | command | 1: 使能 2: 失能 3: 整臂标定 4: 清除错误 |
运控接口
关节控制
source A1XY_workspace/install/setup.bash
# 根据产品型号,选择以下任一启动方式:
roslaunch mobiman a1x_jointTrackerdemo.launch
roslaunch mobiman a1y_jointTrackerdemo.launch
该启动文件将启动 a1_xy_jointTracker_demo_node
,该节点是负责控制每个关节的主要节点。
接口信息如下:
话题名称 | I/O | 描述 | 消息类型 |
---|---|---|---|
/hdas/feedback_arm | Output | 手臂关节反馈 | Hdas_msg::motor_control |
/motion_control/control_arm | Input | 手臂电机控制 | Sensor_msgs::JointState |
/motion_target/target_joint_state_arm | Input | 各关节目标位置 | sensor_msgs::JointState |
针对以上话题的具体字段及其详细描述如下表所示:
话题名称 | 字段 | 描述 |
---|---|---|
/motion_target/target_joint_state_arm | position | 这是一个包含六个元素的向量,代表每个关节的六个目标位置。 |
velocity | 这是一个包含六个元素的向量,代表每个关节在运动过程中的最大速度。最大速度如下:{3, 3, 3, 5, 5, 5, 5}。 加速度和加加速度限制设置为速度限制的1.5倍。 | |
/hdas/feedback_arm | - | 请参考手臂驱动接口 |
/motion_control/control_arm | - | 请参考手臂驱动接口 |
手臂姿态控制
A1XY手臂姿态控制是一个用于控制手臂移动到目标末端执行器(ee)坐标帧的ROS软件包。它主要包括一个launch文件,可以通过以下命令启动。
source A1XY_workspace/install/setup.bash
# 根据产品型号,选择以下任一启动方式:
roslaunch mobiman a1x_arm_relaxed_ik.launch
roslaunch mobiman a1y_arm_relaxed_ik.launch
请注意:
-
当双臂姿态控制器启动后,还是需要将关节控制节点启动,原因是姿态控制是根据目标ee姿态不断解算出目标关节角下发给
/motion_target/target_joint_state_arm
。 -
当前末端姿态控制的相对位姿是URDF中gripper_link相对于base_link的姿态转换。以A1X为例,下图展示了gripper_link坐标系相对于base_link坐标系的相对关系,包含了x、y、z的偏移量以及orientation对应的旋转偏移。
该接口如下所示:
话题名称 | I/O | 描述 | 消息类型 |
---|---|---|---|
/hdas/pose_ee_arm | Output | 末端实际位姿 | Geometry_msgs::PoseStamped |
/hdas/feedback_arm | Output | 手臂关节反馈 | Hdas_msg::motor_control |
/motion_target/target_joint_state_arm | Input | 手臂关节目标 | Sensor_msgs::JointState |
/motion_target/pose_ee_arm | Input | 目标手臂末端执行器姿态 | Geometry_msgs::PoseStamped |
针对以上话题的具体字段及其详细描述如下表所示:
话题名称 | 字段 | 描述 |
---|---|---|
/motion_target/pose_ee_arm | header | 标准消息头 |
pose.position.x | X轴偏移 | |
pose.position.y | Y轴偏移 | |
pose.position.z | Z轴偏移 | |
pose.orientation.x | 旋转四元数 | |
pose.orientation.y | 旋转四元数 | |
pose.orientation.z | 旋转四元数 | |
pose.orientation.w | 旋转四元数 | |
/hdas/feedback_arm | - | 请参考手臂驱动接口 |
/motion_target/target_joint_state_arm | - | 请参考关节控制接口 |
夹爪控制
A1XY夹爪控制是一个用于控制末端夹爪的ROS node。它主要包括一个launch文件,可以通过以下命令启动:
该启动文件将启动 a1_xy_jointTracker_demo_node
,该节点是负责控制每个关节的主要节点。
接口信息如下:
话题名称 | I/O | 描述 | 消息类型 |
---|---|---|---|
/motion_target/target_position_gripper | Input | 夹爪目标位置 | Sensor_msgs::JointState |
/motion_control/control_gripper | Input | 夹爪电机控制 | Sensor_msgs::JointState |
针对以上话题的具体字段及其详细描述如下表所示:
话题名称 | 字段 | 描述 |
---|---|---|
/motion_target/target_position_gripper | position | 表示夹爪的目标位置,[0,100],0为完全闭合,100为完全张开。 |
/motion_control/control_gripper | - | 请参考驱动接口 |