使用离线轨迹文件控制机器人运动
接收符合捷勃特机器人规范的离线轨迹文件,通过机器人接口发送给机器人,机器人将按照轨迹文件中的指令进行运动。实现更加细腻的轨迹控制,包括位置、速度、加速度、加加速度等参数,以及数字输出端口控制。用户可自行选择轨迹规划的方式,比如使用 MoveIt2 或者其他的规划器,将轨迹保存为 CSV 文件,然后通过本接口发送给机器人。
注意:
1. 本功能需要将机器人设置为
AUTO模式,请确保机器人处于该模式,否则无法执行。可通过手柄上的钥匙开关旋转到AUTO位置进行设置。2. 请确保机器人软件版本 >=7.6.7.0,否则无法使用本功能。
准备离线轨迹文件
离线轨迹文件为 CSV 格式,表头如下:
csv
ts,pts_J1,pts_J2,pts_J3,pts_J4,pts_J5,pts_J6,vel_J1,vel_J2,vel_J3,vel_J4,vel_J5,vel_J6,acc_J1,acc_J2,acc_J3,acc_J4,acc_J5,acc_J6,jerk_J1,jerk_J2,jerk_J3,jerk_J4,jerk_J5,jerk_J6,do_port,do_state示例文件:sample.csv
csv
ts,pts_J1,pts_J2,pts_J3,pts_J4,pts_J5,pts_J6,vel_J1,vel_J2,vel_J3,vel_J4,vel_J5,vel_J6,acc_J1,acc_J2,acc_J3,acc_J4,acc_J5,acc_J6,jerk_J1,jerk_J2,jerk_J3,jerk_J4,jerk_J5,jerk_J6,do_port,do_state
0,0.0000873,0.00020944,-0.350217768,-0.001047198,0.348018653,0,0,0,0,0,0,0,2.843203747,3.305122443,-0.822163233,12.12931686,-17.22206528,-16.64150606,0,0,0,0,0,0,-1,0
0.001000026,0.0000887,0.000211091,-0.350218178,-0.001041137,0.348010048,-0.00000831,0.00283975,0.003301588,-0.000821221,0.012115944,-0.017202583,-0.016622901,2.836146722,3.297879454,-0.820235299,12.10193265,-17.18219516,-16.60342136,-7.057025559,-7.24298847,1.927934515,-27.3842142,39.87011938,38.08470461,-1,0
0.002000053,0.0000929,0.00021604,-0.35021941,-0.001022974,0.34798426,-0.0000332,0.005672443,0.006595933,-0.001640514,0.024204502,-0.034365295,-0.033207717,2.829089696,3.290636466,-0.818307364,12.07454844,-17.14232504,-16.56533665,-7.057025559,-7.24298847,1.927934515,-27.3842142,39.87011938,38.08470461,-1,0
0.003000079,0.00010003,0.000224281,-0.350221459,-0.000992736,0.347941329,-0.0000747,0.008498078,0.009883034,-0.002457879,0.036265676,-0.051488136,-0.049754447,2.822032671,3.283393477,-0.816379429,12.04716422,-17.10245492,-16.52725195,-7.057025559,-7.24298847,1.927934515,-27.3842142,39.87011938,38.08470461,-1,0轨迹文件格式说明
1. ts (时间戳)
- 含义:表示当前轨迹点的时间信息,通常以秒(s)为单位。
- 作用:用于同步机械臂的运动时间,确保各关节在指定时间点达到目标位置、速度和加速度。
2. pts_J1 到 pts_J6 (关节位置)
- 含义:
pts_J1到pts_J6分别表示机械臂的 6 个关节的位置(Joint Position)。- 角度(单位:弧度,rad)
- 作用:
- 定义机械臂末端执行器的空间位置和姿态(通过正运动学计算)。
- 是轨迹规划的核心数据,描述机械臂从起点到终点的路径。
3. vel_J1 到 vel_J6 (关节速度)
- 含义:
vel_J1到vel_J6分别表示机械臂 6 个关节的速度(Joint Velocity)。- 单位是 弧度 / 秒(rad/s)
- 作用:
- 控制机械臂各关节的运动速度,确保末端执行器沿规划路径平稳移动。
- 避免因速度突变导致的机械冲击或振动。
4. acc_J1 到 acc_J6 (关节加速度)
- 含义:
acc_J1到acc_J6分别表示机械臂 6 个关节的加速度(Joint Acceleration)。- 单位是 弧度 / 秒 ²(rad/s²)
- 作用:
- 描述关节速度的变化率,影响机械臂的动态性能。
- 过高的加速度可能导致机械臂超载或产生不必要的振动。
5. jerk_J1 到 jerk_J6 (关节加加速度)
- 含义:
jerk_J1到jerk_J6分别表示机械臂 6 个关节的加加速度(Joint Jerk)。- 单位通常是 弧度 / 秒 ³(rad/s³)
- 作用:
- 描述加速度的变化率,直接影响机械臂运动的平滑性。
6. do_port (数字输出端口)
- 含义:
- 表示机械臂的 数字输出端口(Digital Output Port) 编号。
- 通常用于控制外部设备(如夹爪、吸盘、传感器等)。
- 作用:
- 在特定时间点触发外部设备的开关状态(例如夹爪的抓取或释放)。
7. do_state (数字输出状态)
- 含义:
- 表示数字输出端口(
do_port)的 状态(State),通常为布尔值(0 或 1)。 - 例如:
0表示关闭(如夹爪松开)。1表示开启(如夹爪闭合)。
- 表示数字输出端口(
- 作用:
- 协调机械臂运动与外部设备的联动(例如在机械臂到达目标位置后触发夹爪抓取)。
使用说明
设置机器人 IP
gbt_driver/config/robot_config.yaml 中设置 robot_ip_address 为机器人 IP 地址
启动服务
bash
source install/setup.bash
ros2 launch gbt_driver gbt_offline_trajectory.launch.py robot_type:=<robot_type>接口使用示例
bash
ros2 action send_goal gbt_driver/trajectory gbt_interface/action/OfflineTrajectory "{trajectory_path: 'your_trajectory_file.csv'}"