實現(xiàn)功能
按具體功能劃分
自主清理垃圾——將桌面大的垃圾推到地面,小的垃圾(和塵土)收集進(jìn)入垃圾儲藏室
語音控制、手機App控制、鍵盤控制、手勢控制
人體跟蹤、貓狗跟蹤、語音交互(到杯子那里去,到垃圾桶那里去,把杯子推回來,建圖后打亂桌面物品讓車子恢復(fù)原樣,播報攝像頭的檢測到的內(nèi)容,發(fā)現(xiàn)人站在車前播放:別當(dāng)我路等等,功能取決于你的想象)
按涉及領(lǐng)域劃分
語音交互:語音喚醒、語音開關(guān)機、語音控制車輛運動、語音調(diào)參、語音啟停進(jìn)程(開啟關(guān)閉人體跟蹤控制)、被識別物體語音播報
感知:目標(biāo)檢測與分割、根據(jù)自車位置推測目標(biāo)的平面位置和尺寸(結(jié)合cam和lidar)
定位建圖:slam建圖和更新(包括正障礙-杯子, 結(jié)合tof建立負(fù)障礙-桌面邊緣)
規(guī)劃控制:導(dǎo)航規(guī)劃,路徑規(guī)劃,跟蹤控制
硬件組成
硬件結(jié)構(gòu)圖
說明
攝像頭識別,激光雷達(dá)slam建圖
IMU和輪速計(編碼器)odom推算
TOF是斜向下安裝,用于提前檢測車輛是否到達(dá)桌面邊緣,如下圖
繼電器用于控制耗電量大的設(shè)備(語音模塊可以長期待機)
軟件組成
arduino用到了兩個庫,這連兩個i2c總線設(shè)備共用一路i2c :tof
mpu9250(imu的校準(zhǔn)程序在此庫的歷程里面,由于nano內(nèi)存有限,需要校準(zhǔn)imu的話需要先通過例程程序校準(zhǔn))
端口定義
const uint8_t Motor1_PinA = 5; const uint8_t Motor1_PinB = 6; const uint8_t Motor2_PinA = 9; const uint8_t Motor2_PinB = 10; const uint8_t Encoder1_PinA = 2; //中斷1 const uint8_t Encoder1_PinB = 4; const uint8_t Encoder2_PinA = 3; //中斷2 const uint8_t Encoder2_PinB = 7; SoftwareSerial mySerial(12, 13); // RX, TX
通訊協(xié)議
主要協(xié)議參考:OriginBot智能機器人開源套件
差異在于:
①imu的數(shù)據(jù)發(fā)送 = 處理后的數(shù)據(jù)/100, 而不是原始數(shù)據(jù);
②傳感器反饋里面沒有電壓值,有mcu的循環(huán)時間和轉(zhuǎn)發(fā)語音板的語音指令;
③控制器資源控制為從x3pi接收到的需要轉(zhuǎn)發(fā)的語音板的指令信息。
語音板子
由于MCU和語音板子單詞最多傳輸4個字節(jié),且語音板子處理邏輯有限,因此mcu他們之間的傳輸只能依靠提前定義好的協(xié)議(比如 1 = 自建通過),且X3pi和語音板子的通信是通過MCU中轉(zhuǎn),因此也需要定義他們之前的協(xié)議,例如FCOS檢測算法的80種類型分別對應(yīng)80個整數(shù),以此來實現(xiàn)被檢測目標(biāo)名稱的語音播報。
本文轉(zhuǎn)自地平線開發(fā)者社區(qū)
原作者:Mengxin
-
嵌入式
+關(guān)注
關(guān)注
5085文章
19138瀏覽量
305700 -
人工智能
+關(guān)注
關(guān)注
1791文章
47350瀏覽量
238753 -
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5504瀏覽量
121222
發(fā)布評論請先 登錄
相關(guān)推薦
評論