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] |
示例:
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 例程使用说明
示例:
ros2 run airbot_hardware_ros2 airbot_eef_e2 --ros-args -p i:=can0
# 查看 E2 夹爪反馈数据
ros2 topic echo /joint_states
示例:
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