diff --git a/source/version_two/development/locationintro.md b/source/version_two/development/locationintro.md index 74b218b..5623914 100644 --- a/source/version_two/development/locationintro.md +++ b/source/version_two/development/locationintro.md @@ -2,3 +2,88 @@ ## 目录 +* 功能介绍 +* 传感器介绍 +* 实现原理 + +## 功能介绍 + +定位循迹是机器人循着用户提前录好的轨迹自主行走,行走过程中机器人能够自动躲避障碍物,自动规划路线,达到目标点。 + +定位循迹分为定位系统(固定定位标签)与车端(车载定位标签)两个模块,要求先搭建定位系统,然后控制车端完成循迹。 + +定位系统是使用Dashboard软件+固定定位标签部署地图,在Dashboard中可查看定位标签彼此的距离。 + +定位系统搭建完毕后,OS程序中可以得到车载定位标签的在环境地图中的绝对定位坐标。 + +车载定位标签的数据与里程计的数据融合定位,得到AP1在环境中的坐标点,控制AP1运动,边走边记录当前坐标点的位置,将这些坐标点记录为文件保存下来,得到路径文件。 + +在开始循迹的时候,程序加载路径文件,车载定位标签定位数据与里程计融合定位匹配路径数据,机器人按照指定路径行走。 + +## 传感器介绍 + +定位循迹 用到的传感器有: + + +* 单线激光雷达x2,安装在AP1前后底部 +* 车载定位标签,安装在AP1顶板上 +* 固定定位标签,部署在循迹环境中 +* 编码器/轮速里程计x2,安装在车体内部前侧 + +![](imgs/software_intro_8.png) + + +## 实现原理 + + + +![](imgs/software_intro_3.jpg) + +| 步骤 | 输入数据 | 操作 | 输出数据 | 使用ROS包 | +|--|--|--|--|--| +|1 | | Dashboard部署定位地图 | 定位数据(车载定位标签坐标)| marvelmind驱动包(catkin_ws\src\driver\location\marvelmind)| +|2 | 里程计数据 定位数据 | 定位融合| 当前机器人在环境中的位姿 | location_fusion(catkin_ws\src\navigation\location_fusion)| +|3| 当前机器人位姿| 控制机器人运动,录制路径| 路径数据 |path_server(catkin_ws\src\navigation\path_server)| +|4| 目标机器人位姿| 路径数据| |[move_base](http://wiki.ros.org/move_base/)| +|5| 当前机器人位姿 目标机器人位姿| 根据机器人当前位姿,进行全局规划路线| 路径数据(初步预估导航路线) |[global_planner(dijkstra) ](http://wiki.ros.org/global_planner)| +|6| 路径数据 前雷达数据 后雷达数据 | 根据规划路径开始导航,进行过程中随着实际环境、障碍物变化,进行局部路径规划,实时避障| 局部路径规划 避障 |[costmap_2d ](http://wiki.ros.org/cost_map)[teb_local_planner](http://wiki.ros.org/teb_local_planner)| +|7| 速度信息 /cmd_vel | 向底发送速度命令 | |[move_base](http://wiki.ros.org/move_base/)| + +定位循迹 launch配置示例 + +``` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +``` \ No newline at end of file diff --git a/source/version_two/development/slamintro.md b/source/version_two/development/slamintro.md index caf2df6..5d4d29a 100644 --- a/source/version_two/development/slamintro.md +++ b/source/version_two/development/slamintro.md @@ -21,7 +21,7 @@ SLAM 技术解决的是,我在哪里?(**定位**Localization )我周围 SLAM 的应用很广泛,有扫地机器人、无人驾驶汽车、无人机,三维场景重建等。 -根据使用传感器不同,SLAM的可分为激光SLAM和视觉SLAM(VSLAM),本文介绍的是激光SLAM,对视觉SLAM相关知识感兴趣的可以[看这里]()。 +根据使用传感器不同,SLAM的可分为激光SLAM和视觉SLAM(VSLAM),本文介绍的是激光SLAM,对视觉SLAM相关知识感兴趣的可以[看这里](/usedoc/navigationKit2/version_two/development/vslamintro)。 ## 基于激光SLAM的机器人自主导航 @@ -68,7 +68,7 @@ Autolabor SLAM 导航使用的是谷歌开源的 [Cartographer](https://github.c | 步骤 | 输入数据 | 操作 | 输出数据 | 使用ROS包 | |--|--|--|--|--| -|1 | 左编码器数据 右编码器数据 | 使用运动模型计算编码器数据,得到符合ROS标准的里程计数据| 里程计数据| [autolabor_pro_driver](http://www.autolabor.com.cn/usedoc/ap1/sendCommand?hmsr=csdn)| +|1 | 左编码器数据 右编码器数据 | 使用运动模型计算编码器数据,得到符合ROS标准的里程计数据| 里程计数据| [autolabor_pro_driver](http://www.autolabor.com.cn/usedoc/ap1/sendCommand)| |2 | 前雷达数据 后雷达数据 | 过滤并融合前后激光雷达采集的数据,得到机器人周围环境点云数据| 雷达点云数据 | [cartographer_ros](https://google-cartographer-ros.readthedocs.io/en/latest/) [laser_filters](http://wiki.ros.org/laser_filters) | |3 | 里程计数据 点云数据 | 点云匹配| 相对位姿数据 子地图数据 | [cartographer_ros](https://google-cartographer-ros.readthedocs.io/en/latest/)| |4 | 相对位姿数据 子地图数据 | 回环检测,得到子地图拼接的全地图数据 | 地图数据 | [cartographer_ros](https://google-cartographer-ros.readthedocs.io/en/latest/)| @@ -97,7 +97,7 @@ Cartographer 2D 建图 launch配置示例 | 步骤 | 输入数据 | 操作 | 输出数据 | 使用ROS包 | |--|--|--|--|--| -|1 | 左编码器数据 右编码器数据 | 使用运动模型计算编码器数据,得到符合ROS标准的里程计数据| 里程计数据| [autolabor_pro_driver](http://www.autolabor.com.cn/usedoc/ap1/sendCommand?hmsr=csdn)| +|1 | 左编码器数据 右编码器数据 | 使用运动模型计算编码器数据,得到符合ROS标准的里程计数据| 里程计数据| [autolabor_pro_driver](http://www.autolabor.com.cn/usedoc/ap1/sendCommand)| |2|前雷达数据 后雷达数据 里程计数据 地图数据|将机器人的实时数据与已构建的地图进行匹配|当前机器人在环境中的位姿| [cartographer_ros](https://google-cartographer-ros.readthedocs.io/en/latest/)| |3| 目标机器人位姿| 给机器人制定一个目标点| |[move_base](http://wiki.ros.org/move_base/)| |4| 当前机器人位姿 地图数据 目标机器人位姿| 根据机器人当前位姿与地图数据,进行全局规划路线| 路径数据(初步预估导航路线) |[global_planner(dijkstra) ](http://wiki.ros.org/global_planner)| @@ -169,7 +169,7 @@ Cartographer 2D 导航 launch配置示例 | 步骤 | 输入数据 | 操作 | 输出数据 | 使用ROS包 | |--|--|--|--|--| -|1 | 左编码器数据 右编码器数据 | 使用运动模型计算编码器数据,得到符合ROS标准的里程计数据| 里程计数据| [autolabor_pro_driver](http://www.autolabor.com.cn/usedoc/ap1/sendCommand?hmsr=csdn)| +|1 | 左编码器数据 右编码器数据 | 使用运动模型计算编码器数据,得到符合ROS标准的里程计数据| 里程计数据| [autolabor_pro_driver](http://www.autolabor.com.cn/usedoc/ap1/sendCommand)| |2 | 多线雷达数据 惯导数据 里程计数据 | 点云匹配| 相对位姿数据 子地图数据 | [cartographer_ros](https://google-cartographer-ros.readthedocs.io/en/latest/)| |3 | 相对位姿数据 子地图数据 | 回环检测,得到子地图拼接的全地图数据 | 地图数据 | [cartographer_ros](https://google-cartographer-ros.readthedocs.io/en/latest/)| @@ -198,7 +198,7 @@ Cartographer 3D 建图 launch配置示例 | 步骤 | 输入数据 | 操作 | 输出数据 | 使用ROS包 | |--|--|--|--|--| -|1 | 左编码器数据 右编码器数据 | 使用运动模型计算编码器数据,得到符合ROS标准的里程计数据| 里程计数据| [autolabor_pro_driver](http://www.autolabor.com.cn/usedoc/ap1/sendCommand?hmsr=csdn)| +|1 | 左编码器数据 右编码器数据 | 使用运动模型计算编码器数据,得到符合ROS标准的里程计数据| 里程计数据| [autolabor_pro_driver](http://www.autolabor.com.cn/usedoc/ap1/sendCommand)| |2|多线雷达数据 惯导数据 里程计数据 地图数据|将机器人的实时数据与已构建的地图进行匹配|当前机器人在环境中的位姿| [cartographer_ros](https://google-cartographer-ros.readthedocs.io/en/latest/)| |3| 目标机器人位姿| 给机器人制定一个目标点| |[move_base](http://wiki.ros.org/move_base/)| |4| 当前机器人位姿 地图数据 目标机器人位姿| 根据机器人当前位姿与地图数据,进行全局规划路线| 路径数据(初步预估导航路线) |[global_planner(dijkstra) ](http://wiki.ros.org/global_planner)| diff --git a/source/version_two/development/vslamintro.md b/source/version_two/development/vslamintro.md index fc8bdbf..0303983 100644 --- a/source/version_two/development/vslamintro.md +++ b/source/version_two/development/vslamintro.md @@ -8,7 +8,7 @@ 2. VSLAM系统及相关资料介绍 3. SLAM框架 1. SLAM的基本过程 - 2. SLAM的主要模块 + 2. VSLAM的主要模块 ## 1.SLAM技术介绍