小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

軟件包大賞 | RT-Thread機(jī)器人操作系統(tǒng)(ROS)軟件包 rosserial

 西北望msm66g9f 2019-05-02

我叫吳晗,現(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-essential
2.2 安裝 ROS
1sudo sh -c 'echo 'deb http://packages./ros/ubuntu $(lsb_release -sc) main' > /etc/apt/sources.list.d/ros-latest.list'
2sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
3sudo apt update
4sudo apt install ros-melodic-desktop-full
2.3 ROS 初始化:
1sudo rosdep init
2rosdep update
3echo 'source /opt/ros/melodic/setup.bash' >> ~/.bashrc
4source ~/.bashrc
2.4 啟動(dòng) ROS
1roscore

3. RT-Thread 使用 rosserial

使用 rosserial 需要在 RT-Thread 的包管理器中選擇它,通信方式可以選擇TCP/UART,具體路徑如下:

1RT-Thread online packages
2  peripheral libraries and drivers --->
3    [*] rosserial: a protocol for Robots Operating System (ROS)
4        Device type (UART)  --->
5        (uart2) serial device name
6        roserial examples  --->
7          [*] Hello World  : hello world example using UART

如果使用 TCP 當(dāng)然要先確保 rt-thread 有網(wǎng)卡設(shè)備,并獲取到 IP 地址,例如:

  • enc28j60 + lwip

  • ESP8266 + AT Client

同時(shí)需要確認(rèn) BSD Socket API 支持是打開(kāi)的:

1RT-Thread Components  --->
2    Network  --->
3        Socket abstraction layer  --->
4        -*- Enable socket abstraction layer

然后就可以生成項(xiàng)目編譯上傳了

1pkgs --update
2scons --target=mdk5 -s

4. 建立 ROS 與 RTT 的連接

4.1 Ubuntu 啟用 rosserial

首先需要在 Ubuntu 上啟用 rosserial:

如果使用的串口:

1rosrun rosserial_python serial_node.py /dev/ttyUSB0

如果使用的 TCP:

1rosrun rosserial_python serial_node.py tcp
4.2 訂閱話題

當(dāng) ubuntu 和  rt-thread 用串口或者TCP連接上之后,就可以收到發(fā)來(lái)的消息了,以 hello world 為例:

1$ rostopic echo /chatter
2
3data: hello world
4---
5data: hello world
6---
7data: hello world
8---

當(dāng)然,rosserial 還提供了其他各種傳感器的數(shù)據(jù)包格式,這也是使用 ROS 的好處之一了。

相關(guān)鏈接(因微信無(wú)法插入外部鏈接,請(qǐng)將以下鏈接復(fù)制至外部瀏覽器打開(kāi))

  • 項(xiàng)目主頁(yè):

    https://github.com/wuhanstudio/rt-rosserial

  • 原始項(xiàng)目:

    https://github.com/ros-drivers/rosserial

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多