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

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

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

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

快速上手micro ros在RT-Thread上

冬至子 ? 來源:kurisaW ? 作者:kurisaW ? 2023-10-26 16:13 ? 次閱讀

快速上手micro ros && RT-Thread(serial和udp方式)

1.準備工作
克隆GitHub:RT-Thread主倉:

$ git clone https://github.com/RT-Thread/rt-thread.git
克隆 env-windows:

$ git clone --recursive --depth 1 https://github.com/RT-Thread/env-windows.git
克隆下來的 env-windows 可以放在D盤,同時雙擊打開 env.exe,待啟動ConEmu終端后將其注冊到右鍵列表

1.jpg

克隆指定win_arm-gcc分支micro_ros_rtthread_component倉庫

$ git clone -b win_arm-gcc https://github.com/kurisaW/micro_ros_rtthread_component.git
目錄層次如下:

├─micro_ros_rtthread_component
│ ├─.images
│ ├─builder
│ │ ├─extra_packages
│ │ ├─metas
│ │ ├─microros_utils
│ │ └─patchs
│ │ ├─foxy
│ │ └─humble
│ ├─docs
│ ├─examples
│ ├─include
│ ├─package
│ │ └─micro_ros_rtthread_package
│ └─src
這里我們只需要micro_ros_rtthread_package目錄!!注意不要復制錯了,將這個目錄復制到.env-windowspackages目錄下,之后micro_ros_rtthread_component目錄就可以刪掉了,同時我們修改.env-windowspackagesKconfig內(nèi)容如下:

source "$PKGS_DIR/packages/Kconfig"
source "$PKGS_DIR/micro_ros_rtthread_package/Kconfig"

2.指定bsp
選擇一份 bsp 進行 micro_ros 的開發(fā),這里我使用的是 RTT 最近出的星火Spark

$ cd .rt-threadbspstm32stm32f407-rt-spark
去官網(wǎng)下載 gcc-arm-none-eabi-10-2020-q4-major-win32工具鏈,注意不用配置到環(huán)境變量中,以免發(fā)生沖突

修改 bsp 工程下的 rtconfig.py 文件,指定 gcc 工具鏈

1.jpg

回到.rt-threadbspstm32stm32f407-rt-spark目錄下,打開 ConEmu 執(zhí)行如下命令

$ pkgs --update
$ cd packages

此處克隆 micro_ros 配置倉庫

$ git clone -b win_arm-gcc https://github.com/kurisaW/micro_ros_rtthread_component.git

生成CMakeLists.txt

$ cd ..
$ scons --target=cmake
此時我們在當前目錄下就可以看見一個 CMakeLists.txt文件了,同時我們進入目錄.rt-threadbspstm32stm32f407-rt-sparkpackagesmicro_ros_rtthread_componentbuilder,找到toolchain.cmake文件,參考前面生成的CMakeLists.txt文件修改toolchain.cmake

1.jpg

再次回到.rt-threadbspstm32stm32f407-rt-spark目錄下,打開 ConEmu 勾選配置:

[ ] micro-ROS package for RTThread
[
] Include examples
Distribution (Foxy) --->
Memory configuration --->
ROS node communication mode (serial) --->
其中在Memory configuration中的Publishers和Subscribers這兩個參數(shù)值要求大于2,因為在 micro_ros 的示例工程:micro_ros_ping_pong要求至少兩個發(fā)布者和兩個訂閱者,同時我們選擇通信模式為 serial

此外,我們需要一個串口進行通信,根據(jù)板載情況勾選一個串口設備,并確保該串口成功創(chuàng)建,同時我們使用 vscode 打開文件packagesmicro_ros_rtthread_componentsrcrtt_serial_transport.c,搜索宏MICRO_ROS_SERIAL_NAME并修改為你新創(chuàng)建的串口設備名

3.編譯準備工作
首先去官網(wǎng)安裝如下工具:

python(大于python36)
cmake(大于v3.22)

打開windows powershell(管理員),安裝如下工具:

1.scons工具

$ pip3 install scons

