Skip to content

Feature Request: Zephyr RTOS Support and Module Integration #18

Open

Description

@ShahazadAbdulla

Is your feature request related to a problem? Please describe.
Currently, Pico-ROS has excellent support for ESP-IDF via the picoros-espidf-component. However, when attempting to build Pico-ROS for Zephyr RTOS, the integration becomes highly manual and fragile. Building the Micro-CDR and zenoh-pico dependencies through standard Zephyr CMake (ExternalProject_Add or add_subdirectory) results in missing header generation (e.g., user_types.h) and complex linking errors, as noted in previous discussions (Issue #5).

Describe the solution you'd like
Native support for Zephyr RTOS, ideally structured as a standalone Zephyr module. This would allow developers to seamlessly pull Pico-ROS into their Zephyr workspace via west.yml and enable configuration through Zephyr's standard Kconfig system, matching the developer experience currently available for ESP-IDF.

Describe alternatives you've considered
I am currently working around this by falling back to the ESP-IDF component, but my target architecture strictly requires Zephyr.

Context & Offer to Contribute
I am currently benchmarking Pico-ROS against micro-ROS and Raw Zenoh for high-frequency ros2_control hardware interfaces (GSoC 2026 proposal context). Zephyr integration is a critical path for this architecture.

I plan to actively work on porting this to a proper Zephyr module in the coming weeks. Before I dive into the CMake refactoring and submit a Pull Request, are there any specific architectural guidelines, roadmaps, or blockers from the maintainer team regarding Zephyr support that I should be aware of?

Activity

  1. g4sp3r commented on Apr 11, 2026

    @g4sp3r
    Collaborator

    Hi @ShahazadAbdulla. Thanks for opening this issue.
    Nobody on the team worked with Zephyr before so we would be happy to take PRs.
    If you can manage to do it in this repository without introducing too much Zephyr specific parts and troubles for other targets that would be great. In other case, it would be better to do it in a separate repo like picoros-espidf-component and we can link it in the main readme.
    Let us know if we can support your effort in any way.

  2. ShahazadAbdulla commented on Apr 14, 2026

    @ShahazadAbdulla
    Author

    Hi @g4sp3r
    Thanks for the quick response.

    Given the complexities of Zephyr system and Kconfig, I completely agree that keeping it seperate is the safest architectural choice to avoid problems in the main repo.

    I will build this out as a standalone Zephyr module like picoros-zephyr-module and such modeled after the esp-idf component. Once I have a stable, tested integration that cleanly pulls in the Pico-ROS core and handles the Micro-CDR header generation natively via Zephyr CMake, I will drop the repository link here so we can review it and add it to the main README.

    Thanks for the support, I will keep you updated on this.

  3. Alvin0523 commented on Jun 19, 2026

    @Alvin0523

    hey @ShahazadAbdulla im interested in this too! Will take note and give it a try when it is out !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions