【无人机自主导航6 SLAM】虚拟仿真环境Gazebo实现ORB-SLAM3及rosbag记录复现

发布于 2021-03-26  577 次阅读


一、依赖配置

在本站文章【无人机自主导航3-ORB-SLAM2】Gazebo仿真环境下的视觉SLAM已说明配置信息,基本相同,不再赘述。

二、标定相机参数(*yaml文件)

2.1 棋盘法标定参见:

地表三维模型的构建与时序模型地表形变监测(五):相机标定试验与研究

2.2 直接获取内置信息

针对Intel Realsense的相机:

rs-enumerate-devices # 相机机内参和外参
rs-enumerate-devices -c # 相机机内参和外参 ,以及IMU的参数

参见:
【无人机自主导航4 视觉传感器】通过ROS发布、订阅话题连接视觉相机

三、订阅Px4仿真环境相机话题

 message_filters::Subscriber<sensor_msgs::Image> left_sub(nh, "/iris_0/stereo_camera/left/image_raw", 1);
 message_filters::Subscriber<sensor_msgs::Image> right_sub(nh, "/iris_0/stereo_camera/right/image_raw", 1);

如果不知道仿真环境下的相机发布话题名,可以先打开Gazebo仿真,另开终端执行执行rostopic list即可。

编译:

cd ~/catkin_ws/src/ORB-SLAM3

./build_ros.sh

cd ../../
catkin_make
source devel/setup.bash

四、启动仿真模型

4.1 启动PX4仿真,以indoor1.launch为例,其余场景同理:

cd PX4_Firmware
roslaunch px4 indoor3.launch

此步骤按照自己的Px4安装环境来即可。

4.2 打开新terminal,启动ORBSLAM3:

cd ~//catkin_ws/src/ORB_SLAM3
# 双目相机
rosrun ORB_SLAM3 Stereo /home/ganahe/catkin_ws/src/ORB_SLAM3/Vocabulary/ORBvoc.txt /home/ganahe/catkin_ws/src/ORB_SLAM3/Examples/Stereo/px4_sitl.yaml true

视觉定位信息就通过mavros发到PX4,可以在PX4仿真终端看到相关信息。

file

4.3 打开新的终端,建立键盘与Px4的通信:

cd ~/XTDrone/communication
python multirotor_communication.py iris 0

4.4 建立通信后,启动键盘控制无人机飞行查看效果:

cd ~/XTDrone/control/keyboard
python multirotor_keyboard_control.py iris 1 vel

五、rosbag记录

rosbag record -a -x "(.*)/compressed(.*)"

如果不需要继续采集记录,直接在rosbag执行的终端执行Ctrl + C即可在当前执行命令的目录保存执行的信息。

六、rosbag数据复现

需要三个终端,分别对应:

6.1 打开master node

roscore

6.2 打开ORB-SLAM3的Pangolin等视觉SLAM可视化界面

rosrun ORB_SLAM3 Stereo /home/ganahe/catkin_ws/src/ORB_SLAM3/Vocabulary/ORBvoc.txt /home/ganahe/catkin_ws/src/ORB_SLAM3/Examples/Stereo/px4_sitl.yaml true

6.3 打开master node

rosbag play ${保存的rosbag名}.bag

file

本站二维码:

file