Giter Site home page Giter Site logo

tianrking / micro_ros_raspberrypi_pico_sdk Goto Github PK

View Code? Open in Web Editor NEW

This project forked from micro-ros/micro_ros_raspberrypi_pico_sdk

0.0 1.0 0.0 26.53 MB

Raspberry Pi Pico (RP2040) and micro-ROS integration

License: Apache License 2.0

Shell 0.05% C++ 2.11% C 97.80% CMake 0.04%

micro_ros_raspberrypi_pico_sdk's Introduction

banner banner

micro-ROS module for Raspberry Pi Pico SDK

License

Getting Started

Here is a quick way to compile the example given in this repository.

Dependencies

micro-ROS precompiled library is compiled using arm-none-eabi-gcc 9.3.1, a compatible version is expected when building the micro-ROS project. You can specify a compiler path with the following command:

# Configure environment
echo "export PICO_TOOLCHAIN_PATH=..." >> ~/.bashrc
source ~/.bashrc

1. Install Pico SDK

First, make sure the Pico SDK is properly installed and configured:

# Install dependencies
sudo apt install cmake g++ gcc-arm-none-eabi doxygen libnewlib-arm-none-eabi git python3
git clone --recurse-submodules https://github.com/raspberrypi/pico-sdk.git $HOME/pico-sdk

# Configure environment
echo "export PICO_SDK_PATH=$HOME/pico-sdk" >> ~/.bashrc
source ~/.bashrc

2. Compile Example

Once the Pico SDK is ready, compile the example:

cd micro_ros_raspberrypi_pico_sdk
mkdir build
cd build
cmake ..
make

To flash, hold the boot button, plug the USB and run:

cp pico_micro_ros_example.uf2 /media/$USER/RPI-RP2

3. Start Micro-ROS Agent

Micro-ROS follows the client-server architecture, so you need to start the Micro-ROS Agent. You can do so using the micro-ros-agent Docker:

docker run -it --rm -v /dev:/dev --privileged --net=host microros/micro-ros-agent:humble serial --dev /dev/ttyACM0 -b 115200

What files are relevant?

  • pico_uart_transport.c: Contains the board specific implementation of the serial transport (no change needed).
  • CMakeLists.txt: CMake file.
  • pico_micro_ros_example.c: The actual ROS 2 publisher.

How to build the precompiled library

Micro-ROS is precompiled for Raspberry Pi Pico in libmicroros. If you want to compile it by yourself:

docker pull microros/micro_ros_static_library_builder:humble
docker run -it --rm -v $(pwd):/project microros/micro_ros_static_library_builder:humble

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

How to use Pico SDK?

Here is a Raspberry Pi Pico C/C++ SDK documentation: https://datasheets.raspberrypi.org/pico/raspberry-pi-pico-c-sdk.pdf

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

There are no known limitations.

micro_ros_raspberrypi_pico_sdk's People

Contributors

acuadros95 avatar artivis avatar github-actions[bot] avatar lamecube avatar lukicdarkoo avatar mergify[bot] avatar pablogs9 avatar

Watchers

 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.