一起自学SLAM算法:12.2 riskrrt导航系统

连载文章,长期更新,欢迎关注:


写在前面

第1章-ROS入门必备知识

第2章-C++编程范式

第3章-OpenCV图像处理

第4章-机器人传感器

第5章-机器人主机

第6章-机器人底盘

第7章-SLAM中的数学基础

第8章-激光SLAM系统

第9章-视觉SLAM系统

第10章-其他SLAM系统

第11章-自主导航中的数学基础

第12章-典型自主导航系统

        12.1 ros-navigation导航系统

        12.2 riskrrt导航系统

        12.3 autoware导航系统

        12.4 导航系统面临的一些挑战

第13章-机器人SLAM导航综合实战


对于大多数ROS学习者,最先接触到的导航系统基本都是ros-navigation。不过机器人领域的导航系统实现并不只有ros-navigation,这里要介绍的riskrrt就是另外一种导航系统实现。riskrrt的系统框架基本与ros-navigation一样,也就是地图供应、全局定位和路径规划这些主要模块。riskrrt的特别之处体现在对动态障碍物的处理更加严格,在走廊、机场、路口等人流量大的场景中对机器人与动态障碍物发生碰撞的风险把控更加严格,这种对动态障碍物碰撞的风险把控通过基于风险的RRT全局路径规划实现。

riskrrt的代码框架如图12-14所示,由3个主节点riskrrt_planner、controller和og_builder*构成。障碍物融合处理节点og_builder*通过订阅地图/map和移动障碍物位姿/robot_*/base_pose_ground_truth,然后将融合了动态障碍信息的/ogarray提供给全局路径规划节点riskrrt_planner。全局路径规划节点riskrrt_planner订阅导航目标点/goal、机器人里程计/odom、障碍信息/ogarray和全局定位信息/amcl_pose,然后将求出的全局路径/traj提供给轨迹跟踪节点controller。轨迹跟踪节点controller订阅全局路径/traj和全局定位信息/amcl_pose,然后将轨迹跟踪过程生成的速度控制量/cmd_vel输出给机器人来实现导航。其中/goal由外界提供,/odom由机器人轮式里程计之类的里程计提供,/amcl_pose由amcl全局定位节点提供,/map由SLAM或者静态地图提供,/robot_*/base_pose_ground_truth由特定感知算法提取出的动态障碍物位姿提供。

一起自学SLAM算法:12.2 riskrrt导航系统_第1张图片

图12-14  riskrrt代码框架

与ros-navigation类似,riskrrt也是先通过源码编译安装,然后按照官方wiki教程配置后启动,具体过程就不再展开了。

源码仓库

  • Github下载:github.com/xiihoo/Books_Robot_SLAM_Navigation

  • Gitee下载(国内访问速度快):gitee.com/xiihoo-robot/Books_Robot_SLAM_Navigation

参考文献

【1】 张虎,机器人SLAM导航核心技术与实战[M]. 机械工业出版社,2022.

你可能感兴趣的:(一起自学SLAM算法,机器人,自动驾驶,人工智能)