回顧2022年度ROS機器人
我一直想建立一個定制的3D打印機器人,但它似乎是一個時間密集的過程。當Rafaello在2022年發(fā)表他的設計時,我還在學習很多關于ROS2的知識,不確定我是否可以建造一個定制的機器人。
快進到2025年6月,我已經得到了所有的3d打印部件,Pololu電機,oled,滾珠軸承,Adafruit Feather電機控制器和Jetson TX2 NX作為大腦(一個簡單的直接升級到原來的Jetson Nano)。少了一樣東西,那就是PCB。
定制擴展PCB設計
我本來打算用原來的設計,但覺得它少了一些東西。在那些缺失的東西中,這個板確實需要更好地利用空間——包括實際連接器和組件的空間。由于我手頭有一臺T962回流爐,我可以放棄通孔組件,直接使用SMD。
我選擇在電路板上添加一個ICM20948 I2C IMU,它將與一個OLED顯示器一起位于I2C總線上。電機控制接口將保持相似,但我會通過JST-XH添加連接器。I2C連接器將是JST-SH 4引腳連接器。我不再掙扎于廉價的杜邦連接器從引腳頭接口斷開(沒有應變救濟!)。
在Kicad設計完成后,我將gerber文件發(fā)送到osh park。當我收到木板時,我知道模板是最重要的部分,于是我決定從當地的制造商Tropical stencil那里買一個。它并不便宜,大約是從PCBway獲得模板的價格的10倍,但它是一個質量很好的模板,在粘貼應用時派上了用場(稍后會詳細介紹)。
在這些組件都到達后,我不能再拖延構建了。
TPU燈絲問題
在構建過程中,我有一些3d打印踏板的問題,因為我使用的TPU太硬了,我需要一個更靈活的TPU。我最終打破了一個胎面支撐支架!
在獲得TPU正確后,我有一個部分構建減去修改的擴展PCB
第一次PCB嘗試失敗
我第一次嘗試回流焊失敗了:IMU QFN封裝很棘手。我最初使用了廉價的紙板切割和備用pcb試圖夾心pcb,但這是棘手的,由于奧什公園pcb的有尖的邊緣,從面板斷開是留下的。我無法將這些與傳統的pcb和紙板方法對齊,所以我再次轉向3d打印以獲得定制的pcb支架,這樣我就可以應用焊膏并獲得QFN。成功!我已經檢測到IMU超過i2c檢測和有效讀數!
我確實必須將jetson i2c設備時鐘速率從400k修改為100k,可能是由于PCB中i2c線路上的上拉電阻尺寸不正確。修復了軟件中的一個小問題。
ROS2 IMU處理
接下來的步驟是實現基于Adafruit icm20X庫的自定義ROS2驅動程序。
我分叉了一個現有的repo,并用Adafruit的實現取代了底層驅動程序,可以在github上找到。最后,我不得不克隆并構建這個包來獲得madgwick過濾器和過程方向,這樣我就可以看到rviz2中的方向變化。接下來,我修改了Nanosaur urdf xacro文件,以包含IMU的轉換。有一些很酷的ROS2 TF包可以讓你在rviz2之外可視化你的轉換:
現在我的轉換是正確的,我啟動rivz2并驗證方向。
結論
在2025年,我建議從另一個機器人平臺開始,比如Duckiebot,用于簡單的差速器驅動套件,或者選擇更復雜的Hiwonder或Yahboom套件,這也是基于杰森的。
一般來說,納米龍的問題是,除非你有3d打印機長絲的知識,否則很難建造。另一個缺點是缺乏用于定位的電機編碼器。這將是更好的使設計稍微寬,以適應電機編碼器,因為Pololu使這些在成本上略有顛簸。
在編碼器之后,該平臺確實需要一個2D激光雷達,如Slamtec C1。如果沒有這些硬件部件,我們就只能實現Nvidia專有的Elbrus SLAM庫來進行定位,它依賴于英特爾Realsense立體相機(例如D455)。我們也依賴于原來的基于Ubuntu 18.04的jetpack上的docker。如果同時使用編碼器和2D激光雷達運行ROS2 SLAM工具箱,而不必求助于Visual SLAM +昂貴的Realsense,那就太棒了。
Docker對于初學者來說可能會有問題——在這個項目中,我基于Tegrademo倉庫構建了一個自定義的yocto發(fā)行版,并且可以本地運行ROS 2。考慮到所有這些問題,這是一個有趣且具有挑戰(zhàn)性的構建,我學到了很多!
本文編譯自hackster.io





