-
Notifications
You must be signed in to change notification settings - Fork 7
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
New config file format for CAN devices #237
Comments
|
We want to split mechanical device info from https://github.com/roboticslab-uc3m/teo-configuration-files and place it in a robot-agnostic repository much like https://github.com/robotology/robots-configuration. Perhaps "roboticslab-uc3m/configuration-files"? The following scheme describes each mechanical component Relevant info organized in directories:
In <robot>-configuration-files, add one .ini per joint in which all remaining parameters are described, mainly motion variables and YARP device information. Everything strictly related to the robot or robot part. Also, the previous description files are referenced and thus aimed for translusion from within a YARP application.
|
Several .ini files need to be loaded on different levels:
TBD: either use .ini file transclusion (rather automatic and transparent to the device consumer), or traverse properties and perform file lookup with YARP's C++ APIs. Edit: file and directory transclusion seems to work in a local fashion, only, i.e. YARP's resource finder mechanisms are not invoked whenever I put Edit2: we still may take advantage from file transclusion as long as it is performed locally. For instance, a very long motor-maxon-asdf.ini could be split into motor-maxon-mechanical-data.ini, motor-maxon-thermal-data.ini, etc., and transcluded via |
I'm willing to take advantage from the, currently unused by us, robots directory. The resourcefinder spec covers a list of special data directories, among which we mostly exploit the I'd like to place all component-related configuration files common to all robots into roboticslab-uc3m/configuration-files. Those will be installed in the usual context paths ( |
|
Option 1:
Option 2:
Option 3:
Option 4:
|
Some research:
|
Had a long chat with @jgvictores. Expanding on the all-in-one config file location, we tried to unify installation directories so that every roboticslab-uc3m project would copy its YARP config files into All in all, we backed off this idea and concluded that the current one-installation-dir-one-repo solution is gold. In that vein, the shiny new https://github.com/roboticslab-uc3m/configuration-files repository will die in flames, soon. Also, we were pondering about the fact that certain OpenRAVE models might be reused by other robots (e.g. Lacquey gripper), but given the lack of demand for this functionality, it is best to preserve the current status quo and get back to that only in case such need ever arises. So, we'll keep things simple: configuration files next to stuff that uses them. Camera descriptors (e.g. asus-xtion.ini) in the vision repo, speech dictionaries in the speech repo, and hardware components as the ones introduced above (drivers, motors, encoders, transmissions...) hosted by the yarp-devices repo since the only thing that loads them, the launchCanBus app, is also meant to stay there. Conclusions that affect things related specifically to this issue:
|
Two tiny comments, concerning non-existent cases, but as my opinion if they ever appear in the future:
PS: Re: "I'd like to give the |
I'm flipping. Facts:
|
I'm glad we flipped the table. Following a robotology-like approach, each robot defines its own set of hardware&software description files (.ini format). Everything is parsed via transclusion beforehand, then conveniently reused by application code in dependent INIs (e.g. node INIs fetch information from shared motor INIs). Therefore, we avoid including the same file more than once and every (sub)device defines its own configuration format rules while taking advantage of a database-like collection of robot properties. The root of this is a config.ini file installed into // YARP devices
[include "buses"]
[include "calibrators"]
[include "nodes"]
// hardware-specific data
[include "hardware/drivers"]
[include "hardware/encoders"]
[include "hardware/motors"]
[include "hardware/transmissions"] In order to avoid key overlapping, every .ini needs to define its properties within a group. ASIBOT devs may choose a completely different layout as long as config.ini loads everything (it does not need to use file/directory transclusion at all). |
Ready at f8d6c00 and in conjunction with this branch at teo-configuration-files (currently at roboticslab-uc3m/teo-configuration-files@2c49a57). |
Follow-up: 5e3ed52. It turns out a |
Oh, by the way. That's how you unmarshall a blobbed (blobbified?) pointer:
This actually avoids a deep copy of the original object every time
|
The |
Not the best place, but added at roboticslab-uc3m/teo-developer-manual@e2b2e64 |
Commit 8082d0c allowed to parse common TechnosoftIpos/CuiAbsolute options gathered in common-ipos.ini and common-cui.ini, respectively, thus reducing the overall file size. |
All started with #74 (comment):
Beyond the YARP handling of .ini properties via C++ code, I'd like to rethink the config file format from scratch. See:
The text was updated successfully, but these errors were encountered: