ROS小车的软件结构
0.前言
想必大多数读者,在刚开始搭建ROS小车的时候,都会遇到下面这样的问题。单片机底层PWM、测速、速度PID、MPU6050数据获取等等,而且还要与ROS层通信,ROS层还有其他控制部分,WT!!!这么多?这么乱?是不是想想都脑大。所以,在搭建ROS小车的开始一个清晰合理的软件结构就显得尤为重要。本篇文章就是给大家的脑回路里构建一个清晰的软件结构。让大家清楚,日后我们需要一步步做些什么,以及我们每做的一步在整体的系统中起的什么作用。
1.开篇
首先,我们先看一下,我们搭建的ROS小车的总体架构,如下图所示,大家先有个主观认识。从下向上一层一层看。
从图中得出,我们将ROS小车的系统分成两个相对独立的部分,他们之间采用串口通信的方式进行双向数据连接。STM32作为底层驱动部分主要完成直流电机的速度闭环控制,ROS层作为上位机启动各个传感器节点以及跑建图和导航算法,如果再加上平常PC的调试。整个的软件结构应该是下图的样子。