micro_ros_setup包镜像及部分注释(我觉得此包支持很有限)

GitHub - micro-ROS/micro_ros_setup at humble

README.md

This ROS 2 package(这是一个包) is the entry point for building micro-ROS apps for different embedded platforms.

  • Supported platforms
    • Standalone build system tools
  • Dependencies
  • Quick start
  • Building
    • Creating micro-ROS firmware
    • Configuring micro-ROS firmware
    • Building micro-ROS firmware
    • Flashing micro-ROS firmware
  • Building micro-ROS-Agent
  • Contributing
  • Purpose of the Project
  • License
  • Known Issues / Limitations
  • Papers

Supported platforms

This package provides tools and utils to crosscompile micro-ROS with just the common ROS 2 tools for the following platforms platforms.

Note that this package provides basic support only, intended in particular for ROS developers who are new to microcontrollers. Micro-ROS components for each platform are available and provide a deeper and more flexible integration with the platform-specific build systems.

RTOSPlatformVersionExampleRecommended Alternative
Azure RTOS / FreeRTOS / Bare metalRenesas RA6M5Renesas e2 studiorenesas_ra ra6m5micro-ROS component for Renesas e2 studio and RA6M5
FreeRTOSST Nucleo F446RE 1STM32CubeMX latestfreertos nucleo_f446remicro-ROS utils for STM32CubeMX and STM32CubeIDE
FreeRTOSST Nucleo F446ZE 1STM32CubeMX latestfreertos nucleo_f446zemicro-ROS utils for STM32CubeMX and STM32CubeIDE
FreeRTOSST Nucleo F746ZG 1STM32CubeMX latestfreertos nucleo_f746zgmicro-ROS utils for STM32CubeMX and STM32CubeIDE
FreeRTOSST Nucleo F767ZI 1STM32CubeMX latestfreertos nucleo_f767zimicro-ROS utils for STM32CubeMX and STM32CubeIDE
FreeRTOSEspressif ESP32v8.2.0freertos esp32micro-ROS component for ESP-IDF
FreeRTOSCrazyflie 2.1v10.2.1 - CF 2020.06freertos crazyflie21
ZephyrOlimex STM32-E407v2.6.0zephyr olimex-stm32-e407micro-ROS module for Zephyr RTOS
ZephyrST Nucleo F446RE 1v2.6.0zephyr nucleo_f446remicro-ROS module for Zephyr RTOS
ZephyrST B-L475E-IOT01Av2.6.0zephyr discovery_l475_iot1micro-ROS module for Zephyr RTOS
ZephyrST Nucleo H743ZI 1v2.6.0zephyr nucleo_h743zimicro-ROS module for Zephyr RTOS
ZephyrZephyr emulatorv2.6.0zephyr hostmicro-ROS module for Zephyr RTOS
MbedST B-L475E-IOT01Av6.6mbed disco_l475vg_iot01amicro-ROS module for Mbed RTOS
-Static library (.a) and headers (.h) 3-generate_lib
LinuxHost 2Ubuntu 18.04/20.04host
AndroidAOSP 1Latestandroid generic

1 Community supported, may have lack of official support

2 Support for compiling apps in a native Linux host for testing and debugging

3 a valid CMake toolchain with custom crosscompilation definition is required

Standalone build system tools

micro_ros_setup provides access to standalone build system tools using the component command. After building this package just run:

ros2 run micro_ros_setup component --help

