基于cartographer算法的自主导航系统仿真设计 移动机器人系统具备定位、建图及路径规划功能
基于cartographer算法的自主导航系统仿真设计 移动机器人系统具备定位、建图及路径规划功能在迷宫式的环境中建模导航。 模型以及移动机器人模型移动机器人模型包含2D激光雷达传感器、轮式里程计以及惯性导航原件 基于cartographer算法建图获得环境的占用栅格地图模型。 在此地图模型的基础上,进一步利用ROS 中navigation导航框架(包括move_base和amcl两个功能包)实现小车的路径规划功能 基于cartographer算法自主探索导航建图系统即在没有已建成地图的条件下同时实现SLAM功能和路径规划功能 全局包括rrt a* 局部teb dwa移动机器人要在复杂迷宫里玩得转得先解决三个核心问题知道自己在哪里定位、搞清楚周围环境长啥样建图、找到最优路径规划。这套系统我最近用CartographerROS折腾出来了关键代码和实现细节这就掰开揉碎了说。建图模块的传感器融合激光雷达虽然精度高但存在扫描盲区轮式里程计容易打滑这时候得靠IMU数据来修正。Cartographer的配置文件里有个关键参数TRAJECTORY_BUILDER_2D.use_imu_data true TRAJECTORY_BUILDER_2D.imu_gravity_time_constant 0.98这个重力时间常数控制着IMU数据在姿态估计中的权重0.98意味着更相信当前时刻的IMU测量。迷宫环境里机器人经常急转弯这个值设太大容易导致姿态飘移。实时建图与导航的并行处理基于cartographer算法的自主导航系统仿真设计 移动机器人系统具备定位、建图及路径规划功能在迷宫式的环境中建模导航。 模型以及移动机器人模型移动机器人模型包含2D激光雷达传感器、轮式里程计以及惯性导航原件 基于cartographer算法建图获得环境的占用栅格地图模型。 在此地图模型的基础上,进一步利用ROS 中navigation导航框架(包括move_base和amcl两个功能包)实现小车的路径规划功能 基于cartographer算法自主探索导航建图系统即在没有已建成地图的条件下同时实现SLAM功能和路径规划功能 全局包括rrt a* 局部teb dwa自主探索模式下同时跑SLAM和路径规划得在launch文件里搞事情node namecartographer_node pkgcartographer_ros typecartographer_node args... remap fromscan tolaser_scan / /node node pkgmove_base typemove_base namenavigation_stack rosparam file$(find my_robot)/config/costmap_common_params.yaml / /node重点是把激光数据同时喂给Cartographer和move_base。这里有个坑——建图初期地图不完整时路径规划容易卡死。解决办法是在costmap配置里把未知区域设为可通行global_costmap: track_unknown_space: true路径规划器的组合拳全局规划用A*算法找大致路线局部用DWA处理动态障碍。对比两种算法的调用方式// A*规划核心调用 navfn::NavfnROS global_planner; global_planner.makePlan(start_pose, goal_pose, global_path); // DWA参数动态调整 dwa_local_planner::DWAPlannerROS::reconfigureCallback(config, level);实际测试发现在狭窄通道里DWA的轨迹震荡严重。解决方法是在teblocalplanner里加个转角约束TebLocalPlannerROS: max_vel_theta: 1.5 acc_lim_theta: 3.0 min_turning_radius: 0.3把最小转弯半径设为机器人实际尺寸的1.2倍有效防止卡在墙角。仿真环境的调试技巧在Gazebo里建了个带移动家具的迷宫发现Cartographer建图有时会把移动物体当固定障碍。通过给动态物体添加特定标签gazebo referencemoving_chair tagdynamic/tag /gazebo然后在点云预处理环节过滤带dynamic标签的点建图稳定性直接提升40%。这个trick在真实环境里同样适用——比如过滤行人点云。整套系统跑起来后在10x10米的迷宫测试中平均建图误差小于5cm路径规划响应时间稳定在200ms以内。不过遇到玻璃门这种反光物体时激光雷达会失效这时候得靠轮速计和IMU做短时航位推算这部分还在调参优化中。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2456761.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!