0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

fireflyROC-RK3308主板ROS簡(jiǎn)介

firefly ? 來(lái)源:firefly ? 作者:firefly ? 2019-12-21 11:20 ? 次閱讀

ROS 使用指南

簡(jiǎn)介

ROS ( Robot Operating System, 機(jī)器人操作系統(tǒng)) ,提供一系列程序庫(kù)和工具以幫助軟件開(kāi)發(fā)者創(chuàng)建機(jī)器人應(yīng)用軟件。它提供了硬件抽象、設(shè)備驅(qū)動(dòng)、函數(shù)庫(kù)、可視化工具、消息傳遞和軟件包管理等諸多功能。ROS 遵循 BSD 開(kāi)源許可協(xié)議。

ROS 維基

ROS 支持版本

目前 ROS 的發(fā)布版本,官方只支持 Ubuntu Linux 等安裝,但由于在 OpenEmbedded/Yocto 框架下維護(hù)了meta-ros layer,使得我們可以將ROS集成到同樣基于 Openembedded 框架 的嵌入式Linux中運(yùn)行。

OpenEmbedded 框架提供了通用的交叉編譯環(huán)境。在此開(kāi)發(fā)環(huán)境允許開(kāi)發(fā)人員自己配置編譯工具鏈,編譯程序,并為其嵌入式系統(tǒng),創(chuàng)建完整的Linux發(fā)行版。 它可通過(guò)豐富的板級(jí)支持包,以支持各種硬件架構(gòu)和嵌入式主板。

目前 ROS OpenEmbedded meta-ros Layer 有三個(gè)版本,分別支持 ROS hydro,indigo 和 kinetic 發(fā)行版本。其中 ROS indigo是支持最好的一個(gè)版本,ROC-RK3308-CC ROS 系統(tǒng)所集成的也是這個(gè)版本,同時(shí)根文件系統(tǒng)是基于的 Yocto 版本為 Rocko所構(gòu)建的。

PC 端(Ubunut主機(jī))安裝 ROS

查看ROS所有的發(fā)行版本。目前 ROS 最新的版本,也是官方推薦的版本是 ROS Melodic Morenia 。其安裝教程官方有很詳細(xì)的介紹,需要注意的是,不同的Ubuntu版本,對(duì)應(yīng)安裝不同的 ROS 版本,例如 ROS Melodic Morenia 主要針對(duì) Ubuntu 18.04 (Bionic) release,而 ROS Indigo Igloo 則針對(duì) Ubuntu 14.04 LTS (Trusty) release。

由于 ROC-RK3308-CC 的 ROS 系統(tǒng)使用的是 ROS Indigo Igloo 版本,所以我們主機(jī)這里也安裝 ROS Indigo Igloo 版本進(jìn)行測(cè)試,下面的簡(jiǎn)要安裝教程也是主要針對(duì) Ubuntu 14.04 (ROS Indigo),其他版本的安裝教程可到官網(wǎng)維基查詢。

平臺(tái)說(shuō)明

ROS Indigo 僅僅只支持Ubuntu 13.10 (Saucy) 和 Ubuntu 14.04 (Trusty)。這里在Ubuntu 14.04系統(tǒng)上安裝ROS。

安裝步驟

配置Ubuntu倉(cāng)庫(kù)

允許”restricted”,”universe”,”multiverse.”。

設(shè)置軟件源

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

或者來(lái)自中國(guó)的源:

sudo sh -c '. /etc/lsb-release && echo "deb http://ros.exbot.net/rospackage/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'

可根據(jù)UbuntuMirrors自己選。

添加key

sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116

安裝

1、更新軟件索引

sudo apt-get update

2、安裝:

這里推薦 Desktop-Full 安裝: ROS, rqt, rviz, robot-generic libraries, 2D/3D simulators and 2D/3D perception。

sudo apt-get install ros-indigo-desktop-full

3、初始化 rosdep:

使用ROS之前,需要初始化rosdep,以解決一些系統(tǒng)依賴問(wèn)題。

sudo rosdep init rosdep update

4、環(huán)境配置

echo "source /opt/ros/indigo/setup.bash" >> ~/.bashrc source ~/.bashrc

5、推薦安裝 rosinstall,一個(gè)非常好用的命令行工具

sudo apt-get install python-rosinstall

6、測(cè)試

安裝官方的教學(xué)例子:

sudo apt-get install ros-indigo-ros-tutorials

啟動(dòng)其中一個(gè)例子:

roslaunch roscpp_tutorials talker_listener.launch

一切正常的話,你將會(huì)看到以下結(jié)果:

SUMMARY ======== PARAMETERS * /rosdistro: indigo * /rosversion: 1.11.21 NODES / listener (roscpp_tutorials/listener) talker (roscpp_tutorials/talker) ROS_MASTER_URI=http://localhost:11311 core service [/rosout] found process[listener-1]: started with pid [9520] process[talker-2]: started with pid [9521] [ INFO] [1545896255.189016471]: hello world 0 [ INFO] [1545896255.289000624]: hello world 1 [ INFO] [1545896255.388990355]: hello world 2 [ INFO] [1545896255.489031727]: hello world 3 [ INFO] [1545896255.489457481]: I heard: [hello world 3] [ INFO] [1545896255.589028597]: hello world 4 [ INFO] [1545896255.589358894]: I heard: [hello world 4]

使用教程

接下來(lái)。通過(guò)我們一個(gè)簡(jiǎn)單的demo:firefly_controller,來(lái)闡述 ROS 系統(tǒng)的使用方式。

此 Demo 展示了如何在兩臺(tái)機(jī)器上使用ROS系統(tǒng),詳述了使用ROS_MASTER_URI來(lái)配置多臺(tái)機(jī)器使用同一個(gè)master ,其主要功能是:

通過(guò)PC端的鍵盤(pán),控制 ROC-RK3308-CC 主板上的兩個(gè)LED燈的亮滅

外接溫濕度傳感器,獲取當(dāng)前的溫濕度值

其中采用的溫濕度傳感器模塊是:SHT30,盛世瑞恩出產(chǎn)的一款溫濕度傳感器,基于i2c傳輸協(xié)議。代碼主要參考了ROC-RK3308-CC開(kāi)發(fā)實(shí)例總結(jié)–SHT30溫濕度模塊調(diào)試。

ROC-RK3308-CC 設(shè)備端準(zhǔn)備

燒寫(xiě)固件

按照《升級(jí)固件》進(jìn)入loader模式,從固件地址: ROC-RK3308-CC_Yocto_ROShttps://pan.baidu.com/s/16tzgJBa-jY0lRB_K_yvcqA下載固件,解壓,執(zhí)行命令:

sudo upgrade_tool ul MiniLoaderAll.bin && \ sudo upgrade_tool di -p parameter.txt && \ sudo upgrade_tool di -uboot uboot.img && \ sudo upgrade_tool di -trust trust.img && \ sudo upgrade_tool di -boot zboot.img && \ sudo upgrade_tool di -rootfs rootfs.img && sudo upgrade_tool rd

按照《上手教程》,給 ROC-RK3308-CC 主板上電開(kāi)機(jī),接上串口。上電后需要輸入賬號(hào)密碼進(jìn)入系統(tǒng),輸入root即可,無(wú)需密碼。

注意:如果有溫濕度傳感器模塊SHT30,先接上模塊再上電,這里使用I2C1進(jìn)行通信,按引腳描述圖接上VCC5、GND、I2C1_SDA、I2C1_SCL即可。

初始化配置

根文件系統(tǒng)里,我們放了兩個(gè)小工具,方便配置環(huán)境:

ls /home/root setup.sh wifi.sh

首先上電開(kāi)機(jī)后,先連接wifi(WiFi需要和PC主機(jī)在同一網(wǎng)段,可互相ping通),通過(guò)腳本配置,其中ssid為你的WiFi賬號(hào),psk為你的密碼

./wifi.sh $ssid $psk

接著配置 ROS 環(huán)境,這里我們將以PC主機(jī)端為master(整個(gè)ROS運(yùn)行環(huán)境只需要一個(gè)master),所以這里不需要啟動(dòng) roscore

source ./setup.sh $master_ip

其中master_ip是PC主機(jī)端的ip地址,這里主要配置了ROS_MASTER_URI和ROS_HOSTNAME,具體細(xì)節(jié)查看 setup.sh 腳本。

運(yùn)行 demo 節(jié)點(diǎn)

rosrun firefly_controller firefly_controller

等待 PC主機(jī)端 準(zhǔn)備好即可。

PC 端準(zhǔn)備

注意:以下操作方法使用了catkin工具,只適用于ROS Groovy及后期版本,對(duì)于ROS Fuerte及早期版本請(qǐng)使用rosbuild,這里不講述。

Demo 軟件包下載

Demo 軟件包下載:firefly_iot_keyboard.tar.bz2https://pan.baidu.com/s/11DojLWYYJ9uuUsmNMsWyFg

創(chuàng)建 ROS 工作空間

如果你是初次安裝 ROS,可通過(guò)catkin方式創(chuàng)建ROS工作空間:

mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src

即使這個(gè)工作空間是空的(在src目錄中沒(méi)有任何軟件包,只有一個(gè)CMakeLists.txt鏈接文件),你也可以編譯它。

cd ~/catkin_ws/ catkin_make

編譯

現(xiàn)在先將下載的Demo 軟件包解壓到工作空間的src目錄:

tar -xjf firefly_iot_keyboard.tar.bz2 -C ~/catkin_ws/src/