micro-ROS standalone module for specific platforms are:

  • a standalone micro-ROS component for Renesas e2 studio and RA6M5: this package enables the integration of micro-ROS in Renesas e2 studio and RA6M5 MCU family.
  • a standalone micro-ROS component for ESP-IDF: this package enables the integration of micro-ROS in any Espressif ESP32 IDF project.
  • a standalone micro-ROS module for Zephyr RTOS: this package enables the integration of micro-ROS in any Zephyr RTOS workspace.
  • a standalone micro-ROS module for Mbed RTOS: this package enables the integration of micro-ROS in any Mbed RTOS workspace.
  • a standalone micro-ROS module for NuttX RTOS: this package enables the integration of micro-ROS in any NuttX RTOS workspace.
  • a standalone micro-ROS module for Microsoft Azure RTOS: this package enables the integration of micro-ROS in a Microsoft Azure RTOS workspace.
  • a standalone micro-ROS module for RT-Thread RTOS: this package enables the integration of micro-ROS in a RT-Thread workspace.
  • a standalone micro-ROS app for TI Tiva™ C Series: this package enables the integration of micro-ROS in a exas Instruments Tiva™ C Series.
  • a set of micro-ROS utils for STM32CubeMX and STM32CubeIDE: this package enables the integration of micro-ROS in STM32CubeMX and STM32CubeIDE.
  • a library builder for PlatformIO: this package enables the integration of micro-ROS in PlatformIO.
  • a precompiled set of Arduino IDE libraries: this package enables the integration of micro-ROS in the Arduino IDE for some hardware platforms.
  • a precompiled set of Raspberry Pi Pico SDK libraries: this package enables the integration of micro-ROS in the Raspberry Pi Pico SDK.

Dependencies

This package targets the ROS 2 installation. ROS 2 supported distributions are:

ROS 2 DistroStateBranch
CrystalEOLcrystal
DashingEOLdashing
FoxySupportedfoxy
GalacticEOLgalactic
HumbleSupportedhumble
RollingSupportedmain

Some other prerequisites needed for building a firmware using this package are:

sudo apt install python3-rosdep

Building for Android needs Latest Android NDK to be installed and the following environment variables to be set:

  • ANDROID_ABI: CPU variant, refer here for details.
  • ANDROID_NATIVE_API_LEVEL: Android platform version, refer here for details.
  • ANDROID_NDK: root path of the installed NDK.

Quick start

Download here the micro-ROS docker image that contains a pre-installed client and agent as well as some compiled examples.

Building

Create a ROS 2 workspace and build this package for a given ROS 2 distro (see table above):

source /opt/ros/$ROS_DISTRO/setup.bashmkdir uros_ws && cd uros_wsgit clone -b $ROS_DISTRO https://github.com/micro-ROS/micro_ros_setup.git src/micro_ros_setuprosdep update && rosdep install --from-paths src --ignore-src -ycolcon buildsource install/local_setup.bash

Once the package is built, the firmware scripts are ready to run.

You can find tutorials for moving your first steps with micro-ROS on an RTOS in the micro-ROS webpage.

Creating micro-ROS firmware

Using the create_firmware_ws.sh [RTOS] [Platform] command, a firmware folder will be created with the required code for building a micro-ROS app. For example, for our reference platform, the invocation is:

# Creating a FreeRTOS + micro-ROS firmware workspace
ros2 run micro_ros_setup create_firmware_ws.sh freertos olimex-stm32-e407# Creating a Zephyr + micro-ROS firmware workspace
ros2 run micro_ros_setup create_firmware_ws.sh zephyr olimex-stm32-e407

Configuring micro-ROS firmware

By running configure_firmware.sh command the installed firmware is configured and modified in a pre-build step. This command will show its usage if parameters are not provided:

ros2 run micro_ros_setup configure_firmware.sh [configuration] [options]

By running this command without any argument the available demo applications and configurations will be shown.

Common options available at this configuration step are:

  • --transport or -tudpserial or any hardware specific transport label
  • --dev or -d: agent string descriptor in a serial-like transport (optional)
  • --ip or -i: agent IP in a network-like transport (optional)
  • --port or -p: agent port in a network-like transport (optional)

Please note that each RTOS has its configuration approach that you might use for further customization of these base configurations. Visit the micro-ROS webpage for detailed information about RTOS configuration.

In summary, the supported configurations for transports are:

FreeRTOSZephyrMbed
Olimex STM32-E407UART, NetworkUSB, UART-
ST B-L475E-IOT01A-USB, UART, NetworkUART
Crazyflie 2.1Custom Radio Link--
Espressif ESP32UART, WiFI UDP--
ST Nucleo F446RE 1UARTUART-
ST Nucleo F446ZE 1UART--
ST Nucleo H743ZI 1-UART-
ST Nucleo F746ZG 1UARTUART-
ST Nucleo F767ZI 1UART--

1 Community supported, may have lack of official support

Building micro-ROS firmware

