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

news2024/12/26 22:32:36

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.bash

mkdir uros_ws && cd uros_ws

git clone -b $ROS_DISTRO https://github.com/micro-ROS/micro_ros_setup.git src/micro_ros_setup

rosdep update && rosdep install --from-paths src --ignore-src -y

colcon build

source 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 Hierro
            and Tomasz Ko\l{}con and Ralph Lange and Ingo L\"{u}tkebohle and Alexandre Malki
            and Jaime Martin Losa and Francisco Melendez and Maria Merlan Rodriguez and Arne Nordmann
            and 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.coloradmin.cn/o/1292866.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

QML与C++之间结构体输出

1.定义带有结构体的头文件TrackClass.h #ifndef TRACKCLASS_H #define TRACKCLASS_H#include <QGuiApplication> #include "QObject" #include <QVector>struct TrackPoint {Q_GADGETQ_PROPERTY(qreal lat MEMBER lat)Q_PROPERTY(qreal lon MEMBER lon)…

中山大学李华山、王彪课题组开发 SEN 机器学习模型,高精度预测材料性能

内容一览&#xff1a;了解全局晶体对称性并分析等变信息&#xff0c;对于预测材料性能至关重要&#xff0c;但现有的、基于卷积网络的算法尚且无法完全实现这些需求。针对于此&#xff0c;中山大学的李华山、王彪课题组&#xff0c;开发了一款名为 SEN 的机器学习模型&#xff…

Textual Inversion

参考博客1:https://www.bilibili.com/read/cv25430752/

新版IDEA中,module模块无法被识别,类全部变成咖啡杯无法被识

新版IDEA中&#xff0c;module模块无法被识别&#xff0c;类全部变成咖啡杯无法被识 如下图&#xff1a; 解决方法&#xff1a;java的Directory文件没有被设置为根目录&#xff0c;解决方法如下&#xff1a; 这是方法之一&#xff0c;还有很多的原因 可能的原因&#xff1a; …

androidstudio设置内存

androidstudio一直 scanning files to index&#xff0c;需要去设置内存&#xff1a; 操作如下&#xff1a;

【无线网络技术】——无线个域网(学习笔记)

&#x1f4d6; 前言&#xff1a;手机、PC机、电视等消费类产品非常普及&#xff0c;人们希望有一种短距离、低成本、小功耗的无线通信方式&#xff0c;实现不同功能单一设备的互联&#xff0c;提供小范围内设备的自组网机制&#xff0c;并通过一定的安全接口完成自组小网与广域…

Spring AOP从入门到精通