然后編譯工作空間:

cd ~/catkin_ws/ catkin_make

執(zhí)行

分別打開(kāi)兩個(gè)終端,每個(gè)終端都需要按以下操作配置。

配置當(dāng)前工作空間為ROS工作環(huán)境的最頂層:

cd ~/catkin_ws/ source devel/setup.bash

配置ROS_HOSTNAME為主機(jī)ip地址,不然設(shè)備端那邊不識(shí)別。

export ROS_HOSTNAME=$master_ip

其中一個(gè)終端運(yùn)行demo鍵盤(pán)控制節(jié)點(diǎn):

rosrun firefly_iot_keyboard keyboard.py

另一個(gè)終端運(yùn)行demo接收節(jié)點(diǎn)

rosrun firefly_iot_keyboard receiver.py

最終效果

效果圖如下:

PC 端

注意,如果不能控制,請(qǐng)選中 keyboard.py 所在的終端窗口以確保你的按鍵輸入能夠被捕獲。

終端鍵盤(pán)控制:

rosrun firefly_iot_keyboard keyboard.py Reading from the keyboard and Publishing to firefly_controller! ---------------------------------------------------------------- keymap: LED: b : Blue LED ON/OFF r : Red LED ON/OFF Sensor: t : show Temperature and Humidity

當(dāng)按下r和b,將會(huì)控制設(shè)備端紅藍(lán)LED燈的亮滅,如果外接了溫濕度傳感器sht30,按下t將會(huì)獲得設(shè)備端傳過(guò)來(lái)的溫濕度值,被另一”receiver.py”所在終端接受。

終端接收:

rosrun firefly_iot_keyboard receiver.py currently: Temperature 28.607613c Humidity 49.396507%

ROC-RK3308-CC 設(shè)備端

串口效果:

root@rockchip-rk3308-evb:~# rosrun firefly_controller firefly_controller [ INFO] [1545900033.047350122]: I heard: [blue] [ INFO] [1545900034.086951914]: I heard: [red] [ INFO] [1545900035.106874956]: I heard: [sht30]

調(diào)試

使用rosnode list命令,列出活躍的節(jié)點(diǎn):

rosnode list /firefly_base_controller /firefly_iot_keyboard /firefly_iot_receiver /rosout

可看到當(dāng)前運(yùn)行的demo,有三個(gè)節(jié)點(diǎn)在運(yùn)行:/firefly_base_controller、/firefly_iot_keyboard、/firefly_iot_receiver

通過(guò)rostopic list命令,能夠列出所有當(dāng)前訂閱和發(fā)布的話題:

rostopic list /cmd_vel /rosout /rosout_agg /temphumidity

這里可看到當(dāng)前運(yùn)行的demo有發(fā)布了兩個(gè)Topic:/temphumidity、/cmd_vel

使用命令rostopic echo可以顯示在某個(gè)話題上發(fā)布的數(shù)據(jù):

rostopic echo /temphumidity humidity: 50.0968933105 temp: 24.1374816895 --- humidity: 51.638053894 temp: 23.3657588959 ---

使用工具rqt_graph查看當(dāng)前 ROS 系統(tǒng)運(yùn)行情況的圖形:

rosrun rqt_graph rqt_graph

這里需要事先安裝 rqt_graph :

