ROS 2 TSC Contribution Report 2022-09-15.pdf (110.5 KB)
ROS 2 TSC Meeting Minutes 2022-09-15
-
Attendees
- Open Robotics - Chris Lalancette, Katherine Scott, William Woodall, Geoff Biggs, Tully Foote
- Bosch - Ralph Lange
- Microsoft - Lou Amadio
- Foxglove - Adrian Macneil, James Smith, John Hurliman, Roman Shtylman, Jacob Bandes-Storch
- Toyota Research Institute - Ian McMahon, Calder Phillips-Grafflin
- Jeremie Deray (artivis) | Canonical
- Samsung Research - Steve Macenski
- Brett Aldrich - Community Representative
- Olivier Michel - Community Representative
- eProsima - Jaime Martin Losa
- PickNik - Henning Kayser
- Wind River - Andrei Kholodnyi
- SwRI - Jerry Towler (representing GVSC)
- Apex.AI — Lyle Johnson, Michael Orlov
- ZettaScale – Angelo Corsaro
- ROBOTIS - Will Son
- Sony - Tomoya Fujita
- iRobot - Alberto Soragna
- Acceleration Robotics - VĂctor Mayoral-Vilches
- Amazon - Camilo Buscaron, Aaron Blasdel
-
Preliminaries
- [Kat ][1 min] Please remember to fill out your contribution report at the bottom of this document prior to the meeting.
- Who is going to ROSCon?
- Event in Chicago: https://roschicago.splashthat.com/
- No meeting currently scheduled for October. Propose 10/13 at 8:30am to allow for ROSCon Travel.
- Approved, kat will schedule
-
Old business
-
New business
- [Kat | 5min] How do we improve ROS 2?
- I’ve heard a lot of community feedback about things that still need improvement in ROS 2
- Networking / RMW configuration
- Tab completion in CLI
- CLI Still needs work
- TSC did not engage in documentation improvement project.
- Just today, missing PyPI library for ROSBag2 introspection
- Proposal: request community feedback for SMALL improvements in September
- Distill requests into a list and present in October
- Request TSC members address list items
- Straw poll – if response is positive I will put together a plan.
- Kat will put together a one page plan for October
- I’ve heard a lot of community feedback about things that still need improvement in ROS 2
- [Adrian | 20min] MCAP & ROSBag2
- Deck from presentation
- MCAP Python Library
- MCAP Specification
- ROS 2 Bag Python Examples – Kat note: this is a good start but not where it needs to be to hand off to a user with no ROS experience.
- FYI: ROS2Bag Foxy Snap
- Caching is an issue, but TLDR MCAP drops fewer messages
- https://mcap.dev for those curious to learn more at a higher level about mcap generally.
- Just to be clear: changing the default would still mean sqlite remains 100% supported as an alternative
- Emerson: ROSBag2 Conversion
- [Chris Lalancette / Victor | 20min] Q&A on Hardware Acceleration REP-2008
- Last item of the meeting to allow for longer discussion.
- Kat note: no vote this time – hold off for Oct
- Victor – “either we wrangle the vendors or the vendors wrangle us”
- Chris – Can we break this into parts – i.e. levels, benchmarks, etc.
- Ian – is this correctly called hardware acceleration
- Lyle – Please explain L1, L2, L3 cores.
- Steve:
- Are most or at least a good chunk of the major vendors already buying in to this? Are these a set of concrete, non-demo examples of these implementations around with deployed use? I suppose I want to understand that this is a standard for folks that want it (and will comply with it) versus creating another standard with limited use which doesn’t end up solving the problem long term (e.g. now there are 18 competing standards).
- Does this aid the ability to ship accelerated code via the build farm?
- Kat – Proof is in the pudding can we see this on three or four vendors, and work up subsequent REPS.
- William Woodall – see REP-2011, lots of motivation for the problem at the start, and not implementation details.
- Calder this seems like this is subsumed by OpenCL, if OpenCL can’t do this, then who can?
- Content to be considered for the discussion:
- REP-2008 PR (note fixes after Open Robotics feedback)
- Public discussion about REP-2008
- Answers to common (previous/potential) questions:
- OpenCL relationship? See comments here
- Why is this relevant for ROS? See comments here
- Why do we need new CMake macros and colcon verbs? See comments here
- Is there a public implementation of this REP? Yes, see ros-acceleration for the various repos that accomplish it. For more context, refer to this paper and this other paper for a more in-depth technical discussion on how ROS extensions work
- Can ROS 2 build system (ament) extensions be ported to other accelerators (hw) and/or acceleration frameworks? Yes. See discussion here and refer to ros-acceleration for various examples
- Is there any case study of using this with a real ROS 2 graph?
Yes, refer to this issue and also to this article for a comparison between accelerators. - Why a benchmarking section and the proposal of CI-ing examples? Historically (silicon) vendor benchmarks aren’t easily reproducible and often undisclosed. At the core of hardware acceleration there is a quantitative approach to the design of computation pipelines that use empirical observations of programs to iteratively improve performance. Having a common “open ROS common testbench” (e.g. acceleration_examples) that is reproducible under a well defined benchmarking approach is crucial for integrating hardware acceleration fairly in the ROS ecosystem.
Following existing trends in the ROS ecosystem (e.g. DDS’s reports), expected outcome should be a yearly report compiling benchmarking results obtained from a transparent (and reproducible) CI system. - Why the need for taxonomies and categories in this REP? Many commercial accelerators are hardly usable with modern software and require a significant engineering effort to align tools, build systems and development flows. In order to create some reasonable expectations for ROS users, the taxonomies and categories proposed aim to:
- a) provide ROS users (customers) a set of minimum (note the removal of details upon past comments) expectations on the hardware acceleration capabilities that could be obtained from each vendor’s hardware solution
- b) facilitate a healthy environment for silicon vendors and solution manufacturers to connect their firmware and technologies to the ROS 2 ecosystem (otherwise it becomes a “who invests more in marketing challenge”, which isn’t that beneficial for the ROS ecosystem nor end users)
- The biggest issue here is that this kind of REP needs buy-in from the larger acceleration community.
See community support summarized here and this other comment regarding adoption for/from other vendors.
- [Kat | 5min] How do we improve ROS 2?
-
Recurring business
- Next ROS 2 distro release
- Iron
- Working on DDS-related Roadmap items
- Work towards allow users to control scale of discovery, and direct initial peers
- Work towards creating a set of questions that users can go through to get a DDS tuning for their configuration
- Work towards tuning better out-of-the-box behavior, and/or detecting problems at runtime and suggesting solutions to the user
- Continued progress on service introspection: Service Introspection · Issue #1285 · ros2/ros2 · GitHub
- Continued progress on Evolving Message Types: [REP-2011] Evolving Message Types by wjwwood · Pull Request #358 · ros-infrastructure/rep · GitHub
- Iron targeted platforms
- Almost certainly will be Ubuntu 22.04
- Considering RHEL-9 (upgrade from RHEL-8)
- Considering Windows 11 support (but may need help here, and we’re not even sure whether this is currently possible)
- Working on DDS-related Roadmap items
- Small change in adding new packages to distributions
- Adding new release repository to GitHub - ros2-gbp/ros2-gbp-github-org
- But before do that, now need to open a PR to GitHub - ros/rosdistro: This repo maintains a lists of repositories for each ROS distribution to make sure package meets community standards (name, etc)
- Iron
- Working groups [<=5 mins each]
-
[Bence] Control
- Some release trouble around chained controllers visualization with python graphviz
- Async controllers work going as planned, PRs coming soon
- Adopting the
generate_parameter_library
for parameter handling of controllers in ros2_control- Remove boilerplate
- Documentation of parameters next to declaration
-
[Angelo Cosaro] Edge AI
- No updates.
-
[Martin Losa] Embedded
- No august meeting (vacations)
- Working in the Agenda for the next EWG (Sept 27th)
-
[Kayser] Manipulation
- Bug-fix release for MoveIt Humble
- New collision checking library being integrated: FCL-HPP
- Progress on improving MoveIt’s default planner performance
- Parallel planning pipelines (#1420)
-
[Woodall] Middleware
- Meeting notes and agenda:
- Discussed issue with using shared memory between host and docker systems: Unable to Communicate between Ubuntu 20.04 Container and Ubuntu 20.04 Host · Issue #1318 · ros2/ros2 · GitHub
- Discussed need for better multi-interface support, for use cases like the TB4 where there is a wifi/ethernet interface and a usb-eth interface as well.
- Discussed improving out-of-the-box behavior for ROS 2 using DDS
-
[Macenski] Navigation
- Starting design review / feedback on adding statuses on main task servers to report back failure condition codes to be used in the BT for additional contextual information
- Adding Python3 Costmap API to simple commander to enable easier read/modification of costmaps for python client users
- Fixing a bug effecting “plan until invalid” style behavior trees with path state not being properly reset on cancelation
- Fixed collision monitor velocity checking on pure rotations
- Adding start node to Smac Planner paths
- Fixed deadlock condition in the static layer due to frequent map updates
- Working on removing fully yaml re-writes in Launch
- CI is being a bit buggy, we don’t have enough compute it appears anymore from CircleCI and having access permissions for some forked users. May need to look into alternatives (maybe OSRF provided Jenkins build instance?)
- Working group paper on Navigation Algorithm description largely wrapping up. Draft to be circulated to interested parties.
-
[Andrei] Real-Time
- First meeting after summer break
- Follow rpi image issues for the upcoming ROSCon22 talk
-
[Biggs] Client libraries
- The ros2-rust folks would like to get ros2-rust into the core ROS 2 libraries.
- What do we need to do to achieve this?
- How can we move that work forward?
- Do we need a champion in the TSC to help us?
- The ros2-rust folks would like to get ros2-rust into the core ROS 2 libraries.
-
[Biggs] Safety
- No activity this month.
-
[Deray] Security
- Discussion around on-going dev of support for multilayer networks to communicate seamlessly, where ROS security features are enabled too. Other discussion around moving (some of) fastdds to a memory safe language.
- Discussion around Zenoh following it’s presentation to the last TSC meeting and the security implications of this
-
[Macneil] Web
- Disbanded due to lack of non-Foxglove participation
-
[Orlov] Rosbag2 and Tooling
- Ongoing bugfixes and improvements. Trying to achieve feature parity for rosbag2_storage_mcap with default sqlite implementation. Trying to add support for mcap file format to rqt_bag.
- List of recently merged meaningful PRs in rosbag2:
- Fix hangout in rosbag2 player and recorder when pressing CTRL+C
- Readers/info can accept a single bag storage file, and detect its storage id automatically
- Add option to prevent message loss while converting with compression
- List of recently merged meaningful PRs in rosbag2_storage_mcap:
-
- Next ROS 2 distro release