By running build_firmware.sh the firmware is built:

ros2 run micro_ros_setup build_firmware.sh

Flashing micro-ROS firmware

In order to flash the target platform run flash_firmware.sh command. This step may need some platform-specific procedure to boot the platform in flashing mode:

ros2 run micro_ros_setup flash_firmware.sh

Building micro-ROS-Agent

Using this package is possible to install a ready to use micro-ROS-Agent:

ros2 run micro_ros_setup create_agent_ws.sh
ros2 run micro_ros_setup build_agent.sh
source install/local_setup.sh
ros2 run micro_ros_agent micro_ros_agent [parameters]

Contributing

As it is explained along this document, the firmware building system takes four steps: creating, configuring, building and flashing.

New combinations of platforms and RTOS are intended to be included in config folder. For example, the scripts for building a micro-ROS app for Crazyflie 2.1 using FreeRTOS is located in config/freertos/crazyflie21.

This folder contains up to four scripts:

  • create.sh: gets a variable named $FW_TARGETDIR and installs in this path all the dependencies and code required for the firmware.
  • configure.sh: modifies and configure parameters of the installed dependencies. This step is optional.
  • build.sh: builds the firmware and create a platform-specific linked binary.
  • flash.sh: flashes the binary in the target platform.

Some other required files inside the folder can be accessed from these scripts using the following paths:

# Files inside platform folder
$PREFIX/config/$RTOS/$PLATFORM/# Files inside config folder
$PREFIX/config

Purpose of the Project

This software is not ready for production use. It has neither been developed nor tested for a specific use case. However, the license conditions of the applicable Open Source licenses allow you to adapt the software to your needs. Before using it in a safety relevant setting, make sure that the software fulfills your requirements and adjust it according to any applicable safety standards, e.g., ISO 26262.

License

This repository is open-sourced under the Apache-2.0 license. See the LICENSE file for details.

For a list of other open-source components included in ROS 2 system_modes, see the file 3rd-party-licenses.txt.

Known Issues / Limitations

There are no known limitations.

If you find issues, please report them.

Papers

If you want to cite micro-ROS, please cite the following book chapter (PDF available at Springer Link):

Kaiwalya Belsare, Antonio Cuadros Rodriguez, Pablo Garrido Sánchez, Juanjo Hierro, Tomasz Kołcon, Ralph Lange, Ingo Lütkebohle, Alexandre Malki, Jaime Martin Losa, Francisco Melendez, Maria Merlan Rodriguez, Arne Nordmann, Jan Staschulat, and Julian von Mendel: Micro-ROS. In: Anis Koubaa (ed.) Robot Operating System (ROS): The Complete Reference (Volume 7), Springer, pp. 3–55, 2023. (Online since 2 February 2023.)

