Skip to content
Ryan edited this page Jan 22, 2024 · 8 revisions

Welcome

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.

Purpose

Versions Selected

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.

Why use a template repository when you could use kas?

kas is a setup tool for bitbake based projects. Perhaps this could be used instead of a template repostory?

Why Yocto and ROS?

Goals

  • 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

Audience

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)

Timeline

TBD

Where will this be used?

The ArduPilot developer team members want an easy way to deploy terrain-navigation on a Raspberry Pi.

Contributing

  • 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

License

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.