ROS智能車自主導航仿真(melodic)

ROS智能車自主導航仿真

一、準備工作

新建一個工作空間:
在這裏插入圖片描述
此時工作空間是空的,但是可以進行編譯:
在這裏插入圖片描述
編譯後的工作空間:
在這裏插入圖片描述

註冊:
在這裏插入圖片描述
下載源碼包:

cd ~/car_ws/src
git clone https://github.com/xmy0916/racecar.git

在這裏插入圖片描述
下載成功:
在這裏插入圖片描述
下載相應的插件:

sudo apt-get install ros-melodic-driver-base
sudo apt-get install ros-melodic-gazebo-ros-control
sudo apt-get install ros-melodic-effort-controllers
sudo apt-get install ros-melodic-joint-state-controller
sudo apt-get install ros-melodic-ackermann-msgs
sudo apt-get install ros-melodic-global-planner
sudo apt-get install ros-melodic-teb-local-planner

在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述
在這裏插入圖片描述

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

二、編譯運行

編譯:
在這裏插入圖片描述
出現了一下錯誤:
在這裏插入圖片描述
是因爲OpenCV的路徑問題,要把OpenCV路徑換成自己的,打開~/car_ws/src/racecar/racecar_gazebo/CMakeLists.txt,這是代碼自帶的路徑:
在這裏插入圖片描述
自己的OpenCV路徑可以使用locate命令查看,然後修改就可以了:
在這裏插入圖片描述在這裏插入圖片描述
再次編譯就編譯成功:
在這裏插入圖片描述

編譯之後就添加環境變量,用這種方法在打開新的終端窗口就可以不用重新註冊工作空間了,如果用上面的創建工作空間的時候那種方法每次打開一個新的終端就需要註冊一次很麻煩:
在這裏插入圖片描述
運行小車模型:

roslaunch racecar_gazebo racecar.launch 

在這裏插入圖片描述
剛打開的時候可能看不見小車,是因爲小車有一個初始位置,偏離了座標原點,需要用鼠標移動一下Gazebo的視角就可以看見了:
在這裏插入圖片描述
如果你想可以修改這個值,就可以改變小車的起始位置,如下:
在這裏插入圖片描述

啓動地圖運行軌道(源代碼包自帶的):

roslaunch racecar_gazebo racecar_runway.launch

在這裏插入圖片描述
如果電腦性能不太好,這裏加載需要一段時間,耐心等待:
在這裏插入圖片描述
加載完成:
在這裏插入圖片描述

啓動Rviz進行建圖:

roslaunch racecar_gazebo slam_gmapping.launch

在這裏插入圖片描述
在左下角窗口還可以看見小車的視角,可以看見障礙物:
在這裏插入圖片描述

控制小車移動:
在這裏插入圖片描述在這裏插入圖片描述
這個過程要有耐心,建圖完成:
在這裏插入圖片描述
保存地圖:

rosrun map_server map_saver -f test_map

默認是保存在主目錄下(home)的,把它複製到我們工作空間的map文件夾下面(~/car_ws/src/racecar/racecar_gazebo/map)。

自主導航:
修改下面文件的內容,改成自己剛剛保存的地圖的路徑:
在這裏插入圖片描述在這裏插入圖片描述

啓動導航和環境地圖:

roslaunch racecar_gazebo racecar_runway_navigation.launch

在這裏插入圖片描述
在這裏插入圖片描述啓動rviz:

roslaunch racecar_gazebo racecar_rviz.launch

在這裏插入圖片描述
在這裏插入圖片描述

用2D Nav Goal設計小車運動軌跡:
在這裏插入圖片描述
啓動導航腳本:

rosrun racecar_gazebo path_pursuit.py

在這裏插入圖片描述
小車開始運動,中間的紅色就是小車走過的軌跡:
在這裏插入圖片描述

三、搭建新模型並進行自主導航

由於我的虛擬機已經不堪重負,很卡,前面的部分都是花了很久才完成的,這一部分就只講一些關鍵步驟了。

打開gazebo:

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
然後就可以設計自己想要的地圖模型:
在這裏插入圖片描述
設計好之後保存:
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
修改小車起始位置:
在這裏插入圖片描述把圖中座標改成原點:
在這裏插入圖片描述
運行小車模型:
在這裏插入圖片描述在這裏插入圖片描述
拖入剛剛創建的模型:
在這裏插入圖片描述在這裏插入圖片描述

按照自己的喜好加入障礙物:
在這裏插入圖片描述保存:
在這裏插入圖片描述
保存到這個目錄下:
在這裏插入圖片描述在這裏插入圖片描述
新建一個launch文件,紅框部分改爲自己的模型名字:
在這裏插入圖片描述在這裏插入圖片描述
然後運行:
在這裏插入圖片描述
在這裏插入圖片描述
然後後面進行建圖、自主導航的步驟跟前面一樣的,我的電腦太卡了運行不下去了,這裏就不繼續貼圖了。

roslaunch racecar_gazebo slam_gmapping.launch

控制小車跑完整個地圖。然後保存地圖:

rosrun map_server map_saver -f test_map

後面的自主導航跟着前面的做就可以了。

四、無人車自動避障

下載功能包:

sudo apt-get install ros-melodic-navigation

在這裏插入圖片描述
下載源代碼包:
鏈接:https://pan.baidu.com/s/1xMoJ8LBSIga6wRP535bt9Q
提取碼:5ket

下載好後面解壓。
編譯:
在這裏插入圖片描述在這裏插入圖片描述
註冊程序:
在這裏插入圖片描述

運行,一開始顯示權限不夠是因爲沒有把該文件設爲可執行程序,把apm_navigation.sh文件設爲可執行程序文件就可以了:
在這裏插入圖片描述
在這裏插入圖片描述
在Rviz中用2D Nav Goal爲小車設定目標,小車就會開始運動了:
在這裏插入圖片描述再次爲小車設定目標:
在這裏插入圖片描述
在小車運動過程可以在Gazebo裏給它添加障礙物:
在這裏插入圖片描述
然後小車檢測到障礙物之後就會自動更改到達目的地的路線:
在這裏插入圖片描述
在這裏插入圖片描述

在這裏插入圖片描述

最後小車成功越過障礙物:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章