寫在前面:本文為原創(chuàng)数冬,如需轉(zhuǎn)載請注明出處全释。歡迎大家留言共同探討,有誤的地方也希望指出。另如果有好的SLAM蚂子、ROS等相關交流群也希望可以留言給我,在此先謝過了蓬蝶。
0 簡介
Turtlebot是一種室內(nèi)移動機器人本慕,搭載激光傳感器,使機器有精確的距離感知能力膘婶。通過搭建仿真環(huán)境缺前,可以在沒有硬件支持的情況下進行仿真和編程,并熟悉ros系統(tǒng)悬襟。環(huán)境使Ubuntu16.04衅码,安裝的是對應的Ros Kinetic。很多網(wǎng)上的教程Turtlebot針對的都是indigo脊岳,如使用Kinetic需要做很多修改肆良,現(xiàn)記錄turtlebot3仿真搭建教程,轉(zhuǎn)載時請標注來源逸绎。
本教程默認Ubuntu16.04和Ros Kinetic已經(jīng)安裝完成惹恃。
1 安裝
TurtleBot3 Simulation 依賴 turtlebot3,所以先安裝turtlebot3棺牧。
1.1 安裝turtlebot3
(部分參考通過Gazebo仿真學TurtleBot3(二)——環(huán)境搭建)
安裝turtlebot3使用下載源碼進行catkin_make的方式進行巫糙,其中包括兩個包:
- turtlebot3_msgs
- turtlebot3
代碼如下:
$ cd ~/catkin_ws/src
$ git clone https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git
$ git clone https://github.com/ROBOTIS-GIT/turtlebot3.git
$ cd ..
$ rosdep install --from-paths src -i -y
$ catkin_make
進入catkin_ws/src文件夾下,git兩個包颊乘。 然后使用rosdep進行安裝依賴参淹。最后進行catkin_make醉锄。
!浙值!在catkin_make時可能出現(xiàn)錯誤:
參考ROS(hydro)下安裝turtlebot出現(xiàn)的錯誤與解決辦法,針對錯誤情況“pyrcc5: not found”,在終端輸入pyrcc5恳不,按照指示進行安裝后,重新make开呐,故障消除烟勋。!筐付!
Make后卵惦,請source一下bash文件
source ./devel/setup.bash
至此,安裝turtlebot3步驟完成
1.2 安裝TurtleBot3 Simulation
cd ~/catkin_ws/src/
git clone https://github.com/ROBOTIS-GIT/turtlebot3_simulations.git
cd ~/catkin_ws && catkin_make
make完成后記得source瓦戚。
2 啟動Gazebo仿真
mkdir -p ~/.gazebo/models/
cp -r ~/catkin_ws/src/turtlebot3_simulations/turtlebot3_gazebo/models/turtlebot3_XXX ~/.gazebo/models/
首先要將模型文件拷貝到gazebo中沮尿,上述代碼的XXX請?zhí)钊胱约阂抡娴哪P兔Q:
burger||waffle
接著,設置機器人的型號參數(shù):
export TURTLEBOT3_MODEL=burger
啟動的環(huán)境可以有幾種不同的選擇较解。
2.1 啟動空的世界地圖
roslaunch turtlebot3_gazebo turtlebot3_empty_world.launch
2.2啟動復雜地圖:
roslaunch turtlebot3_gazebo turtlebot3_world.launch
效果如下:
2.3 啟動家庭環(huán)境地圖:
roslaunch turtlebot3_gazebo turtlebot3_house.launch
效果如下:
通過鍵盤控制turtlebot:
roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
在打開的Terminal中通過w/a/d/x控制方向畜疾,s來停止移動。
如果使用控制程序:
export TURTLEBOT3_MODEL=burger
roslaunch turtlebot3_gazebo turtlebot3_simulation.launch
會使turtlebot開始根據(jù)激光雷達的信號開始自主規(guī)劃避障印衔。
同時啡捶,也可以開啟可視化rivz:
export TURTLEBOT3_MODEL=waffle
roslaunch turtlebot3_gazebo turtlebot3_gazebo_rviz.launch
效果如下: