-
Notifications
You must be signed in to change notification settings - Fork 680
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
Define the exterior parameter API #10
Comments
Messages defined at: https://github.com/ros2/rcl_interfaces/tree/master/rcl_interfaces Not compiling at the moment though. |
We should add:
We need to clarify:
|
Added Events message and topic. Differentiated parameters and parameter groups. Allowed recursive or non-recursive queries. Standard topics documented in README |
The README mentions |
Can a |
The CMake file uses |
With the background of our recent discussion |
A parameter should support the type |
|
I've updated it to conform to the review notes. @dirk-thomas @wjwwood @esteve please review |
The |
Do we want to include an optional "description" for a parameter? I think this was a highly requested feature in ROS 1. I am asking because I don't like the current term |
For consistency I would suggest renaming a field and the enums in |
I would suggest renaming the topic |
The current service |
The comment in the |
Looking at other solutions storing arbitrary typed information like |
We've designed the parameters to have declared types. This will allow us to fully specify and verify the API in the future. And all code interacting with parameters will not require runtime type checking. That's why the type is part of the description. Related to the description, I group that with the declaration of the API and also supporting declaring ranges for a dynamic reconfigure type GUI. We chose to defer that. And I think it should remain decoupled from the actual accessing. I don't want to use just "type" as a field name as it's a keyword in some languages. For the const names parameter_events seems fine. The HasParameters I had as a parallel to setParameters with it being atomic. But I think you're right to let it be a full list of bools. @dirk-thomas sure individual pr's for discussing specific things might make sense in the future. This is tough that we can't do inline/threaded comments on this. I'll fix the plural descriptions. I think considering providing the QVariant type of functionality makes sense in the developer API, but this API is for the nodes to talk behind the scenes it should never be converting or changing type, and we can't support that on the wire anyway. |
The problem with requesting descriptions (names with types) is that you can not use the service Also you could invoke Therefore I would argue these services should only request the names and not the types. That by no means implies that we don't declare the type or that verification of the API becomes more difficult / impossible. |
Regarding the description I would expect that future extensions (like a range or textual description of a parameter) would be added to the |
For the |
@wjwwood suggests having HasParam return the type, perhaps in the ParameterDescription (if it exists), or false/not set (if it doesn't exist). But keep in mind efficiency of the interaction, so as not to unnecessarily slow down parameter-related queries. |
rcl_interfaces defined in several other follow up tickets. |
AC:
The text was updated successfully, but these errors were encountered: