-
Notifications
You must be signed in to change notification settings - Fork 252
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Write measured sensor values to ECM for deterministic closed-loop control #2391
Comments
Related to #2268 . |
I agree that writing to the ECM is more deterministic than publishing over
the consequence of that parallelization is that:
One option is to move sensor updates from |
I'm adding an API to access the most recent wrench measurement to the |
I've also opened a gz-sim pull request to write the measured wrench to the ECM in the ForceTorque |
Desired behavior
When sensors like ForceTorque sensors and distance sensors are used for closed-loop control, it is important to have deterministic lag between the sensor values and the control command update. However in Gz Sim, sensor values must be read via Transport which does not have deterministic latency. So for example, it is possible that the last F/T sensor value received is from one or more sim time-steps ago when computing the control command.
Ideally, the measured sensor value can be read directly from the ECM following the
PostUpdate
call for the System that manages the sensor (e.g.ForceTorque
system). This way, there is a guarantee of at most one time-step lag in reading sensor values when computing the control, assuming that the sensor is set to update at each sim cycle.Implementation suggestion
Specifically for ForqueTorque sensor, we could add a new
ForceTorqueMeasured
component that stores the last updated F/T sensor msg and populate this inForceTorque::PostUpdate
. This would also requireForceTorqueSensor
to expose the measured sensor value from the class interface. In future, similar components can be added for other sensors commonly used for closed-loop control.The text was updated successfully, but these errors were encountered: