没有合适的资源?快使用搜索试试~ 我知道了~
cartographer视频学习课件
5星 · 超过95%的资源 需积分: 13 23 下载量 149 浏览量
2022-09-20
17:10:06
上传
评论 3
收藏 22.18MB PDF 举报
温馨提示
试读
68页
cartographer学习视频的配套课件!!! Cartographer is a system that provides real-time simultaneous localization and mapping (SLAM) in 2D and 3D across multiple platforms and sensor configurations. Cartographer的代码庞大,逻辑复杂,包含大量的工程细节,对于初学者不太友好,学习理解代码十分困难,需要花费大量时间仍不得要领。 而企业对激光SLAM从业者的要求越来越高,只会调包调参的人找工作越来越难,只有深入理解激光SLAM原理与代码实现,才具有核心竞争力。
资源推荐
资源详情
资源评论
cartographer从入门到精通: 原理深剖+源
码逐行讲解
第一章 编译运行及调参指导
1.1 cartographer论文讲解
1.2 cartographer的编译
1.2.1 官方文档的地址
官方的编译文档的地址为
https://google-cartographer-ros.readthedocs.io/en/latest/compilation.html
https://google-cartographer.readthedocs.io/en/latest/index.html
1.2.2 依赖的系统环境
推荐在ubuntu16.04或者18.04上进行编译
推荐使用刚装好的ubuntu系统
将ubuntu的软件源设置成清华的或者其他的中国境内的源, 更换完源之后要执行一下 sudo
apt-get update
照着wiki.ros.org安装完对应版本的ROS
并在.bashrc中的末尾添加这条句语句, 要把 <distro> 改成对应的ROS版本
source /opt/ros/<distro>/setup.bash
1.2.3 cartorgapher依赖库的安装
cartorgapher的依赖库可以通过脚本完成一键安装.
第一步: 下载依赖库
在qq群里下载我上传的cartographer_install-20210613.zip, 放到ubuntu系统里并解压
第二步: 打开终端
进入到cartographer_install文件夹, 在文件夹内部空白处单击鼠标右键, 打开终端
第三步 使用脚本完成依赖项的安装
在终端中输入 ./auto-carto-build.sh
如果提示脚本不是一个可执行的文件, 那就通过 chmod +x auto-carto-build.sh 为这个脚本添
加可执行权限即可, 之后在通过 ./auto-carto-build.sh 执行脚本.
解释说明
脚本里进行了4个库的编译与安装
cartographer的依赖库有3个, 分别是abseil-cpp, ceres-solver, protobuf.
在脚本的最后, 也将cartographer安装到系统里了. 安装cartographer后, 就可以在工作空间中只
对cartographer_ros进行编译了, 这样修改launch和lua文件后就不需要执行一次编译指令了.
注意: 如果之前安装过 ceres-solver, protobuf, cartographer 的话, 执行脚本时可能会报有些
函数没有定义的错误, 这是由于protobuf或者cartographer不一致版本导致的, 可以先将之前安
装的库卸载掉, 再执行安装依赖的脚本
一定要确保脚本执行之后没有错误输出, 否则之后编译代码会编译不通过.
1.2.4 cartorgapher的编译
第一步: 下载注释的代码
讲师注释的代码的github地址为
https://github.com/xiangli0608/cartographer_detailed_comments_ws
在某个文件夹内部空白处单击鼠标右键, 打开终端, 输入如下执行进行代码的下载.
git clone
https://github.com/xiangli0608/cartographer_detailed_comments_ws.git
注意, 一定要通过 git clone 的方式下载代码, 因为代码的注释是处于更新状态的, 要定期通过 git
pull origin master 来更新代码.
要是在github中下载代码的zip压缩文件, 这样下载的代码里不含有.git文件夹, 就不能通过 git
pull 进行代码的更新了.
如果执行 git clone 后没有下载代码, 是由于没有连上github导致的, 可以按 ctrl c 中断当前
下载, 再次执行 git clone , 重复几次试试, 如果还不行, 就在群里问问吧.
第二步: cartorgapher的编译
进入到cartographer_detailed_comments_ws内, 在文件夹内打开终端, 输入
./catkin_make.sh
完成对cartographer与cartographer_ros的编译.
注意: 一定要确保之前的依赖项全部安装成功, 否则这里的编译就会报错.
1.3 使用讲师的bag运行cartographer
1.3.1 下载数据集
本次使用的bag有2个, 已经上传到qq群文件中, 名字为 bag-2021-06-13.zip , 请提前下载好并放
到ubuntu中.
rslidar-outdoor-gps.bag 这个是讲师自己录制的数据, 包括了速腾16线点云数据, 由点云数
据生成的单线雷达数据, imu, 里程计, rtk/gps, tf 与 tf_static.
landmarks_demo_uncalibrated.bag 是从cartographer官网上下载的数据, 旨在展示一下
如何在cartographer中使用landmark.
为了防止群文件的内容过期, 也将这两个bag的百度云链接放在下面, 如果有需要可以自行下载. 下
载的文件名字可能会有出入, 重命名一下就好.
rslidar-outdoor-gps.zip
链接:https://pan.baidu.com/s/1eOywWPnpIFaly9eawZ8Nlw 提取码:slam
landmarks_demo_uncalibrated.zip
链接:https://pan.baidu.com/s/1JGIh6u8BMeGKvUD5KthZMQ 提取码:slam
1.3.2 了解bag文件
播放bag文件需要在bag的文件夹内启动三个终端
第一个终端执行 roscore
第二个终端执行 rosbag play rslidar-outdoor-gps.bag
第三个终端执行 rqt
注意, rqt的所有显示插件都在菜单栏的plugins内, 再点击 visualization, 再点击 tf tree, 即可显示
视频中的 tf树的可视化界面.
在第三个终端按 ctrl c , 结束rqt的显示, 再启动 rviz
rviz左侧最顶上的 Fixed frame 除了下拉菜单可以选择之外, 还是可以手动输入的, 现在手动输入
成 odom ,
rviz左侧下方的 Add 按钮, 可以添加显示的插件, 自己选择添加 pointcloud2, laserscan等格式的
数据, 之后把插件订阅的topic选择一下, 如果不会就自己摸索一下, 很简单的.
1.3.3 重新录制bag
由于rslidar-outdoor-gps.bag这个bag的tf是从odom开始的, 不好做之后修改cartographer发布
坐标系的演示, 所以这里重新录制一个tf不带odom->footprint的新的bag.
通过视频来进行操作即可.
1.3.4 运行cartographer
2d建图
修改bag文件的地址
第一步: 把bag的默认地址手动修改成自己存放bag的目录, 这个由于每个人的用户名, 文件夹名都
不一样, 所以需要每个人对自己的电脑做相应的修改.
例如我的bag文件放在 /home/lx/bagfiles 文件夹内, bag的名字为rslidar-outdoor-gps-notf,
所以bag的地址设置为 /home/lx/bagfiles/rslidar-outdoor-gps-notf.bag .
如果不能确定bag所在的地址, 在bag文件夹内部打开终端, 输入 pwd 会显示出当前文件夹的地址.
进入到cartographer_detailed_comments_ws文件夹内, 在文件夹内右键打开终端, 输入
由于修改了launch文件, 所以需要重新编译一下.
source命令的目的
source命令是设置当前的终端 可以执行的包与节点的地址集合的, 不执行 source
install_isolated/setup.bash 这个命令, 直接启动 roslaunch 时就会出现 找不到包或找不
到节点的错误提示.
rospack profile 命令的目的
新下载的包在编译之后, 有时没有被加载到ros的包的地址集合中,.
这时即使执行力 source 指令, 在启动 roslaunch 时也可能会报错, 提示找不到包或者可执行节
点.
通过 rospack profile 命令可以将新下载的包加载到ros的包的地址集合, 再执行 roslaunch
时就不会再报错了.
为了防止每次启动终端都要执行一次 source install_isolated/setup.bash 这个指令, 我们
可以将这个指令写到 ~/.bashrc 文件中, 每次启动终端时, 会自动source ~/.bashrc 这个文件, 这
个文件中的所有内容都会被 source 一遍.
~ 代表用户文件夹, 例如我自己电脑的用户名为lx, 我自己的用户文件夹就是 /home/lx/ , 这个文件
夹地址也可以用 ~ 来代替.
按 ctrl h 可以显示隐藏文件, 找到 .bashrc 文件进行编辑, 在文件底部输入
source ~/path-to-
carto/cartographer_detailed_comments_ws/install_isolated/setup.bash
其中 path-to-carto 要改成自己实际的文件夹名字.
保存2d轨迹,并生成ros格式的地图
./finish_slam_2d.sh
其中map_dir是保存地图的文件夹名字, 可以改成自己想要保存的文件夹地址.
纯定位模式
roslaunch cartographer_ros lx_rs16_2d_outdoor_localization.launch
3d建图指令
roslaunch cartographer_ros lx_rs16_3d.launch
保存3d轨迹
./finish_slam_3d.sh
landmark使用示例
roslaunch cartographer_ros landmark_mir_100.launch
使用asset生成ros格式的2d栅格地图
./catkin_make.sh
source install_isolated/setup.bash
rospack profile
roslaunch cartographer_ros lx_rs16_2d_outdoor.launch
roslaunch cartographer_ros assets_writer_2d.launch
使用asset生成3d点云地图
roslaunch cartographer_ros assets_writer_3d.launch
1.4 配置文件的参数讲解与调参指导
配置文件解读
官网上有一些, 但是不全, 代码里的才是最全最准确的.
https://google-cartographer-ros.readthedocs.io/en/latest/algo_walkthrough.html
https://google-cartographer.readthedocs.io/en/latest/configuration.html
调参指导
lua文件中坐标系设置的不对, 导致tf树连不起来, 会在运行时产生 passed to lookupTransform
argument source_frame dose not exit 这种问题.
launch文件中topic名字没设置对, 会在运行时产生 Queue waiting for data .... 这种问题.
更具体的请看视频.
第二章 cartographer_ros代码讲解
看视频的注意事项
看视频不等于看懂代码: 看视频只能大致听懂代码, 不是自己真正理解代码, 光看视频很容易
看完就忘
要有自己的思考过程: 自己读代码 / 自己手动注释代码 / 写技术博客或者笔记
尽量不要跳着看视频, 有时跳着看会错过重要知识点, 可以1.25/2.0倍速观看
可以只听视频, 自己看代码
每次听代码讲解的视频之前, 要先将代码更新一下
第1讲 CMakeLists.txt文件讲解
听不懂没关系, 不影响cartographer的学习
第2讲 node_main.cc文件讲解-上
Todo Tree说明
?: 目前我不理解的地方的标注
note: 重点库, 重点概念, 重点功能的语句的标注
c++11: c++11新标准与c++不常用语法的标注
Step: 代码步骤说明
剩余67页未读,继续阅读
资源评论
- StoneChan2023-07-28学习这个课件,我对于cartographer的原理和算法有了更深入的理解。
- 晕过前方2023-07-28这个课件对于初学者来说非常友好,简单明了地介绍了cartographer的使用方法。
- 耄先森吖2023-07-28我通过学习这个课件,成功地将cartographer应用到我的项目中,效果非常满意。
- 不能汉字字母b2023-07-28这份视频学习课件通过一些实例演示了cartographer的应用场景,让学习更加有趣和实践性。
- 兰若芊薇2023-07-28这份学习课件内容丰富,结构清晰,非常适合作为入门教程使用。
RobotLaw
- 粉丝: 7
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功