# 機器人系統介紹
根據對整個比賽分析的需求,我們決定使用機器人操作系統ROS(Robot Operaring System)。選用ROS作為機器人的系統框架主要是因為ROS強大的進程之間的消息傳遞以及包的管理,支持C/C++和Python,還可以將多臺計算機進行組網,完成對機器人系統計算任務的分布式計算。同時ROS系統經過多年的發展已經有了強大的軟件工具集,方便軟件調試。

:-: 圖1 . 機器人軟件系統框架圖
上圖是我們的軟件框架圖,主要是以MINI PC + STM32F4 為硬件平臺,ROS Core為軟件核心,PC與機器人嵌入式的連接都是由Robot Base Package來完成。下面的STM32 Controller 是在STM32F4上運行的軟件系統,其主要的作用是完成對地盤電機的速度控制、云臺的穩定控制和發射機構的設計控制。
在ROS系統,設計多個包負責對傳感器數據進行采集,然后把傳感器數據以Topic方式發布。而定位、識別、路徑規劃算法訂閱自己需要的傳感器數據包來完成計算。同時,Decision會以服務的形式去獲取定位、識別、路徑規劃的計算結果。將當前做需要執行的動作通過Robot Base Package來執行。