nav2
学习资料
在上一次gazebo卡死强制退出之后,就无法打开

重启就好了。。。不要随便的ctrlZ
之后又出现了gazebo无法打开的情况

直接卡死
具体原因:是因为model库加载不正确导致的,gazebo软件开启的时候会自动从网络下载模型,然而,从外网下载过程非常的漫长,很难加载成功。
学过ros的对gazebo仿真软件应该都不会陌生,但是有时启动真的很烦人,经常卡在这个地方很长时间,查阅资料 gazebo软件开启的时候会自动从国外官网下载模型,因此这个过程比较漫长,原因是网站在国外,下载不顺畅。有一个加速启动的方法就是断开网络连接启动,但频频断网还是不太方便。
手动杀死gazebo(保证杀死)
1 | killall gzserver && killall gzclient |

按照文章里的把这个文件全部注释了没有用
最后选择断网来解决
有可能是launch文件中的某写模型路径不对
gazebo使用

这个表示坐标点的位置
先标出来初试坐标
1 | mkdir -p ~/nav2_ws/src |
构建开发中的主分支
第五行的意思是
rosdep是一个用来一键安装依赖的工具,
重要概念
动作服务器
举一个比较形象的例子,这种通信方式就像你的在windows上的文件传输所显示的滚动条,时刻显示文件传输的进度
在ros的路径规划中,就是你发送了这个目标点之后,它的反馈是是否到达目标点(如果你设定的是10hz那就0.1s接受一次),再到达之前一直反馈going,到后反馈reachgoal。
生命周期节点和绑定
生命周期是用于加载和卸载ros2服务器的节点。
绑定
行为树bt
它们是待完成任务的树形结构。
状态机fsm
导航服务器
规划器
选择算法进行全局规划
控制器
选择算法进行局部规划,在ros1中被叫做局部规划器
恢复服务器
容错系统支柱,目标是处理系统未知状况或者故障状况并且自主处理这些情况
举例:
- 允许机器人从被卡住的位置移动
状态估计
map 到 odom 的坐标变换由 定位系统 (定位,建图,SLAM)提供,
odom 到 base_link 的坐标转换由 里程计 系统提供。
关于 base_link 的其余坐标系应该是 静态 并且在urdf中进行定义
第一个变换 map => odom 通常由处理本地化和映射的不同 ROS 包提供,例如 AMCL。
odom => base_link 通常由我们的里程计系统使用传感器(例如车轮编码器)发布。
全局定位
全局定位系统至少提供 map 到 odom 的坐标转换
有几种算法:
- amcl 基于 粒子过滤器 的自适应蒙特卡洛定位技术,用于 静态地图 的定位。
里程计
输出 odom 到 base_link 的坐标转换
数据来源 **激光雷达** 车轮编码器 vio imu
他的作用是提供基于机器人的平滑和连续稳定的 局部坐标系
全局定位系统会相对全局坐标变换进行更新,也就是 重定位 用来解决里程计漂移问题
成本地图和图层
成本地图被看做是插件,各个传感器将信息输入到图层中进行处理
问题记录
开启slam之后会出现抖动
yaml文件
yaml文件对于缩进有要求
同一层级的元素应该左对齐
成本地图过滤器
速度过滤器
fastlio配置
1 | git clone https://github.com/Ericsii/FAST_LIO.git --recursive |
–recusive的作用就是迭代将文件夹内部的功能包下载下来
git下载子模块命令git clone –recursive和git submodule update –init_陈 洪 伟的博客-CSDN博客
找不到包


题外话
docker
1、什么是docker
和虚拟机很类似
一个容器虚拟化平台。最重要的是,他们不依赖于任何语言、框架或者包装系统。
2、Docker容器技术与虚拟机的区别。
相同点:docker和容器技术和虚拟机技术,都是虚拟化技术。
不同点:
虚拟机技术:

容器技术:

通过图片,我们很明显的看到容器少了一层Guest OS,也就是少了虚拟机操作系统这一层,所以docker效率比虚拟机效率高。达到了秒级启动的地步。
docker的安装
我使用的是小鱼的一键安装
1 | wget http://fishros.com/install -O fishros && . fishros |
1 |