跳转至

A1XY 软件介绍

环境依赖

  1. 操作系统依赖:Ubuntu 20.04 LTS
  2. 中间件依赖:ROS Noetic

软件资源

点击以下链接获取A1XY SDK文件:

当前为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

    source A1XY_workspace/install/setup.bash
    
    # 根据产品型号,选择以下任一启动方式:
    roslaunch mobiman a1x_jointTrackerdemo.launch
    roslaunch mobiman a1y_jointTrackerdemo.launch
    
  • 当前末端姿态控制的相对位姿是URDF中gripper_link相对于base_link的姿态转换。以A1X为例,下图展示了gripper_link坐标系相对于base_link坐标系的相对关系,包含了x、y、z的偏移量以及orientation对应的旋转偏移。

A1XY_arm_pose_cn

该接口如下所示:

话题名称 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文件,可以通过以下命令启动:

source A1XY_workspace/install/setup.bash
roslaunch mobiman a1xy_gripperController.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 - 请参考驱动接口