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

Inclomplete Configuration Examples and Missing Documentation #25

Open
YBachmann opened this issue Nov 27, 2024 · 2 comments
Open

Inclomplete Configuration Examples and Missing Documentation #25

YBachmann opened this issue Nov 27, 2024 · 2 comments

Comments

@YBachmann
Copy link

I noticed some discrepancies in the provided configuration files.

The file /config/ods_default_parameters.yaml includes a line config_file: "config/examples/o3r_ods.json" but config/examples/o3r_ods.json does not exist in the repository.

The other yaml files in the config folder (o3r_2d.yaml, o3r_3d.yaml, two_o3r_heads.yaml and camera_default_parameters.yaml) do not include the config_file parameter at all.

This confused me at first because there is no direct hint or documentation that the yaml configuration files need a reference to another json configuration file.

Also by not providing a default configuration file users will get inconsistent behaviour when running the same launch command multiple times because not a fixed default configuration will be loaded but rather the last-saved settings from the VPU (which can get modified in different places like the vision assistant).

Proposed changes:

  • add the config_file parameter in all yaml configuration files (e.g. config_file: "config/examples/o3r_port_settings.json")
  • create default json configuration files (e.g. config/examples/o3r_port_settings.json and config/examples/o3r_ods.json)
  • explain in the documentation that there are two kind of configuration files. For the nodes and their ros specific parameters there are yaml files. For the o3r specific parameters, there are json files that get referenced in the yaml files.

What do you think of this? I can happily create a PR to implement the proposed changes.

@lola-masson
Copy link
Member

Hi @YBachmann,

Thanks a lot for the suggestion! We would happily review a PR with these changes.

One thing to keep in mind, is that there will be a "duplicate" of port info, in the yaml (pcic_port), and in the json (/ports/portX). So this should be clear in the documentation: if you accidentally provide a json file with a port number that differs from the one in the yaml, then the configuration will be done "for nothing", if that makes sense.

@YBachmann
Copy link
Author

YBachmann commented Dec 12, 2024

Hey @lola-masson ,

Is there a reason why the pcic_port is is defined at two separate places? I noticed that the yaml config files also contains other duplicate parameters such as ip (ipv4 in the json config) or buffer_id_list (availablePCICOutput in the json config).

Also, I tried removing components from the json config that are unnecessary for an example file (device/clock, device/diagnostic, device/swVersion, ports/portX/info/100007084421, ...) but if I do so I get an error like this: [camera_standalone-1] 2024-12-12 14:37:25 ERROR [../modules/device/src/libifm3d_device/xmlrpc_wrapper.hpp:100] http://172.24.2.25:80/api/rpc/v1/com.ifm.efector/ -> set: RPC response indicates failure. : validation failed for additional property 'processing': instance invalid as per false-schema; instance: .....
Is it necessary to always use a complete json-config? In that case adding an example file would probably not make much sense as it would have to contain a lot of unnecessary or wrong (e.g. serialNumber) data.

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

No branches or pull requests

2 participants