准备工作

  • 因为最近想抽空学一下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加速,步骤如下:
  1. 进入Github链接
  2. 右键下载Zip复制链接
  3. 复制进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_cameralaunch 文件夹下的 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即可