1. 程式人生 > >ROS小烏龜turtlesim詳解

ROS小烏龜turtlesim詳解

turtlesim 小烏龜模擬

小烏龜的啟動

在安裝完ROS之後,就可以啟動小烏龜了,開啟一個終端。
1. 首先要開啟ROS服務
roscore
2. 開啟一個新終端,開啟小烏龜
rosrun turtlesim turtlesim_node
3. 開啟一個新終端,通過鍵盤控制小烏龜,這個終端視窗必須置頂才能鍵盤控制
rosrun turtlesim turtle_teleop_key
會出現如下結果,此時就可以通過鍵盤的前後左右來控制小烏龜的平面運動了。
Reading from keyboard
—————————
Use arrow keys to move the turtle.

給小烏龜的運動控制節點發布訊息

首先通過ctrl+C 命令,關閉鍵盤控制終端的節點

  1. 輸入話題列表檢視指令
    rostopic list
    可以看到當前有如下5個節點,其中/turtle1/cmd_vel 是控制小烏龜運動的節點
    /rosout
    /rosout_agg
    /turtle1/cmd_vel
    /turtle1/color_sensor
    /turtle1/pose

  2. 通過rostopic pub命令,給指定的話題釋出訊息
    rostopic pub /turtle1/cmd_vel geometry_msgs/Twist “linear:
    x: 0.0
    y: 0.0
    z: 0.0
    angular:
    x: 0.0
    y: 0.0
    z: 0.0”
    /turtle1/cmd_vel為話題,geometry_msgs/Twist 為資料型別。linear為線速度,angular為角速度,單位是m/s 和 rad/s.
    線速度linear,x是前後,y是左右,z是上下。角速度angular,x是沿X軸逆時針轉動,y是沿y軸逆時針轉動,z是沿Z軸逆時針轉動。
    例如:”linear: x: 1.0 y: 0.0 z: 0.0 angular: x: 0.0 y: 0.0 z: 0.0” 小烏龜沿X軸做直線運動。
    例如:”linear: x: 0.0 y: 0.0 z: 0.0 angular: x: 0.0 y: 0.0 z: 0.0” 小烏龜沿Z軸原地轉動
    例如:”linear: x: 1.0 y: 0.0 z: 0.0 angular: x: 0.0 y: 0.0 z: 1.0” 小烏龜邊向前,邊自傳,速度合成後,軌跡是一個圓。

通過rqt圖形化工具給話題釋出訊息

  1. 開啟rqt工具
    rqt
  2. 在視窗上面的工具欄選擇 plugins>topics>Message Publisher
  3. topic 選擇/turtle1/cmd_vel Type選擇geometry_msgs/Twist Freq 為訊息釋出頻率 單位為HZ,
  4. 點選加號就可以給指定話題釋出訊息了,點選小三角就而已給速度和線速度賦值。勾選上面的方框就開始釋出了。可以看到小烏龜運動起來了。

同時開啟兩個小烏龜

  1. 如何開啟第二個烏龜呢?首先我們列出所有當前的ros service
    rosservice list

    會出現以下內容
    /clear
    /kill
    /reset
    /rosout/get_loggers
    /rosout/set_logger_level
    /spawn
    /turtle1/set_pen
    /turtle1/teleport_absolute
    /turtle1/teleport_relative
    /turtlesim/get_loggers
    /turtlesim/set_logger_level

  2. 用到spawn命令再生一個小烏龜,當出現/spawn 後一直按tab鍵會補全,然後回車,會自動生成一個按數字順序命名的小烏龜
    rosservice call /spawn “x: 0.0
    y: 0.0
    theta: 0.0
    name: ””
    name: “turtle2”(回車後自動生成的名字)