阿克曼机器人- 覆盖路径规划

 前言

覆盖路径规划是一类特殊的路径规划问题,其复杂度与机器人运动学约束和环境复杂度相关。本文聚焦于不完整约束机器人在已知环境中的覆盖问题,假定覆盖路径已经规划成功,本文聚焦于如何让机器人执行该路径


提示:以下是本篇文章正文内容,下面案例可供参考

一、机器人

幻宇阿克曼机器人

二、机器人-覆盖路径规划-实物试验

1.基于slam生成地图

第一步是获取环境信息,可以使用各种slam方法生成环境信息。本文使用gmapping_slam,通过手动设置导航点来生成目标区域的地图信息。当然,环境比较大的时候,可以用诸如前沿的方法生成地图。

2.根据地图信息,规划覆盖路径

参考机器人环境边界、障碍物边界、机器人最大最小速度、最大最小角速度,使用astp\STC等算法规划出覆盖路径。

参考链接:https://www.mathworks.com/matlabcentral/fileexchange/63308-ewingkang-dubins-curve-for-matlab?s_tid=FX_rc2_behav,https://www.mathworks.com/help/uav/ug/motion-planning-with-rrt-for-fixed-wing-uav.html

3. 机器人执行路径

基于机器人发布的amcl_pose信息,控制机器人跟随规划的路径运动。路径跟随最广泛应用的就PID算法或追踪算法。(PID资料可见https://blog.csdn.net/u013468614/article/details/103492847

全向机器人的PID控制比较容易,但是阿克曼机器人的PID很难控制。阿克曼机器人有前进速度和角速度两种。前进速度对应x,y,z三个方向的分量,因为阿克曼机器人只能前进或者后退,所以vy,vz值为0;角速度可以控制机器人转向,包含x,y,z,w四元组。机器人如果偏离规划的路径,需要调整转角速度使得机器人回到预期的路径上。这个角速度由偏移量控制,偏移量越大,角速度越大。但是实际测试过程发现,很难由位置偏移来计算角速度,其对应的PID控制会使得机器人一直在转圈。

另一个方法是使用/cmd_vel机器人发布速度命令,控制机器人直行和转弯。但是与实际路径会有偏差,当偏差特别大的时候,调用teb_local_planner将机器人导航到目标位置进行校偏。就这样不停的校偏,最终也能实现覆盖。

在实验过程中遇到诸多问题,目前第三步还没有执行成功。机器人的雷达还坏了,特此记录一下。等机器人配件到了,再实现第三步。


总结

阿克曼机器人-实物试验-覆盖路径规划-PID

你可能感兴趣的:(robot,python,人工智能)