在线观看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

    文章

    7552

    瀏覽量

    151423
  • Micro
    +關注

    關注

    2

    文章

    262

    瀏覽量

    34843
  • 學習板
    +關注

    關注

    0

    文章

    44

    瀏覽量

    12167
  • 機械臂
    +關注

    關注

    12

    文章

    515

    瀏覽量

    24587
  • ROS
    ROS
    +關注

    關注

    1

    文章

    278

    瀏覽量

    17009
收藏 人收藏

    評論

    相關推薦

    8051微控制器的基礎知識

    8051微控制器是嵌入式系統、消費電子、汽車等各個領域中最流行和最常用的微控制器之一,技術稱為Intel MCS-51架構。8051微控制器系列是由Intel公司在1980年開發,在
    發表于 09-12 17:32 ?3442次閱讀
    8051<b class='flag-5'>微控制器</b>的基礎知識

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

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

    微控制器的作用與應用

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

    以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 ?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 ?1030次閱讀
    【<b class='flag-5'>微控制器</b>基礎】——CPU內核與整體配置(<b class='flag-5'>上</b>)

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

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

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

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

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

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

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

    微控制器基礎】——從歷史切入,了解微控制器的五個要素(
    的頭像 發表于 12-07 10:55 ?592次閱讀
    【<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>的輸入數
    主站蜘蛛池模板: 亚洲色图第一页| 国产精品天天在线| 亚洲福利视频网址| 天天草夜夜草| 国产肥女bbwbbw| 最新丁香六月| 亚州色吧| 国产美女动态免费视频| 9299yy看片淫黄大片在线| 天天干一干| 亚洲精品老司机综合影院| 中国特级毛片| 国产综合图片| 天天摸天天碰成人免费视频| 18满xo影院视频免费体验区| 一级毛片黄色| 国产欧美乱码在线看| 荡女妇边被c边呻吟久久| 亚洲欧洲精品成人久久曰影片| 黄页网站在线播放| 天天爽夜夜爽人人爽一区二区| 国产精品午夜寂寞视频| 亚洲特级aaaaaa毛片| 国产啊v在线观看| 69日本xxxxxxxxx78| 欧美区在线播放| www.毛片com| 国产精品理论| 天堂网在线最新版官网| 韩国xxxxx视频在线| 97人人做人人添人人爱| 在线黄色免费| 玖玖精品国产| 国产精品爽爽影院在线| 色婷婷婷婷| 爱爱小视频免费看| 狠狠摸狠狠操| 四虎影院网| 永久免费看片| 美女被强插| 福利社藏经阁|