iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 18
0
Software Development

ROS進階學習筆記系列 第 18

Day 18 - ROS tutlesim

  • 分享至 

  • xImage
  •  

那個...今天本來要趁著中秋連假好好寫小車專案的教學的,但是出現了一些技術上的問題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

接下來就會出現小烏龜模擬的視窗囉!!
https://ithelp.ithome.com.tw/upload/images/20201002/20112348DBMw66GktE.png

這時候可以先試著下一個tutlesim寫好的程式,draw_square,顧名思義就是讓小烏龜畫出方形:

$ rosrun tutlesim draw_square

https://ithelp.ithome.com.tw/upload/images/20201002/20112348dmiGHNhlmc.png

開啟以後打開rqt_graph可以看到node之間的關聯:
https://ithelp.ithome.com.tw/upload/images/20201002/201123485c1XoZu6FZ.png
/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

所以其實只要計算到達位置所需的速度和角速度,就可以操控小烏龜囉!

Reference

https://github.com/ros/ros_tutorials/blob/noetic-devel/turtlesim/tutorials/draw_square.cpp


上一篇
Day 17 - ROS cross compilation
下一篇
Day 19 - ROS tutlesim (2)
系列文
ROS進階學習筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言