







摘 要:為解決外賣配送“最后一公里”存在的一系列問題,實現真正的無接觸式配送,設計了一款基于物聯網的送餐機器人。機器人以STM32作為核心控制器,以卡片式電腦(Jetson Nano)作為ROS主控,通過激光雷達、IMU等多傳感器融合獲取外界信息并結合SLAM導航算法,實現機器人自主導航與實時定位,采用機械臂按電梯的方案實現機器人自主上下電梯,機械臂搭配深度攝像頭對電梯按鈕進行精準識別。同時機器人搭建了友好的人機交互系統,可通過液晶屏、語音模塊、微信小程序為機器人下達指令,并通過4G模塊連接云平臺,便于用戶通過微信小程序查看機器人當前的狀態。測試結果表明,機器人能有效提供優質的送餐服務。
關鍵詞:送餐機器人;物聯網技術;STM32;SLAM;ROS系統;微信小程序
中圖分類號:TP242 文獻標識碼:A 文章編號:2095-1302(2025)04-00-04
0 引 言
隨著互聯網平臺和餐飲行業的深度結合,餐飲外賣的交易額也在迅速增長。2015—2022年,我國線上外賣行業收入規模從490.7億上升至9 417億,增長超18倍。在線外賣占餐飲業收入比重從1.4%上升至21.4%。這意味著外賣市場規模巨大,外賣行業仍有較大的增長潛力[1-2]。
外賣服務如今已覆蓋人們生活的方方面面,但在外賣配送上樓方面仍存在一些問題,如在飯點高峰期,由于外賣配送單量較多,外賣員會因為等待電梯時間過長而耽誤配送。一些小區和公司為保證業主的人身安全和財產安全,禁止外賣員送餐上樓。隨著社會節奏的不斷加快,顧客對縮短外賣配送時間的需求不斷提高,針對上述問題,研究了一款可以將外賣配送上樓的送餐機器人,以提高外賣的配送效率。
本文介紹了一款基于物聯網的送餐機器人,該機器人配備有一個六自由度機械臂,能夠控制機器人精準按下電梯按鈕,通過多傳感器融合各方數據實現其在復雜環境下的穩定運行,用戶可以通過微信小程序與機器人通信。
1 系統總體設計
送餐機器人以STM32主控作為核心控制器,在Jetson Nano上運行ROS操作系統,STM32下位機和ROS系統通過串口進行傳感器數據和控制指令的交換。
STM32下位機負責采集里程計數據、IMU數據、電源電壓數據,并將數據打包發送給ROS系統,同時將數據通過4G模塊發送到云平臺,根據ROS系統下發的指令利用PID算法控制電機。
Jetson Nano與激光雷達通過串口通信,ROS系統將底層傳感器數據與激光雷達點云數據通過Cartographer算法融合,實現實時地圖構建,并通過ROS系統自帶的功能包move_base實現最優路徑規劃,利用AMCL實現機器人實時定位,并將控制指令發送給底層下位機[3-4]。
人機交互系統包括液晶屏、語音識別模塊、語音播報模塊、喇叭,用于提供直觀的機器人狀態信息與人機交互功能。
送餐機器人自主上下電梯采用控制機械臂按下電梯按鈕的方案。機械臂配備有Astra Pro Plus 深度相機與 USB 攝像頭,將圖像信息特征及相關坐標發送給下位機,下位機通過姿態解算控制機械臂運動,實現精準觸碰。
通信模塊選用4G模塊。將送餐機器人的狀態信息發送到微信小程序,通過微信小程序遠程控制送餐機器人。系統框圖如圖1所示。
2 系統硬件設計
送餐機器人的硬件部分主要包括電源模塊、主控模塊、電機模塊、感知模塊、機械臂模塊、交互模塊,系統硬件框圖如圖2所示。
2.1 電源模塊設計
送餐機器人的供電系統選用容量為6 000 mA·h的6 s動力鋰電池作為供電電源。考慮到閉合電源開關時,會產生浪涌電壓,故選用TVS二極管對其進行有效抑制。采用二極管設計成本較低的防反接電路,通過接入保險絲防止因電流過大導致電路短路。
采用德州儀器出品的DC/DC電源芯片LM2596設計降壓電路,該電路最大輸入電壓為40 V,最大負載電流為3 A,固定輸出電壓為5 V。該芯片具有高效率、低功耗的特點,可輸出穩定的電壓。
選用LDO芯片AMS1117-3.3將5 V電壓穩壓至3.3 V,該芯片最大輸入電壓為12 V,最大輸出電流為1 A,輸出電壓精度達2%,確保系統可靠運行。為了保證4G模塊穩定運行,采用單獨一路LDO降壓電路為4G模塊供電。
2.2 主控模塊設計
2.2.1 核心控制器
核心控制器用于控制機器人運動、采集底層傳感器信息、進行人機交互、與ROS系統通信、與微信小程序通信,因此需要大量的I/O接口。通過合理選擇控制器芯片,能夠有效提高系統的穩定性和響應速度。本系統選用意法半導體出品的STM32F407ZET6作為核心控制器,該控制器采用ARM Cortex-M4作為控制核心,工作頻率可達168 MHz,擁有144個I/O接口,同時還具有豐富的外設,如Encoder接口、TIM接口、USART接口、I2C接口、SPI接口、ADC接口等,能夠驅動機器人高效完成數據采集與處理任務,使系統具有較高的穩定性[5]。
2.2.2 ROS主控
ROS主控用于運行ROS系統進行地圖構建、機器人自主導航、圖像識別等任務,常見的ROS主控通常有樹莓派(Raspberry Pi 4B)和英偉達(Jetson Nano),兩者的參數對比見表1。
對比Raspberry Pi 4B和Jetson Nano的參數,Raspberry Pi 4B和Jetson Nano均使用了ARM CPU,Raspberry Pi 4B的Cortex-A72相比Jetson Nano的Cortex-A57擁有更低的功耗和更高的性能,因此Raspberry Pi 4B的CPU性能優于Jetson Nano。在GPU方面,Raspberry Pi 4B采用的是Broadcom VideoCore V,Jetson Nano采用的是128CUDA core Maxwell,Jetson Nano配備的128CUDA core Maxwell GPU在數據處理和圖像采集等方面優于Raspberry Pi 4B。由于送餐機器人需要進行SLAM構圖和圖像處理,于是在ROS主控選型時,更加側重于主控的GPU性能,故本文設計的送餐機器人采用Jetson Nano作為ROS主控[6]。
2.3 電機模塊設計
2.3.1 直流電機
機器人電機型號選用MD36P5,該電機的額定功率為35 W,支持供電電壓范圍為21~26 V,額定扭矩2.6 kg·cm,自帶高精度GMR編碼器,通過矯正后能夠提供精準的里程信息。
2.3.2 電機驅動
選用D50A模塊進行電機驅動,該驅動器有兩路H橋,每路通道可以輸出12 A電流,可驅動7~24 V的直流有刷電機與機器人所使用的MD36P5電機。STM32通過PWM引腳和普通引腳控制電機。該驅動器具有豐富的保護電路,內置欠壓、過壓、過熱、過流保護電路,控制信號與驅動器通過電氣隔離,具有較高的安全性。
2.4 感知模塊設計
2.4.1 陀螺儀
送餐機器人選用MPU6050傳感器感知姿態信息。MPU6050是一款6軸運動處理傳感器,該傳感器集成了3軸MEMS陀螺儀、3軸MEMS加速度計、1個數字運動處理器DMP和溫濕度傳感器,擁有2個I2C接口(通過I2C接口與STM32主控相連并通信)。由于溫度變化會導致傳感器數據波動,因此由芯片內部溫度傳感器采集芯片的工作溫度,并通過PID算法控制芯片溫度,使芯片穩定工作。芯片內置DMP,可以對傳感器數據進行融合和姿態解算,降低了主控在運動處理方面的負荷。該芯片具有測量精度高、集成度高、功耗低、功能強大等優點。
2.4.2 激光雷達
根據傳感器的不同,SLAM可以分為激光SLAM、慣性導航SLAM、視覺SLAM。本文的送餐機器人選用激光SLAM,激光雷達選用鐳神M10P,采用TOF方案,具備更高的穩定性,能夠得到25 m范圍內360°環境下的二維信息,掃描頻率高達12 Hz,測量精度為±3 cm。該雷達不僅定位精度高,還支持網口數據傳輸。送餐機器人的激光雷達通過網口與Jetson Nano連接,使數據傳輸更穩定、更迅速。
2.5 機械臂模塊設計
2.5.1 攝像頭
采用機械臂按電梯按鈕的方案實現了送餐機器人自主上下電梯的功能,機械臂要實現自主按電梯按鈕,除了獲取二維平面信息,進行推理和處理得到按鈕的坐標信息,還需要獲取每個像素點到攝像頭的距離數據,以獲得準確的三維空間信息。因此機械臂配備的攝像頭選用Astra Pro Plus深度相機,深度相機通過USB 3.0和Jetson Nano連接。
2.5.2 舵機
機械臂選用ES08MD數字舵機。在4.8 V供電電壓下,扭矩可達1.6 kg·cm。ES08MD帶有數字控制器,可以通過PWM信號控制舵機的轉動角度。在舵機的控制電路中,選用SS8050三極管搭建開關電路,通過STM32輸出PWM信號到三極管的基極,控制三極管導通或截止;集電極與舵機控制引腳相接,從而控制舵機轉動。采用三極管間接控制舵機,可以隔離控制信號(將STM32和舵機之間進行電氣隔離),利于保護核心控制器。三極管可以放大信號,增加驅動電流,避免引腳驅動電流過低造成舵機無法工作的情況[7]。
2.6 人機交互模塊設計
為了提供友好的人機交互體驗,采用觸摸液晶屏、語音識別模塊LD3320、語音播報模塊SYN6288等組建7英寸LCD人機交互系統。7英寸LCD HDMI顯示屏通過HDMI線插入Jetson Nano的HDMI接口,可實現觸摸功能,也可為屏幕供電。語音識別模塊LD3320通過串口與STM32通信。語音播報模塊SYN6288通過串口與STM32通信。在模塊的SP引腳接上3 W/8 Ω的喇叭,將模塊的BH引腳與STM32的輸入引腳相連,可通過檢測引腳的電平獲取模塊的狀態。
4G模塊選用了移遠公司出品的EC200S模塊,其下行速率為10 Mb/s,上行速率為5 Mb/s,采用獨立3.3 V電源為4G模塊供電。該模塊支持WiFi Scan定位,能夠提供機器人所在位置的經緯度信息。
3 系統軟件設計
3.1 核心控制器軟件設計
系統上電后,配置和初始化系統時鐘、I/O、I2C、SPI、定時器、串口、ADC等外設接口,然后打開定時器中斷和串口中斷,通過串口向4G模塊發送AT指令,連接云平臺,設定每間隔500 ms便將機器人的狀態信息通過4G模塊發送到云平臺。
機器人采集傳感器數據前,通過ADC外設采集電壓檢測電路的電壓,將采集的電壓經過換算得到鋰電池電壓,當電壓小于22 V時,利用軟件失能電機,將電壓數據經串口上發至ROS系統,并驅動語音播報模塊經串口發送指令,播報電量不足的提醒。若電壓大于22 V,則通過I2C協議驅動MPU6050獲得機器人的姿態信息,讀取和清空硬件編碼器數據,并在讀取后將其換算為電機轉速。采集完傳感器數據后,將電壓信息、姿態信息、里程計信息通過協議打包發送給ROS系統。當串口中斷收到ROS系統或者微信小程序下發的控制指令時,則進入解析指令程序,根據通信協議解析下發的指令,得到機器人各軸期望的運動速度,經運動解算得到四個電機的期望轉速,結合實際轉速通過PID算法得到四個電機的PWM占空比,然后輸出PWM信號至電機驅動模塊,從而實現對機器人的控制。核心控制器程序流程如圖3所示。
3.2 4G模塊軟件設計
要實現4G模塊上云,首先要在阿里云平臺創建產品和設備,并查看設備的三元組參數、IP地址、端口號,通過密碼生成軟件獲得MQTT連接密碼,之后修改MQTT的參數,經由AT指令使4G模塊利用MQTT協議連接云平臺,此時可以在設備列表看到在線的設備。4G模塊只有訂閱相關主題,才能獲取云平臺發送的數據[8]。
3.3 微信小程序軟件設計
微信小程序通過云平臺和4G模塊通信,微信小程序通過MQTT協議連接云平臺,并訂閱相關主題,接收4G模塊發送的信息(云平臺相當于信息中轉端)。外賣員可通過微信小程序填寫外賣信息,送餐訂單將根據手機號同步到用戶的微信小程序,實現無接觸投放。用戶通過微信小程序查看外賣的狀態信息。微信小程序界面如圖4所示[9-10]。
4 測 試
送餐機器人由鋁型材和亞克力板材組建,實物如圖5所示。為測試該機器人可否在顛簸路段行走,首先運行送餐機器人的建圖功能,發現送餐機器人能夠進行2D構圖,并實時保存地圖,建圖效果如圖6所示。建圖完畢后,測試送餐機器人的整體功能,發現該機器人能夠精準識別并按下電梯按鈕,實現自主上下電梯,圖像識別效果如圖7所示。同時,機器人還可自主導航,微信小程序能夠正常接收機器人的狀態信息,并控制機器人運動。
5 結 語
基于物聯網的送餐機器人具備2D地圖構建、自主導航、實時定位、遠程控制等功能,且穩定性高、工作效率高、響應速度快,能有效提供無接觸送餐服務。
參考文獻
[1]于姍姍. 外賣平臺“二選一”的社會福利和競爭效應分析[D].北京:北方工業大學,2023.
[2]邱斌. 外賣平臺的競爭戰略研究[D].南昌:華東交通大學,2018.
[3]陳歆穎. 送餐機器人嵌入式控制系統設計[D].南京:南京林業大學,2023.
[4]梁明亮,張凱,王云飛. SLAM智能機器人關鍵技術的研發[J].電子制作,2022,30(9):82-84.
[5]鄧輝,李燁.基于STM32F407的智能溫室大棚系統[J].中國新技術新產品,2023(14):37-39.
[6]馬嘯龍. 面向送餐的移動機器人的SLAM與路徑規劃方法研究及應用[D].蘭州:蘭州大學,2024.
[7]羅國慶.三極管電流放大原理教學的改進[J].知識文庫,2023(3): 103-105.
[8]韋洪浪,陳基恒,韋寧燕.基于阿里云平臺的多參數實時在線水質監測系統[J].大眾科技,2022,24(4):7-10.
[9]張耕問,錢昕彤,崔坤鵬.一個基于微信小程序的海外拼團購物平臺的設計[J].電腦知識與技術,2023,19(33):29-31.
[10]成瀾.基于OneNET物聯網云平臺與MQTT協議的智能家居模型通用控制小程序設計[J].電腦與電信,2022(7):10-13.