目录 1. AOP的演化过程 1. 代理模式 2. 动态代理 2.1 JDK动态代理 2.2 Cglib动态代理 3. Spring模式 3.1 ProxyFactory 3.2 ProxyFactoryBean 3.3 AbstractAutoProxyCreator 2. Spring AOP抽象 1. 核心术语 1.1 连接点(JoinPoint) 1.2 切点(Pointcut) 1.3 增强(Ad…

交易历史记录20231207 记录

昨日回顾&#xff1a; select top 10000 * from dbo.全部&#xff21;股20231207_ALL where 连板天 >1 and DDE大单净量>0 and DDE散户数量<0 and RSI> 80 and 五指标共振>0 and 涨停基因>20 and CONVERT(datetime,最后涨停时间,120) <CONVERT(d…

Linux 线程——信号量

题目&#xff1a;编写代码实现编写一个程序&#xff0c;开启三个线程&#xff0c;这三个线程的ID分别是A,B,C,每个线程将自己的ID在屏幕上打印10遍&#xff0c;要求输出必须按照ABC的顺序显示&#xff0c;如&#xff1a;ABCABCABC... 思路&#xff1a;创建三个ID分别为ABC的线程…

【Mac】brew提示arch -arm64 brew以及uname返回x86_64的问题

背景 使用MacBook 14 M1 Pro两年了&#xff0c;自从使用了第三方Shell工具WindTerm后&#xff0c;使用brew时会提示我使用arch -arm64 brew安装&#xff0c;一开始没太在意&#xff0c;直到今天朋友问我uname -a返回的是什么架构&#xff0c;我才惊讶的发现竟然返回的是x86_64…

Linux篇:进程间通信

一、进程间通信原理&#xff1a; 1、通信是有成本的&#xff1a;两个或者多个进程&#xff0c;实现数据层面的交互&#xff0c;因为进程独立性的存在&#xff0c;导致进程通信的成本比较高。 2、进程间通信的方式&#xff1a; ①基本数据 ②发送命令 ③某种协同 ④通知 .....…

2.HTML进阶

第2章-HTML进阶 Objective(本课目标) 了解表格标签的使用掌握列表标签的使用掌握表单标签的使用 1. 表格 table(会使用) 表格作用&#xff1a; 存在即是合理的。 表格的现在还是较为常用的一种标签&#xff0c;但不是用来布局&#xff0c;常见显示、展示表格式数据。 因为它…

Motion Plan之轨迹生成笔记 (2)

Motion Plan之搜索算法笔记 Motion Plan之基于采样的路径规划算法笔记 Motion Plan之带动力学约束路径搜索 什么是基于优化的轨迹生成 Optimization-Based Trajectory Planning&#xff08;基于优化的轨迹规划&#xff09;是一种常用的方法&#xff0c;用于生成自动化系统&am…

【Flutter】vs2022上开发flutter

在vs上开发flutter&#xff0c;结果扩展仓库上没办法找到Dart&#xff0c;Flutter。 在 这 搜索Dart时也无法找到插件。 最后发现是安装工具出错了 安装了 开发需要的是

电商类直播介绍

电商直播是一种购物方式&#xff0c;通过直播技术向消费者展示商品&#xff0c;并引导其进行购买。在法律上&#xff0c;电商直播属于商业广告活动&#xff0c;主播需要根据具体行为承担“广告代言人"“广告发布者"或“广告主"的责任。 电商直播的特点在于其更…

网络机房的功能有哪些?

网络机房的功能主要包括&#xff1a; 信息存储和管理&#xff1a;机房作为信息系统的核心&#xff0c;需要提供可靠的存储和管理能力&#xff0c;包括服务器、存储设备、备份系统等硬件设备&#xff0c;以及数据备份、数据迁移、容灾等管理方法和技术。网络连接和通信&#xf…

字符串经典基础面试题

关卡名 字符串经典基础面试题 我会了✔️ 内容 1.理解字符串反转的处理方法 ✔️ 2.熟练掌握回文串的判断方法 ✔️ 3.掌握字符串中搜索第一个唯一字符的方法 ✔️ 4.掌握判断是否互为字符串重排的处理技巧 ✔️ 1 反转的问题 我们知道反转是链表的一个重要考点&#xf…

03_W5500TCP_Client

上一节我们完成了W5500网络的初始化过程&#xff0c;这节我们进行TCP通信&#xff0c;w5500作为TCP客户端与电脑端的TCP_Server进行通信。 目录 1.TCP通信流程图&#xff1a; tcp的三次握手&#xff1a; tcp四次挥手&#xff1a; 2.代码分析&#xff1a; 3.测试&#xff1a…

Mysql综合案例练习<1>

MySql综合案例练习<1> 题目一题目二题目三题目四题目五题目六题目七题目八题目九题目十题目十一题目十二题目十三题目十四题目十五题目十六题目十七题目十八题目十九 题目一 创建数据库test01_library 创建表 books&#xff0c;表结构如下&#xff1a; CREATE DATABASE …

Linux操作系统 3.Linux用户和权限

一、认知root用户&#xff08;超级管理员&#xff09; Windows、MacOS、Linux均采用多用户的管理模式进行权限管理 在Linux系统中&#xff0c;拥有最大权限的账户名为&#xff1a;root&#xff08;超级管理员&#xff09; 之前我们一直使用的是普通的用户 root用户拥有最大的系…