turtlebot的程序默认搭载xtion或kinect深度摄像头。现在我们把它修改为激光雷达。市面上可选的激光雷达有:Hokuyo、Sick和Rplidar 一代。我们以Rplidar为例进行讲解。
创建turtlebot工作空间
安装依赖包
sudo apt-get install ros-indigo-joy
sudo apt-get install ros-indigo-turtlebot-msgs
sudo apt-get install ros-indigo-turtlebot
sudo apt-get install ros-indigo-yocs-velocity-smoother
sudo apt-get install ros-indigo-turtlebot-rviz-launchers
下载源码包
mkdir -p ~/turtlebot_ws/src
cd ~/turtlebot_ws/src
## 激光雷达rplidar 一代驱动
git clone https://github.com/robopeak/rplidar_ros.git
cd rplidar_ros
git checkout 1.0.1
## turtlebot建图依赖包
git clone https://github.com/turtlebot/turtlebot_apps
git clone https://github.com/ros-perception/slam_gmapping
git clone https://github.com/ros-perception/openslam_gmapping
git clone https://github.com/ros-planning/navigation.git
编译
cd ~/turtlebot_ws
catkin_make
添加环境变量
在~/.bashrc最后添加一行:
source /home/harney/turtlebot_ws/devel/setup.bash
然后刷新配置
source ~/.bashrc
串口访问全限
创建turtlebot的串口别名
新建/etc/udev/rules.d/57-kobuki.rules,内容如下:
# On precise, for some reason, USER and GROUP are getting ignored.
# So setting mode = 0666 for now.
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ATTRS{serial}=="kobuki*", MODE:="0666", GROUP:="dialout", SYMLINK+="kobuki"
创建rplidar的串口别名
新建 /etc/udev/rules.d/rplidar.rules文件,内容如下:
KERNEL=="ttyUSB*", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", MODE:="0666", GROUP:="dialout", SYMLINK+="rplidar"
增加对串口的默认访问权限
sudo usermod -a -G dialout 用户名
配置生效
使udev配置生效
sudo service udev reload
sudo service udev restart
使串口的默认访问权限生效,需要重启机器
修改文件
修改~/turtlebot_ws/src/turtlebot_apps/turtlebot_navigation/launch/gmapping_demo.launch,内容如下:
<launch>
<include file="$(find turtlebot_bringup)/launch/minimal.launch">
</include>
<node name="rplidarNode" pkg&#