准备工作
- 因为最近想抽空学一下SLAM相关的东西,就打算开个博文记录一下自己的学习过程,同时也希望对有需要的同学能起到一些帮助。
- 说到SLAM,即同时定位与建图,目前有很多种实现方法,主流的便是激光SLAM(配合激光雷达)和视觉SLAM(配合视觉传感器)。其中视觉SLAM又包括单目SLAM、双目SLAM和RGBD SLAM等,每种类型下面又有很多实现框架,暂时就不一一阐述了,有空的话再去总结一下发出来。
- 激光SLAM的话必然需要一个激光雷达,目前市面上有很多便宜的适合学生和初学者的雷达可供选择,如思岚的A1等,某宝价格500元左右,还是可以接受的。
- 视觉SLAM的话首先需要有一个视觉传感器,也就是常说的摄像头,我最近买了个乐视的RGB-D深度相机,因为大家众所周知的原因,这个相机可以说是目前性价比最高的RGB-D相机了,某宝价格100多元,虽然便宜,但是这小东西因为就是奥比中光代工的,实际几乎奥比中光的 Astra Pro 一模一样,可以说是学生党福利了。
好了,需要的材料设备已经介绍完了,下面开始正式记录自己的学习过程~
- 首先把参考资料写在最最最前面,感兴趣的小伙伴还可以移步查看官方文文档: Github:https://github.com/orbbec/ros_astra_camera 官方的SDK:https://orbbec3d.com/develop/ ROS wiki:http://wiki.ros.org/Sensors/OrbbecAstra
1. 正常安装
1.1 安装依赖
sudo apt install ros-$ROS_DISTRO-rgbd-launch ros-$ROS_DISTRO-libuvc ros-$ROS_DISTRO-libuvc-camera ros-$ROS_DISTRO-libuvc-ros
1.2 建立工作空间
和正常开展ROS项目一样,建立工作空间(我这里起名叫rgbd_ws
根据需求自己更改工作空间的名称)然后 catkin_make
一下
mkdir -p ~/rgbd_ws/src
cd ~/rgbd_ws/
catkin_make
source devel/setup.bash
1.3 克隆代码
之后克隆Github中的代码,如果速度很慢的话,可以异步这个网站Github加速,步骤如下:
- 进入Github链接
- 右键下载Zip复制链接
- 复制进Github加速下载即可
- 右键 Download Zip 复制链接
- 粘贴在加速网站
没有网速问题的同学直接shell指令即可:
cd ~/rgbd_ws/src
git clone https://github.com/orbbec/ros_astra_camera
1.4 添加相机设备rule
roscd astra_camera
sudo sh ./scripts/create_udev_rules
1.5 编译源码包
cd ~/rgbd_ws
catkin_make --pkg astra_camera
1.6 修改astrapro.launch
因为乐视这款是奥比中光的贴牌产品,此时还不能直接使用,需要对launch
文件进行一些修改才可以使用。 首先将相机插在USB接口上,然后在终端查看相机接口:
lsusb
其中:
Bus 001 Device 019: ID 2bc5:0502 # RGB模块
Bus 001 Device 018: ID 2bc5:0403 # 深度模块
修改 ros_astra_camera
中 launch
文件夹下的 Astrapro.launch
cd ~/cd rgbd_ws/src/ros_astra_camera/launch/
gedit astrapro.launch
将 0x0501 改为上面的 0x0502
1.7 启动
先 source 一下,此时应该就可以正常启动了
source ~/rgbd_ws/devel/setup.bash
roslaunch astra_camera astrapro.launch
此时还暂时不能看到图像,需要通过订阅话题查看图像
1.8 显示深度图和RGB图
打开新终端,启动rviz
rosrun rviz rviz
Rviz中点击左下角Add
依次进行以下操作:Add -> By topic -> 选择对应的image即可