在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

硬核上車!RK3576基于Ubuntu部署ROS機器人系統(tǒng)詳細攻略(上)

觸覺智能 ? 2025-07-03 18:45 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文適用于瑞芯微RK3562、RK3566、RK3568、RK3576、RK3588等Arm64位SoC,適配開發(fā)ROS2系統(tǒng)。各型號觸覺智能均有配套核心板及開發(fā)板,實現(xiàn)了百分百全國產(chǎn)。

ROS2的具體版本

版本說明
Rockchip Linux SDK基于Buildroot系統(tǒng)構(gòu)建, 并持續(xù)在更新升級工具鏈、軟件包到較新的版本。 因此最新的SDK在編譯ROS2時,可能會遇到一些小的錯誤,建議將版本固定。ROS2發(fā)行版本號如下(下載鏈接可通過截圖轉(zhuǎn)文字獲取):

wKgZO2hmXYqAUDTyAANj6dzLjfI776.png


已經(jīng)編譯通過的RK Linux SDK版本:

wKgZPGhmXZaAOw3dAAJY2LUYn7I562.png

Docker編譯

補丁、Docker 鏡像、源碼下載
https://console.zbox.filez.com/l/iJBMWZ

tree . ├── docker-focal-python38 │ └── rosdep.Dockerfile # 制作Docker Image的Dockerfile ├── docker-jammy-python310 │ └── rosdep.Dockerfile # 制作Docker Image的Dockerfile ├── focal-ros2-build.tar.gz # 根據(jù)Dockerfile制作好的Docker Image ├── jammy-ros2-build.tar.gz # 根據(jù)Dockerfile制作好的Docker Image ├── linux-sdk-patches │ └── buildroot # RK Linux SDK不同發(fā)布版本有可能會缺少的補丁 │ ├── 0001-package-add-libasio.patch │ └── 0002-configs-rockchip-add-ros2-build-dependencies.patch ├── MD5SUM.txt # 各壓縮包的MD5SUM檢驗碼 ├── ros2-build-scripts.tar.gz # 編譯腳本及補丁 └── ros2-sources.tar.gz # ROS2及其部分依賴庫的源碼包


在RK Linux SDK的Buildroot目錄中,檢查是否存在ros2_dep.config文件

ls buildroot/configs/rockchip/ros2_dep.config buildroot/configs/rockchip/ros2_dep.config # 如該ros2_dep.config中缺少:LTTNG_TOOLS,手動加上(ROS2 iron有依賴) tail -f buildroot/configs/rockchip/ros2_dep.config # Required by ros2-iron tracetools; With LTTNG foxy/galactic/humble will build tracetools too. BR2_PACKAGE_LTTNG_TOOLS=y BR2_PACKAGE_LTTNG_LIBUST=y

如不存在該文件,則需要在Buildroot目錄中打上如下2個補丁

0001-package-add-libasio.patch 0002-configs-rockchip-add-ros2-build-dependencies.patch


檢查lttng-tools(2.12.3)、lttng-libust(2.12.3)、liburcu(0.13.0)是否滿足版本要求。

編譯ROS2的依賴包

RK Linux SDK 中的Buildroot工程里,ros2_dep.config提供了編譯、運行ROS2所需要的依賴包,需要添加并編譯到rootfs。
例如,將ros2_dep.config添加到rockchip_rk356x_robot_defconfig中:

git diff --- a/configs/rockchip_rk356x_robot_defconfig +++ b/configs/rockchip_rk356x_robot_defconfig @@ -10,6 +10,7 @@ #include "wifi.config" #include "debug.config" #include "bt.config" +#include "ros2_dep.config" BR2_TARGET_GENERIC_HOSTNAME="rk356x_robot" BR2_TARGET_GENERIC_ISSUE="Welcome to RK356X Buildroot For Robot" BR2_ROOTFS_OVERLAY:="board/rockchip/common/robot/base board/rockchip/common/wifi"


完整編譯rootfs后,進入下一步。

準備Linux 編譯環(huán)境

