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

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

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

3天內不再提示

如何微控制器上新建MicroROS節點

CHANBAEK ? 來源:魚香ROS ? 作者:小魚 ? 2023-07-15 16:52 ? 次閱讀

你好,我是愛吃魚香ROS的小魚。上一節我們介紹了MicroROS和Agent的安裝,本節我們開始正式編寫代碼,接入ROS2

硬件開發平臺

為方便學習,本教程配套的硬件是小魚自制的MicroROS學習板,同時該板可以作為下一章節搭建實體移動機器人的主控板以及后續制作機械臂的驅動板使用。

板載資源圖如下:

圖片

該主控板可以在小魚的店鋪直接購買,性價比接地氣,點擊左下角閱讀原文直達魚香小鋪。

一、新建工程添加依賴

1.1 新建工程

新建example10_hello_microros工程,這里需要更改下工程的位置,默認目錄是在文檔目錄下,小魚在測試時發現目錄定位上有bug,所以建議直接放到主目錄或其下目錄,小魚這里直接放到主目錄。

圖片

1.2 添加依賴

打開platform.ini,接著我們添加MicroROS的依賴。

[env:featheresp32]
platform = espressif32
board = featheresp32
framework = arduino
lib_deps = 
    https://gitee.com/ohhuo/micro_ros_platformio.git

這里使用的地址并不是MicroROS官方倉庫,而是小魚經過修改后的國內倉庫地址,里面放置了小魚編譯好后可以直接使用的microros靜態庫,并對倉庫中需要梯子的地址進行了替換。

二、編寫代碼-第一個節點

開始編寫代碼,因為Micro-ROS遵循RCLC-API,所以這里小魚通過一個最簡單的例程介紹如何新建一個節點。

#include < Arduino.h >
#include < micro_ros_platformio.h >


#include < rcl/rcl.h >
#include < rclc/rclc.h >
#include < rclc/executor.h >


rclc_executor_t executor;
rclc_support_t support;
rcl_allocator_t allocator;
rcl_node_t node;


void setup()
{
  Serial.begin(115200);
  // 設置通過串口進行MicroROS通信
  set_microros_serial_transports(Serial);
  // 延時一段時間,等待設置完成
  delay(2000);
  // 初始化內存分配器
  allocator = rcl_get_default_allocator();
  // 創建初始化選項
  rclc_support_init(&support, 0, NULL, &allocator);
  // 創建節點 hello_microros
  rclc_node_init_default(&node, "hello_microros", "", &support);
  // 創建執行器
  rclc_executor_init(&executor, &support.context, 1, &allocator);
}


void loop()
{
  delay(100);
  // 循環處理數據
  rclc_executor_spin_some(&executor, RCL_MS_TO_NS(100));
}

上面代碼并不復雜,小魚已經將注釋寫上,強烈建議你跟著代碼敲一遍,不要直接復制粘貼。

相比在上位機中開發ROS,這里多了幾步

設置通信協議,因為可以通過多種方式連接,所以需要進行提前設置

初始化內存分配器,在微控制器上資源受限,內存的管理要很細致

創建初始化選項,用于初始化rcl并創建一些需要用到的數據結構體

關于rclc的api小魚并沒有找到文檔,不過源碼的頭文件依然非常清晰,直接按著Ctrl點擊某個函數即可跳轉(不行的,重啟下Vscode)。

比如關于rclc_support_init 的源碼及參數介紹。

/**
 *  Initializes rcl and creates some support data structures.
 *  Initializes clock as RCL_STEADY_TIME.
 *  * < hr >
 * Attribute          | Adherence
 * ------------------ | -------------
 * Allocates Memory   | Yes (in RCL)
 * Thread-Safe        | No
 * Uses Atomics       | No
 * Lock-Free          | Yes
 *
 * param[inout] support a zero-initialized rclc_support_t
 * param[in] argc number of args of main
 * param[in] argv array of arguments of main
 * param[in] allocator allocator for allocating memory
 * return `RCL_RET_OK` if RCL was initialized successfully
 * return `RCL_RET_INVALID_ARGUMENT` if any null pointer as argument
 * return `RCL_RET_ERROR` in case of failure
 */
RCLC_PUBLIC
rcl_ret_t
rclc_support_init(
  rclc_support_t * support,
  int argc,
  char const * const * argv,
  rcl_allocator_t * allocator);

三、運行測試

連接開發板,編譯下載,如果遇到端口被占用,多半是你的microros_agent沒有關閉,Ctrl+C打斷運行再次嘗試。

圖片

接著打開Agent

圖片

然而并沒有什么反應,重新點擊一次RST即可看到有數據發送和接收過來了。

圖片

接著打開新的終端,輸入指令

ros2 node list
ros2 node info /hello_microros

圖片

可以看到,我們的第一個節點成功運行起來了。

四、總結

