本博文是本人仿真ORB-SLAM2的学习笔记,仅供本人学习记录用
Simulation for ORB-SLAM
目录
仿真环境搭建
首先搭建的ROS-Academy-for-Beginners的gazebo仿真环境
一个不错的ROS仿真环境包:https://github.com/DroidAITech/ROS-Academy-for-Beginners
在该软件包中,包含了以下功能包:
软件包 | 内容 |
---|---|
robot_sim_demo | 机器人仿真程序,大部分示例会用到这个软件包 |
topic_demo | topic通信,自定义msg,包括C++和python两个版本实现 |
service_demo | service通信,自定义srv,分别以C++和python两种语言实现 |
action_demo | action通信,自定义action,C++和python两种语言实现 |
param_demo | param操作,分别以C++和python两种语言实现 |
msgs_demo | 演示msg、srv、action文件的格式规范 |
tf_demo | tf相关API操作演示,tf示例包括C++和python两个版本 |
name_demo | 演示全局命名空间和局部命名空间下参数的提取 |
tf_follower | 制作mybot机器人 实现mybot跟随xbot的功能 |
urdf_demo | 创建机器人urdf模型,在RViz中显示 |
navigation_sim_demo | 导航演示工具包,包括AMCL, Odometry Navigation等演示 |
slam_sim_demo | 同步定位与建图演示,包括Gmapping, Karto, Hector等SLAM演示 |
robot_orbslam2_demo | ORB_SLAM2的演示 |
ros_academy_for_beginners | Metapacakge示例,依赖了本仓库所有的pacakge |
cd ~/catkin_ws/src
git clone https://github.com/DroidAITech/ROS-Academy-for-Beginners.git
然后cm一下,发现不行,需要安装依赖
rosdep install --from-paths src --ignore-src --rosdistro=melodic -y
然后再cm一下就ok了~
然后下载ORB-SLAM2源码包
$ cd ~/catkin_ws/src
$ git clone https://github.com/raulmur/ORB_SLAM2.git
然后编译ORB_SLAM2功能包
#修改环境变量,在本窗口临时生效
$ export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:~/catkin_ws/src/ORB_SLAM2/Examples/ROS
$ cd ORB_SLAM2
$ chmod +x build.sh
$ ./build.sh
$ chmod +x build_ros.sh
$ ./build_ros.sh
$ cd
$ gedit .bashrc
#在文件末尾加上:(始终生效)
$ export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:~/catkin_ws/src/ORB_SLAM2/Examples/ROS
查看opencv版本
ORB-SLAM2成功:
./build_ros.sh
编译成功了~
查看gazebo版本的方法:
升级的方法:
$ 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
查看没有安装的包
apt search ros-melodic
运行ORB-SLAM2的仿真
roslaunch robot_sim_demo robot_spawn.launch
roslaunch orbslam2_demo ros_orbslam2.launch
rosrun robot_sim_demo robot_keyboard_teleop.py
最终构建的是一个三维点云形态的地图,效果如下
运行数据库
下载数据集:https://vision.in.tum.de/data/datasets/rgbd-dataset/download#freiburg1_desk
参考资料
ORB-SLAM2的源代码:https://github.com/raulmur/ORB_SLAM2
https://blog.csdn.net/li528405176/article/details/81164637
https://blog.csdn.net/baidu_36211769/article/details/103374441