Ubuntu PC機上安裝docker程序:

sudo apt install docker.io sudo usermod -aG docker $USER newgrp docker # 登錄到docker用戶組


導入Docker Image
首先檢查RK Linux SDK 編譯出來的Python版本,例如:

./buildroot/output/rockchip_rk3562_robot/host/bin/python --version Python 3.10.5

根據(jù)Python版本號,匹配對應(yīng)的Docker Image 鏡像:

wKgZPGhmXiaATA__AAEDY4wYc24953.png


選擇jammy-ros2-build,導入并進入到Docker Container:

gunzip jammy-ros2-build.tar.gz docker image load -i jammy-ros2-build.tar docker run -it --mount type=bind,source=/home/zsq/29/linux-sdk/buildroot/output/rockchip_rk3562_robot/,target=/buildroot jammy-ros2-build

其中source=需要修改成相應(yīng)的Linux SDK 編譯的output目錄的絕對路徑

進入Container后, 默認用戶是builder,密碼默認是: rockchip

拷貝編譯腳本及源碼包
通過docker container cp命令,拷貝所需文件:

# 首先查找已登錄的container ID docker container ls CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c519d9d668f9 jammy-ros2-build "/bin/bash" 15 minutes ago Up 15 minutes pedantic_feynman docker container cp ros2-sources.tar.gz c519d9d668f9:/tmp/ docker container cp ros2-sources.tar.gz c519d9d668f9:/tmp/


在Container 中,將其解壓:

builder@c519d9d668f9:/opt/ros$ ls /tmp/ ros2-build-scripts.tar.gz ros2-sources.tar.gz builder@c519d9d668f9:/opt/ros$ tar zxf /tmp/ros2-build-scripts.tar.gz -C / builder@c519d9d668f9:/opt/ros$ tar zxf /tmp/ros2-sources.tar.gz -C / builder@c519d9d668f9:/opt/ros$ ls cross-compile foxy galactic humble iron


修改腳本中的Python版本號
檢查/opt/ros/cross-compile/cross-compile.mixin及build_ros2.sh, 將其中的Python版本號修改成RK LinuxSDK對應(yīng)的版本號,例如:310修改成38,其中310表示Python3.10版本,以此類推~3.10修改成3.8。

(可選)使用Docker編譯ROS2
如果想要從頭開始制作Docker Image,可使用RK提供的
rosdep.Dockerfile:

docker build -t jammy-ros2-build -f rosdep.Dockerfile ./ # "./"不要少拷貝了,表示當前目錄

(可選)下載源碼
如需要自己下載其它版本的源碼,進入docker后,可使用vcs-import:

cd /opt/ros/foxy mkdir src vcs-import -w 10 --retry 10 --skip-existing --recursive src < ros2-release-foxy- 20230620/ros2.repos


編譯ROS2

再次確認RK Linux SDK、已經(jīng)有加上ros2 dep.config,并且rootfs完整編譯通過,并且所選Docker Image與RK Linux SDK編譯出來的Python是匹配的。

選擇所需ROS2版本,并依次執(zhí)行以下命令:

ls /opt/ros cross-compile foxy galactic humble iron cd /opt/ros/iron ./prepare-source.sh ./build-ros2.sh # 編譯成功后,應(yīng)有類似提示: ... Summary: 317 packages finished [15min 37s] ... build ros quit & cleanup


說明:

編譯生成的目標文件位于/buildroot/target/opt/ros目錄。

編譯中間過程存放在/buildroot/build/ros目錄。

如build_ros2.sh未提示錯誤即成功編譯。其中,還有部分包在Buildroot SDK環(huán)境中,無法編譯、執(zhí)行的,比如:

rviz,依賴于X11/desktop。如果你需要這個功能,直接使用Ubuntu arm鏡像,而不是Buildroot。

turtlesim,依賴于UI顯示。

如果想要取消某個包的編譯,在src對應(yīng)的路徑下,創(chuàng)建一個COLCON_IGNORE即可。比如

touchsrc/ros/ros_tutorials/turtlesim/COLCON_IGNORE


