色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

快速上手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內容如下:

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

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

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

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

1.jpg

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

$ 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這兩個參數值要求大于2,因為在 micro_ros 的示例工程:micro_ros_ping_pong要求至少兩個發布者和兩個訂閱者,同時我們選擇通信模式為 serial

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

3.編譯準備工作
首先去官網安裝如下工具:

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庫函數有不同差異,所以目前我是基于 cortex-M4 適配了 micro_ros 庫,在packagesmicro_ros_rtthread_componentbuildermicroros_utilsrepositories.py文件中更改了一些倉庫分支為我修改的倉庫分支,后續會以補丁文件的形式發布

1.jpg

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

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

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

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

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

6.serial測試
相關命令:

windows powershell端

$ usbipd wsl list // 查看系統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 // 發布topic data值為10

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

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

2.搭建 micro-ros 構建環境

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

激活ros:foxy環境

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

創建工作區并拉取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

創建一份固件工作區

$ ros2 run micro_ros_setup create_firmware_ws.sh host

構建固件

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

創建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的代理環境就準備就緒了

關鍵代碼

開啟micro_ros 代理

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

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

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

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

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

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

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

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

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

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

    關注

    6

    文章

    94

    瀏覽量

    46585
  • STM32F407
    +關注

    關注

    15

    文章

    188

    瀏覽量

    29590
  • RT-Thread
    +關注

    關注

    31

    文章

    1305

    瀏覽量

    40307
  • ROS
    ROS
    +關注

    關注

    1

    文章

    280

    瀏覽量

    17054
  • gcc編譯器
    +關注

    關注

    0

    文章

    78

    瀏覽量

    3414
收藏 人收藏

    評論

    相關推薦

    RT-Thread記錄(一、版本開發環境及配合CubeMX)

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

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

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

    RT-Thread實時操作系統與ROS2是怎樣進行通信的

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

    RT-Thread Studio 主要亮點功能

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

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

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

    RT-Thread Smart 上手指南

    RT-Thread Smart(簡稱rt-smart)是基于RT-Thread操作系統衍生的新分支,面向帶MMU,中高端應用的芯片,例如ARM Cortex-A系列芯片,MIPS...
    發表于 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中的工作機制 ? ? ? ? ? ? ? 審核編輯:彭靜
    的頭像 發表于 05-27 14:49 ?1574次閱讀
    <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編寫測試用例 ? ? ? ? ? 審核編輯:彭靜
    的頭像 發表于 05-27 16:28 ?1506次閱讀
    <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的差異

    開發者秦韋忠,RT-Thread全球技術大會上,以RT-Thread底層匯編及arm與riscv的差異為主題進行了詳細的教程說明。
    的頭像 發表于 05-28 09:56 ?1650次閱讀
    <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 簡介
    發表于 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 上手指南
    發表于 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 上手指南
    發表于 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 上手指南
    發表于 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 介紹與移植
    發表于 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 平臺開發快速上手

    11月23日 RT-Thread 聯合先楫半導體將在上海舉行一場線下培訓。 本次培訓會將為參與者提供了解先楫半導體和RT-Thread兩家公司最新技術和創新解決方案的機會。參與者將深入了解先楫半導體
    的頭像 發表于 11-03 19:10 ?800次閱讀
    上海線下培訓:<b class='flag-5'>RT-Thread</b>×先楫  HPM5300 for <b class='flag-5'>RT-Thread</b> ,高性能 RISC-V 平臺開發<b class='flag-5'>快速</b><b class='flag-5'>上手</b>
    主站蜘蛛池模板: 一本色道久久综合亚洲精品 | 嗯啊插的好深啊使劲抽视频 | 日韩中文欧美在线视频 | 国产精品久久久久久52AVAV | 国产毛A片啊久久久久久A | 色青青草原桃花久久综合 | 妺妺窝人体色777777野大粗 | 中文字幕亚洲男人的天堂网络 | 果冻传媒AV精品一区 | 天堂Av亚洲欧美日韩国产综合 | 18岁男人女人插孔 | 丝袜诱惑qvod| 成年人在线视频免费观看 | 美美哒高清在线播放8 | 精品无码久久久久久久动漫 | 秋霞电影院兔费理论84MB | 国产成人综合95精品视频免费 | 无码日韩人妻精品久久蜜桃免费 | 甜性涩爱免费下载 | 性一交一乱一色一视频 | 九色PORNY真实丨国产大胸 | 芭乐视频免费资源在线观看 | 国产综合视频在线观看一区 | 最近韩国HD免费观看国语 | 岛国大片在线观看完整版 | 久久久久久久久性潮 | 亚洲色欲国产AV精品综合 | 黑兽在线观看高清在线播放樱花 | 伦理 电影在线观看 | 男人J放进女人P全黄网站 | 欧美激情一区二区三区AA片 | 久久99精品国产麻豆婷婷 | 精品无人区麻豆乱码无限制 | 亚洲欧洲久久 | 亚洲国产果果在线播放在线 | 久久日本精品在线热 | 熟妇少妇任你躁在线无码 | 男人插曲视频大全免费网站 | 我的好妈妈BD免费观看 | 红桃传媒少妇人妻网站无码抽插 | 国产睡熟迷奷系列网站 |