From 759415dc0e005cd230b5f63b06f7e8cc5da505dc Mon Sep 17 00:00:00 2001 From: XinfangZhang Date: Sat, 29 Jul 2023 17:09:01 +0800 Subject: [PATCH] Add description about offline running based on rosbag. --- Blimp-Autopilot-Ascend/README.md | 34 ++++++++++++++++++++++ Blimp-Autopilot-Ascend/shfiles/vins_run.sh | 2 +- 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/Blimp-Autopilot-Ascend/README.md b/Blimp-Autopilot-Ascend/README.md index 6d4e994..64537f9 100644 --- a/Blimp-Autopilot-Ascend/README.md +++ b/Blimp-Autopilot-Ascend/README.md @@ -97,6 +97,40 @@ sudo make install 1. 所有的`ROS_MASTER_URI`均须与主机的IP保持一致 2. 所有的`ROS_IP`均须与自身的IP保持一致 +# 使用ROSBAG进行离线验证 + +## 准备工作 + +如果手头没有完善的硬件设备,可以使用ROSBAG在本地计算机上运行VINS-Fusion与Ego-planner,验证代码编译是否有问题。 + +如果需要运行VINS-Fusion,需要的rosbag中至少要包括(以双目相机+IMU的配置为例): +- 左目相机的topic,用于vins定位,在我们的例子中其名称为/camera/infra1/image_rect_raw +- 右目相机的topic,用于vins定位,在我们的例子中其名称为/camera/infra1/image_rect_raw +- IMU的topic,用于vins定位,在我们的例子中其名称为/mavros/imu/data或/mavros/imu/data_raw + +而如果需要运行Ego-planner,需要的rosbag中至少包括: +- 里程计的topic,用于轨迹规划,在我们的例子中其名称为/loop_fusion/odometry_rect +- 深度相机的topic,用于建图与避障,在我们的例子中其名称为/camera/depth/image_rect_raw + +如果同时运行Vins-Fusion与Ego-planner,则可以省去里程计的topic,因为VINS-Fusion会输出这个topic +- 左目相机的topic,用于vins定位,在我们的例子中其名称为/camera/infra1/image_rect_raw +- 右目相机的topic,用于vins定位,在我们的例子中其名称为/camera/infra1/image_rect_raw +- IMU的topic,用于vins定位,在我们的例子中其名称为/mavros/imu/data或/mavros/imu/data_raw +- 深度相机的topic,用于建图与避障,在我们的例子中其名称为/camera/depth/image_rect_raw + +运行之前需要确保stereo_imu_config_d435f.yaml中标注的各项topic与rosbag中各个topic能对应上。 + +## 离线运行 + +(首先应保证所有的环境变量已经配置正确,可以在每个新开的终端中source相关的setup.bash,也可以写入~/.bashrc中) + +1. 开启一个终端,启动roscore +2. 开启一个终端,进入blimp-autopilot/shfiles,将vins_run.sh中关于启动realsense的语句注释或删去`roslaunch realsense2_camera rs_camera.launch & sleep 6;`,并在这个终端中运行`./vins_run.sh`,并等待至终端输出“no previous graph” +3. 开启一个终端,播放rosbag:`rosbag play rosbag_demo.bag`,这时将可以看到启动`vins_run.sh`的终端中会有新的输出 +4. 开启新的终端,可以使用`rostopic echo /loop_fusion/odometry_rect`等指令观察里程计输出,也可以`roslaunch odom_visualization vins_vis.launch`来进行可视化的观察 +5. 开启新终端,在确保里程计的topic已经发布之后,在blimp-autopilot/shfiles中执行`./ego_plan.sh`,等待出现绿色文字提示规划成功且不断刷新,也可以在可视化窗口中观察到规划的轨迹 + +由于此rosbag本身不是为规划轨迹而录制的,因此很难规划出合理的轨迹,但可以帮助验证编译是否存在问题。如果有其他rosbag,也可以进一步检验定位与规划是否正确。 # 运行VINS diff --git a/Blimp-Autopilot-Ascend/shfiles/vins_run.sh b/Blimp-Autopilot-Ascend/shfiles/vins_run.sh index 3b2d59a..c78d73e 100755 --- a/Blimp-Autopilot-Ascend/shfiles/vins_run.sh +++ b/Blimp-Autopilot-Ascend/shfiles/vins_run.sh @@ -2,7 +2,7 @@ source ../devel/setup.bash -# roslaunch realsense2_camera rs_camera.launch & sleep 6; +roslaunch realsense2_camera rs_camera.launch & sleep 6; rosrun vins vins_node ../src/vins-fusion/realflight_modules/VINS-Fusion/config/px4/stereo_imu_config_d435f.yaml & sleep 5; rosrun loop_fusion loop_fusion_node ../src/vins-fusion/realflight_modules/VINS-Fusion/config/px4/stereo_imu_config_d435f.yaml & sleep 1;