精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

fireflyROC-RK3308主板ROS簡介

firefly ? 來源:firefly ? 作者:firefly ? 2019-12-21 11:20 ? 次閱讀

ROS 使用指南

簡介

ROS ( Robot Operating System, 機器人操作系統) ,提供一系列程序庫和工具以幫助軟件開發者創建機器人應用軟件。它提供了硬件抽象、設備驅動、函數庫、可視化工具、消息傳遞和軟件包管理等諸多功能。ROS 遵循 BSD 開源許可協議。

ROS 維基

ROS 支持版本

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

OpenEmbedded 框架提供了通用的交叉編譯環境。在此開發環境允許開發人員自己配置編譯工具鏈,編譯程序,并為其嵌入式系統,創建完整的Linux發行版。 它可通過豐富的板級支持包,以支持各種硬件架構和嵌入式主板。

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

PC 端(Ubunut主機)安裝 ROS

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

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

平臺說明

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

安裝步驟

配置Ubuntu倉庫

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

設置軟件源

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

或者來自中國的源:

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'

可根據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,以解決一些系統依賴問題。

sudo rosdep init rosdep update

4、環境配置

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

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

sudo apt-get install python-rosinstall

6、測試

安裝官方的教學例子:

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

啟動其中一個例子:

roslaunch roscpp_tutorials talker_listener.launch

一切正常的話,你將會看到以下結果:

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]

使用教程

接下來。通過我們一個簡單的demo:firefly_controller,來闡述 ROS 系統的使用方式。

此 Demo 展示了如何在兩臺機器上使用ROS系統,詳述了使用ROS_MASTER_URI來配置多臺機器使用同一個master ,其主要功能是:

通過PC端的鍵盤,控制 ROC-RK3308-CC 主板上的兩個LED燈的亮滅

外接溫濕度傳感器,獲取當前的溫濕度值

其中采用的溫濕度傳感器模塊是:SHT30,盛世瑞恩出產的一款溫濕度傳感器,基于i2c傳輸協議。代碼主要參考了ROC-RK3308-CC開發實例總結–SHT30溫濕度模塊調試。

ROC-RK3308-CC 設備端準備

燒寫固件

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

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 主板上電開機,接上串口。上電后需要輸入賬號密碼進入系統,輸入root即可,無需密碼。

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

初始化配置

根文件系統里,我們放了兩個小工具,方便配置環境:

ls /home/root setup.sh wifi.sh

首先上電開機后,先連接wifi(WiFi需要和PC主機在同一網段,可互相ping通),通過腳本配置,其中ssid為你的WiFi賬號,psk為你的密碼

./wifi.sh $ssid $psk

接著配置 ROS 環境,這里我們將以PC主機端為master(整個ROS運行環境只需要一個master),所以這里不需要啟動 roscore

source ./setup.sh $master_ip

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

運行 demo 節點

rosrun firefly_controller firefly_controller

等待 PC主機端 準備好即可。

PC 端準備

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

Demo 軟件包下載

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

創建 ROS 工作空間

如果你是初次安裝 ROS,可通過catkin方式創建ROS工作空間:

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

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

cd ~/catkin_ws/ catkin_make

編譯

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

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

然后編譯工作空間:

cd ~/catkin_ws/ catkin_make

執行

分別打開兩個終端,每個終端都需要按以下操作配置。

配置當前工作空間為ROS工作環境的最頂層:

cd ~/catkin_ws/ source devel/setup.bash

配置ROS_HOSTNAME為主機ip地址,不然設備端那邊不識別。

export ROS_HOSTNAME=$master_ip

其中一個終端運行demo鍵盤控制節點:

rosrun firefly_iot_keyboard keyboard.py

另一個終端運行demo接收節點

rosrun firefly_iot_keyboard receiver.py

最終效果

效果圖如下:

PC 端

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

終端鍵盤控制:

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

當按下r和b,將會控制設備端紅藍LED燈的亮滅,如果外接了溫濕度傳感器sht30,按下t將會獲得設備端傳過來的溫濕度值,被另一”receiver.py”所在終端接受。

終端接收:

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

ROC-RK3308-CC 設備端

串口效果:

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]

調試

使用rosnode list命令,列出活躍的節點:

rosnode list /firefly_base_controller /firefly_iot_keyboard /firefly_iot_receiver /rosout

可看到當前運行的demo,有三個節點在運行:/firefly_base_controller、/firefly_iot_keyboard、/firefly_iot_receiver

通過rostopic list命令,能夠列出所有當前訂閱和發布的話題:

rostopic list /cmd_vel /rosout /rosout_agg /temphumidity

這里可看到當前運行的demo有發布了兩個Topic:/temphumidity、/cmd_vel

