Ⅰ rgbd传感器是什么
RGBD SLAM属于视觉SLAM中的一种,使用的RGBD传感器包括zed(双目立体,适用于室外)、Kinect(结构光,仅限室内)、Kinect v2(TOF,主要用于室内)等。
功能包
现在有比较多的现成的功能包可以进行学习和二次开发:
gmapping:
实时构建室内地图,在构建小场景地图所需的计算量较小且精度较高。相比Hector SLAM对激光雷达频率要求低、鲁棒性高(Hector 在机器人快速转向时很容易发生错误匹配,建出的地图发生错位,原因主要是优化算法容易陷入局部最小值)。
而相比Cartographer在构建小场景地图时,Gmapping不需要太多的粒子并且没有回环检测因此计算量小于Cartographer而精度并没有差太多。但是,不适合构建大场景地图,并且没有回环检测,因此在回环闭合时可能会造成地图错位,虽然增加粒子数目可以使地图闭合但是以增加计算量和内存为代价,不能像Cartographer那样构建大的地图。
hector_slam:
设计初衷Hector主要用于救灾等地面不平坦的情况,因此无法使用里程计,特点是用IMU解决了激光的运动畸变问题。虽然系统不提供明确的循环关闭能力,但对于许多真实世界场景来说它足够准确。
cartographer:
累计误差较前两种算法低,能天然的输出协方差矩阵,后端优化的输入项。成本较低的雷达也能跑出不错的效果。是Google开源的一个ROS系统支持的2D和3D SLAM(simultaneous localization and mapping)库。
Ⅱ 如何运行cartographer-master
0.安装所有依赖项
sudoapt-getinstall-ygoogle-mocklibboost-all-devlibeigen3-devlibgflags-devlibgoogle-glog-devliblua5.2-devlibprotobuf-devlibsuitesparse-devlibwebp-devninja-buildprotobuf-compilerPython-sphinxros-indigo-tf2-eigenlibatlas-base-devlibsuitesparse-devliblapack-dev
1.首先安装ceressolver,选择的版本是1.11,路径随意
Gitclonehttps://github.com/hitcm/ceres-solver-1.11.0.git
cdceres-solver-1.11.0/build
cmake..
make–j
sudomakeinstall
2.然后安装cartographer,路径随意
gitclonehttps://github.com/hitcm/cartographer.git
cdcartographer/build
cmake..-GNinja
ninja
ninjatest
sudoninjainstall
3.安装cartographer_ros。
谷歌官方提供的安装方法比较繁琐,我对原来的文件进行了少许的修改,核心代码不变,只是修改了编译文件
下载到catkin_ws下面的src文件夹下面
gitclonehttps://github.com/hitcm/cartographer_ros.git
然后到catkin_ws下面运行catkin_make即可。
4.数据下载测试
2d数据,大概500M,用迅雷下载
https://storage.googleapis.com/cartographer-public-data/bags/backpack_2d/cartographer_paper_deutsches_museum.bag
3d数据,8G左右,同样用迅雷下载
https://storage.googleapis.com/cartographer-public-data/bags/backpack_3d/cartographer_3d_deutsches_museum.bag
然后运行launch文件即可。
roslaunchcartographer_rosdemo_backpack_2d.launchbag_filename:=${HOME}/Downloads/cartographer_paper_deutsches_museum.bag
roslaunchcartographer_rosdemo_backpack_3d.launchbag_filename:=${HOME}/Downloads/cartographer_3d_deutsches_museum.bag
如下图,左侧为2d,右侧为3d。
Ⅲ 如何使用Google 的Cartographer SLAM算法包
0.安装所依赖项
sudo apt-get install -y google-mock libboost-all-dev libeigen3-dev libgflags-dev libgoogle-glog-dev liblua5.2-dev libprotobuf-dev libsuitesparse-dev libwebp-dev ninja-build protobuf-compiler Python-sphinx ros-indigo-tf2-eigen libatlas-base-dev libsuitesparse-dev liblapack-dev
1.首先安装ceres solver选择版本1.11,路径随意
Git clone
cd ceres-solver-1.11.0/build
cmake ..
make –j
sudo make install
2.安装 cartographer,路径随意
git clone
cd cartographer/build
cmake .. -G Ninja
ninja
ninja test
sudo ninja install
3.安装cartographer_ros
谷歌官提供安装比较繁琐我原文件进行少许修改核代码变修改编译文件
载catkin_ws面src文件夹面
git clone
catkin_ws面运行catkin_make即
4.数据载测试
2d数据概500M用迅雷载
3d数据8G左右同用迅雷载
运行launch文件即
roslaunch cartographer_ros demo_backpack_2d.launch bag_filename:=${HOME}/Downloads/cartographer_paper_deutsches_museum.bag
roslaunch cartographer_ros demo_backpack_3d.launch bag_filename:=${HOME}/Downloads/cartographer_3d_deutsches_museum.bag
图左侧2d,右侧3d
Ⅳ 怎么做史莱姆。
题主所说的史莱姆,应该就是SLAM吧。SLAM现在是比较火热的,但是要想做出来真的不容易。首先,需要学习一些基本的定位与导航理论;然后,结合ROS与cartographer等软件做些模拟仿真;接着,多看些国外的实际应用或做实验的文章;最后,自己尝试去根据教程做第一个史莱姆就可以啦。
Ⅳ ROS环境,怎么在cartographer上添加真实的里程计数据啊
查看邻居表是否建立。建立的话,查看其他区域是否为完全末节区域或NSSA。是的话,肯定没了,这两个区域是隐藏路由信息的。完全末节区域默认是无法学到其他路由的,只能学域内路由和默认路由,NSSA只能学到直连的域间和域内,外部直连,但是无法学到外部转发的。你可以通过在完全末节区域的ABR上构建一条redistribute connect,加入默认路由。在NSSA的ABR上加入一条default-information originate。在环回上加入ip ospf network point-to-point ,效果可以使你在路由表中看到的环回掩码为所填写的,而不是/32
Ⅵ 如何使用 Google Cartographer SLAM 算法来建地图
不用生成直接有现成的Google Earth,谷歌投资了几十个天上飞的玩意弄出来的,比某度神马的强