4. 跳转至

4. AIRBOT Play 例程说明#

以下例程均有以下默认参数

可选参数 参数介绍 默认值
-i can port 机械臂can口号 can0
-r --remote-ip Plotjugger的IP地址 127.0.0.1
-p --port Plotjugger的UDP端口 9870

4.1 C++例程功能说明#

4.1.1 机械臂读取信息示例#

字段 说明
可执行文件名 airbot_arm_get_params
文件路径 example/cpp/src/product/get_params.cpp
功能概述 移动到命令行指定位置
输入参数 -eef( G2,E2,NA,默认NA)

4.1.2 机械臂关节空间位置控制#

字段 说明
可执行文件名 airbot_1f1
文件路径 example/cpp/src/product/1f1.cpp
功能概述 示教臂控PLAY
输入参数 -i_teacharm -i_arm

示例:

# 主臂can0控从臂can1
airbot_1f1 -i_teacharm can0 -i_arm can1

字段 说明
可执行文件名 airbot_play_pos_ctrl
文件路径 example/cpp/src/product/play_pos_ctrl.cpp
功能概述 移动到命令行指定位置
输入参数 -j[如下] -g [0,0.072]

输入参数阈值

关节编号 lower upper
joint1 -3.1416 2.0944
joint2 -2.9671 0.17453
joint3 -0.087266 3.1416
joint4 -3.0107 3.0107
joint5 -1.7628 1.7628
joint6 -3.0107 3.0107
joint7 0.0000 0.072

示例:

# 移动关节到 0,0,0,0,0,0 位置,G2 夹爪打开至 7 cm
airbot_play_pos_ctrl -j 0 0 0 0 0 0 -g 0.07

字段 说明
可执行文件名 airbot_play_pos_show
文件路径 example/cpp/src/product/play_pos_show.cpp
功能概述 进行大臂展固定位置移动
关节精度误差 ±0.02
夹爪精度误差 ±0.001

示例:

airbot_play_pos_show -i can0 -p 50031

字段 说明
可执行文件名 airbot_play_return_zero
文件路径 example/cpp/src/product/play_return_zero.cpp
功能概述 返回零点

示例:

airbot_play_return_zero -i can0 -p 50031

4.1.3 机械臂关节空间速度控制#

字段 说明
可执行文件名 airbot_play_kbd_ctrl_1
文件路径 example/cpp/src/product/play_kbd_ctrl_1.cpp
功能概述 按键 1 2 3 4 5 6 7 8 9 0 - = 控制机械臂关节以一定速度运动(按下时开始速度控制目标为非0值,松开时速度控制目标为0)
按键 操作说明
1 1号 关节正方向运动
2 1号 关节反方向运动
3 2号 关节正方向运动
4 2号 关节反方向运动
5 3号 关节正方向运动
6 3号 关节反方向运动
7 4号 关节正方向运动
8 4号 关节反方向运动
9 5号 关节正方向运动
0 5号 关节反方向运动
- 6号 关节正方向运动
= 6号 关节反方向运动
a 减小运动速度
s 重设运动速度
d 增加运动速度

注意事项

  • 请在开始控制前确保机械臂周围没有障碍物。
  • 可随时按下 Ctrl+C 来停止程序。

4.1.4 机械臂关节空间MIT控制#

字段 说明
可执行文件名 airbot_play_mit_free_drive
文件路径 example/cpp/src/product/play_mit_free_drive.cpp
功能概述 自由拖拽(无重力补偿)

注意:

1.该例程无重力补偿,执行后机械臂会掉落,请确保安全

2.确认以上信息后,按下回车进入无重力补偿模式的自由拖拽状态
字段 说明
可执行文件名 airbot_play_mit_swing
文件路径 example/cpp/src/product/play_mit_swing.cpp
功能概述 1号关节正弦摆动
输入参数 -T ( [2,20],默认值 = 10)

示例:

# 以 10 s  为一个周期,进行正弦摆动
airbot_play_mit_swing -T 10

4.1.5 末端执行器控制示例#

4.1.5.1 夹爪位置控制#

字段 说明
可执行文件名 airbot_g2_pos_ctrl
文件路径 example/cpp/src/product/g2_pos_ctrl.cpp
功能概述 按命令行指定位置开合
输入参数 -g [0,0.072]

示例:

# 夹爪打开至 7 cm,到达目标后退出
airbot_g2_pos_ctrl -g 0.07

字段 说明
可执行文件名 airbot_g2_pos_swing
文件路径 example/cpp/src/product/g2_pos_swing.cpp
功能概述 正弦开关夹爪
输入参数 -T (推荐1~5)

示例:

# 以 3 s 为一个周期,进行正弦开合
airbot_g2_pos_swing -T 3

4.1.5.2 夹爪力控#

字段 说明
可执行文件名 airbot_g2_force
文件路径 example/cpp/src/product/g2_force.cpp
功能概述 在不同位置施加恒定的夹取力
输入参数 -f [-200, -4]或[4, 200]

示例:

airbot_g2_force -f 5

4.1.5.3 示教器位置反馈#

字段 说明
可执行文件名 airbot_e2
文件路径 example/cpp/src/product/e2.cpp
功能概述 以 0.1s 间隔将 E2 平行宽度打印至命令行

4.1.6 灵巧手通用示例#

例程名称 文件路径 功能描述
set_hand_angles example/cpp/src/hardware/hand/set_hand_angles.cpp 灵巧手控制示例,演示灵巧手基本控制功能
set_hand_waving example/cpp/src/hardware/hand/set_hand_waving.cpp 灵巧手控制,演示手指连续移动

4.2 Python例程功能说明#

4.2.1 机械臂控制示例#

