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
我認爲這一章蠻重要的,謝謝請指正。