那個...今天本來要趁著中秋連假好好寫小車專案的教學的,但是出現了一些技術上的問題XDDD 所以今天只好臨時改成寫小烏龜模擬啦,明天有時間再來好好修車QQQQQQQ
ros tutlesim在官網上是一個很常見的範例,但是筆者前年寫教學的時候直接略過了XDDD所以剛好趁這個時間來補一下,應該也是合理的吧~~~
首先就是先安裝ros tutlesim,這邊需要依據自己的ros 版本進行下載,筆者使用的是快被淘汰的kinetic:
$ sudo apt-get install ros-kinetic-turtlesim
安裝完以後就可以開roscore和tutlesim的turtlesim_node囉:
$ roscore
$ rosrun turtlesim turtlesim_node
接下來就會出現小烏龜模擬的視窗囉!!
這時候可以先試著下一個tutlesim寫好的程式,draw_square,顧名思義就是讓小烏龜畫出方形:
$ rosrun tutlesim draw_square
開啟以後打開rqt_graph可以看到node之間的關聯:
/draw_square會發送/tutle1/cmd_vel給/tutlesim,/tutlesim收到以後會回傳新的pose回去,大致上是這樣的操作,那麼我們就來看一下發送一個cmd_vel需要包含什麼資訊:
$ rostopic info /turtle1/cmd_vel
Type: geometry_msgs/Twist
$ rosmsg info geometry_msgs/Twist
geometry_msgs/Vector3 linear
float64 x
float64 y
float64 z
geometry_msgs/Vector3 angular
float64 x
float64 y
float64 z
所以其實只要計算到達位置所需的速度和角速度,就可以操控小烏龜囉!
https://github.com/ros/ros_tutorials/blob/noetic-devel/turtlesim/tutorials/draw_square.cpp