例程名称 文件路径 参数 功能描述
1f1 example/python/product/1f1.py -i_teacharm -i_arm 机械臂协同控制示例
play_pos_ctrl example/python/product/play_pos_ctrl.py -j -g[0,0.072] 关节空间位置控制-移动到命令行指定位置
play_return_zero example/python/product/play_return_zero.py \ 关节空间位置控制-机械臂回零
play_mit_swing example/python/product/play_mit_swing.py -T ( [2,20],默认值 = 10) 关节空间MIT控制-1号关节正弦摆动
play_mit_free_drive example/python/product/play_mit_free_drive.py \ 关节空间MIT控制-自由拖拽(无重力补偿

4.2.2 末端执行器控制示例#

例程名称 文件路径 参数 功能描述
e2 example/python/product/e2.py \ 示教器位置反馈-以 0.1s 间隔将 E2 平行宽度打印至命令行
g2_force example/python/product/g2_force.py -f [-200, -4]或[4, 200] 夹爪力控-在不同位置施加恒定的夹取力
g2_pos_ctrl example/python/product/g2_pos_ctrl.py -g [0,0.072] 夹爪位置控制-按命令行指定位置开合

4.2.3 灵巧手通用示例#

例程名称 文件路径 功能描述
example_hand example/python/hardware/hand/example_hand.py 灵巧手位置设置功能
test_arm_with_hand example/python/hardware/hand/test_arm_with_hand.py 灵巧手和机械臂联合运动

4.3 ROS2例程功能说明#

节点名称 功能描述
airbot_eef_e2 E2 夹爪反馈数据获取
airbot_eef_g2 G2 夹爪控制与反馈数据获取
airbot_play_free_drive 机械臂自由拖拽模式(无重力补偿)
airbot_play_pos_ctrl_mit 机械臂 MIT 控制
airbot_play_pos_ctrl 机械臂位置/速度控制
airbot_play_pos_ctrl_with_e2 机械臂+E2 夹爪联合位置/速度控制
airbot_play_pos_ctrl_with_g2 机械臂+G2 夹爪联合位置/速度控制
airbot_replay replay 状态反馈

4.3.1 例程对应话题(Topic)说明#

话题名称 类型 说明
/joint_states_command sensor_msgs/JointState 关节控制指令(位置/速度等)
/joint_states sensor_msgs/JointState 关节状态反馈(实际位置/速度)

4.3.2 例程使用说明#

  • airbot_eef_e2(E2 反馈数据获取)

示例

ros2 run airbot_hardware_ros2 airbot_eef_e2 --ros-args -p i:=can0
# 查看 E2 夹爪反馈数据
ros2 topic echo /joint_states

  • airbot_eef_g2(G2 反馈数据获取)

示例

ros2 run airbot_hardware_ros2 airbot_eef_g2 --ros-args -p i:=can0
# 查看 G2 夹爪反馈数据
ros2 topic echo /joint_states
# 发送 G2 夹爪控制指令
ros2 topic pub /joint_states_command sensor_msgs/JointState "{name: ['eef'], position: [0.0], velocity: [0.0], effort: [0.0]}" --once

  • airbot_play_free_drive(机械臂自由拖拽模式)

示例

ros2 run airbot_hardware_ros2 airbot_play_free_drive --ros-args -p i:=can0
# 查看机械臂反馈数据
ros2 topic echo /joint_states

  • play_pos_ctrl_mit (机械臂 MIT 控制)

示例

ros2 run airbot_hardware_ros2 airbot_play_pos_ctrl_mit --ros-args -p i:=can0
# 查看 play 反馈数据
ros2 topic echo /joint_states
# 发送 play mit 控制指令
ros2 topic pub --once /joint_states_command sensor_msgs/msg/JointState '
{
  name: ["joint1", "joint2", "joint3", "joint4", "joint5", "joint6"],
  position: [0.2, 0.0, 0.0, 0.0, 0.0, 0.0]
}'

  • airbot_play_pos_ctrl(机械臂位置/速度控制)

示例

ros2 run airbot_hardware_ros2 airbot_play_pos_ctrl_mit --ros-args -p i:=can0
# 查看 play 反馈数据
ros2 topic echo /joint_states
# 发送 play mit 控制指令
ros2 topic pub --once /joint_states_command sensor_msgs/msg/JointState '
{
  name: ["joint1", "joint2", "joint3", "joint4", "joint5", "joint6"],
  position: [0.2, 0.0, 0.0, 0.0, 0.0, 0.0]
}'

  • airbot_play_pos_ctrl_with_e2(机械臂+E2 反馈数据获取)

示例

ros2 run airbot_hardware_ros2 airbot_play_pos_ctrl_with_e2 --ros-args -p i:=can0
# 查看 play + E2 反馈数据
ros2 topic echo /joint_states
# 发送 play 控制指令
ros2 topic pub --once /joint_states_command sensor_msgs/msg/JointState '
{
  name: ["joint1", "joint2", "joint3", "joint4", "joint5", "joint6"],
  position: [0.5, 0.0, 0.0, 0.0, 0.0, 0.0]
}'

  • airbot_play_pos_ctrl_with_g2(机械臂+G2 联合位置/速度控制)

示例

ros2 run airbot_hardware_ros2 airbot_play_pos_ctrl_with_g2 --ros-args -p i:=can0
# 查看 play + G2 反馈数据
ros2 topic echo /joint_states
# 发送 play + G2 控制指令
ros2 topic pub --once /joint_states_command sensor_msgs/msg/JointState '
{
  name: ["joint1", "joint2", "joint3", "joint4", "joint5", "joint6", "joint7"],
  position: [0.5, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07]
}'

  • airbot_replay(replay 状态反馈)

示例

ros2 run airbot_hardware_ros2 airbot_replay --ros-args -p i:=can0
# 查看 Replay 反馈数据
ros2 topic echo /joint_states