机器人手臂示教案例
描述
- 在0-torque模式下,可手动拖摆动机器人手臂
- 录制摆动时的手臂关节数据
- 提供重播录制动作的功能
- 支持两种录制方式:rosbag话题数据录制和关键帧数据录制
- 录制rosbag能和预设角度更好重合,但会把全部数据录入,可能会包含某个不需要的动作
- 录制关键帧
程序逻辑
1. 启动流程
- 手臂零点标定:如果机械手臂是多圈的且之前已经标定,可忽略该步骤;否则摆正手臂后执行标定命令
- 启动机器人:根据机器人类型选择相应的启动命令
- 电机使能:按'o'键使能电机
2. 录制模式
- rosbag录制模式:录制完整的话题数据流
- 关键帧录制模式:通过按键's'记录关键帧动作
3. 播放模式
- rosbag播放模式:播放完整的话题数据流
- 关键帧播放模式:播放关键帧数据,可控制执行速度
编译
cd <kuavo-ros-opensource>
sudo su
catkin build kuavo_sdk teach_pendant
执行
1. 启动机器人程序
首先需要进行手臂零点标定,如果您的机械手臂是多圈的且您之前已经标定,请忽略该步骤,否则请摆正手臂后,执行以下命令进行标定:
source devel/setup.bash
rosrun hardware_node setZero.sh
然后启动机器人:
source devel/setup.bash
# 正常具有全身的机器人
roslaunch humanoid_controllers load_kuavo_real.launch teach_pendant:=1
# 只有上半身的机器人(轮臂机器人)
roslaunch humanoid_controllers load_kuavo_real_half_up_body.launch teach_pendant:=1
启动之后需要按 o
键使能电机。
2. 录制数据包
2.1 录制rosbag话题数据
请先确保在0-torque模式下启动机器人,然后执行以下命令录制话题数据:
source devel/setup.bash
roslaunch teach_pendant launch_teach_pendant_record_rosbag.launch save_bag:=/path/to/save/bagname.bag
其中 /path/to/save/bagname.bag
为保存的rosbag文件完整路径名。
2.2 录制关键帧数据
通过按下键盘's'记录一帧关键帧动作:
source devel/setup.bash
roslaunch teach_pendant launch_teach_pendant_record_file.launch save_file:=/path/to/save/filename
其中 /path/to/save/filename
为保存的记录关键帧文件完整路径名。
以下是记录关键帧时终端输出的信息:
Recording started.
Key commands:
s - Save the current joint state to file
Ctrl+C - Exit the program
此时按下's'会记录一帧数据。
记录了两个关键帧的文件实例如下(单位是角度):
frame_1: [6.688944668069868, 0.26222175954934457, 0.8742850281282628, 0.043699139520925044, 0.1748552065106258, -0.17486768318044163, 0.04366378011757604, 8.587659186481185, -0.7212213275411588, 1.1147072424638924, -0.6557031046764389, 0.5901067615630409, 0.939812979855269, -0.6774928350594672]
frame_2: [6.674225439283481, 0.2622862835336425, 0.8742997290724711, 0.04366009126140115, 0.1748897410867445, -0.1748426016729588, 0.04367398806815109, -12.56390743084296, -51.71382905849491, -0.3496471881561264, -0.9398426465709862, 32.632482053002796, 6.797494131713388, -12.589631500169236]
3. 播放录制的动作
注意:在播放动作前,请先关闭之前的程序,并确保机器人已经站立在正常状态下,再进行动作播放。
请先确保机器人在正常的分支下启动(能全身正常站立),然后执行以下命令播放之前录制的动作:
3.1 播放记录的rosbag文件
source devel/setup.bash
roslaunch teach_pendant launch_teach_pendant_play_rosbag.launch bag_file:=/path/to/bag
/path/to/bag
即之前录制的话题数据bag文件。
3.2 播放记录的关键帧文件
source devel/setup.bash
roslaunch teach_pendant launch_teach_pendant_play_file.launch file:=/path/to/file interval_sec:=1
/path/to/file
即之前录制的关键帧数据文件interval_sec
为两个关键帧之间的执行时间间隔,该参数可以控制动作执行速度,单位为秒,最小值为0.5秒
参数说明
teach_pendant
:启动参数,设置为1启用示教模式save_bag
:rosbag录制模式下的保存路径参数save_file
:关键帧录制模式下的保存路径参数bag_file
:rosbag播放模式下的文件路径参数file
:关键帧播放模式下的文件路径参数interval_sec
:关键帧播放模式下的时间间隔参数(单位:秒,最小值:0.5)
使用注意事项
- 零点标定:首次使用或更换机械手臂后需要进行零点标定
- 电机使能:启动后必须按'o'键使能电机才能进行示教操作
- 录制模式选择:
- rosbag模式适合录制连续的动作轨迹
- 关键帧模式适合录制离散的关键姿态
- 播放环境:播放动作时需要在正常模式下启动机器人,确保机器人能够正常站立
- 时间间隔控制:关键帧播放时可通过
interval_sec
参数控制动作执行速度
运行效果
- 示教录制:在0-torque模式下手动拖动机器人手臂,系统自动记录关节数据
- 动作重放:机器人按照录制的轨迹精确重现示教动作