Override_schedule feature in humble python fleet adapter (#471)

Posted by @cwrx777:

What does it take to implement override_schedule feature be implemented in humble python fleet adapter?

Posted by @mxgrey:

The current main branch is still compatible with ROS humble, so you can simply build the main branches against the humble ROS distribution to get this feature.

We generally don’t backport new features into already-released versions of ROS packages because that goes against the ROS buildfarm release policies.

Posted by @cwrx777:

Actually I’m referring to use the feature in the old python fleet adapter implementation (not the EasyFullControl).

I notice for navigation/docking, the override_schedule is in CommandExecution class, which is in EasyFullControl.

In RobotUpdateHandle, override_schedule is in ActionExecution. Is it possible to have override_schedule in on RobotUpdateHandle level and expose this in the python binding?

Posted by @mxgrey:

The capability already exists, but it’s in the unstable API because it’s a difficult thing to use correctly, so it’s a “use at your own risk” situation. It’s available in the stable API for EasyFullControl because the EasyFullControl API has a more narrow surface area so we can make sure everything remains sane even after the user has modified the schedule. It’s more difficult for us to keep the state sane for the basic full control API.

The way to override is

All of this is done automatically when using the EasyFullControl API, but there are fewer assumptions that we can make when people use the basic API, so the user needs to do these things manually.