# 机器人系统介绍
根据对整个比赛分析的需求,我们决定使用机器人操作系统ROS(Robot Operaring System)。选用ROS作为机器人的系统框架主要是因为ROS强大的进程之间的消息传递以及包的管理,支持C/C++和Python,还可以将多台计算机进行组网,完成对机器人系统计算任务的分布式计算。同时ROS系统经过多年的发展已经有了强大的软件工具集,方便软件调试。
![](https://img.kancloud.cn/49/41/4941a4c7377ad034c425ebfb5632645a_1280x626.png)
:-: 图1 . 机器人软件系统框架图
上图是我们的软件框架图,主要是以MINI PC + STM32F4 为硬件平台,ROS Core为软件核心,PC与机器人嵌入式的连接都是由Robot Base Package来完成。下面的STM32 Controller 是在STM32F4上运行的软件系统,其主要的作用是完成对地盘电机的速度控制、云台的稳定控制和发射机构的设计控制。
在ROS系统,设计多个包负责对传感器数据进行采集,然后把传感器数据以Topic方式发布。而定位、识别、路径规划算法订阅自己需要的传感器数据包来完成计算。同时,Decision会以服务的形式去获取定位、识别、路径规划的计算结果。将当前做需要执行的动作通过Robot Base Package来执行。