TRY_RUN需要手動執(zhí)行并記錄結(jié)果
fastrtps TRY_RUN提示:

--- stderr: fastrtps CMake Error: TRY_RUN() invoked in cross-compiling mode, please set the following cache variables appropriately: SM_RUN_RESULT (advanced) SM_RUN_RESULT__TRYRUN_OUTPUT (advanced) For details see /buildroot/build/ros/fastrtps/TryRunResults.cmake


需要按照說明,將應(yīng)用程序放到板端執(zhí)行,并按說明填寫結(jié)果。例如:


root@rk3562-buildroot:/# /tmp/cmTC_4f573-SM_RUN_RESULT
PTHREAD_RWLOCK_PREFER_READER_NP
# 根據(jù)上述執(zhí)行結(jié)果,在docker中填入結(jié)果:

cat /buildroot/build/ros/fastrtps/TryRunResults.cmake .... set( SM_RUN_RESULT "0" CACHE STRING "PTHREAD_RWLOCK_PREFER_READER_NP" FORCE) set( SM_RUN_RESULT__TRYRUN_OUTPUT "0" CACHE STRING "PTHREAD_RWLOCK_PREFER_READER_NP" FORCE)


rosbag2_cpp TRY_RUN提示:

--- stderr: rosbag2_cpp CMake Error: TRY_RUN() invoked in cross-compiling mode, please set the following cache variables appropriately: HAVE_SANITIZERS_EXITCODE (advanced) HAVE_SANITIZERS_EXITCODE__TRYRUN_OUTPUT (advanced) For details see /buildroot/build/ros/rosbag2_cpp/TryRunResults.cmake


同上, 需要按照說明,將應(yīng)用程序放到板端執(zhí)行,并按說明填寫結(jié)果。例如:

set( HAVE_SANITIZERS_EXITCODE "127" CACHE STRING "error while loading shared libraries: liblsan.so.0: cannot open shared object file: No such file or directory" FORCE) set( HAVE_SANITIZERS_EXITCODE__TRYRUN_OUTPUT "127" CACHE STRING "error while loading shared libraries: liblsan.so.0: cannot open shared object file: No such file or directory" FORCE)


單獨編譯某個ROS2 package 及應(yīng)用程序
使用colcon build的參數(shù) --packages-select 可單獨編譯包,可參考 colcon build --help 。

打包rootfs并運行ROS2


在上述ROS2完整編譯結(jié)束后,進入到buildroot sdk,重新打包rootfs即可。ROS2安裝在/opt/ros目錄下。

cd /data/linux-sdk/rk3562 ./build.sh rootfs # 重新打包rootfs.img


燒錄rootfs.img后,進入rk3562板端,執(zhí)行Hello World Demo:

# cd /opt/ros/ # export COLCON_CURRENT_PREFIX=/opt/ros # export ROS_HOME=/userdata/ # source ./local_setup.sh # ros2 pkg list # ros2 pkg executables # ros2 run demo_nodes_cpp listener & # ros2 run demo_nodes_cpp talker [INFO] [1501839280.834017748] [talker]: Publishing: 'Hello World: 1' [INFO] [1501839280.839280957] [listener]: I heard: [Hello World: 1] [INFO] [1501839281.831636015] [talker]: Publishing: 'Hello World: 2' [INFO] [1501839281.835092640] [listener]: I heard: [Hello World: 2] [INFO] [1501839282.831618532] [talker]: Publishing: 'Hello World: 3' [INFO] [1501839282.835336782] [listener]: I heard: [Hello World: 3] # ros2 run demo_nodes_py listener & # ros2 run demo_nodes_py talker