2.GNU make工具,可以參考該issue(https://github.com/kurisaW/micro_ros_rtthread_component/issues/5),這里我選擇的是使用choco安裝make

$ Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
$ choco install make

為了防止在下載過程中 GitHub 倉庫拉取失敗,可以下一個 Fastgithub 來加速 GitHub

4.開始編譯
回到.rt-threadbspstm32stm32f407-rt-spark目錄下,鼠標右鍵打開 windows powershell ,輸入如下命令:

scons --build_microros
此時我們就可以看到 python 會自動安裝依賴包并且開始下載 microros所需的依賴庫,并且該依賴庫的安裝位置位于 C:UsersUSERAppDataLocalTempmicro下,這里的配置項主要位于packagesmicro_ros_rtthread_componentbuilderSConscript文件中,由于不同的工具鏈和平臺所使用的一些標準C庫函數(shù)有不同差異,所以目前我是基于 cortex-M4 適配了 micro_ros 庫,在packagesmicro_ros_rtthread_componentbuildermicroros_utilsrepositories.py文件中更改了一些倉庫分支為我修改的倉庫分支,后續(xù)會以補丁文件的形式發(fā)布

1.jpg

編譯完成后會使用 ar 將所有依賴的 micro_ros 庫文件動態(tài)鏈接成 packagesmicro_ros_rtthread_componentbuilderlibmicroroslibmicroros.a文件,同時將C:Users20537AppDataLocalTempmicromcuinstallinclude目錄復制到packagesmicro_ros_rtthread_componentbuilderlibmicrorosinclude目錄下

編譯完成后我們就得到了 rt-thread.elf 文件,可以使用 STM32CubeProgrammer 工具進行燒錄到星火Spark上

5.WSL安裝及 usbipd 支持
WSL安裝:WSL的安裝具體可以看網(wǎng)上怎么操作的,此處不再贅述

Docker安裝:打開wsl終端,使用官網(wǎng)腳本一鍵安裝即可

$ curl -fsSL https://test.docker.com -o test-docker.sh
$ sudo sh test-docker.sh

6.serial測試
相關命令:

windows powershell端

$ usbipd wsl list // 查看系統(tǒng)USB設備列表
$ usbipd wsl attach --hardware-id "usb-id" // 連接usb至wsl

wsl ubuntu20.04(注意:目前支持的microros版本:foxy支持的ubuntu版本為ubuntu20.04)

$ sudo docker run -it -v /dev:/dev --privileged microros/micro-ros-agent:foxy serial --dev /dev/ttyACM0 // 運行docker microros:foxy代理
$ ros2 topic list // 查看ros topic列表
$ ros2 topic echo /micro_ros_rtt_subscriber // 打印話題詳情
$ ros2 topic pub /micro_ros_rtt_subscriber std_msgs/msg/Int32 data: 10 // 發(fā)布topic data值為10

7.udp4測試
準備工作
1.首先需要在linux本地 搭建好 ROS 環(huán)境

請注意:我們安裝的ros版本為 foxy

2.搭建 micro-ros 構建環(huán)境

打開linux終端,按照如下步驟一步步走:

激活ros:foxy環(huán)境

$ source /opt/ros/foxy/setup.bash

創(chuàng)建工作區(qū)并拉取micro_ros_setup倉庫

** mkdir /home/**user/microros_ws && cd /home/$user/microros_ws
$ git clone -b foxy https://github.com/micro-ROS/micro_ros_setup.git src/micro_ros_setup

更新rosdep

$ sudo apt update
$ export ROSDISTRO_INDEX_URL=https://mirrors.tuna.tsinghua.edu.cn/rosdistro/index-v4.yaml
$ rosdep update --include-eol-distros
$ rosdep install --from-paths src --ignore-src -y
$ sudo apt-get install python3-pip

colcon編譯

$ colcon build
$ source install/local_setup.bash

創(chuàng)建一份固件工作區(qū)

$ ros2 run micro_ros_setup create_firmware_ws.sh host

構建固件

$ ros2 run micro_ros_setup build_firmware.sh
$ source install/local_setup.bash

創(chuàng)建microros代理

$ ros2 run micro_ros_setup create_agent_ws.sh

構建代理

$ ros2 run micro_ros_setup build_agent.sh
$ source install/local_setup.bash
完成上述工作后我們micro ros的代理環(huán)境就準備就緒了

關鍵代碼

開啟micro_ros 代理

ros2 run micro_ros_agent micro_ros_agent udp4 --port 9999
udp測試流程

幾點說明
1.為什么編譯不使用 ConEmu :因為 ConEmu 內(nèi)部集成的是 python27 ,而 micro_ros 編譯所需的 python 版本最低為 python36,建議使用 python38 及以上版本

2.如果是使用的串口方式通信,不推薦在虛擬機上運行docker microros 代理,虛擬機似乎會造成消息的多次轉(zhuǎn)發(fā),導致無法正常接收到數(shù)據(jù),建議使用 windows wsl服務

3.如果是使用UDP通信的話,并且在wsl中運行 agent ,需要允許 WLS 的出入站規(guī)則,可以打開windows powershell ,并輸入如下代碼:

允許 WSL 入站規(guī)則,請打開 Windows PowerShell ,并輸入如下命令

$ New-NetFirewallRule -DisplayName "WSL" -Direction Inbound -InterfaceAlias "vEthernet (WSL)" -Action Allow

允許 WSL 出站規(guī)則,請打開 Windows PowerShell ,并輸入如下命令

$ New-NetFirewallRule -DisplayName "WSL" -Direction Outbound -InterfaceAlias "vEthernet (WSL)" -Action Allow
4.如果使用udp通信不建議使用docker運行agent,docker不能直接外部訪問IP,建議還是在linux本地搭建好 micro-ros代理環(huán)境

5.具體的實現(xiàn)細節(jié)在此處沒有具體說明,如果是基于其他平臺移植,并且想要一起學習的可以艾特我一起討論,后面會考慮對多個架構進行支持適配

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

    關注

    6

    文章

    94

    瀏覽量

    46628
  • STM32F407
    +關注

    關注

    15

    文章

    188

    瀏覽量

    29652
  • RT-Thread
    +關注

    關注

    31

    文章

    1305

    瀏覽量

    40386
  • ROS
    ROS
    +關注

    關注

    1

    文章

    280

    瀏覽量

    17098
  • gcc編譯器
    +關注

    關注

    0

    文章

    78

    瀏覽量

    3426
收藏 人收藏

    評論

    相關推薦

    RT-Thread記錄(一、版本開發(fā)環(huán)境及配合CubeMX)

    RT-Thread 學習記錄的第一篇文章,RT-Thread記錄(一、RT-Thread 版本、RT-Thread Studio開發(fā)環(huán)境 及 配合CubeMX開發(fā)
    的頭像 發(fā)表于 06-20 00:28 ?5340次閱讀
    <b class='flag-5'>RT-Thread</b>記錄(一、版本開發(fā)環(huán)境及配合CubeMX)

    RT-Thread如何使用串口或者無線和ROS連接

    這篇文檔主要介紹 RT-Thread 如何使用串口或者無線和 ROS 連接,會包含這么些內(nèi)容:第一部分:ROS 環(huán)境搭建第二部分:RT-Thread rosserial 軟件包第二部分
    發(fā)表于 12-28 07:02

    RT-Thread實時操作系統(tǒng)與ROS2是怎樣進行通信的

    RT-Thread 控制 Kobuki 機器人前面介紹了 ROS1/ROS2,也介紹了 rosserial (ROS1) 和
    發(fā)表于 04-01 11:38

    RT-Thread Studio 主要亮點功能

    RT-Thread Studio V1.1.0 快速上手體驗 RT-Thread Studio 主要包括工程創(chuàng)建和管理,代碼編輯,SDK管理器,RT
    的頭像 發(fā)表于 06-19 11:45 ?5966次閱讀

    機器人操作系統(tǒng) (RO2) 和 RT-Thread 通信

    本文由RT-Thread官方論壇用戶@wuhanstudio發(fā)布:[鏈接],未經(jīng)授權禁止轉(zhuǎn)發(fā)MicroROS on RT-Thread最近剛好總結了一下 ROS1 和 ROS2
    發(fā)表于 01-25 17:39 ?2次下載
    機器人操作系統(tǒng) (RO2) 和 <b class='flag-5'>RT-Thread</b> 通信

    RT-Thread Smart 上手指南

    RT-Thread Smart(簡稱rt-smart)是基于RT-Thread操作系統(tǒng)衍生的新分支,面向帶MMU,中高端應用的芯片,例如ARM Cortex-A系列芯片,MIPS...
    發(fā)表于 01-25 20:09 ?13次下載
    <b class='flag-5'>RT-Thread</b> Smart <b class='flag-5'>上手</b>指南

    RT-Thread全球技術大會:KconfigRT-Thread中的工作機制

    RT-Thread全球技術大會:KconfigRT-Thread中的工作機制 ? ? ? ? ? ? ? 審核編輯:彭靜
    的頭像 發(fā)表于 05-27 14:49 ?1584次閱讀
    <b class='flag-5'>RT-Thread</b>全球技術大會:Kconfig<b class='flag-5'>在</b><b class='flag-5'>RT-Thread</b>中的工作機制

    RT-Thread全球技術大會:RT-Thread編寫測試用例

    RT-Thread全球技術大會:RT-Thread編寫測試用例 ? ? ? ? ? 審核編輯:彭靜
    的頭像 發(fā)表于 05-27 16:28 ?1524次閱讀
    <b class='flag-5'>RT-Thread</b>全球技術大會:<b class='flag-5'>在</b><b class='flag-5'>RT-Thread</b><b class='flag-5'>上</b>編寫測試用例

    RT-Thread全球技術大會:RT-Thread底層匯編及arm與riscv的差異

    開發(fā)者秦韋忠,RT-Thread全球技術大會上,以RT-Thread底層匯編及arm與riscv的差異為主題進行了詳細的教程說明。
    的頭像 發(fā)表于 05-28 09:56 ?1664次閱讀
    <b class='flag-5'>RT-Thread</b>全球技術大會:<b class='flag-5'>RT-Thread</b>底層匯編及<b class='flag-5'>在</b>arm與riscv<b class='flag-5'>上</b>的差異

    RT-Thread文檔_RT-Thread 簡介

    RT-Thread文檔_RT-Thread 簡介
    發(fā)表于 02-22 18:22 ?5次下載
    <b class='flag-5'>RT-Thread</b>文檔_<b class='flag-5'>RT-Thread</b> 簡介

    RT-Thread文檔_RT-Thread 潘多拉 STM32L475 上手指南

    RT-Thread文檔_RT-Thread 潘多拉 STM32L475 上手指南
    發(fā)表于 02-22 18:23 ?9次下載
    <b class='flag-5'>RT-Thread</b>文檔_<b class='flag-5'>RT-Thread</b> 潘多拉 STM32L475 <b class='flag-5'>上手</b>指南

    RT-Thread文檔_野火 I.MX RT1052上手指南

    RT-Thread文檔_野火 I.MX RT1052 上手指南
    發(fā)表于 02-22 18:25 ?2次下載
    <b class='flag-5'>RT-Thread</b>文檔_野火 I.MX <b class='flag-5'>RT</b>1052<b class='flag-5'>上手</b>指南

    RT-Thread文檔_Nordic BSP 上手指南

    RT-Thread文檔_Nordic BSP 上手指南
    發(fā)表于 02-22 18:26 ?7次下載
    <b class='flag-5'>RT-Thread</b>文檔_Nordic BSP <b class='flag-5'>上手</b>指南

    RT-Thread文檔_RT-Thread SMP 介紹與移植

    RT-Thread文檔_RT-Thread SMP 介紹與移植
    發(fā)表于 02-22 18:31 ?9次下載
    <b class='flag-5'>RT-Thread</b>文檔_<b class='flag-5'>RT-Thread</b> SMP 介紹與移植

    上海線下培訓:RT-Thread×先楫 HPM5300 for RT-Thread ,高性能 RISC-V 平臺開發(fā)快速上手

    11月23日 RT-Thread 聯(lián)合先楫半導體將在上海舉行一場線下培訓。 本次培訓會將為參與者提供了解先楫半導體和RT-Thread兩家公司最新技術和創(chuàng)新解決方案的機會。參與者將深入了解先楫半導體
    的頭像 發(fā)表于 11-03 19:10 ?809次閱讀
    上海線下培訓:<b class='flag-5'>RT-Thread</b>×先楫  HPM5300 for <b class='flag-5'>RT-Thread</b> ,高性能 RISC-V 平臺開發(fā)<b class='flag-5'>快速</b><b class='flag-5'>上手</b>
    主站蜘蛛池模板: 黑人黑粗硬视频 | 国产一级特黄高清在线大片 | 777奇米四色米奇影院在线播放 | 真爽~张开腿~让我插 | 欧美午夜性 | 免费公开视频人人人人人人人 | 久久精品99 | 丝袜美腿视频一区二区三区 | 性瘾高h姚蕊全文免费阅读 性做久久久久 | jlzzjlzz亚洲日本| 特黄a大片免费视频 | 亚洲欧美天堂网 | 高清视频免费观看 | 亚洲大尺度视频 | 亚洲午夜久久久久影院 | 午夜日韩视频 | 午夜视频在线 | 久久久久国产一级毛片高清片 | 五月婷婷六月丁香综合 | 成人激情在线 | 啪啪中文字幕 | 午夜亚洲视频 | 国产在线黄 | 美女拍拍拍免费视频观看 | 拍拍拍无档又黄又爽视频 | 欧美一级片免费观看 | 五月天激情在线 | 亚洲黄网站wwwwww | 亚洲精品亚洲人成人网 | 仙踪林欧美另类视频 | 97人人揉人人捏人人添 | 久久久这里有精品999 | 国产小视频在线播放 | 美女免费视频一区二区三区 | 爱爱免费网址 | 色y情视频免费看 | videsgratis欧美另类 | 影音先锋色天使 | 俄罗斯一级成人毛片 | www.夜色| 视频亚洲一区 |