I have a topic to discuss with you. I have discussed this already with few people so here a concrete proposal. Would be great if we could spend some time today to start discussions about this.
Topic: “Can we move kinematic_base out of MoveIt2 repository”
Rationale:
in Control WG we are looking to integrated more advanced (Cartesian) controllers into ros2_control;
we can create our own “kinamatic_base” for it, but this does not make much sense;
we would like to load kinematics plugins – preferable the same plugins MoveIt is using, so we make it easier for users;
doing this now leads to circular dependencies between MoveIt2 and ros2_controllers repositories;
also, it would not be bad to reduce the amount of dependencies if only IK should be used;
kinematics_base package is placed in an external repository and there are no dependencies on MoveIt packages (if possible)
kinematics_base package is placed in ros2_control or ros2_controllers repositories that are already dependency for MoveIt2
in both cases kinematics_base goes out of MoveIt2 repositories, and it is used as external dependency (probably cannot depend anymore on moveit-packages)
David Lu!!:: MSA refactor update
Mark Moll: Google Summer of Code
Denis Stogl: Can we move kinematic_base out of MoveIt repo?
Notes
Introductions
Tiffany Cappellari: from Southwest Research Institute
Max Daiber-Huppert: will be taking over from Gauthier on the Fraunhofer IPA welding project
Henning/Vatan: Jammy update
Vatan: packages related to messages are still broken on main but working in testing
Denis: there will be a sync today, so we just need to wait a little bit
Denis: ros2_control has a setup to build for Focal in CI, which is useful since lots of users are still using Focal.
David Lu!!: MoveIt Setup Assistant Refactor presentation
David is an independent robotics contractor and has done a lot of work on ROS navigation previously
Background: MoveIt2 still didn’t have MSA in September 2020 when it came out of Beta
MSA is really useful for efficiently configuring new robots for MoveIt, so the lack of MSA in ROS2 has been a big pain point
Big issues: porting UI to ROS2 C++, no tests, limited extensibility, supporting ROS2 Python launch files, new ROS2 parameters
Goals for refactor: separate GUI logic from functional logic, add extensibility via pluginlib, allow customizing control flow
Made separate SetupStep plugins that can be extended and linked together.
Config generation is split into smaller config plugins (vs. previous monolithic approach)
Use data warehouse to get different types of config info
There are numerous plugins for the different types of configuration data.
Jafar made a PR (591) to make a single object for MoveIt config info. David has built off this. The result is that the launch file can be a lot smaller, since we can pass the MoveIt config to the ROS2 python launch description generator function.
Biggest outstanding question: how to integrate perception, controllers, and simulation? Lots has changed in ROS2, so the path from ROS1 to ROS2 for this isn’t obvious.
Michael: Want to talk about launch file structure, as a proposal document
Andy: would be useful to prefix PRs with a MSA keyword
Michael: How difficult would this be to port back to ROS1?
David: In general it should not be too difficult. Would need to replace some rclcpp functions.
Michael: Motivation for this is to make it easier to cherry-pick fixes between ROS1 and ROS2 versions. It will be hard to port these types of changes if the implementations are very different.
David: The list of plugins to load on startup will be configurable, which supports loading custom 3rd-party plugins.
Framework is extensible to other types of wizards too. Might be good for navigation too.
Working on reviewing applications. Project maintainers will discuss who to select to participate.
Michael: Should we ask that applicants have previously created a MoveIt PR as a requirement for consideration? This helps filter applicants – previously it’s been important to see code from students to assess the value of their contributions.
Mark: Open to this idea, seems like a useful screening step. Will add an application requirement to submit a PR.
Michael: Do we have applicants?
Mark: Yes, we do!
Michael: There are some people on the Discord server asking about applications. Mentors should review and respond to those.
Mark: Looking for mentors and co-mentors
Henning: When should we have World MoveIt Day?
Proposed date: 26 May, 2022 (also the normal maintainer meeting day)
Mark: Background – this is the MoveIt hackathon-style event.
Mark: Might be a good opportunity for in-person events.
Simon: This is a holiday (Ascension Day). Might be better to pick a different day to get better attendance from Europeans.
Henning: Should discuss which tracks we want to have.
Denis: kinematics_base
Brief Denis intro: ros2_control maintainer
New Cartesian controllers (like the admittance controller) need inverse kinematics solvers. Would be nice for these to be implemented as plugins.
The main blocker is a circular dependency between MoveIt2 and ros2_control.
Henning: Mostly a runtime dependency. The tests rely on ros2_control as well through the demo robot configuration.
Denis: Want to have a standardized interface for IK plugins. Not sure how much of the current IK implementation relies on MoveIt-specific libraries. Want to reduce the dependency here.
Denis: All previous controllers just operated in joint space, but we’re starting to add controllers that need to operate in Cartesian space.
Michael: There was a lot of work previously to consolidate MoveIt into one repo, and what’s being suggested here is to split things out again. Would it be possible to split ros2_control instead?
Michael: The current IK interface has lots of problems (Robert gave a talk about this some time ago). It might be better to create a new interface in a separate repo, then have MoveIt and ros2_control both depend on that new repo.
Henning: IK depends on the robot model, which brings in the MoveIt core libraries anyway. Also need to discuss what the goals are here, since there’s overlap with what Servo is trying to do for Cartesian jogging.
Denis: Next step is to outline what ros2_control would need from a kinematics_base package and then discuss with MoveIt maintainers to find common needs.
Attendees
Abishalini Sivaraman
Andy Zelenak
Chris Thrasher
Cory Crean
David Lu!!
Davide Falconti
Denis Stogl
Gauthier Hentz
Harsh Deshpande
Henning Kayser
Jack Center
Jafar Abdi
Joe Schornak
Mark Moll
Marq Rasmussen
Max Daiber-Huppert
Michael (aka v4hn)
Nathan Brooks
Sebastian Jahr
Sencer Yazici
Simon Schmeisser
Tiffany Cappellari
Tyler Weaver
Vatan Aksoy Tezer