Skip to content
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

Make custom iPOS configuration more GUI-friendly #260

Closed
PeterBowman opened this issue May 8, 2021 · 1 comment
Closed

Make custom iPOS configuration more GUI-friendly #260

PeterBowman opened this issue May 8, 2021 · 1 comment

Comments

@PeterBowman
Copy link
Member

PeterBowman commented May 8, 2021

We have implemented ip mode (pt/pvt) in #245 using a rather convolute configuration mechanism detailed at CanBusControlboard/README.md. It exploits the yarp::dev::IRemoteVariables interface for that matter, unlocking the so-called "God mode" (Pattacini, 2015; robotology/yarp#499 (comment)) in CanBusControlboard and TechnosoftIpos.

This mechanism was designed so that low-level device configuration is exposed via API and RPC. However, the yarpmotorgui app has built-in support for this interface and I'd like to exploit it as well for ease of use. It is possible to access those "remote variables" through the "PID" button, which opens a new dialog, then switch to the "Internal Variables" tab:

Screenshot from 2021-05-08 12-28-19

Screenshot from 2021-05-08 12-29-28

For reference, check how these variables are exposed by the controlboard Gazebo plugin.

Although ip mode is specific to the iPOS and, therefore, to the real robot, we can actually test this code despite not having access to the hardware. Commit 53f005a allowed CAN subdevices (TechnosoftIpos, CuiAbsolute...) to connect to a fake bus node (CanBusFake). A minor tweak was necessary to run launchCanBus locally.

@PeterBowman
Copy link
Member Author

PeterBowman commented Feb 1, 2023

Done at 9befc98. Note the format has slightly changed, it has been documented in the README. There is an additional nesting that I'd rather have avoided, but sadly it is required by the control board remapper. Conversely, I have removed some nesting from the iPOS parameter set; the old layout had some advantages (e.g. it didn't store period and mode in separate variables, and performed PT initialization at once), but ultimately I was more keen on the new layout.

Also, in the context of this issue a bug was fixed in YARP 3.7 regarding a check for the IRemoteVariables interface in the control board NWS: robotology/yarp#2935.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

When branches are created from issues, their pull requests are automatically linked.

1 participant