ros-realtime-rpi4-image
ros-realtime-rpi4-image copied to clipboard
Figure out what should be included in the default `focal-rt-ros2` image
The focal-rt-ros2 image is built with Ubuntu 20.04.3 with a bunch of basic features (rootfs, install script):
- The RT kernel, based on 5.4.140-rt64 (although there's a minor bug where the deb filename doesn't match the content from the rt kernel repo).
- Pinned cpu frequency via /etc/default/cpu-frequency.
- Removed snap and fwupd as they uses more ram than needed, although maybe snap is something we want to keep as some people ship code via snap?
- Installed ros galactic
- Installed some misc utility packages
- Automatically source the galactic setup.sh for bash.
I made these up. They're not necessarily the best choices. We need to figure out what we want to include in the default. We probably need:
- [x] Sane
/etc/security/limits.confdefaults for RT. - [ ] Optional isolcpus settings similar to what the reference system suggests, either as a compile time configuration or maybe via something similar to the
sshfile that raspberry pi OS make you touch in the boot partition to enable ssh, or maybe a command line utility.
Not sure if there are anything else we need, but we can discuss here. If we want to remove something from what I made up, that's fine as well.
I would like to add some items to the list:
- Disable unattended upgrades on start-up (https://linuxconfig.org/disable-automatic-updates-on-ubuntu-20-04-focal-fossa-linux#:~:text=From%20the%20activities%20menu%20search,Automatically%20check%20for%20updates%20field.)
- Install applications for real-time testing: rt-tests, stress, stress-ng, ROS 2 real-time related applications
@carlossvg @shuhaowu, my suggestion is to merge https://github.com/ros-realtime/ros-realtime-rpi4-image/pull/4 and then we can send a new PR including new tools, etc. Happy to do it :)
Disable unattended upgrades on start-up
Agreed. I'm literally waiting for that right now to finish so I can test the pi :joy:
rt-tests, stress, stress-ng,
:+1:
ROS 2 real-time related applications
Which ones? I want to be relatively careful on how much stuff to add, as we're already at 1.4GB out of a possible 2.0GB by GH releases.
@shuhaowu
Agreed. I'm literally waiting for that right now to finish so I can test the pi joy
I killed the process, otherwise a new vanilla kernel is installed.
Which ones? I want to be relatively careful on how much stuff to add, as we're already at 1.4GB out of a possible 2.0GB by GH releases.
I would install the following ones:
- https://github.com/ros2/examples/tree/master/rclcpp/executors/cbg_executor
- https://github.com/ros2/demos/tree/master/pendulum_msgs
- https://github.com/ros2/demos/tree/master/pendulum_control
- https://github.com/ros-realtime/reference-system
- https://gitlab.com/ApexAI/performance_test
I agree storage should be the priority here, let's see how much storage they add we can leave them out of the image. At least I would try to include one of them so the system can be benchmarked without an internet connection to download the application.
Disable unattended upgrades on start-up (https://linuxconfig.org/disable-automatic-updates-on-ubuntu-20-04-focal-fossa-linux#:~:text=From%20the%20activities%20menu%20search,Automatically%20check%20for%20updates%20field.)
Done here: https://github.com/ros-realtime/ros-realtime-rpi4-image/pull/9
@shuhaowu @LanderU We should add the ubuntu user to the tracing group so we don't need root privileges to use all the ros2 tracing features.
FYI @christophebedard