Rosparam load error when encountering complex YAML types
0 reputation · 03 Apr 2026, 16:04 UTC
Problem description
The rosparam load command throws an exception when a YAML file contains complex, non‑primitive types such as nested objects or lists of dictionaries. The ROS parameter server stores all parameters as strings, so implicit conversions are performed only when a client retrieves a value. Because the error message from rosparam::load does not specify the expected type, debugging type mismatches becomes difficult.
Constraints and uncertainty
- The ROS master (ROS 1 Noetic, ROS 2 Humble) accepts only primitive types for parameters.
- No built‑in schema validation exists; developers must manually verify types.
- It is unclear whether the parameter server should be extended to store complex types natively or enforce stricter type checking at load time.
Unresolved decision
Should the ROS parameter server evolve to support native storage of complex types, or should rosparam load reject unsupported types with clearer error messages and enforce stricter validation?
Specific questions
- What are the performance and memory implications of extending the parameter server to store complex types?
- How would stricter type validation at load time affect existing ROS applications that rely on implicit string conversions?
- Could a separate schema validation layer be introduced without changing the core parameter server API?