ros学习笔记之——3dmapmerge(代码片段)

gwpscut gwpscut     2023-02-01     381

关键词:

之前博客《ROS实验笔记之——基于cartographer的多机器人SLAM地图融合》已经实现了2D map merge,也做了大量这方面的demo

two

基于两个turtlebot2的多机器人SLAM地图融合

本博文看看3d map merge方面的资料

首先呢有CCM-SLAM(https://github.com/VIS4ROB-lab/ccm_slam)这个在之前的博客《学习笔记之——激光雷达SLAM(LOAM系列的复现与学习)》也介绍过了,以及做过复现。同时该组开开源了covins(https://github.com/VIS4ROB-lab/covins)。感觉这两者的差异估计不是很大。当然其框架有很多是值得借鉴的。

除了上面的以外,ros本身就有一个开源的包map_merge_3dmap_merge_3d - ROS Wiki

其框架如下图所示

订阅的topic为<robot_namespace>/map (sensor_msgs/PointCloud2)

而发布的则是map (sensor_msgs/PointCloud2)

而offline融合的使用的方法是(比如采用SHOT描述子)融合三个map

rosrun map_merge_3d map_merge_tool --descriptor_type SHOT map1.pcd map2.pcd map3.pcd

Transformations between maps are estimated by feature-matching algorithm and therefore it is required to have sufficient amount of overlapping space between maps to make a high-probability match. If maps don't have enough overlapping space to make a solid match, merger might reject those matches.

参考资料

map_merge_3d - ROS Wiki

ros学习笔记之——msckf(代码片段)

原理精度方面,MSCKF应该与graphoptimazation差不多,但是其对算力要求没有那么高~http://www.xinliang-zhong.vip/msckf_notes/#header-n1369DemoMSCKF_MONOhttps://github.com/daniilidis-group/msckf_mono运行此包时,注 查看详情

ros学习笔记之——evo工具的使用(代码片段)

之前博客《ROS学习笔记之——VICON的使用》用vincon获得了机器人的真实轨迹,并且通过amcl可以获得了机器人的定位结果,下面通过EVO包来表征performance(本文不像网上大部分博客复制粘贴别人的图,连跑都没跑过&#... 查看详情

ros学习笔记之——esvo复现及davis346测试(代码片段)

之前博客《学习笔记之——EventCamera调研》已经介绍过事件相机。本博文对科大开源的ESVO以及本团队购买的DAVIS346进行测试分析。本博文仅供本人学习记录用,不做任何商业用途~目录原理学习代码运行事件相机的driver安... 查看详情

ros学习笔记之——rpg_trajectory_evaluation工具的使用(代码片段)

之前博客《ROS学习笔记之——EVO工具的使用》采用了EVO来衡量误差,本博文试试rpg_trajectory_evaluation首先编译mkdircatkin_wscdcatkin_wsmkdirsrccdsrcgitclonehttps://github.com/uzh-rpg/rpg_trajectory_evaluation.gitgitclonehttps://githu 查看详情

ros实验笔记之——evo(代码片段)

...eventcamera仿真(dvsgazebo)》介绍了DVS的gazebo仿真。博客《ROS学习笔记之——ESVO复现及DAVIS346测试》介绍了ESVO以及事件相 查看详情

ros学习笔记之——vicon的使用(代码片段)

最近要测量定位算法的精度,打算用vicon来提供groundtruth入门vicon其实就相当于一个传感器,在机载电脑上安装VICON-ROS包,这个包就相当于驱动接收来自VICON的数据在机载电脑上编译(需要用cm编译)编译完了之... 查看详情

蓝桥ros机器人之现代c++学习笔记7.3期物(代码片段)

学习了如下程序://futureexample#include<iostream>//std::cout#include<future>//std::async,std::future#include<chrono>//std::chrono::milliseconds//anon-optimizedwayofcheckingforprimenum 查看详情

ros学习笔记之——messagefilters的应用(代码片段)

message_filters用于对齐多种传感信息的时间戳,对齐时间戳有两种方式,一种是时间戳完全对齐:ExactTimePolicy ,另一种是时间戳相近:ApproximateTimePolicymessage_filters作用是:同时订阅并发布话题时间同步... 查看详情

ros实验笔记之——davis346测试(代码片段)

之前博客《ROS学习笔记之——ESVO复现及DAVIS346测试》介绍了dvs驱动的安装。本博文对到手的时间相机进行测试。运行命令roslaunchdvs_rendererdavis_mono.launch但是运行的时候出现报错[WARN][1632472696.858249337]:Cameracalibrationfile/home/kwanwaipang/.r... 查看详情

蓝桥ros机器人之现代c++学习笔记7.4条件变量(代码片段)

学习如下代码://condition_variableexample#include<iostream>//std::cout#include<thread>//std::thread#include<mutex>//std::mutex,std::unique_lock#include<condition_variable>//std 查看详情

ros学习笔记之——基于已有的rosbag重新录制rosbag(代码片段)

首先通过下面命令查看当前rosbag的topicrosbaginforslidar-outdoor-gps.bag此处把tf去掉rosbagrecord/imu/odom_scout/fix/front_scan/heading/rslidar_points/tf_static但在执行前还需要执行rosparamsetuse_sim_timetruerosparamgetuse_sim_time运 查看详情

蓝桥ros机器人之现代c++学习笔记2.4控制流(代码片段)

ifconstexpr#include<iostream>template<typenameT>autoprint_type_info(constT&t)ifconstexpr(std::is_integral<T>::value)returnt+1;elsereturnt+0.001;//atcompilingtime//intprin 查看详情

蓝桥ros机器人之现代c++学习笔记2.3类型推导(代码片段)

auto#include<initializer_list>#include<vector>#include<iostream>classMagicFoopublic:std::vector<int>vec;MagicFoo(std::initializer_list<int>list)for(autoit=list.begin( 查看详情

蓝桥ros机器人之现代c++学习笔记3.3右值引用(代码片段)

右值引用和左值引用#include<iostream>#include<string>voidreference(std::string&str)std::cout<<"lvalue"<<std::endl;voidreference(std::string&&str)std::cout<<" 查看详情

蓝桥ros机器人之现代c++学习笔记7.2互斥量与临界区(代码片段)

看如下三段代码://mutexexample#include<iostream>//std::cout#include<thread>//std::thread#include<mutex>//std::mutexstd::mutexmtx;//mutexforcriticalsectionvoidprint_block(intn,charc)// 查看详情

ros实验笔记之——基于prometheus的无人机运动规划(代码片段)

本博文基于Prometheus项目来学习无人机的运动规划。关于该项目的配置可以参考《ROS实验笔记之——基于Prometheus自主无人机开源项目的学习与仿真》Demo演示基于2D-LiDAR的APF路径规划基于rgbdcamera的APF路径规划基于3D-LiDAR的Astar路径... 查看详情

ros仿真笔记之——基于rrt_exploration的单个机器人自主探索建图(代码片段)

...文已经介绍过机器人exploration以及多机器人SLAMmapmerage《ROS学习笔记之——多机器人探索环境》《ROS仿真笔记之——基于gazebo的多机器人探索环境仿真》《ROS仿真笔记之——多移动机器人SLAM地图融合》《ROS仿真笔记之——移动机... 查看详情

ros实验笔记之——基于kalibr来标定davis346(代码片段)

之前博客《ROS学习笔记之——DAVIS346calibration》已经实现了用dv-gui(Calibration[Tutorial]·DV)来标定eventcamera了。但是缺少了跟IMU的外参标定等等。本博文利用Kalibr库来对其进行标定。Kalibr安装先创建一个工作空间mkdir-p~/kalibr_... 查看详情