陸志勇 張占勝 沙 楠 李 爽
(沈陽化工大學(xué)信息工程學(xué)院,遼寧 沈陽 110142)
從控制系統(tǒng)分層的角度來看可分為兩層,其一是以RT1052單片機(jī)為核心的控制器,也稱為底層控制系統(tǒng);其二是以微型電腦為核心的處理器,稱為上層處理系統(tǒng)。
底層處理系統(tǒng)只負(fù)責(zé)在接收到上層發(fā)來的控制指令以后對單片機(jī)和舵機(jī)進(jìn)行控制。
上層處理系統(tǒng)則要讀取來自激光雷達(dá)和IMU的數(shù)據(jù)信息,然后這些數(shù)據(jù)經(jīng)過一系列的處理之后進(jìn)行發(fā)布,slam_gmapping訂閱這些消息進(jìn)行地圖的構(gòu)建。在進(jìn)行導(dǎo)航的過程中需要用到AMCL進(jìn)行定位,在move_base節(jié)點(diǎn)中進(jìn)行路徑規(guī)劃,然后發(fā)布控制命令消息,我們只需訂閱這個(gè)消息,當(dāng)有消息發(fā)布時(shí)則自動(dòng)執(zhí)行回調(diào)函數(shù)對單片機(jī)下發(fā)控制命令。在PC端通過PID計(jì)算出所需要的PWM之后,直接將其發(fā)送給單片機(jī)。同時(shí)我們也未直接使用move_base發(fā)布的控制命令,而是使用訂閱的局部規(guī)劃進(jìn)行處理,然后做出決策。
智能車的硬件部分主要由以下幾部分組成:激光雷達(dá)、姿態(tài)傳感器、無刷直流電機(jī)、舵機(jī)、處理器。智能車硬件系統(tǒng)整體結(jié)構(gòu)圖如圖1所示。
圖1 硬件機(jī)構(gòu)圖
電源電路主要包括電池供電電路、ROS主控電源電路、單片機(jī)電源電路、雷達(dá)電源電路、舵機(jī)電源電路等。如圖2所示。
圖2 電池供電電路
串口通信電路包括雷達(dá)與ROS主控之間的通信,單片機(jī)與ROS主控之間的通信兩部分。雷達(dá)與ROS主控之間的通信采用FT232RL芯片設(shè)計(jì)USB轉(zhuǎn)串口電路如圖3所示。
圖3 雷達(dá)與ROS主控串口通信電路
單片機(jī)與ROS主控之間的通信采用CH340G芯片設(shè)計(jì)USB轉(zhuǎn)串口電路如圖4所示。
軟件主要在ROS機(jī)器人操作系統(tǒng)上,添加上激光雷達(dá)和IMU的姿態(tài)傳感器的驅(qū)動(dòng)程序,這樣就可以獲得相應(yīng)周圍環(huán)境的信息和車整體的姿態(tài)信息;通過激光雷達(dá)可以采集到整體的環(huán)境信息。將這些采集到的數(shù)據(jù)進(jìn)行處理,通過SLAM的算法對整個(gè)環(huán)境地圖進(jìn)行構(gòu)建,這樣就可以獲得整體環(huán)境的地圖,再通過路徑規(guī)劃和自主導(dǎo)航,就可以控制車到達(dá)想要到的相應(yīng)位置上,系統(tǒng)的整體軟件框架如圖5所示。
圖4 單片機(jī)與ROS主控串口通信電路
圖5 軟件框架
通過上位機(jī)計(jì)算出相應(yīng)的控制數(shù)據(jù),通過串口傳輸?shù)絉T1052單片機(jī)。RT1052單片機(jī)搭載FreeRTOS嵌入式系統(tǒng),對串口通信、舵機(jī)控制、電機(jī)控制任務(wù)進(jìn)行調(diào)度,控制智能車以正確的姿態(tài)運(yùn)行。驅(qū)動(dòng)部分主要包括電機(jī)驅(qū)動(dòng)、舵機(jī)驅(qū)動(dòng)、PS2手柄驅(qū)動(dòng)。驅(qū)動(dòng)部分的程序框圖如圖6所示。
圖6 驅(qū)動(dòng)程序框圖
本課題關(guān)聯(lián)新興的人工智能與機(jī)器人行業(yè),以無人駕駛汽車為應(yīng)用背景,涵蓋豐富的專業(yè)知識(shí)與專業(yè)技能點(diǎn)。自行設(shè)計(jì)單片機(jī)部分的硬件電路,搭建機(jī)器人ROS系統(tǒng),編寫相應(yīng)的串口和驅(qū)動(dòng)程序。車模采用自制電路板和ROS系統(tǒng)進(jìn)行通信,車模能夠自主實(shí)現(xiàn)地圖構(gòu)建,自主規(guī)劃路徑和導(dǎo)航避障功能。