本節我們成功的在微控制器平臺上將MicroROS節點運行起來了,下一節我們開始正式進行ROS2通信的學習。

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

    關注

    48

    文章

    7923

    瀏覽量

    153806
  • Micro
    +關注

    關注

    2

    文章

    269

    瀏覽量

    35588
  • 學習板
    +關注

    關注

    0

    文章

    46

    瀏覽量

    12351
  • 機械臂
    +關注

    關注

    13

    文章

    547

    瀏覽量

    25252
  • ROS
    ROS
    +關注

    關注

    1

    文章

    285

    瀏覽量

    17592
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    電梯的基礎原理:微控制器

    微控制器
    jf_10480160
    發布于 :2022年12月14日 07:20:15

    微控制器的作用與應用

    微控制器是將微型計算機的主要部分集成在一個芯片的單芯片微型計算機。微控制器誕生于20世紀70年代中期,經過20多年的發展,其成本越來越低,而性能越來越強大,這使其應用已經無處不在,遍及各個領域
    發表于 09-10 06:21

    微控制器MCU是什么

    的應用中。MCU微控制器與微處理的不同之處在于它在一個芯片內包含整個處理引擎的更多元素。它將大多數處理引擎組件集成到單個芯片可以減小尺寸和成本。這使得對數字控制甚至更多的設備和過程
    發表于 11-03 06:45

    以8051微控制器和82527獨立CAN總線控制器為核心組成

    介紹一種以8051微控制器和82527獨立CAN總線控制器為核心組成的CAN總線智能傳感節點的設計方法,并給出其硬件原理圖和初始化程序。
    發表于 07-17 08:41 ?26次下載

    小型微控制器的實時操作系統

    小型微控制器的實時操作系統,感興趣的小伙伴們可以免費下載看看。
    發表于 07-13 17:46 ?0次下載

    基于FatFs在32位微控制器STM32的移植

    基于FatFs在32位微控制器STM32的移植
    發表于 09-26 09:31 ?9次下載
    基于FatFs在32位<b class='flag-5'>微控制器</b>STM32<b class='flag-5'>上</b>的移植

    微控制器到底是什么?微控制器有怎么樣的應用

    微控制器的使用已滲透入生活各方面,為增進大家對微控制器的了解,本文將對微控制器微控制器應用予以介紹。如果你對微控制器具有興趣,不妨繼續往下
    的頭像 發表于 06-27 10:25 ?1.2w次閱讀

    什么是微控制器?如何編程微控制器

    微控制器進行編程或刻錄意味著“將程序從編譯傳輸到微控制器的存儲”。微控制器的程序通常是用C或匯編語言編寫的,最后編譯
    的頭像 發表于 08-21 15:40 ?1.1w次閱讀

    STM32微控制器的Octo-SPI接口

    STM32微控制器的Octo-SPI接口
    發表于 11-21 08:11 ?4次下載
    STM32<b class='flag-5'>微控制器</b><b class='flag-5'>上</b>的Octo-SPI接口

    微控制器基礎】——CPU內核與整體配置(

    微控制器基礎】——CPU內核與整體配置(
    的頭像 發表于 10-17 17:19 ?1342次閱讀
    【<b class='flag-5'>微控制器</b>基礎】——CPU內核與整體配置(<b class='flag-5'>上</b>)

    微控制器基礎】——完美的軟硬結合(

    微控制器基礎】——完美的軟硬結合(
    的頭像 發表于 10-17 16:23 ?691次閱讀
    【<b class='flag-5'>微控制器</b>基礎】——完美的軟硬結合(<b class='flag-5'>上</b>)

    微控制器基礎】——電路中的“數字與邏輯”(

    微控制器基礎】——電路中的“數字與邏輯”(
    的頭像 發表于 10-26 16:34 ?856次閱讀
    【<b class='flag-5'>微控制器</b>基礎】——電路中的“數字與邏輯”(<b class='flag-5'>上</b>)

    微控制器基礎】—— 從歷史切入,了解微控制器的五個要素(下)

    微控制器基礎】—— 從歷史切入,了解微控制器的五個要素(下)
    的頭像 發表于 12-06 17:23 ?780次閱讀
    【<b class='flag-5'>微控制器</b>基礎】—— 從歷史切入,了解<b class='flag-5'>微控制器</b>的五個要素(下)

    微控制器基礎】——從歷史切入,了解微控制器的五個要素(

    微控制器基礎】——從歷史切入,了解微控制器的五個要素(
    的頭像 發表于 12-07 10:55 ?833次閱讀
    【<b class='flag-5'>微控制器</b>基礎】——從歷史切入,了解<b class='flag-5'>微控制器</b>的五個要素(<b class='flag-5'>上</b>)

    增加微控制器的輸入數

    電子發燒友網站提供《增加微控制器的輸入數.pdf》資料免費下載
    發表于 09-21 10:30 ?0次下載
    增加<b class='flag-5'>微控制器</b><b class='flag-5'>上</b>的輸入數
    主站蜘蛛池模板: 久久精品午夜 | bt天堂电影 | 超色视频 | 狠狠色丁香婷婷综合欧美 | 日本黄色生活片 | 男人天堂网在线播放 | 在线免费视频手机版 | 国产高清成人 | 国产色视频网站免费观看 | 99久久免费午夜国产精品 | 欧美午夜影视 | 成人在线一区二区三区 | 三级在线观看国产 | 年轻护士3的滋味 | 欧美高清成人videosex | 天天摸天天爽天天澡视频 | 男人的天堂久久精品激情 | 国产视频一区二区在线观看 | 就操| 天堂网在线播放 | 岬奈奈美在线 国产一区 | 天天插天天干天天操 | 免费观看黄色在线视频 | 手机看片免费福利 | 日韩色影视 | 免费黄色一级片 | 亚洲视频入口 | 爱婷婷视频在线观看 | 国产精品高清免费网站 | 扛着高跟鞋丝袜腿呻吟视频 | 一级一级毛片免费播放 | 中文字幕一区二区三区四区五区 | 欧美一二区视频 | 激情五月深爱五月 | 深夜视频在线播放视频在线观看免费观看 | 色多多官网 | 在线精品一区二区三区 | 四虎影院观看 | 欧美性淫爽www视频播放 | 欧美午夜在线播放 | eeuss久久久精品影院 |