-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Welcome to the poky wiki!
Well, sort of poky.
The purpose of this repository is to provide a template for ROS 2 users to get started using yocto. It was forked from poky to be kept up-to-date easier.
- Create a minimum template repository to demonstrate using the following together:
Because this is a community supported project, keeping up to date with the latest nightly builds of every repository is not possible. Therefore, a single LTS will be supported. Release timelines are linked as needed.
Tool | Version Selected | Release Date | EOL Date |
---|---|---|---|
Yocto | Kirkstone | May 2022 | April 2026 |
ROS 2 | humble | May 2022 | May 2027 |
meta-ros | kirkstone | N/A | N/A |
meta-raspberrypi | kirkstone | N/A | N/A |
meta-tegra | TBD kirkstone or kirkstone-l4t-r32.7.x
|
N/A | N/A |
More versions could be added later. For now, check out the kirkstone-humble
branch here.
kas is a setup tool for bitbake based projects. Perhaps this could be used instead of a template repostory?
- Cross Compilation is hard
- ros-tooling/cross-compile is now archived
- Conan support for ROS 2 doesn't appear to support conan2
- There aren't good tutorials for PI4 as seen here
- Yocto supports reproducible builds
- On Linux, the only Tier 1 support is for Ubuntu 22, which does not guarantee reproducibility
- Bazel is viewed as too much effort for the ROS community
- Enable ROS 2 users, who aren't that familiar with Yocto, to get started easily creating their own images.
- Demonstrate how to add ROS 2, a BSP, and a simple ROS 2 application (node+launch) into a single image
- Demonstrate how to cross compile for either Raspberry Pi 4 or Jetson Nano
- Provide an alternative for cross-compilation of ROS 2 that does not rely on docker qemu (SLOW), cross-compile (archived), or conan (not supported by ROS build system)
- Provide a process to enable CI to build images
- Example here
The following audience is intended:
- Developers who use ROS 2, but who are brand new to Yocto
- Developers in companies who deploy ROS 2 at a small scale and want:
- Reproducible builds when deploying to customers
- Faster cross-compilation and flash to target hardware than docker+qemu provides
- Smaller teams that do not have the resources like iRobot or time to try multiple cross-compile packages
- Devops engineers who currently use Yocto and need to add ROS 2 to their project
- Open source ROS 2 package maintainers who want to supply users with images to deploy their packages on PI4 or Jetson Nano
The following knowledge is a prerequisite to getting started here - most professional ROS developers will have this experience
Assumptions:
- You have an Ubuntu 22.04 OS to develop on
- You understand the ROS 2 CLI (ros2 launch, ros2 run)
- You have a basic understanding of colcon (ament_cmake, colcon CLI)
- You have used the rosdep tool (Writing a package.xml, using rosdep CLI)
- You develop ROS software (Using rclcpp or rclpy)
TBD
The ArduPilot developer team members want an easy way to deploy terrain-navigation on a Raspberry Pi.
- If you can't figure out how to use something or want to discuss something, use the "Discussions" tab.
- If you find an issue or have a feature request, file it in the "Issues" section.
- If you would like to contribute, PR's are welcome. DCO sign off is required for all commits
Everything added under this repository will follow the MIT license. Certain components in poky or dependencies have alternative licenses. You can always examine what's included per this tutorial.