Coder Social home page Coder Social logo

lukicdarkoo / micro_ros_arduino Goto Github PK

View Code? Open in Web Editor NEW

This project forked from micro-ros/micro_ros_arduino

0.0 2.0 0.0 7.94 MB

micro-ROS library for Arduino

License: Apache License 2.0

Dockerfile 0.05% C 86.85% Shell 0.15% CMake 0.11% Objective-C 0.97% C++ 11.88%

micro_ros_arduino's Introduction

micro-ROS for Arduino

This is a experimental micro-ROS library for baremetal projects based on Arduino IDE or Arduino CLI. As the build process for ROS 2 and micro-ROS is based on custom meta-build system tools and CMake, this library is provided as a precompiled library. Anyways, users can rebuild its own precompiled libraries in order to modify micro-ROS parameters, for example customizing prebuild meta file.

Supported boards are:

Board Min version State Details Prebuild meta
OpenCR v1.4.16 Supported Based on custom board colcon.meta
Teensy 4.0 v1.8.5 Not tested Based on Teensyduino colcon.meta
Teensy 4.1 v1.8.5 Supported Based on Teensyduino colcon.meta
Teensy 3.2/3.1 v1.8.5 Supported Based on Teensyduino colcon_lowmem.meta

Community contributed boards are:

Board Min version Contributor Details Prebuild meta
Arduino Due - @lukicdarkoo colcon_verylowmem.meta
Arduino Zero - @lukicdarkoo colcon_verylowmem.meta

You can find the available precompiled ROS 2 types for messages and services in available_ros2_types.

How to use the precompiled library

Go to link to release section and download the last release of micro-ROS library for Arduino.

Include it in your proyect using Sketch -> Include library -> Add .ZIP Library...

You can test micro-ROS examples located in this repo examples folder.

Is possible to use a micro-ROS Agent just with this docker command:

# Serial micro-ROS Agent
docker run -it --rm -v /dev:/dev --privileged --net=host microros/micro-ros-agent:foxy serial --dev [YOUR BOARD PORT] -v6

How to build the precompiled library

docker pull microros/micro_ros_arduino_builder:foxy
docker run -it --rm -v $(pwd):/arduino_project microros/micro_ros_arduino_builder:foxy

Note that folders added to extras/library_generation/extra_packages and entries added to extras/library_generation/extra_packages/extra_packages.repos will be taken into account by this build system.

Patch Arduino board for support precompiled libraries

Patch Teensyduino

Go inside your Arduino + Teensyduino installation and replace platform.txt:

export ARDUINO_PATH=[Your Arduino + Teensiduino path]
cd $ARDUINO_PATH/hardware/teensy/avr/
curl https://raw.githubusercontent.com/micro-ROS/micro_ros_arduino/foxy/extras/patching_boards/platform_teensy.txt > platform.txt

Patch SAMD

Go inside your Arduino + Teensyduino installation and replace platform.txt:

export ARDUINO_PATH=[Your Arduino path]
cd $ARDUINO_PATH/hardware/sam/1.6.12/
curl https://raw.githubusercontent.com/micro-ROS/micro_ros_arduino/foxy/extras/patching_boards/platform_arduinocore_sam.txt > platform.txt

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 this repository, see the file 3rd-party-licenses.txt.

Known Issues/Limitations

  • When using provided precompiled libraries, users should take into account the already configured static memory pools in middleware layers. More info here.
  • micro-ROS transports should be refactored in order to provide a pluggable mechanims. Only USB serial transports are provided.
  • Teensyduino support files have to be patched in order to use precompiled libraries.

micro_ros_arduino's People

Contributors

github-actions[bot] avatar lukicdarkoo avatar pablogs9 avatar servetcoskun avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.