ROS 2 Hardware Acceleration Working Group 2023 dissemination report
Follows from https://github.com/ros-acceleration/community/issues/34. Summarizing easily measurable dissemination efforts that happened as part of the HAWG:
Tracking progress
Key milestones
| Year | Objective |
|---|---|
21 |
✅ 1) Design tools and conventions to seamlessly integrate acceleration kernels and related embedded binaries into the ROS 2 computational graphs leveraging its existing build system (ament_acceleration extensions) [^1], meta build tools (colcon-acceleration extension) and a new firmware layer (acceleration_firmware) [^3]. |
21 |
✅ 2) Provide reference examples and blueprints for acceleration architectures used in ROS 2 and Gazebo. |
21 |
✅ 3) REP-2008 (ROS 2 Hardware Acceleration Architecture and Conventions) first draft proposed PR |
22 |
✅ 4) Facilitate testing environments that allow to benchmark accelerators with special focus on power consumption and time spent on computations (see HAWG benchmarking approach, community#9, tracetools_acceleration, ros2_kria) |
22 |
✅ 5) Survey the community interests on acceleration for ROS 2 and Gazebo (see discourse announcement, survey, result). |
22 |
✅ 6) Produce demonstrators with robot components, real robots and fleets that include acceleration to meet their targets (see acceleration_examples). |
22 |
✅ 7) Acceleration of complete ROS 2 computational graphs https://github.com/ros-acceleration/community/issues/20 |
22 |
❌[^4] 8) Merge first hardware accelerators (kernels) into upstream packages (candidate: image_pipeline, see image_pipeline instrumented at #717 ) |
22 |
✅ 9) Documentation and a "methodology to hardware accelerate a ROS 2 package" (see #20) |
22 |
❌[^5] 10) Organize workshops on robotics and ROS 2 Hardware Acceleration |
22 |
🚧 11) Robotic Processing Unit, first demonstrators #25 |
22 |
✅ 12) REP-2008 (ROS 2 Hardware Acceleration Architecture and Conventions) accepted as an official standard |
22 |
✅ 13) REP-2014 (Benchmarking performance in ROS 2) first draft proposed PR |
23 |
✅ 11) REP-2014 (Benchmarking performance in ROS 2), PR finalized and submitted. Unfortunately it got rejected without technical argumentation ( 🔥 heated discussion) |
23 |
✅ 14) More vendor support. Intel Quartus and oneAPI ecosystems enabled with the ROS 2 Hardware Acceleration Stack [^6] |
23 |
❌ 15) ~~Robotics MCU #31 milestone 1~~ [^7] Instead, worked on an RTL-native FPGA-based ROS 2 implementation for High-Speed Networking: ROBOTCORE ROS 2 |
23 |
✅ 16) RobotPerf benchmarks |
23 |
🚧 17) Robotic Processing Unit, first demonstrators #25 |
24 |
🚧 17) Robotic Processing Unit, first demonstrators #25 |
24 |
🚧 18) New ROS-related network accelerators that build upon the FPGA-native ROS 2 message-passing infrastructure |
24 |
🚧 19) Evolve RobotPerf and expand it. Include new benchmark categories and other communities |
[^1]: See ament_vitis
[^3]: See acceleration_firmware_kv260 for an exemplary vendor extension of the acceleration_firmware package
[^4]: Did not get buy-in from maintainers. Stopped the effort.
[^5]: Discarded for ROSCon and IROS. Lots of work.
[^6]: Reach out for more information about Intel's enablement extensions of the ROS build system and build tools.
[^7]: After months of work, given preliminary results and expectations derived from those, we decided to pivot elsewhere and wrap the Robotics MCU project. Shortly, the performance obtained in RISC-V soft-core based ROS 2 implementations explored was not bringing much value on top of existing CPU implementations of ROS 2. Instead, we invested resources in exploring an FPGA-based ROS 2 implementation for High-Speed Networking.
Key articles and posts in traceable digital media
Meeting recordings (YouTube channel)
| Publication (date & link) | views | reactions |
|---|---|---|
| HAWG#1 | 1028 views (0.15x growth) |
25 reactions |
| HAWG#2 | 508 views (0.14x growth) |
16 reactions |
| HAWG#3 | 442 views (0.10x growth) |
16 reactions |
| HAWG#4 | 201 views (0.17x growth) |
9 reactions |
| HAWG#5 | 180 views (0.13x growth) |
3 reactions |
| HAWG#6 | 385 views (0.10x growth) |
15 reactions |
| HAWG#7 | 246 views (0.13x growth) |
2 reactions |
| HAWG#8 | 229 views (0.18x growth) |
9 reactions |
| HAWG#9 | 370 views (0.10x growth) |
6 reactions |
| HAWG#10 | 433 views (0.27x growth) |
5 reactions |
| HAWG#11 | 255 views (0.26x growth) |
3 reactions |
| HAWG#12 | 240 views (0.39x growth) |
4 reactions |
| HAWG#13 | 229 views (0.74x growth) |
2 reactions |
| HAWG#14 | 224 views | 3 reactions |
| HAWG#15 | 218 views | 4 reactions |
| HAWG#16 | 112 views | 1 reactions |
| HAWG#17 | 42 views | 0 reactions |
| HAWG#18 | 39 views | 1 reactions |
| HAWG#19 | 49 views | 0 reactions |
| HAWG#20 | 40 views | 0 reactions |
| HAWG#21 | 72 views | 0 reactions |
| HAWG#22 | 121 views | 0 reactions |
| RobotPerf subproject - meeting#1 | 134 views | 0 reactions |
| RobotPerf subproject - meeting#2 | 47 views | 0 reactions |
| RobotPerf subproject - meeting#3 | 108 views | 1 reactions |
| RobotPerf subproject - meeting#4 | 88 views | 0 reactions |
Goals for 2024
The Hardware Acceleration Working Group continued growing significantly during 2023. Altogether, that is 3 years of continued growth (2021, 2022). Having accomplished most of the initial objectives of the working group when created in 2021, and having supported multiple silicon vendors as part of the The ROS 2 Hardware Acceleration Stack, the working group will focus next on three objectives: the first objective is to continue working on demonstrators and case studies. We generated very exciting results within 2023 that we'll expand during the next year and hopefully disclose publicly. The second objectives will be to build upon the success of the reference FPGA-based ROS 2 implementation for High-Speed Networking and explore other accelerators. Some ideas include bridging between other communication middlewares or even pushing the speed of networking interactions faster. The third objective is to evolve the RobotPerf project, which attracted quite a few contributors already (see RobotPerf paper). Subgoals here would be to create more benchmark releases, add new benchmarking categories (with their corresponding benchmark implementations) and ultimately, expand the project to other communities which could benefit from it, all while remaining ROS-centric.
Altogether, the objectives for the coming year look as follows:
| Year | Objective |
|---|---|
24 |
🚧 17) Robotic Processing Unit, first demonstrators #25 |
24 |
🚧 18) New ROS-related network accelerators that build upon the FPGA-native ROS 2 message-passing infrastructure |
24 |
🚧 19) Evolve RobotPerf and expand it. Include new benchmark categories and other communities |