使用命令rostopic echo可以顯示在某個話題上發布的數據:

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

使用工具rqt_graph查看當前 ROS 系統運行情況的圖形:

rosrun rqt_graph rqt_graph

這里需要事先安裝 rqt_graph :

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

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    87

    文章

    11225

    瀏覽量

    208920
  • 嵌入式主板
    +關注

    關注

    7

    文章

    6085

    瀏覽量

    35213
  • Firefly
    +關注

    關注

    2

    文章

    538

    瀏覽量

    6985
  • RK3308
    +關注

    關注

    1

    文章

    39

    瀏覽量

    1112
收藏 人收藏

    評論

    相關推薦

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

    `主板微型小巧,采用了高性價比RK3308核心處理器,整合高性能CODEC音頻編解碼器,支持國內外多種人工智能及物聯網操作系統,可配置六個麥克風陣列以及POE擴展板。ROC-RK3308-CC是一款
    發表于 10-12 11:06

    ROC-RK3308主板CC固件編譯的知識點解析,絕對實用

    ROC-RK3308主板CC固件編譯的知識點解析,絕對實用
    發表于 03-09 07:29

    RK3308-CC-PLUS板子啟用ROS模塊后交叉編譯,menuconfig中沒有ROS選項怎么解決?

    RK3308-CC-PLUS板子啟用ROS模塊后交叉編譯,menuconfig中沒有ROS選項怎么解決?
    發表于 03-09 06:23

    分享一份RK3308開發板ROS使用手冊指南

    ,ROC-RK3308-CC ROS 系統所集成的也是這個版本,同時根文件系統是基于的 Yocto 版本為 Rocko所構建的。原作者:Firefly Wiki
    發表于 08-16 18:04

    firefly RK3308開發板ROC-RK3308-CC四核64位AIOT主板規格

    ROC-RK3308-CC 四核64位AIOT主板
    的頭像 發表于 11-03 11:08 ?4913次閱讀
    firefly <b class='flag-5'>RK3308</b>開發板ROC-<b class='flag-5'>RK3308</b>-CC四核64位AIOT<b class='flag-5'>主板</b>規格

    fireflyROC-RK3308B-CC固件編譯工具簡介

    Docker鏡像內配置好了編譯SDK所需的依賴環境,無需在本地配置編譯環境,進入對應的docker容器內進行SDK編譯即可。 目前暫時只支持ROC-RK3308B-CC Buildroot SDK
    的頭像 發表于 12-20 09:30 ?1959次閱讀

    fireflyROC-RK3308B-CC--啟動模式說明

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

    fireflyROC-RK3308B主板CC教程簡介

    確認主板配件連接無誤后,通過 USB Type-C 線給 ROC-RK3308B-CC 供電。
    的頭像 發表于 12-20 09:32 ?2322次閱讀

    fireflyROC-RK3308主板CC源碼簡介

    firefly
    的頭像 發表于 12-20 10:12 ?7487次閱讀

    fireflyROC-RK3328主板PC簡介

    ROC-RK3328-PC,是 Firefly 榮譽出品的第一塊信用卡大小、性能強、功耗小的開源主板
    的頭像 發表于 12-21 10:37 ?3210次閱讀
    <b class='flag-5'>fireflyROC-RK</b>3328<b class='flag-5'>主板</b>PC<b class='flag-5'>簡介</b>

    fireflyROC-RK3308U-Boot簡介

    RK U-Boot 基于開源的 U-Boot 進行開發,工作模式有啟動加載模式和下載模式。
    的頭像 發表于 12-21 11:10 ?2158次閱讀
    <b class='flag-5'>fireflyROC-RK3308</b>U-Boot<b class='flag-5'>簡介</b>

    微雪電子RK3308主板CC啟動模式介紹

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

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

    確認主板配件連接無誤后,通過 USB Type-C 線給 ROC-RK3308-CC 供電。
    的頭像 發表于 12-23 15:50 ?2318次閱讀

    IoT四核64位開源主板ROC RK3308B CC規格書

    電子發燒友網站提供《IoT四核64位開源主板ROC RK3308B CC規格書.pdf》資料免費下載
    發表于 09-13 09:35 ?1次下載
    IoT四核64位開源<b class='flag-5'>主板</b>ROC <b class='flag-5'>RK3308</b>B CC規格書

    四核64位開源主板ROC RK3308B CC Plus規格書

    電子發燒友網站提供《四核64位開源主板ROC RK3308B CC Plus規格書.pdf》資料免費下載
    發表于 09-13 09:33 ?0次下載
    四核64位開源<b class='flag-5'>主板</b>ROC <b class='flag-5'>RK3308</b>B CC Plus規格書