sudo apt-get install ros-indigo-rqt sudo apt-get install ros-indigo-rqt-common-plugins

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11123

    瀏覽量

    207910
  • 嵌入式主板
    +關(guān)注

    關(guān)注

    7

    文章

    6081

    瀏覽量

    34942
  • Firefly
    +關(guān)注

    關(guān)注

    2

    文章

    538

    瀏覽量

    6930
  • RK3308
    +關(guān)注

    關(guān)注

    1

    文章

    39

    瀏覽量

    1047
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    ROC-RK3308-CC 四核64位AIOT主板

    `主板微型小巧,采用了高性價(jià)比RK3308核心處理器,整合高性能CODEC音頻編解碼器,支持國(guó)內(nèi)外多種人工智能及物聯(lián)網(wǎng)操作系統(tǒng),可配置六個(gè)麥克風(fēng)陣列以及POE擴(kuò)展板。ROC-RK3308-CC是一款
    發(fā)表于 10-12 11:06

    ROC-RK3308主板CC固件編譯的知識(shí)點(diǎn)解析,絕對(duì)實(shí)用

    ROC-RK3308主板CC固件編譯的知識(shí)點(diǎn)解析,絕對(duì)實(shí)用
    發(fā)表于 03-09 07:29

    RK3308-CC-PLUS板子啟用ROS模塊后交叉編譯,menuconfig中沒(méi)有ROS選項(xiàng)怎么解決?

    RK3308-CC-PLUS板子啟用ROS模塊后交叉編譯,menuconfig中沒(méi)有ROS選項(xiàng)怎么解決?
    發(fā)表于 03-09 06:23

    分享一份RK3308開(kāi)發(fā)板ROS使用手冊(cè)指南

    ,ROC-RK3308-CC ROS 系統(tǒng)所集成的也是這個(gè)版本,同時(shí)根文件系統(tǒng)是基于的 Yocto 版本為 Rocko所構(gòu)建的。原作者:Firefly Wiki
    發(fā)表于 08-16 18:04

    firefly RK3308開(kāi)發(fā)板ROC-RK3308-CC四核64位AIOT主板規(guī)格

    ROC-RK3308-CC 四核64位AIOT主板
    的頭像 發(fā)表于 11-03 11:08 ?4757次閱讀
    firefly <b class='flag-5'>RK3308</b>開(kāi)發(fā)板ROC-<b class='flag-5'>RK3308</b>-CC四核64位AIOT<b class='flag-5'>主板</b>規(guī)格

    fireflyROC-RK3308B-CC固件編譯工具簡(jiǎn)介

    Docker鏡像內(nèi)配置好了編譯SDK所需的依賴環(huán)境,無(wú)需在本地配置編譯環(huán)境,進(jìn)入對(duì)應(yīng)的docker容器內(nèi)進(jìn)行SDK編譯即可。 目前暫時(shí)只支持ROC-RK3308B-CC Buildroot SDK
    的頭像 發(fā)表于 12-20 09:30 ?1893次閱讀

    fireflyROC-RK3308B-CC--啟動(dòng)模式說(shuō)明

    ROC-RK3308B-CC 有著非常靈活的啟動(dòng)方式。一般情況下,除非硬件損壞,ROC-RK3308B-CC 主板是不會(huì)變磚的。
    的頭像 發(fā)表于 12-20 09:20 ?2798次閱讀

    fireflyROC-RK3308B主板CC教程簡(jiǎn)介

    確認(rèn)主板配件連接無(wú)誤后,通過(guò) USB Type-C 線給 ROC-RK3308B-CC 供電。
    的頭像 發(fā)表于 12-20 09:32 ?2233次閱讀

    fireflyROC-RK3308主板CC源碼簡(jiǎn)介

    firefly
    的頭像 發(fā)表于 12-20 10:12 ?7383次閱讀

    fireflyROC-RK3328主板PC簡(jiǎn)介

    ROC-RK3328-PC,是 Firefly 榮譽(yù)出品的第一塊信用卡大小、性能強(qiáng)、功耗小的開(kāi)源主板。
    的頭像 發(fā)表于 12-21 10:37 ?3073次閱讀
    <b class='flag-5'>fireflyROC-RK</b>3328<b class='flag-5'>主板</b>PC<b class='flag-5'>簡(jiǎn)介</b>

    fireflyROC-RK3308U-Boot簡(jiǎn)介

    RK U-Boot 基于開(kāi)源的 U-Boot 進(jìn)行開(kāi)發(fā),工作模式有啟動(dòng)加載模式和下載模式。
    的頭像 發(fā)表于 12-21 11:10 ?2054次閱讀
    <b class='flag-5'>fireflyROC-RK3308</b>U-Boot<b class='flag-5'>簡(jiǎn)介</b>

    微雪電子RK3308主板CC啟動(dòng)模式介紹

    ROC-RK3308-CC 有著非常靈活的啟動(dòng)方式。一般情況下,除非硬件損壞,ROC-RK3308-CC 主板是不會(huì)變磚的。
    的頭像 發(fā)表于 12-23 15:47 ?2303次閱讀

    微雪電子RK3308主板CC上手介紹

    確認(rèn)主板配件連接無(wú)誤后,通過(guò) USB Type-C 線給 ROC-RK3308-CC 供電。
    的頭像 發(fā)表于 12-23 15:50 ?2195次閱讀

    IoT四核64位開(kāi)源主板ROC RK3308B CC規(guī)格書(shū)

    電子發(fā)燒友網(wǎng)站提供《IoT四核64位開(kāi)源主板ROC RK3308B CC規(guī)格書(shū).pdf》資料免費(fèi)下載
    發(fā)表于 09-13 09:35 ?1次下載
    IoT四核64位開(kāi)源<b class='flag-5'>主板</b>ROC <b class='flag-5'>RK3308</b>B CC規(guī)格書(shū)

    四核64位開(kāi)源主板ROC RK3308B CC Plus規(guī)格書(shū)

    電子發(fā)燒友網(wǎng)站提供《四核64位開(kāi)源主板ROC RK3308B CC Plus規(guī)格書(shū).pdf》資料免費(fèi)下載
    發(fā)表于 09-13 09:33 ?0次下載
    四核64位開(kāi)源<b class='flag-5'>主板</b>ROC <b class='flag-5'>RK3308</b>B CC Plus規(guī)格書(shū)