ROS 2 TSC Meeting Minutes: 2022-9-15

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
    • [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.
  • Recurring business

    • Next ROS 2 distro release
    • 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

      • [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?
      • [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

1 Like

As agreed during the call, after having reviewed the content based on the feedback provided, following up and pinging in here to notify interested parties.

REP-2008 has been significantly rewritten to capture the input provided during the call. Main changes include:

  • removed categories and capabilities
  • removed completely benchmarking, pushed into REP-2014, now on its own REP PR, as suggested.
  • significant rewriting of the intro and motivation as suggested. Tried capturing things at a higher level.
  • renamed ament_acceleration to ament_hardware_acceleration
  • expanded on the proposed open architecture, on its pillars and further explained its value. Also rewrote the specification section, to make sure its comprehensive and quick to understand.
  • re-organized kernel levels in the document, they’re introduced earlier (and hopefully with better context)
  • removed all mentions to CI

Pinging some of the folks that showed more interest in the topic: @wjwwood, @clalancette, @IanTheEngineer, @calderpg-tri, @tomoyafujita, @lyle (and I’m surely missing some).

You can read the latest version after changes of REP-2008 here. I’d kindly ask to please have a look at it before taking a final vote on it. Also, I’d be happy to discuss any feedback F2F in the coming few days in Kyoto.

2 Likes

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.