提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
最近参加比赛需要学习ros的相关知识,在此记录一下自己的学习笔记。
硬件架构各模块作用
电机:移动机器人,并返回左右轮电机的编码器值,用于计算机器人行走的距离。
陀螺仪lmu模块:用于测试机器人转动的角度,精度较高,使机器人转动更准确。
超声波模块:用于检测玻璃等透明障碍物(激光雷达和深度摄像头无法看到的物体),并临时加入地图中,使导航重新规划路径避开这些障碍物。
STM32模块:主要采集陀螺仪、超声波、左右轮电机编码器等传感器数据,并且控制电机的转动。
导航模块(N92工控机):通过串口(串行接口)与 STM32 模块通讯,获取陀螺仪,超声波,编码器等数据,并转换成相应 ROS 的消息,运行建图导航算法,根据传感器数据,使用 gmapping slam 算法构建地图,并在地图上用 dijk 算法规划全局路径,teb_local_planner 算法规划局部路径,最后根据路径生成速度控制机器人移动。
激光雷达:主要是用于测试周围环境,相对机器人哪个角度多少距离有障碍物,根据这些障碍物信息,用gmapping slam 建图算法构建地图,并在导航时规划好路径避开障碍物。二维 的,只能测试到一个平面 360 度的信息。
奥比中光深度摄像头:测试周围环境相对机器人哪个角度多少距离有障碍物,作用与激光雷达相似,深度摄像头是三维 的,可以测试三维立体信息,增加机器人安全性和适应性。