|
我叫吳晗,現(xiàn)在是華中科技大學(xué)能源學(xué)院研究生,專(zhuān)業(yè)是工程熱物理,今年6月份就要畢業(yè)了。雖然我的專(zhuān)業(yè)工程熱物理看起來(lái)好像和 RT-Thread 物聯(lián)網(wǎng)操作系統(tǒng)、ROS機(jī)器人操作系統(tǒng)并沒(méi)有太大聯(lián)系,但是在這個(gè)學(xué)科交叉、專(zhuān)業(yè)融合的時(shí)代,我覺(jué)得專(zhuān)業(yè)只會(huì)給一個(gè)人帶來(lái)更多的自由,而不是束縛。 最早接觸 RT-Thread應(yīng)該是在半年前,終于考完 GRE 決定好好放松一下,剛好看見(jiàn) “2018 RT-Thread 物聯(lián)網(wǎng)開(kāi)發(fā)者沙龍(武漢站)”,就打算趁著周末過(guò)去學(xué)習(xí)體驗(yàn)一下。其實(shí)之前我用 buildroot 在 荔枝派nano 上構(gòu)建 linux 根文件系統(tǒng)的時(shí)候,就在官方文檔上看到過(guò) RT-Thread 的支持,不過(guò)當(dāng)時(shí) RT-Thread 還沒(méi)給我留下太深的印象。在周末的分享會(huì)上,用官方提供的 env 工具 很方便地就在 STM32 Cortex-M3 上配置好了 RTT 內(nèi)核,還可以選擇各種已經(jīng)移植好的軟件包,RT-Thread一下就吸引了我。用 env 配置 RTT 內(nèi)核和軟件包,給我一種用 buildroot 配置 linux 內(nèi)核和軟件包的感覺(jué),非常輕松愉悅。 在分享會(huì)最后的提問(wèn)環(huán)節(jié)上,有人提到 RT-Thread 對(duì)顯示屏 UI 的支持還不算太好,而我剛好在那之前把單色液晶屏驅(qū)動(dòng)庫(kù) u8g2 移植到了 arm linux 上,于是分享會(huì)回來(lái)之后就把 u8g2 移植到了 RT-Thread 上,這樣 RT-Thread 就可以使用幾十種單色屏了,這也是我第一次給 RT-Thread 移植軟件包,雖然有很多不足,但是為我之后移植 rosserial 提供了不少經(jīng)驗(yàn),今天要介紹的就是上周移植的機(jī)器人操作系統(tǒng)(ROS)軟件包 rosserial。 想到把 roserial 移植到 RT-Thread 是因?yàn)?RTT 支持的處理器非常多,這樣只要把 rosserial 移植到了 RT-Thread 上,那么很多 MCU 就都能作為 ROS 機(jī)器人的節(jié)點(diǎn)了。這樣說(shuō)不定以后機(jī)器人就分為2個(gè)部分 ROS + RT-Thread 了:大量的計(jì)算用高性能主節(jié)點(diǎn)用 Ubuntu 跑 ROS,外設(shè)節(jié)點(diǎn)用 RT-Thread 采集傳感器數(shù)據(jù),感覺(jué)這樣搭配還是挺不錯(cuò)的 ~ rosserial 介紹1. 簡(jiǎn)介ROS (Robots Operating System) 在機(jī)器人領(lǐng)域應(yīng)當(dāng)是用得相當(dāng)廣了,最早是斯坦福大學(xué)的一個(gè)軟件框架,現(xiàn)在不管是工業(yè)機(jī)器人,還是娛樂(lè)用的機(jī)器人都運(yùn)行著ROS。 一個(gè)機(jī)器人通常有很多個(gè)部件、傳感器,為了保證機(jī)器人不會(huì)因?yàn)槟骋粋€(gè)傳感器故障,導(dǎo)致整個(gè)系統(tǒng)癱瘓,所以采用了分布式的節(jié)點(diǎn),利用不同節(jié)點(diǎn)之間的通訊收集傳感器數(shù)據(jù)和控制指令,當(dāng)中一個(gè)通訊協(xié)議就是 rosserial。 有了 rosserial 之后,就可以用一個(gè)比較強(qiáng)勁的處理器像 x64,ARM 來(lái)進(jìn)行大量計(jì)算,像SLAM、圖像識(shí)別等,而用一些計(jì)算性能不是那么強(qiáng)的 MCU 如 AVR,STM32 M0/M3 來(lái)和外設(shè)通訊,采集傳感器數(shù)據(jù),這樣整個(gè)機(jī)器人系統(tǒng)的節(jié)點(diǎn)都是可以熱插拔替換的,穩(wěn)定性就很強(qiáng)了。 2. Ubuntu 安裝并啟動(dòng) ROS安裝過(guò)程可以參照 ROS 的官網(wǎng),現(xiàn)在官方支持最好的還是 Debian 系列,下面以 Ubuntu 安裝 ROS Melodic 為例: 2.1 安裝依賴(lài):1sudo apt install python-rosinstall python-rosinstall-generator python-wstool build-essential2.2 安裝 ROS2.3 ROS 初始化:1sudo rosdep init2.4 啟動(dòng) ROS3. RT-Thread 使用 rosserial使用 rosserial 需要在 RT-Thread 的包管理器中選擇它,通信方式可以選擇TCP/UART,具體路徑如下: 1RT-Thread online packages如果使用 TCP 當(dāng)然要先確保 rt-thread 有網(wǎng)卡設(shè)備,并獲取到 IP 地址,例如:
同時(shí)需要確認(rèn) BSD Socket API 支持是打開(kāi)的: 然后就可以生成項(xiàng)目編譯上傳了 1pkgs --update4. 建立 ROS 與 RTT 的連接4.1 Ubuntu 啟用 rosserial首先需要在 Ubuntu 上啟用 rosserial: 如果使用的串口: 如果使用的 TCP: 1rosrun rosserial_python serial_node.py tcp4.2 訂閱話題當(dāng) ubuntu 和 rt-thread 用串口或者TCP連接上之后,就可以收到發(fā)來(lái)的消息了,以 hello world 為例: 當(dāng)然,rosserial 還提供了其他各種傳感器的數(shù)據(jù)包格式,這也是使用 ROS 的好處之一了。 相關(guān)鏈接(因微信無(wú)法插入外部鏈接,請(qǐng)將以下鏈接復(fù)制至外部瀏覽器打開(kāi))
|
|
|
來(lái)自: 西北望msm66g9f > 《培訓(xùn)》