@INBOOK{Belsare_et_al_2023_Micro-ROS,author = {Kaiwalya Belsare and Antonio Cuadros Rodriguez and Pablo Garrido S\'{a}nchez and Juanjo Hierroand Tomasz Ko\l{}con and Ralph Lange and Ingo L\"{u}tkebohle and Alexandre Malkiand Jaime Martin Losa and Francisco Melendez and Maria Merlan Rodriguez and Arne Nordmannand Jan Staschulat and and Julian von Mendel},title = {Micro-ROS},editor = {Anis Koubaa},booktitle = {Robot Operating System (ROS): The Complete Reference (Volume 7)},year = {2023},publisher = {Springer},pages = {3--55},doi = {10.1007/978-3-031-09062-2_2}
}

About

Support macros for building micro-ROS-based firmware.

Resources

 Readme

License

 Apache-2.0 license

 Activity

Stars

 301 stars

Watchers

 20 watching

Forks

 114 forks

Report repository

Releases 2

micro-ROS IronLatest

on Jun 22

+ 1 release

Packages

No packages published

Contributors24

  • @iluetkeb

  • @pablogs9

  • @mergify[bot]

  • @BorjaOuterelo

  • @Acuadros95

  • @jamoralp

  • @RobertWilbrandt

  • @ralph-lange

  • @dayjaby

  • @ZhenshengLee

  • @kneep

  • @jnugen

  • @alsaibie

  • @gramss

+ 10 contributors

Languages

  • Shell91.0%
  • Python6.9%
  • CMake2.1%

Footer

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/255896.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++多态(详解)

一、多态的概念 1.1、多态的概念 多态:多种形态,具体点就是去完成某个行为,当不同的对象去完成时会产生出不同的状态。 举个例子:比如买票这个行为,当普通人买票时,是全价买票;学生买票时&am…

100. 相同的树(Java)

目录 解法: 官方解法: 方法一:深度优先搜索 复杂度分析 时间复杂度: 空间复杂度: 方法二:广度优先搜索 复杂度分析 时间复杂度: 空间复杂度: 给你两棵二叉树的根节点 p 和…

【日常总结】mybatis-plus WHERE BINARY 中文查不出来

目录 一、场景 二、问题 三、原因 四、解决方案 五、拓展(全表全字段修改字符集一键更改) 准备工作:做好整个库备份 1. 全表一键修改 Stage 1:运行如下查询 Stage 2:复制sql语句 Stage 3:执行即可…

了解Linux网络配置

本章主要介绍网络配置的方法。 网络基础知识 查看网络信息 图形化界面修改 通过配置文件修改 命令行管理 11.1 网络基础知识 一台主机需要配置必要的网络信息,才可以连接到互联网。需要的配置网络信息包括IP、 子网掩码、网关和 DNS。 11.1.1 IP 地址 在计算机…

一文3000字从0到1用Python进行gRPC接口测试!

gRPC 是一个高性能、通用的开源RPC框架,其由 Google 主要面向移动应用开发并基于HTTP/2 协议标准而设计,基于 ProtoBuf(Protocol Buffers) 序列化协议开发,且支持众多开发语言。 自gRPC推出以来,已经广泛应用于各种服务之中。在测…

Python 作业答疑

1. 哥德巴赫猜想 问题描述: 2000以内的不小于4的正偶数都能够分解为两个素数之和(即验证歌德巴赫猜想对2000以内的正偶数成立)。 问题分析: 根据问题描述,为了验证歌德巴赫猜想对2000以内的正偶数都是成立的&#…

Android 11 适配——整理总结篇

背景 > 经过检测,我们识别到您的应用,目前未适配安卓11(API30),请您关注适配截止时间,尽快开展适配工作,避免影响应用正常发布和经营。 > targetSdkVersion30 升级适配工作参考文档&am…

SRC挖掘漏洞XSS

Markdown是一种轻量级标记语言,创始人为约翰格鲁伯(John Gruber)。它允许人们使用易读易写的纯文本格式编写文档,然后转换成有效的 XHTML(或者HTML)文档。这种语言吸收了很多在电子邮件中已有的纯文本标记的…

Hadoop学习笔记(HDP)-Part.20 安装Flume

目录 Part.01 关于HDP Part.02 核心组件原理 Part.03 资源规划 Part.04 基础环境配置 Part.05 Yum源配置 Part.06 安装OracleJDK Part.07 安装MySQL Part.08 部署Ambari集群 Part.09 安装OpenLDAP Part.10 创建集群 Part.11 安装Kerberos Part.12 安装HDFS Part.13 安装Ranger …

鸿蒙开发ArkTS语言—状态管理概述

概述 我们构建的页面多为静态界面。如果希望构建一个动态的、有交互的界面,就需要引入“状态”的概念。 图1 效果图 上面的示例中,用户与应用程序的交互触发了文本状态变更,状态变更引起了UI渲染,UI从“Hello World”变更为“Hel…

方法-TensorBoard如何在PC端远程可视化服务器的训练结果

本专栏为深度学习的一些技巧,方法和实验测试,偏向于实际应用,后续不断更新,感兴趣童鞋可关,方便后续推送 简介 TensorBoard 是 TensorFlow 的可视化工具,可以帮助用户实时监控深度神经网络的训练过程,基于PyTorch的训练过程也可以可视化。假设我在服务器上进行模型…

SpringSecurity6 | 修改默认用户

✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏: Java从入门到精通 ✨特色专栏: MySQL学习 🥭本文内容:SpringSecurity6 | 修改默认用户 📚个人知识库 :知识库,欢迎大家访问 学习参考…