5-0.前置作業
首先,請先看完這個教程:turtlebot_gazebo[1],安裝完Gazebo的相關套件,其中,他的教程目前只有indigo版本的,所以安裝不同版本的人要自行修改一下安裝的指令喔,例如:
$ sudo apt-get install ros-indigo-turtlebot-gazebo
要改成下面這行,如果你也是安裝kinetic版的話$ sudo apt-get install ros-kinetic-turtlebot-gazebo
另外,值得注意的是,當使用指令:$ roslaunch turtlebot_gazebo turtlebot_empty_world.launch
可能會提示錯誤訊息,請改用以下指令$ roslaunch turtlebot_gazebo turtlebot_world.launch
跑出有著幾個環境物件和一台小機器人的地圖,之後按照:Explore the Gazebo world[2]中的步驟跑出一個能操作小機器人的程式,並去玩玩看吧~喔對了,也可以去跑跑看Explore the Gazebo world安裝rviz與後面mapping的導航程式喔~不過這篇並不會用到喔~但是可以讓大家更了解它的運作方式,是說它內建的程式有個小BUG,在導航時會讓robot轉得太多,而robot就會笨笨的再轉個一圈,極為浪費時間。
我解決的方法是將robot轉動的速度(max_rot_vel&min_rot_vel)調小,該文件的位置在:/opt/ros/kinetic/share/turtlebot_navigation/param/dwa_local_planner_params.yaml(我找超久的QQ),雖然它的轉的速度真的變得有夠慢,不過這個問題也算是解決了,有興趣的人可以去試看看有沒有更好的辦法喔~記得告訴我,霸脫,感恩的心!
5.Let's碰碰車
5-1.撞到了嗎?
各位還記得我們在ROS學習紀錄-4:node&topic學到的topic概念嗎?現在將告訴你們如何付諸實用,開啟終端機輸入
$ rostopic list
出現錯誤提示 |
$ rostopic list
你可以各式各樣的topic列表topic list |
BUMP! |
$ rostopic info /mobile_base/events/bumper
讓它顯示info,如下圖。bumper的info |
5-2.動起來吧!羅伯特!
如果各位前置作業有完全跑完的話,裡面有個能操作小robot的程式[1](我不知道我的電腦裡為啥沒有QQ),大家一起來解讀這個重要的程式吧~也要參考:11.Writing a Simple Publisher and Subscriber (C++)[2]中的talker.cpp喔,就先讓它能直線跑就好,如下圖。
直線跑~~~ |
5-3.Package it!
現在可能還看不到成果,畢竟只有C++程式碼而已,接下來我們來建一個屬於它的package吧!
還記得我在ROS學習紀錄-3:ROS的package給大家的指令嗎?是時候用到了!就照著上面的步驟建立吧~記得喔!要改成你現在要用的名稱喔,像我就是叫它BumpBump.cpp,很有品味對吧?哈哈
之後執行看看,確保你已經開啟前置作業中提到的範例地圖(有機器人的喔),在新的終端機輸入
$ rosrun bumpbumptest BumpBump
若撞到東西,會有提示訊息還有robot會自動後退 |
5-4.What's next?
下篇會和大家一起學習在ROS和Gazebo上運用Opencv,會用到這篇最後寫出來的成果,請各位務必練習+實作出這篇喔~
如有問題可以留言大家一起討論,留言請勿出現不雅言語與無端謾罵喔~
If u have any question,just leave comments to me.I will answer u as soon as possible,but don't be mean to me.Thanks!
沒有留言:
張貼留言