天天看點

Turtlebot + Rplidar A2使用Gmapping建圖與導航Turtlebot + Rplidar A2使用Gmapping建圖與導航1 在電腦上安裝Turtlebot底盤驅動2 安裝雷達驅動程式3 使用Gmapping建圖4. AMCL導航

Turtlebot + Rplidar A2使用Gmapping建圖與導航

轉載:

https://www.jianshu.com/p/4277243c786d

https://www.ncnynl.com/archives/201705/1556.html

參考文獻:

Turtlebot及相關軟體安裝

實作gmapping建圖

實作AMCL自主導航

材料:

1. Turtlebot底盤

2. Rplidar A2雷達

3. ubuntu16.04 + ROS kinect筆記本電腦

1 在電腦上安裝Turtlebot底盤驅動

1.1 安裝Turtlebot底盤驅動

$ sudo apt-get update 

$ sudo apt-get install ros-kinetic-turtlebot

1.2 安裝Turbot

$ mkdir -p ~/turbot_ws/src

$ cd ~/turbot_ws/src

$ git clone https://github.com/ncnynl/turbot

$ cd ..

$ catkin_make

1.3 安裝turtlebot_apps

$ cd ~/turbot_ws/src

$ git clone https://github.com/ncnynl/turtlebot_apps

$ cd ..

$ catkin_make

1.4 測試底盤

安裝完Turtlebot底盤驅動後,來測試一下電腦是否可以驅動底盤

1.4.1 檢查端口:

檢查是否有kobuki端口,打開一個終端:

$ ls /dev/kobuki

如果沒有顯示,則執行:

$ rosrun kobuki_ftdi create_udev_rules

重新拔插底盤的USB序列槽線,在執行上面的檢查語句,則可看到有kobuki端口顯示

1.4.2 底盤啟動測試:

啟動底盤

$ roslaunch turbot_bringup minimal.launch

執行指令後,會聽到一串開機音樂

新終端,執行指令

$ rosrun turbot_tools test_move

成功執行指令後,小車向前緩慢移動,按Ctrl + C 即可中止

2 安裝雷達驅動程式

2.1 安裝雷達驅動

$ cd ~/turbot_ws/src

$ git clone https://github.com/robopeak/rplidar_ros

$ cd ..

$ catkin_make

2.2 設定 USB 口的權限

$ sudo gedit /etc/udev/rules.d/70-ttyusb.rules

在打開的界面中,輸入

KERNEL=="ttyUSB[0-9]*", MODE="0666"

運作如下程式,檢視權限,有兩個 rw 就可以了

ls -l /dev |grep ttyUSB*

2.4 添加環境變量及工作空間,增加雷達别名

$ echo "export TURTLEBOT_LASER_SENSOR=rplidar" >> ~/.bashrc

$ echo "source /home/ubu/turbot_ws/devel/setup.bash" >> ~/.bashrc

$ roscd rplidar_ros 

$ ./scripts/create_udev_rules.sh

2.5 雷達啟動測試

驅動裡提供了三個 launch 檔案,檢驗雷達的話用 rplidar.launch 即可

$ roslaunch rplidar_ros rplidar.launch

可以觀察到雷達開始旋轉掃描,之後可以先關閉

2.6 使用turtlebot程式驅動雷達

$ roslaunch turbot_tools rplidar.launch

$ roslaunch turbot_tools test_rplidar.launch

可以看到在打開的RVIZ界面上有雷達掃描的點雲圖形

3 使用Gmapping建圖

Gmapping建圖

啟動底盤

$ roslaunch turbot_bringup minimal.launch

啟動gmapping,用于建構地圖

$ roslaunch turbot_slam laser_gmapping_demo.launch

啟動rviz,實時檢視建圖情況

$ roslaunch turbot_rviz nav.launch

啟動鍵盤

$ roslaunch turbot_teleop keyboard.launch

将滑鼠聚焦到鍵盤控制界面上,使用鍵盤控制底盤前後運動,完成建圖工作。

儲存地圖

$ rosrun map_server map_saver -f ~/map/rplidar_a2_gmapping

$ ls ~/map

可以檢視到map檔案夾下有兩個檔案,一個是.pgm檔案,另一個是.yaml檔案。可以打開.pgm檔案檢視建成的地圖。

4. AMCL導航

啟動底盤

$ roslaunch turbot_bringup minimal.launch

啟動amcl, 并指定地圖

$ roslaunch turbot_slam laser_amcl_demo.launch map_file:=/home/ubuntu(你的使用者名)/map/rplidar_a2_gmapping.yaml

啟動rviz

$ roslaunch turbot_rviz nav.launch

打開rviz後,界面如下

Turtlebot + Rplidar A2使用Gmapping建圖與導航Turtlebot + Rplidar A2使用Gmapping建圖與導航1 在電腦上安裝Turtlebot底盤驅動2 安裝雷達驅動程式3 使用Gmapping建圖4. AMCL導航

初始化位置,選擇2D Pose Estimate,标注機器人在地圖上的位置和方向,按住滑鼠左鍵拉向某個方向

Turtlebot + Rplidar A2使用Gmapping建圖與導航Turtlebot + Rplidar A2使用Gmapping建圖與導航1 在電腦上安裝Turtlebot底盤驅動2 安裝雷達驅動程式3 使用Gmapping建圖4. AMCL導航

設定目标位置,選擇“2D Nav Goal”, 标注機器人将要到達地圖上的位置和方向,按住滑鼠左鍵拉向某個方向

Turtlebot + Rplidar A2使用Gmapping建圖與導航Turtlebot + Rplidar A2使用Gmapping建圖與導航1 在電腦上安裝Turtlebot底盤驅動2 安裝雷達驅動程式3 使用Gmapping建圖4. AMCL導航

機器人規劃出一條路徑,然後自動走向目标點

Turtlebot + Rplidar A2使用Gmapping建圖與導航Turtlebot + Rplidar A2使用Gmapping建圖與導航1 在電腦上安裝Turtlebot底盤驅動2 安裝雷達驅動程式3 使用Gmapping建圖4. AMCL導航