如何利用激光雷达构建地图
本教程是基于ubuntu系统下的操作教程
首先我们需要安装ROS了,这里选择较稳定的kinetic版本。
先安装各种依赖:
sudo apt-get install -y python-rosinstall python-rosinstall-generator python-wstool build-essential
然后采用ustc的镜像,以下命令较长,中间是没有换行的,注意完整拷贝。
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'
安装keys:
sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
之后升级
sudo apt-get update
接着安装全部的包,省的以后麻烦:
sudo apt-get install -y ros-kinetic-desktop-full
上面的安装过程较长,耐心等待,完成后执行初始化rosdep:
sudo rosdep init rosdep update
ROS环境搭建:
echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc source ~/.bashrc
这样ROS包算是装好了,但是还需要建立ROS工作空间。
ROS工作空间建立 新建文件夹,比如叫catkin_ws,专门给ros项目用,src下放源文件
mkdir -p ~/catkin_ws/src
虽然src文件夹目前是空的,但是用ros专门的编译工具catkin_make也是可以编译的。 编译要到catkin_ws目录下。
cd ~/catkin_ws/
catkin_make
等待catkin_make结束。此时工作空间建立了,但是系统还不知道我们的目录是在这里。
source devel/setup.bash
为了以后不要每次都输入上面这个source命令,把该命令写入.bashrc中,这样每次启动terminal就会自动source啦。
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
查看下ROS_PACKAGE_PATH环境变量,看你的工作空间是否正确包含进去了
echo $ROS_PACKAGE_PATH
第2步,准备RPLIDAR的ROS驱动包 先把RPLIDAR的ROS包放在正确的目录下,一般放到src文件夹下
cd ~/catkin_ws/src
将代码git下来
git clone https://github.com/Slamtec/rplidar_ros.git
然后回到catkin_ws目录编译
cd .. catkin_make
编译完成后,将会生成对应的rplidar的ros node,这样驱动就算到位了。
第3步,安装雷达 拿到雷达后,至少会包括一个雷达和一个转接板,A2套装里自带USB线的。
A3跟A2的附件基本是一样的。A1套装是没有USB线的,需要自备。
自备的话,记住USB线接口是Micro-B的,这个样子:
把雷达和转接板接起来,转接板和USB线接起来,先不要将USB口插到电脑上。
注意,A3雷达需要将转接板上的小开关拨到256000一档,如图
第4步,运行 雷达的接口在系统里会被当成一个串口,在Linux下显示为ttyUSBxx的一个设备,在电脑接上雷达之前,先看下系统里的情况。
ls -l /dev |grep ttyUSB
如果你的系统很干净,也没接别的设备,很可能输完如上命令后,什么也没显示。 如果显示了一些ttyUSB设备,记住他们。
然后接上雷达,如果是虚拟机,记得将雷达的USB接口映射到虚拟机那边去。 然后再看ttyUSB设备:
ls -l /dev |grep ttyUSB
雷达连接正常的话会显示新的设备。例如ttyUSB0。
记住这个设备号。如果你的设备号不是ttyUSB0的话,请打开Home目录下的,catkin_ws/src/rplidar_ros/launch文件夹,将rplidar.launch打开(A3雷达应打开rplidar_a3.launch文件),找到"<param name=“serial_port” …>"字样一行,将默认的ttyUSB0改为你的设备号
后面我们都假定设备号是ttyUSB0。你需要修改指令为你对应的设备号。
系统默认这个串口是只读的,但是驱动要给雷达发指令,所以需要增加写权限:
sudo chmod 666 /dev/ttyUSB0
如果是A1和A2雷达,直接运行:
roslaunch rplidar_ros view_rplidar.launch
A3的话直接运行:
roslaunch rplidar_ros view_rplidar_a3.launch
正常的话就能看到雷达扫描数据显示在rviz界面当中了:
可以像通常操作地图一样去操作雷达扫描的那个图,可以放大缩小,移动,调整3D视角等等。
要停止运行的话,在teminal里ctr+c即可了。