Apply ATOS module and launch changes#686
Conversation
There was a problem hiding this comment.
adjusts module/build configuration for the fleet-management changes and current module set.
There was a problem hiding this comment.
cleans up Module construction semantics to better match current ROS node behavior.
There was a problem hiding this comment.
updates shared ROS channel behavior needed by the new runtime/launch flow.
There was a problem hiding this comment.
fixes utility behavior used by fleet-management/runtime paths.
There was a problem hiding this comment.
adds the dedicated fleet-management launch entrypoint.
There was a problem hiding this comment.
trims the integration-test launch to only the components the test needs.
There was a problem hiding this comment.
makes the shared launch base configurable, including optional GUI inclusion.
There was a problem hiding this comment.
fixes esmini integration and keeps the code aligned with the pinned esmini API used by the project
There was a problem hiding this comment.
updates direct-control behavior to stay consistent with the new runtime/object-control flow.
There was a problem hiding this comment.
changes the stored ROS publisher type to match the std_msgs::msg::Empty message published by mqttbridge.cpp
There was a problem hiding this comment.
improves integration-test result reporting by aggregating state checks into a single overall pass/fail summary and logging the final state/trajectory outcome more clearly
There was a problem hiding this comment.
- fixes MQTT bridge logging to use safe printf-style ROS logging
- aligns the MQTT-to-ROS publisher type with the std_msgs::msg::Empty messages it publishes
There was a problem hiding this comment.
- restores the missing loadObjectFiles() declaration in ObjectControl so the class interface matches its implementation
There was a problem hiding this comment.
makes the ROS-backed TestObject ownership semantics explicit by disallowing copy/assignment operations that are incompatible with its node and communication state
There was a problem hiding this comment.
mirrors the TestObject ownership restrictions in RelativeAnchor and marks its specialized monitor publishing function as an explicit override
There was a problem hiding this comment.
extracts object-file loading into a dedicated loadObjectFiles() helper to separate that logic from the rest of scenario loading in ObjectControl
| } | ||
| } catch (std::exception& e) { | ||
| RCLCPP_WARN(get_logger(), e.what()); | ||
| RCLCPP_WARN(get_logger(), "%s", e.what()); |
There was a problem hiding this comment.
Why it is used here instead of:
RCLCPP_WARN(get_logger(), e.what());
because RCLCPP_WARN expects a format string plus arguments. Passing a dynamic string directly as the format string is unsafe and can trigger
-Wformat-security warnings.
There was a problem hiding this comment.
replaces dynamic exception strings as direct ROS log format arguments with a fixed "%s" format string to satisfy printf-style logging requirements and avoid format-security warnings
There was a problem hiding this comment.
marks inherited message-handler functions as explicit overrides so the compiler can verify their signatures and the build no longer emits inconsistent-missing-override warnings
This PR collects the atos-scoped changes needed for the fleet-management runtime path while keeping ATOS buildable and runnable in the
currently used Ubuntu 22.04 and 24.04 environments.
It adds the dedicated fleet-management launch entrypoint, makes the shared launch path more configurable, and fixes build/runtime issues across
ObjectControl, EsminiAdapter, MQTTBridge, and the integration-test flow.
Main changes:
Files included: