------------恢復內容開始------------
通過自己不斷地摸索,對ros系統有了一定的了解,首先裝系統,這一過程中也遇到了很多問題,但通過不斷地嘗試,經過一天一夜的倒騰,總算是把系統給安裝好了,接下來配置環境,雖然這個過程比較艱辛,總是出現編譯出錯或者沒有功能包依賴等各種問題。但是通過我們的努力,都一點一點的解決了,我會再接再厲,
1.首先運行個小烏龜例程:
打開一個終端:roscore #運行ros環境
打開一個終端:rosrun turtlesim turtlesim_node #運行小烏龜仿真器節點,打開小烏龜運行場景
打開一個終端:rosrun turtlesim turtle_teleop_key #運行鍵盤控制節點,通過方向鍵控制小烏龜的運動
2.通過話題給小烏龜發送消息讓小烏龜定向運動
命令如下
qqtsj ~ rostopic pub /turtle1/cmd_vel geometry_msgs/Twist "linear: x: 3.0 y: 0.0 z: 2.0 angular: x: 0.0 y: 0.0 z: 0.0" publishing and latching message. Press ctrl-C to terminate
可以定向的改變小烏龜的角速度和線速度以及小烏龜的轉動角度,但是這樣只能發送一次消息。
若需以一定的頻率不斷地發送消息數據,則為如下命令
qqtsj ~ rostopic pub -r 10 /turtle1/cmd_vel geometry_msgs/Twist "linear: x: 2.0 y: 0.0 z: 2.0 angular: x: 0.0 y: 0.0 z: 3.0"
其中-r為循環,10為發送給消息的頻率(單位為hz),然后小烏龜就會根據規定的速度和角度定向的運動,這就用到了ROS系統中的話題通信,以便后面研究機器人打下基礎。
查看消息的結構:rosmsg show geometry/Twlist
服務:service
查看服務的列表(服務的內容):rosservice list
qqtsj ~ rosservice list /clear /kill /reset /rosout/get_loggers /rosout/set_logger_level /rostopic_26871_1579011097016/get_loggers /rostopic_26871_1579011097016/set_logger_level /spawn /teleop_turtle/get_loggers /teleop_turtle/set_logger_level /turtle1/set_pen /turtle1/teleport_absolute /turtle1/teleport_relative /turtlesim/get_loggers /turtlesim/set_logger_level
建立一個新的海龜:rosservice call /spawn (Tab鍵兩下)
qqtsj ~ rosservice call /spawn "x: 0.0 y: 0.0 theta: 0.0 name: 'turtle2'" name: "turtle2"
路徑記錄
首先創建一個bag包,存放小烏龜運行的路徑,記錄下小烏龜的行進路線。命令為
qqtsj ~ rosbag record -a -O cmd_record [ INFO] [1579021261.961366553]: Recording to cmd_record.bag. [ INFO] [1579021261.962496904]: Subscribing to /turtle1/color_sensor [ INFO] [1579021261.964809471]: Subscribing to /turtle2/color_sensor [ INFO] [1579021261.966782329]: Subscribing to /rosout [ INFO] [1579021261.968599482]: Subscribing to /turtle2/pose [ INFO] [1579021261.970367259]: Subscribing to /rosout_agg [ INFO] [1579021261.972389384]: Subscribing to /turtle1/cmd_vel [ INFO] [1579021261.975169187]: Subscribing to /turtle1/pose
路徑重現
在bag包中已經記錄了小烏龜的路徑,然后通過調用bag包去實現小烏龜路徑的重現,小烏龜會按照記錄的路徑重新運動,如下
qqtsj ~ rosbag play cmd_record.bag [ INFO] [1579021485.400287473]: Opening cmd_record.bag Waiting 0.2 seconds after advertising topics... done. Hit space to toggle paused, or 's' to step. [RUNNING] Bag Time: 1579021261.977381 Duration: 0.000000 / [RUNNING] Bag Time: 1579021261.978402 Duration: 0.001021 / [RUNNING] Bag Time: 1579021262.078691 Duration: 0.101311 / [RUNNING] Bag Time: 1579021262.177369 Duration: 0.199988 / [RUNNING] Bag Time: 1579021262.185319 Duration: 0.207938 / [RUNNING] Bag Time: 1579021262.201285 Duration: 0.223904 / [RUNNING] Bag Time: 1579021262.217652 Duration: 0.240271 / [RUNNING] Bag Time: 1579021262.233162 Duration: 0.255782 / [RUNNING] Bag Time: 1579021262.249374 Duration: 0.271993 / [RUNNING] Bag Time: 1579021262.266055 Duration: 0.288674 / [RUNNING] Bag Time: 1579021262.281470 Duration: 0.304090 /
通過對小烏龜的控制,定向移動,路徑記錄,路徑重現。對接下來ros機器人的研究有一定的幫助,會加深我們對機器人的理解。