You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When a node switches controllers, it must be aware of all conflicts between controllers. This ticket describes a method of reporting joint usage by the controllers so that the conflicts can be discovered automatically.
There are a few options for reporting joint usage by the controller:
Each controller provides a service which lists what joints it uses.
Each controller overloads a function getClaimedJoints(), which the Controller Manager calls. The CM provides a service for querying all the controllers.
Each controller calls a function registerJointClaims() on the CM, which stores the list of claims. The CM provides a service for returning the current list of claims.
Option 1 was nixed because it requires the user to discover and make a dozen service calls to determine the conflicts. Option 3 requires exposing a function from the CM to the controllers. This requires more intensive changes than option 2.
In option 2, the CM provides a service for querying the joints that each controllers will claim. Here's a proposed version of that service:
When the service is called, the CM will call getClaimedJoints() on each controller and return the aggregated result. The result includes the information necessary to determine which controllers conflict with the desired set.
When a node switches controllers, it must be aware of all conflicts between controllers. This ticket describes a method of reporting joint usage by the controllers so that the conflicts can be discovered automatically.
There are a few options for reporting joint usage by the controller:
Option 1 was nixed because it requires the user to discover and make a dozen service calls to determine the conflicts. Option 3 requires exposing a function from the CM to the controllers. This requires more intensive changes than option 2.
In option 2, the CM provides a service for querying the joints that each controllers will claim. Here's a proposed version of that service:
{{{
[ListControllerClaims]
ControllerClaim[] claims
string controller_name
bool is_running
string[] joints
}}}
When the service is called, the CM will call getClaimedJoints() on each controller and return the aggregated result. The result includes the information necessary to determine which controllers conflict with the desired set.
trac data:
The text was updated successfully, but these errors were encountered: