做自己卖东西的网站,专业做网站方案ppt,网络seo天津,idea做百度网站通过ZED2双目视觉相机进行Vins FusionSLAM定位之后#xff0c;需要获取其中的信息完成无人机的实时感知部分#xff0c;感知需要的是栅格地图话题#xff0c;因为EGO-planner高飞老师就是通过Vins Fusion做感知的部分#xff0c;所以其中可以借鉴一下建图方法。
通过ZED2双…通过ZED2双目视觉相机进行Vins FusionSLAM定位之后需要获取其中的信息完成无人机的实时感知部分感知需要的是栅格地图话题因为EGO-planner高飞老师就是通过Vins Fusion做感知的部分所以其中可以借鉴一下建图方法。
通过ZED2双目视觉相机进行Vins FusionSLAM定位看我的前一篇涉及到双目视觉标定、IMU标定以及感知定位实际测试的文章
无人机避障——感知篇在Ubuntu20.04的Orin nx上基于ZED2实现Vins Fusion-CSDN博客
结果展示 借鉴Ego-Planner中的plan_env代码
发现别人已经改好了EGO中相关建图环境部分的代码
https://github.com/maxibooksiyi/ego_grid_map.git 下载以后进行编译安装
这部分基本操作不赘述。
然后修改话题 这是我已经修改好的就两个话题进行修改就可以。
原来的代码 //depth_sub_.reset(new message_filters::Subscribersensor_msgs::Image(node_, /grid_map/depth, 50));depth_sub_.reset(new message_filters::Subscribersensor_msgs::Image(node_, /camera/aligned_depth_to_color/image_raw, 50));if (mp_.pose_type_ POSE_STAMPED){pose_sub_.reset(new message_filters::Subscribergeometry_msgs::PoseStamped(node_, /grid_map/pose, 25));sync_image_pose_.reset(new message_filters::SynchronizerSyncPolicyImagePose(SyncPolicyImagePose(100), *depth_sub_, *pose_sub_));sync_image_pose_-registerCallback(boost::bind(GridMap::depthPoseCallback, this, _1, _2));}else if (mp_.pose_type_ ODOMETRY){//odom_sub_.reset(new message_filters::Subscribernav_msgs::Odometry(node_, /grid_map/odom, 100));odom_sub_.reset(new message_filters::Subscribernav_msgs::Odometry(node_, /vins_estimator/imu_propagate, 100));sync_image_odom_.reset(new message_filters::SynchronizerSyncPolicyImageOdom(SyncPolicyImageOdom(100), *depth_sub_, *odom_sub_));sync_image_odom_-registerCallback(boost::bind(GridMap::depthOdomCallback, this, _1, _2));}
修改之后的代码
//depth_sub_.reset(new message_filters::Subscribersensor_msgs::Image(node_, /grid_map/depth, 50));depth_sub_.reset(new message_filters::Subscribersensor_msgs::Image(node_, /zed2/zed_node/depth/depth_registered, 50));if (mp_.pose_type_ POSE_STAMPED){pose_sub_.reset(new message_filters::Subscribergeometry_msgs::PoseStamped(node_, /grid_map/pose, 25));sync_image_pose_.reset(new message_filters::SynchronizerSyncPolicyImagePose(SyncPolicyImagePose(100), *depth_sub_, *pose_sub_));sync_image_pose_-registerCallback(boost::bind(GridMap::depthPoseCallback, this, _1, _2));}else if (mp_.pose_type_ ODOMETRY){//odom_sub_.reset(new message_filters::Subscribernav_msgs::Odometry(node_, /grid_map/odom, 100));odom_sub_.reset(new message_filters::Subscribernav_msgs::Odometry(node_, /vins_estimator/imu_propagate, 100));sync_image_odom_.reset(new message_filters::SynchronizerSyncPolicyImageOdom(SyncPolicyImageOdom(100), *depth_sub_, *odom_sub_));sync_image_odom_-registerCallback(boost::bind(GridMap::depthOdomCallback, this, _1, _2));}需要修改话题
双目相机的深度图话题
sensor_msgs::Image(node_, /camera/aligned_depth_to_color/image_raw, 50) 替换成ZED2双目相机的深度图话题
sensor_msgs::Image(node_, /zed2/zed_node/depth/depth_registered, 50)
Vins Fusion的位姿话题
nav_msgs::Odometry(node_, /vins_estimator/imu_propagate, 100)
无需修改都是用Vins Fusion进行获取。
然后在我的前一个博客的bash文件的基础上加上此处建图的一键启动命令
# run.sh文件#!/bin/bash# Start roscore
gnome-terminal -- bash -c roscore
# Start RViz
# gnome-terminal -- bash -c cd vins_ws source devel/setup.bash roslaunch vins vins_rviz.launch# Start VINS-Fusion node
sleep 5
gnome-terminal -- bash -c cd vins_ws source devel/setup.bash rosrun vins vins_node src/VINS-Fusion/config/zed/zed2_stereo_config.yaml#回环检测
sleep 5
gnome-terminal -- bash -c cd vins_ws source devel/setup.bash rosrun loop_fusion loop_fusion_node src/config/zed/zed2_stereo_config.yaml## 实时相机
sleep 5
gnome-terminal -- bash -c cd vins_ws source devel/setup.bash source /home/nvidia/zed_ws/devel/setup.bash roslaunch zed_wrapper zed2.launch## 实时建栅格地图
sleep 5
gnome-terminal -- bash -c cd vins_ws source devel/setup.bash source /home/nvidia/ego_planner_grid/devel/setup.bash roslaunch plan_env grid_map.launch
# Play rosbag
# sleep 5
# gnome-terminal -- bash -c source devel/setup.bash rosbag play /home/nvidia/data_set/MH_01_easy.bag# Keep the terminal open until you manually close it
echo Press Enter to close the terminals
read
最后就实现了建图效果 这里发现好像用的一直都是Orin nx的igpu集成显卡进行计算的之后将进行Vins Fusion GPU的实时建图感知。 以下是查找相关资料的参考内容非常不错的参考
把ego的plan_env模块单独取出订阅位姿和深度图构建自己可用的导航地图 20240315_091408 截取视频 截取合并_哔哩哔哩_bilibili
把ego-planner的plan_env单独取出订阅位姿和深度图构建自己可用的导航地图_ego planner换地图-CSDN博客