好了,今天觸覺智能分享就到這里,關(guān)注觸覺智能,下集為您帶來常見編譯報錯的解決方法。

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

    關(guān)注

    25

    文章

    570

    瀏覽量

    52386
  • ROS
    ROS
    +關(guān)注

    關(guān)注

    1

    文章

    287

    瀏覽量

    17699
  • RK3588
    +關(guān)注

    關(guān)注

    7

    文章

    418

    瀏覽量

    5816
  • rk3576
    +關(guān)注

    關(guān)注

    1

    文章

    166

    瀏覽量

    689
  • RK3562
    +關(guān)注

    關(guān)注

    0

    文章

    72

    瀏覽量

    347
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    基于RK3576開發(fā)板的PWN使用說明

    RK3576開發(fā)板使用PWN教程及Demo
    的頭像 發(fā)表于 05-07 14:07 ?1246次閱讀
    基于<b class='flag-5'>RK3576</b>開發(fā)板的PWN使用說明

    ROS機器人開發(fā)更便捷,基于RK3568J+Debian系統(tǒng)發(fā)布!

    、路線控制偏離、系統(tǒng)通信異常等嚴重后果。而ROS系統(tǒng)憑借其優(yōu)勢,已成為AGV開發(fā)利器,廣泛應(yīng)用于各種機器人開發(fā),并逐漸成為主流。 RK35
    發(fā)表于 07-09 11:38

    米爾RK3576RK3588怎么選?-看這篇就夠了

    在中國半導體產(chǎn)業(yè)的版圖中,瑞芯微作為國內(nèi)SoC芯片領(lǐng)跑者,憑借其在處理器芯片設(shè)計領(lǐng)域的深厚積累和持續(xù)創(chuàng)新,推出很多智能應(yīng)用處理器芯片,在嵌入式系統(tǒng)領(lǐng)域得到大規(guī)模的應(yīng)用。RK3588和RK3576系列
    發(fā)表于 12-27 11:44

    米爾瑞芯微RK3576實測輕松搞定三屏八攝像頭

    系統(tǒng)機器人: 在機器人領(lǐng)域,RK3576的多屏顯示和多攝像頭輸入能力使得機器人能夠同時處理多個視覺任務(wù),提高
    發(fā)表于 01-17 11:33

    探索 RK3576 方案:卓越性能與靈活框架,誠邀開發(fā)定制合作!

    各位技術(shù)愛好者、行業(yè)同仁們,今天要給大家重磅介紹一款極具潛力的芯片方案——RK3576,同時我們公司基于此芯片開發(fā)的主板更是有著出色表現(xiàn),以下會為大家詳細展開。Block Diagram
    發(fā)表于 02-05 15:21

    RK3576 vs RK3588:為何越來越多的開發(fā)者轉(zhuǎn)向RK3576

    瑞芯微(Rockchip)最新發(fā)布的 RK3576 一經(jīng)推出,就吸引了大量原本關(guān)注 RK3588 的開發(fā)者。RK3588 作為旗艦級芯片,性能固然強大,但 RK3576 憑借其超高的能
    發(fā)表于 05-30 08:46

    Mpp支持RK3576

    想問下,https://github.com/rockchip-linux/mpp這里面支持RK3576么,看介紹沒有提到說支持RK3576 目前是買了個rk3576的機頂盒,搭載了安卓14,想做安卓視頻硬解。
    發(fā)表于 06-13 15:35

    ROS RIKIBOT基礎(chǔ)--使用系列 第一章節(jié)】ROS機器人硬件系統(tǒng) 精選資料分享

    主控制器ROS控制器采用樹莓派4B或者Jetson Nano,運行運行Ubuntu Mate18.04或Ubuntu18.04系統(tǒng),具體型號有差異。
    發(fā)表于 07-30 06:59

    ArmSoM規(guī)劃開發(fā)基于RK3576的開發(fā)套件

    處理器是一款強大的處理器,具備出色的性能和多樣化的功能,非常適合EINK產(chǎn)品,掃地機器人,云端產(chǎn)品,用于嵌入式系統(tǒng)和智能設(shè)備。它采用先進的制程工藝,擁有高性能的多核CPU和強大的圖形處理單元,能夠處理各種
    發(fā)表于 10-31 16:51

    ROS機器人開發(fā)更便捷,基于RK3568J+Debian系統(tǒng)發(fā)布!

    ROS系統(tǒng)是什么 ROS(Robot Operating System)是一個適用于機器人的開源的元操作系統(tǒng)。它提供了操作
    發(fā)表于 11-30 16:01

    貝啟RK3576核心板/開發(fā)板

    、邊緣計算、機器人、工業(yè)自動化、智能商顯等領(lǐng)域。貝啟RK3576核心板長×寬僅僅只有56mm×40mm,并且是第一款單面貼,小而薄的模組。貝啟RK3576開發(fā)板采用核
    的頭像 發(fā)表于 04-29 08:21 ?3803次閱讀
    貝啟<b class='flag-5'>RK3576</b>核心板/開發(fā)板

    新品體驗 | RK3576開發(fā)板

    前言:RK3576作為瑞芯微第二代8nm高性能AIOT平臺,一經(jīng)推出便獲得了極大的關(guān)注。廣州眺望電子科技有限公司是一家專注于嵌入式處理器模組研發(fā)與應(yīng)用的國家高新技術(shù)企業(yè),目前公司已推出的相關(guān)型號有
    的頭像 發(fā)表于 11-01 08:08 ?1892次閱讀
    新品體驗 | <b class='flag-5'>RK3576</b>開發(fā)板

    RK3588與RK3576芯片對比

    在AIoT領(lǐng)域,瑞芯微的RK3588和RK3576都是備受矚目的處理器。以下將從多個方面對它們進行詳細對比。
    的頭像 發(fā)表于 11-04 15:55 ?3415次閱讀
    <b class='flag-5'>RK</b>3588與<b class='flag-5'>RK3576</b>芯片對比

    RK3576單板發(fā)布倒計時:RK3399與RK3576對比

    好多人說RK3576RK3399的升級版,某種程度上也可以這么說,RK3576在強大的多媒體功能的基礎(chǔ),性能和接口都進行了升級 一、工藝 性能
    的頭像 發(fā)表于 12-03 16:59 ?1234次閱讀
    <b class='flag-5'>RK3576</b>單板發(fā)布倒計時:<b class='flag-5'>RK</b>3399與<b class='flag-5'>RK3576</b>對比

    RK3588與RK3576區(qū)別解析

    以下是RK3576RK3588對比: 電魚電子SBC-RK3576單板 核心性能:RK3576為四核A72@2.2GHz + 四核A53@1.8GHz + M0協(xié)處理器,算力 58K
    的頭像 發(fā)表于 12-17 14:03 ?1704次閱讀
    <b class='flag-5'>RK</b>3588與<b class='flag-5'>RK3576</b>區(qū)別解析
    主站蜘蛛池模板: 午夜国产在线观看 | 亚洲午夜久久久久久噜噜噜 | 国产精品欧美一区二区三区不卡 | 国外一级毛片 | 日韩特级毛片免费观看视频 | 精品伊人久久大香线蕉网站 | 亚洲高清日韩精品第一区 | 国产精品香蕉在线一区 | 国产国产成人人免费影院 | 成年人黄色片视频 | 国产四虎 | 我要看18毛片 | 免费观看四虎精品国产永久 | 亚洲欧美视频在线 | 免费 视频 1级 | 福利午夜最新 | 色视频在线播放 | 手机看高清特黄a大片 | 国产成人黄网址在线视频 | 男人视频网| 色天使色婷婷丁香久久综合 | 欧美爱爱网址 | 成人免费看片视频色多多 | 在线观看免费精品国产 | 站长工具天天爽视频 | 亚洲第一视频网 | 天天综合五月天 | 日日操夜夜操免费视频 | 国产农村妇女毛片精品久久 | 大又大又粗又爽又黄毛片女人 | 欧洲色| 国产真实野战在线视频 | 五月停停 | 奇米久草 | 日本黄页网站在线观看 | 男人都懂的网址在线看片 | 欧美激情αv一区二区三区 欧美激情第一欧美在线 | 国产永久免费爽视频在线 | 一级特黄牲大片免费视频 | 天天插天天爽 | 宅男69免费永久网站 |