tiago机器人的自带的一些动作命令,比如招手呀,捡东西这些动作其实已经预先写好了。有三种方法可以实现
一种方法是用webcommader
一种是命令执行

还有一个是GUI
这里主要讲解一下rosparam list选取参数的过程

rosparam list | grep  "play_motion/motions" | grep "meta/name" | cut -d '/' -f 4

如果先执行

rosparam list | grep  "play_motion/motions"

得到的
在这里插入图片描述
在执行

rosparam list | grep  "play_motion/motions" | grep "meta/name"

得到的是
在这里插入图片描述
最后执行

rosparam list | grep  "play_motion/motions" | grep "meta/name" | cut -d '/' -f 4

得到
在这里插入图片描述
注意
其中cut -d ‘/’ -f 4的意思是剪取以’/'为分隔符的第四段字符,但是会发现感觉应该是3呀,其实的确是4.因为/play_motion的这用形式,play_motion已经算2了,不是1,因为命令行里的确是4.

如果要获取参数里面的位置信息,使用rosparam get
具体的形式如下

rosparam get /play_motion/motions/wave/joints
[arm_1_joint, arm_2_joint, arm_3_joint, arm_4_joint, arm_5_joint, arm_6_joint, arm_7_joint]

比如可以这样输入命令

rosparam get /play_motion/motions/wave/points
- positions: [0.06337464909724033, -0.679638896132783, -3.1087325315620733, 2.0882339360702575,
    -1.1201172410014792, -0.031008601325809293, -2.0744261217334135]
  time_from_start: 0.0
- positions: [0.06335930908588873, -0.7354151774072313, -2.939624246421942, 1.8341256735249563,
    -1.1201355028397157, -0.031008601325809293, -2.0744261217334135]
  time_from_start: 1.0
- positions: [0.06335930908588873, -0.7231278283145929, -2.9385504456273295, 2.2121050027803877,
    -1.1201355028397157, -0.031008601325809293, -2.0744261217334135]
  time_from_start: 2.0
- positions: [0.06335930908588873, -0.7354151774072313, -2.939624246421942, 1.8341256735249563,
    -1.1201355028397157, -0.031008601325809293, -2.0744261217334135]
  time_from_start: 3.0

GUI启动

最后可以用使用GUI来使用动作

rosrun actionlib axclient.py /play_motion

在这里插入图片描述
特别注意,skip_planning一般都是false,因为这是保护手段,如果认为手臂运动的过程中绝对安全,可以改成true。

注意

当web的命令失效的时候,可以利用这个命令来让机器人复位,我感觉是可以的。

命令启动

c++文件启动

rosrun play_motion run_motion wave

当然python也行

rosrun play_motion run_motion_python_node.py home

我认为这一章蛮重要的,谢谢请指正。

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