一、介绍
(本文转载于我的csdn博文:https://blog.csdn.net/qinqinxiansheng/article/details/115266992)
开发环境:本博文实现了ORB-SLAM在gazebo环境下的仿真,环境为:ubuntu 16.04 + ROS + gazebo 7.0 + ORB-slam2
预备知识:ROS,gazebo,ORB-SLAM的相关知识
参考链接:运行效果:https://www.bilibili.com/video/BV1ZK4y1T7jR?share_source=copy_web
mooc教学视频(含丰富的gazebo仿真环境):https://www.icourse163.org/course/ISCAS-1002580008
ros入门21讲:(讲解更细腻):https://www.bilibili.com/video/BV1zt411G7Vn?share_source=copy_web
ORBSLAM2下载:https://github.com/raulmur/ORB_SLAM2
二、仿真环境搭建
1.安装ros和gazebo,网上有很多教程。
2.创建工作空间tutorial_ws:https://blog.csdn.net/qinqinxiansheng/article/details/106768491
3.进入src文件目录下,下载mooc教学视频中的仿真环境,https://github.com/DroidAITech/ROS-Academy-for-Beginners
cd tutorial_ws/src #进入src路径,克隆教学软件包
git clone https://github.com/DroidAITech/ROS-Academy-for-Beginners.git
4.安装依赖项:
cd ~/tutorial_ws
rosdep install --from-paths src --ignore-src --rosdistro=kinetic -y
5.检查gazebo版本,要在7.0以上
gazebo -v
如果Gazebo版本低于7.0,则需要进行升级
sudo sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-stable.list'
wget http://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -
sudo apt-get update
sudo apt-get install gazebo7
6.编译工作空间
cd ~/tutorial_ws
catkin_make
source ~/tutorial_ws/devel/setup.bash #刷新环境 ,如果在~/.bashrc文件的末尾追加了source ~/tutorial_ws/devel/setup.bash,则此行可以省略
三、ORBSLAM2安装与配置
1.网上有很多安装教程(注意,我们需要用ros的接口调用orbslam)
https://blog.csdn.net/learning_tortosie/article/details/79881165
2.修改参数配置
此仿真环境下,发布的相机图像的话题为/camera/depth/image_raw和/camera/rgb/image_raw,所以我们slam接受话题的数据时名称要一致。打开/src/ORB_SLAM2_ros/Examples/ROS/ORB_SLAM2/src/ros_rgbd.cc进行修改
另外我们还要有仿真环境中kinetic相机参数文件,它在ROS-Academy-for-Beginners/orbslam2_demo/param/Zdzn.yaml
3.编译slam。编译的位置要注意:src/ORB_SLAM2_ros/Examples/ROS/ORB_SLAM2/build。在此路径下打开终端,用 cmake . . make 的命令进行编译
4.运行slam。后两个参数为字典文件何相机参数文件的位置,要根据自己的路径进行设置(这里我把Zdzn.yaml文件与orbslam其他相机参数文件放在一起了)
rosrun ORB_SLAM2 RGBD /home/qin/catkin_ws/src/ORB_SLAM2_ros/Vocabulary/ORBvoc.txt /home/qin/catkin_ws/src/ORB_SLAM2_ros/Examples/RGB-D/Zdzn.yaml
四、运行仿真环境:
1.打开仿真环境,第一次可能有些慢,甚至卡出来。
打开终端,输入:
roslaunch robot_sim_demo robot_spawn.launch
2.运行键盘控制节点。打开另一个终端,输入
rosrun robot_sim_demo robot_keyboard_teleop.py
将光标定位到此终端上,便可以通过按键控制机器人运动。
3.打开新的终端,用rostopic list命令查看机器人发布的所有的话题,其中/camera/depth/image_raw和/camera/rgb/image_raw即为深度和rab的图像话题。
4.打开新的终端,通过命令即可查询机器人所采集到的图像:
rosrun image_view image_view image:=/camera/depth/image_raw
rosrun image_view image_view image:=/camera/rgb/image_raw
5.运行orbslam2,并控制机器人移动,即可进行定位与建图工作。视频链接https://www.bilibili.com/video/BV1ZK4y1T7jR?share_source=copy_web
评论(0)
您还未登录,请登录后发表或查看评论