std_srvs: add SetFloat32, SetInt32, SetString, SetUInt8, SetUInt8Array services#338
std_srvs: add SetFloat32, SetInt32, SetString, SetUInt8, SetUInt8Array services#338xbroquer wants to merge 1 commit into
Conversation
…y services add SetFloat32, SetInt32, SetString, SetUInt8, and SetUInt8Array service files update CMakeLists to include all new .srv files in rosidl generation update README service list with usage-oriented descriptions add Forthcoming changelog entry Signed-off-by: Xavier BROQUERE <xav.broquere@gmail.com>
|
Tick the box to add this pull request to the merge queue (same as
|
|
Hi @xbroquer. First off, thank you for the contribution. We have to be very careful with changes like these because they set a precedent about what should be accepted into the core message libraries. To be a good fit here, we have to make sure that the usefulness brought to the wider community outweighs the additional compilation time. For this reason I need to know a few things about why you added these messages.
If you still think that these messages are useful in some way that I haven't covered in the two points above, can you prepare a justification and I will bring this PR to the ROS PMC for discussion. |
|
Hi @asymingt , Thank you for the review. I agree this change requires strong justification as it impacts core interfaces. Context: I am a software engineer at Renault Group, leading a ROS-based platform for ADAS prototyping. We started on ROS 1 Kinetic, then migrated through each ROS 2 LTS generation. We are currently on Jazzy and have already begun supporting Lyrical. We use ROS 2 parameters extensively for configuration and runtime algorithm tuning. This proposal is not intended to replace parameters, but to address a different interface contract. Rationale: Why parameters are not sufficient for this subset of interactions:
Concrete examples:
Why upstream instead of keeping private duplicates:
Optional scope note: SetFloat32 is included for completeness of scalar primitives, but can be omitted if needed to keep the scope minimal. |
Summary
Add SetFloat32, SetInt32, SetString, SetUInt8, and SetUInt8Array service files.
Description
This PR extends std_srvs with five additional setter-style services and wires them into interface generation.
Changes:
Add new service definitions:
Update std_srvs/CMakeLists.txt to generate interfaces for all new services.
Update std_srvs/README.md to document the new services with usage-oriented descriptions.
Update std_srvs/CHANGELOG.rst under Forthcoming.
Is this user-facing behavior change?
Yes.
New service interface types are now available in std_srvs for package users. Existing services are unchanged.
Did you use Generative AI?
Yes.
Tool: GitHub Copilot
Model: GPT-5.3-Codex
Usage: Assisted with writing the PR description
Additional Information