diff --git a/clearpath_msgs/package.xml b/clearpath_msgs/package.xml index b0b6927..46741a5 100644 --- a/clearpath_msgs/package.xml +++ b/clearpath_msgs/package.xml @@ -13,6 +13,27 @@ clearpath_platform_msgs + + clearpath_configuration_msgs + clearpath_control_msgs + clearpath_dock_msgs + clearpath_localization_msgs + clearpath_mission_manager_msgs + clearpath_mission_scheduler_msgs + clearpath_navigation_msgs + clearpath_platform_msgs + clearpath_safety_msgs + + + + ament_cmake diff --git a/clearpath_outdoornav_msgs/README.md b/clearpath_outdoornav_msgs/README.md new file mode 100644 index 0000000..9fc4b0f --- /dev/null +++ b/clearpath_outdoornav_msgs/README.md @@ -0,0 +1,3 @@ +# CPR OutdoorNav Messages + +Clearpath OutdoorNav message definitions for ROS API diff --git a/clearpath_outdoornav_msgs/clearpath_camera_msgs/CHANGELOG.rst b/clearpath_outdoornav_msgs/clearpath_camera_msgs/CHANGELOG.rst new file mode 100644 index 0000000..ecf8b57 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_camera_msgs/CHANGELOG.rst @@ -0,0 +1,49 @@ +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Changelog for package clearpath_camera_msgs +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +0.10.0 (2024-07-04) +------------------- +* Changes +* Merge pull request `#46 `_ from clearpathrobotics/0.13/features + 0.13/features +* fix endline +* Merge remote-tracking branch 'refs/remotes/origin/poi' into 0.13/features +* added zoom to inspect poi action +* create new camera msg package with InspectPOI action +* Contributors: Chris Iverach-Brereton, José Mastrangelo, Stephen Phillips, jmastrangelo-cpr + +* Initial release of clearpath_camera_msgs +* Added zoom to inspect POI action +* Create new camera msg package with InspectPOI action +* Contributors: José Mastrangelo, Stephen Phillips + +0.9.9 (2024-03-14) +------------------ + +0.9.8 (2024-03-11) +------------------ + +0.9.7 (2024-02-05 15:27:37 -0500) +--------------------------------- + +0.9.6 (2023-12-21) +------------------ + +0.9.5 (2023-11-03) +------------------ + +0.9.4 (2023-10-20) +------------------ + +0.9.3 (2023-10-19) +------------------ + +0.9.2 (2023-10-17) +------------------ + +0.9.1 (2023-08-22) +------------------ + +0.9.0 (2023-07-12) +------------------ diff --git a/clearpath_outdoornav_msgs/clearpath_camera_msgs/CMakeLists.txt b/clearpath_outdoornav_msgs/clearpath_camera_msgs/CMakeLists.txt new file mode 100644 index 0000000..7e5c843 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_camera_msgs/CMakeLists.txt @@ -0,0 +1,22 @@ +cmake_minimum_required(VERSION 3.8) +project(clearpath_camera_msgs) + +## Find catkin macros and libraries +find_package(rosidl_default_generators REQUIRED) +find_package(ament_cmake REQUIRED) +find_package(std_msgs REQUIRED) +set(CMAKE_CXX_STANDARD 17) + +rosidl_generate_interfaces( + ${PROJECT_NAME} + action/InspectPoi.action + srv/Q62AreaZoom.srv + DEPENDENCIES + std_msgs +) + +ament_package() + +install(FILES + DESTINATION include/${PROJECT_NAME} +) \ No newline at end of file diff --git a/clearpath_outdoornav_msgs/clearpath_camera_msgs/action/InspectPoi.action b/clearpath_outdoornav_msgs/clearpath_camera_msgs/action/InspectPoi.action new file mode 100644 index 0000000..c281200 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_camera_msgs/action/InspectPoi.action @@ -0,0 +1,14 @@ +# Action definition for inspecting a Point of Interest (POI) with a PTZ mounted on the Clearpth UGV + +# goal +string poi_uuid +float32 zoom + +--- +# result +bool success +string message + +--- +# feedback +string message diff --git a/clearpath_outdoornav_msgs/clearpath_camera_msgs/package.xml b/clearpath_outdoornav_msgs/clearpath_camera_msgs/package.xml new file mode 100644 index 0000000..c5078de --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_camera_msgs/package.xml @@ -0,0 +1,19 @@ + + + clearpath_camera_msgs + 0.10.0 + ROS package containing the message definitions for camera related calls. + José Mastrangelo + Proprietary + + ament_cmake + rosidl_default_generators + + std_msgs + rosidl_default_runtime + + ament_cmake + + rosidl_interface_packages + + diff --git a/clearpath_outdoornav_msgs/clearpath_camera_msgs/srv/Q62AreaZoom.srv b/clearpath_outdoornav_msgs/clearpath_camera_msgs/srv/Q62AreaZoom.srv new file mode 100644 index 0000000..833a202 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_camera_msgs/srv/Q62AreaZoom.srv @@ -0,0 +1,9 @@ +# Service definition to re-position a pan-tilt-zoom camera to a specific location with a specified zoom +# Used primarily for box-zoom like functionality + +float32 x # X location to move camera to, expressed as a fraction of image dimension (0 to 1, where 0.5 is current center) +float32 y # Y location to move camera to, expressed as a fraction of image dimension (0 to 1, where 0.5 is current center) +float32 zoom_factor +--- +bool success +string message diff --git a/clearpath_outdoornav_msgs/clearpath_configuration_msgs/CHANGELOG.rst b/clearpath_outdoornav_msgs/clearpath_configuration_msgs/CHANGELOG.rst new file mode 100644 index 0000000..01b3e70 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_configuration_msgs/CHANGELOG.rst @@ -0,0 +1,41 @@ +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Changelog for package clearpath_configuration_msgs +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +0.9.9 (2024-03-14) +------------------ + +0.9.8 (2024-03-11) +------------------ + +0.9.7 (2024-02-05) +------------------ +* Merge pull request `#30 `_ from clearpathrobotics/ONAV-166 + updated autonomy config msg +* Contributors: José Mastrangelo + +0.9.6 (2023-12-21) +------------------ + +0.9.5 (2023-11-03) +------------------ +* Merge remote-tracking branch 'origin/noetic-devel' into ONAV-1771/on_start_stop_tasks +* Contributors: Stephen Phillips + +0.9.4 (2023-10-20) +------------------ + +0.9.3 (2023-10-19) +------------------ + +0.9.2 (2023-10-17) +------------------ +* Fix over & underline length in changelogs +* Contributors: Chris Iverach-Brereton + +0.9.1 (2023-08-22) +------------------ + +0.9.0 (2023-07-05) +------------------ +* Initial release diff --git a/clearpath_outdoornav_msgs/clearpath_configuration_msgs/CMakeLists.txt b/clearpath_outdoornav_msgs/clearpath_configuration_msgs/CMakeLists.txt new file mode 100644 index 0000000..32a5e1c --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_configuration_msgs/CMakeLists.txt @@ -0,0 +1,20 @@ +cmake_minimum_required(VERSION 3.8) +project(clearpath_configuration_msgs) + +## Find catkin macros and libraries + +find_package(rosidl_default_generators REQUIRED) +find_package(ament_cmake REQUIRED) +set(CMAKE_CXX_STANDARD 17) + +rosidl_generate_interfaces( + ${PROJECT_NAME} + msg/AutonomyConfig.msg + msg/PlatformConfig.msg +) + +ament_package() + +install(FILES + DESTINATION include/${PROJECT_NAME} +) diff --git a/clearpath_outdoornav_msgs/clearpath_configuration_msgs/msg/AutonomyConfig.msg b/clearpath_outdoornav_msgs/clearpath_configuration_msgs/msg/AutonomyConfig.msg new file mode 100644 index 0000000..3eaef47 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_configuration_msgs/msg/AutonomyConfig.msg @@ -0,0 +1,4 @@ +# Autonomy configuration message + +string version +float64 uptime diff --git a/clearpath_outdoornav_msgs/clearpath_configuration_msgs/msg/PlatformConfig.msg b/clearpath_outdoornav_msgs/clearpath_configuration_msgs/msg/PlatformConfig.msg new file mode 100644 index 0000000..28994b1 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_configuration_msgs/msg/PlatformConfig.msg @@ -0,0 +1 @@ +# Platform configuration message containing ... diff --git a/clearpath_outdoornav_msgs/clearpath_configuration_msgs/package.xml b/clearpath_outdoornav_msgs/clearpath_configuration_msgs/package.xml new file mode 100644 index 0000000..3d510f7 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_configuration_msgs/package.xml @@ -0,0 +1,21 @@ + + + + clearpath_configuration_msgs + 0.9.9 + ROS package containing the message definitions for the Clearpath Robotics OutdoorNav configuration module. + José Mastrangelo + Proprietary + + ament_cmake + rosidl_default_generators + + rosidl_default_runtime + + ament_cmake + + rosidl_interface_packages + + diff --git a/clearpath_outdoornav_msgs/clearpath_control_msgs/CHANGELOG.rst b/clearpath_outdoornav_msgs/clearpath_control_msgs/CHANGELOG.rst new file mode 100644 index 0000000..4703c22 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_control_msgs/CHANGELOG.rst @@ -0,0 +1,38 @@ +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Changelog for package clearpath_control_msgs +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +0.9.9 (2024-03-14) +------------------ + +0.9.8 (2024-03-11) +------------------ + +0.9.7 (2024-02-05) +------------------ + +0.9.6 (2023-12-21) +------------------ + +0.9.5 (2023-11-03) +------------------ +* Merge remote-tracking branch 'origin/noetic-devel' into ONAV-1771/on_start_stop_tasks +* Contributors: Stephen Phillips + +0.9.4 (2023-10-20) +------------------ + +0.9.3 (2023-10-19) +------------------ + +0.9.2 (2023-10-17) +------------------ +* Fix over & underline length in changelogs +* Contributors: Chris Iverach-Brereton + +0.9.1 (2023-08-22) +------------------ + +0.9.0 (2023-07-05) +------------------ +* Initial release diff --git a/clearpath_outdoornav_msgs/clearpath_control_msgs/CMakeLists.txt b/clearpath_outdoornav_msgs/clearpath_control_msgs/CMakeLists.txt new file mode 100644 index 0000000..321de31 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_control_msgs/CMakeLists.txt @@ -0,0 +1,23 @@ +cmake_minimum_required(VERSION 3.8) +project(clearpath_control_msgs) + +## Find catkin macros and libraries + +find_package(rosidl_default_generators REQUIRED) +find_package(ament_cmake REQUIRED) +set(CMAKE_CXX_STANDARD 17) + +rosidl_generate_interfaces( + ${PROJECT_NAME} + msg/AutonomySync.msg + msg/ControlMode.msg + msg/ControlSelectionState.msg + msg/ControlState.msg + srv/SetControlMode.srv +) + +ament_package() + +install(FILES + DESTINATION include/${PROJECT_NAME} +) diff --git a/clearpath_outdoornav_msgs/clearpath_control_msgs/msg/AutonomySync.msg b/clearpath_outdoornav_msgs/clearpath_control_msgs/msg/AutonomySync.msg new file mode 100644 index 0000000..1fc46d8 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_control_msgs/msg/AutonomySync.msg @@ -0,0 +1,16 @@ +uint8 EMPTY = 0 +uint8 PROCESSING = 1 +uint8 PENDING_PAUSE = 2 +uint8 PAUSED = 3 + +uint8 IDLE = 4 +uint8 TEACH = 5 +uint8 REPEAT = 6 + +uint8 MANNED = 7 +uint8 UNMANNED = 8 + + +# Is the server currently active +uint8 status +uint8[] mission_type diff --git a/clearpath_outdoornav_msgs/clearpath_control_msgs/msg/ControlMode.msg b/clearpath_outdoornav_msgs/clearpath_control_msgs/msg/ControlMode.msg new file mode 100644 index 0000000..2ccbe6a --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_control_msgs/msg/ControlMode.msg @@ -0,0 +1,7 @@ +# Control mode message + +int8 NEUTRAL=0 +int8 MANUAL=1 +int8 AUTONOMY=2 + +int8 mode diff --git a/clearpath_outdoornav_msgs/clearpath_control_msgs/msg/ControlSelectionState.msg b/clearpath_outdoornav_msgs/clearpath_control_msgs/msg/ControlSelectionState.msg new file mode 100644 index 0000000..b244df3 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_control_msgs/msg/ControlSelectionState.msg @@ -0,0 +1,4 @@ +# The complete state of the control selection module. This message includes the autonomy state as well as the navigation mode. + +ControlState autonomy +ControlMode mode diff --git a/clearpath_outdoornav_msgs/clearpath_control_msgs/msg/ControlState.msg b/clearpath_outdoornav_msgs/clearpath_control_msgs/msg/ControlState.msg new file mode 100644 index 0000000..96b8cdd --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_control_msgs/msg/ControlState.msg @@ -0,0 +1,4 @@ +# The autonomy state message, The autonomy can be either enabled/disabled and active/paused. + +bool enabled +bool paused diff --git a/clearpath_outdoornav_msgs/clearpath_control_msgs/package.xml b/clearpath_outdoornav_msgs/clearpath_control_msgs/package.xml new file mode 100644 index 0000000..572c44e --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_control_msgs/package.xml @@ -0,0 +1,21 @@ + + + + clearpath_control_msgs + 0.9.9 + ROS package containing the message definitions for the Clearpath Robotics OutdoorNav control selection module. + José Mastrangelo + Proprietary + + ament_cmake + rosidl_default_generators + + rosidl_default_runtime + + ament_cmake + + rosidl_interface_packages + + diff --git a/clearpath_outdoornav_msgs/clearpath_control_msgs/srv/SetControlMode.srv b/clearpath_outdoornav_msgs/clearpath_control_msgs/srv/SetControlMode.srv new file mode 100644 index 0000000..bb3cb66 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_control_msgs/srv/SetControlMode.srv @@ -0,0 +1,4 @@ +# Service definition to set the control mode + +clearpath_control_msgs/ControlMode mode +--- diff --git a/clearpath_outdoornav_msgs/clearpath_dock_msgs/CHANGELOG.rst b/clearpath_outdoornav_msgs/clearpath_dock_msgs/CHANGELOG.rst new file mode 100644 index 0000000..b13ad10 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_dock_msgs/CHANGELOG.rst @@ -0,0 +1,54 @@ +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Changelog for package clearpath_dock_msgs +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +0.9.9 (2024-03-14) +------------------ +* Message updates for onav-0.12 (`#34 `_) + * Add the size_exceeded field to NetworkMapState + * Mod: Update dock messages for new 0.12 docking APIs + * Mod: Add new autonomy API types to AutonomyStatus.msg + * Mod: Use float64 version of Vector2D for returning path recording lat-lons + * Mod: Add header field to RunNetworkGoToPlanner.action feedback + --------- + Co-authored-by: Chris Iverach-Brereton +* Contributors: stephen-cpr + +0.9.8 (2024-03-11) +------------------ +* Add additional messages for Network of Paths +* Contributors: Chris Iverach-Brereton , Stephen Phillips + +0.9.7 (2024-02-05) +------------------ + +0.9.6 (2023-12-21) +------------------ + +0.9.5 (2023-11-03) +------------------ +* Merge remote-tracking branch 'origin/noetic-devel' into ONAV-1771/on_start_stop_tasks +* Contributors: Stephen Phillips + +0.9.4 (2023-10-20) +------------------ + +0.9.3 (2023-10-19) +------------------ + +0.9.2 (2023-10-17) +------------------ +* Use raw JSON strings for import & export; don't bother gzipping & base-64 encoding them +* Add import/export services for docking +* Fix over & underline length in changelogs +* Contributors: Chris Iverach-Brereton + +0.9.1 (2023-08-22) +------------------ +* Add message field to service response +* Added error message to service response +* Contributors: José Mastrangelo + +0.9.0 (2023-07-05) +------------------ +* Initial release diff --git a/clearpath_outdoornav_msgs/clearpath_dock_msgs/CMakeLists.txt b/clearpath_outdoornav_msgs/clearpath_dock_msgs/CMakeLists.txt new file mode 100644 index 0000000..38a52db --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_dock_msgs/CMakeLists.txt @@ -0,0 +1,38 @@ +cmake_minimum_required(VERSION 3.8) +project(clearpath_dock_msgs) + +## Find catkin macros and libraries + +find_package(rosidl_default_generators REQUIRED) +find_package(ament_cmake REQUIRED) +find_package(clearpath_navigation_msgs REQUIRED) +find_package(geometry_msgs REQUIRED) +set(CMAKE_CXX_STANDARD 17) + +rosidl_generate_interfaces( + ${PROJECT_NAME} + action/LocalDock.action + action/LocalUndock.action + action/NetworkDock.action + action/RadiusDock.action + msg/DockInfo.msg + msg/DockProperties.msg + msg/DockState.msg + msg/TargetTrackerState.msg + srv/AddDock.srv + srv/ExportData.srv + srv/GetDockByUuid.srv + srv/ImportData.srv + srv/RemoveDock.srv + srv/SetDockLocationById.srv + srv/SetDockLocationByName.srv + DEPENDENCIES + geometry_msgs + clearpath_navigation_msgs +) + +ament_package() + +install(FILES + DESTINATION include/${PROJECT_NAME} +) diff --git a/clearpath_outdoornav_msgs/clearpath_dock_msgs/action/LocalDock.action b/clearpath_outdoornav_msgs/clearpath_dock_msgs/action/LocalDock.action new file mode 100644 index 0000000..5f435bc --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_dock_msgs/action/LocalDock.action @@ -0,0 +1,12 @@ +# Action definition for undocking a Clearpath UGV from one of its charging docks. + +# goal + +--- +# result +bool success +string message + +--- +# feedback +string message diff --git a/clearpath_outdoornav_msgs/clearpath_dock_msgs/action/LocalUndock.action b/clearpath_outdoornav_msgs/clearpath_dock_msgs/action/LocalUndock.action new file mode 100644 index 0000000..ffa48ee --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_dock_msgs/action/LocalUndock.action @@ -0,0 +1,13 @@ +# Action definition for undocking a Clearpath UGV from one of its charging docks. + +# goal +float32 undock_distance + +--- +# result +bool success +string message + +--- +# feedback +string message diff --git a/clearpath_outdoornav_msgs/clearpath_dock_msgs/action/NetworkDock.action b/clearpath_outdoornav_msgs/clearpath_dock_msgs/action/NetworkDock.action new file mode 100644 index 0000000..c43e62e --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_dock_msgs/action/NetworkDock.action @@ -0,0 +1,15 @@ +# Action definition for undocking a Clearpath UGV from one of its charging docks. + +# goal +string dock_uuid +string network_uuid + +--- +# result +bool success +string message + +--- +# feedback +string message +clearpath_navigation_msgs/NetworkMissionSegment network_plan \ No newline at end of file diff --git a/clearpath_outdoornav_msgs/clearpath_dock_msgs/action/RadiusDock.action b/clearpath_outdoornav_msgs/clearpath_dock_msgs/action/RadiusDock.action new file mode 100644 index 0000000..f21fd75 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_dock_msgs/action/RadiusDock.action @@ -0,0 +1,13 @@ +# Action definition for undocking a Clearpath UGV from one of its charging docks. + +# goal +string dock_uuid + +--- +# result +bool success +string message + +--- +# feedback +string message diff --git a/clearpath_outdoornav_msgs/clearpath_dock_msgs/msg/DockInfo.msg b/clearpath_outdoornav_msgs/clearpath_dock_msgs/msg/DockInfo.msg new file mode 100644 index 0000000..5b6733d --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_dock_msgs/msg/DockInfo.msg @@ -0,0 +1,19 @@ +# Message definition containing the information of a single dock. This includes identifiers, lat/lon and orientation of the dock. + +string name +string uuid +string frame +string target_template + +# ISO 8601 date/time format of last successfull dock location setting +string last_location_set_time + +# maximum allowable distance to allow for predocking. (ie. the distance within which the dock waypoint must be located) +float32 max_predock_distance +# the distance from the dock that the robot will navigate to prior to start docking +float32 predock_distance + +# location of the dock +float64 latitude +float64 longitude +float64 heading diff --git a/clearpath_outdoornav_msgs/clearpath_dock_msgs/msg/DockProperties.msg b/clearpath_outdoornav_msgs/clearpath_dock_msgs/msg/DockProperties.msg new file mode 100644 index 0000000..f57dd6a --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_dock_msgs/msg/DockProperties.msg @@ -0,0 +1,3 @@ +# Message definition containing the properties for each of the docks available. + +clearpath_dock_msgs/DockInfo[] docks diff --git a/clearpath_outdoornav_msgs/clearpath_dock_msgs/msg/DockState.msg b/clearpath_outdoornav_msgs/clearpath_dock_msgs/msg/DockState.msg new file mode 100644 index 0000000..7c7358c --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_dock_msgs/msg/DockState.msg @@ -0,0 +1,9 @@ +# Message definition containing information on what state the docking process is in. + +uint8 UNDOCKED = 0 +uint8 DOCKED = 1 +uint8 IN_PROGRESS = 2 +uint8 FAILED = 3 +uint8 CANCELLED = 4 + +uint8 state diff --git a/clearpath_outdoornav_msgs/clearpath_dock_msgs/msg/TargetTrackerState.msg b/clearpath_outdoornav_msgs/clearpath_dock_msgs/msg/TargetTrackerState.msg new file mode 100644 index 0000000..7d07115 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_dock_msgs/msg/TargetTrackerState.msg @@ -0,0 +1,15 @@ +# Message definition containing the state information of the target tracker. +# This includes whether or not the tracker is active, whether the target is visible/lost, and the target pose and score of that pose. + +bool active + +# flag indicates if the target is visible or not +bool target_locked + +geometry_msgs/PoseWithCovarianceStamped target_pose +float32 score + +# the distance of the sensor_link to the dock target +float64 distance_to_target + + diff --git a/clearpath_outdoornav_msgs/clearpath_dock_msgs/package.xml b/clearpath_outdoornav_msgs/clearpath_dock_msgs/package.xml new file mode 100644 index 0000000..450407f --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_dock_msgs/package.xml @@ -0,0 +1,24 @@ + + + + clearpath_dock_msgs + 0.9.9 + ROS package containing the message definitions for the Clearpath Robotics OutdoorNav dock module. + José Mastrangelo + Proprietary + + ament_cmake + rosidl_default_generators + + action_msgs + clearpath_navigation_msgs + geometry_msgs + rosidl_default_runtime + + ament_cmake + + rosidl_interface_packages + + diff --git a/clearpath_outdoornav_msgs/clearpath_dock_msgs/srv/AddDock.srv b/clearpath_outdoornav_msgs/clearpath_dock_msgs/srv/AddDock.srv new file mode 100644 index 0000000..6691eea --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_dock_msgs/srv/AddDock.srv @@ -0,0 +1,8 @@ +# Service definition to add a dock to the list of available docks + +# A dock information message for the dock to be added +clearpath_dock_msgs/DockInfo dock +--- +# True if the dock has been added successfully, otherwise False +bool success +string message \ No newline at end of file diff --git a/clearpath_outdoornav_msgs/clearpath_dock_msgs/srv/ExportData.srv b/clearpath_outdoornav_msgs/clearpath_dock_msgs/srv/ExportData.srv new file mode 100644 index 0000000..9cff987 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_dock_msgs/srv/ExportData.srv @@ -0,0 +1,5 @@ +--- +# A JSON string representing the database contents. +# This can be written to a file or used with the ImportData.srv +# to back-up/restore the database contents +string data diff --git a/clearpath_outdoornav_msgs/clearpath_dock_msgs/srv/GetDockByUuid.srv b/clearpath_outdoornav_msgs/clearpath_dock_msgs/srv/GetDockByUuid.srv new file mode 100644 index 0000000..103fbf9 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_dock_msgs/srv/GetDockByUuid.srv @@ -0,0 +1,7 @@ +# Service definition to get dock related into for dock specified by UUID + +string dock_uuid +--- +geometry_msgs/Pose dock_pose +geometry_msgs/Pose predock_pose +clearpath_dock_msgs/DockInfo info diff --git a/clearpath_outdoornav_msgs/clearpath_dock_msgs/srv/ImportData.srv b/clearpath_outdoornav_msgs/clearpath_dock_msgs/srv/ImportData.srv new file mode 100644 index 0000000..c95dc0e --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_dock_msgs/srv/ImportData.srv @@ -0,0 +1,7 @@ +# A JSON string representing the database contents. +# This is the same as the data output by the ExportData service, and is intended +# to be used to restore the database to a previous state +string data +--- +# The state of the database after importing the data +clearpath_dock_msgs/DockInfo[] docks diff --git a/clearpath_outdoornav_msgs/clearpath_dock_msgs/srv/RemoveDock.srv b/clearpath_outdoornav_msgs/clearpath_dock_msgs/srv/RemoveDock.srv new file mode 100644 index 0000000..c2f9e62 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_dock_msgs/srv/RemoveDock.srv @@ -0,0 +1,9 @@ +# Service definition to remove a dock from the list of available docks + +# The uuid or the semantic name of the dock to be removed +string uuid +string name +--- +# True if the dock has been removed successfully, otherwise False +bool success +string message diff --git a/clearpath_outdoornav_msgs/clearpath_dock_msgs/srv/SetDockLocationById.srv b/clearpath_outdoornav_msgs/clearpath_dock_msgs/srv/SetDockLocationById.srv new file mode 100644 index 0000000..7a4f095 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_dock_msgs/srv/SetDockLocationById.srv @@ -0,0 +1,9 @@ +# Service definition to either create a new dock or update the location of an existing dock. + +# The UUID of the dock whose location we are updating +# If empty, a new dock is added with the random UUID and the name dockX, where X is the number of current docks +string uuid +--- +# True if the location was updated/added successfully, otherwise False +bool success +string message diff --git a/clearpath_outdoornav_msgs/clearpath_dock_msgs/srv/SetDockLocationByName.srv b/clearpath_outdoornav_msgs/clearpath_dock_msgs/srv/SetDockLocationByName.srv new file mode 100644 index 0000000..0ded2ac --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_dock_msgs/srv/SetDockLocationByName.srv @@ -0,0 +1,8 @@ +# Service definition to update the location of an existing dock by name. A dock with the name needs to have been previously created + +# The semantic name of the dock whose location we are updating +string name +--- +# True if the location was updated successfully, otherwise False +bool success +string message diff --git a/clearpath_outdoornav_msgs/clearpath_localization_msgs/CHANGELOG.rst b/clearpath_outdoornav_msgs/clearpath_localization_msgs/CHANGELOG.rst new file mode 100644 index 0000000..2a2e948 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_localization_msgs/CHANGELOG.rst @@ -0,0 +1,41 @@ +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Changelog for package clearpath_localization_msgs +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +0.9.9 (2024-03-14) +------------------ + +0.9.8 (2024-03-11) +------------------ +* Add additional messages for Network of Paths +* Contributors: Chris Iverach-Brereton , Stephen Phillips + +0.9.7 (2024-02-05) +------------------ + +0.9.6 (2023-12-21) +------------------ + +0.9.5 (2023-11-03) +------------------ +* Merge remote-tracking branch 'origin/noetic-devel' into ONAV-1771/on_start_stop_tasks +* Contributors: Stephen Phillips + +0.9.4 (2023-10-20) +------------------ + +0.9.3 (2023-10-19) +------------------ + +0.9.2 (2023-10-17) +------------------ +* Add: .srv definition for ConvertCartesianToLatLon service +* Fix over & underline length in changelogs +* Contributors: Chris Iverach-Brereton, Stephen Phillips, Jose Mastrangelo + +0.9.1 (2023-08-22) +------------------ + +0.9.0 (2023-07-05) +------------------ +* Initial release diff --git a/clearpath_outdoornav_msgs/clearpath_localization_msgs/CMakeLists.txt b/clearpath_outdoornav_msgs/clearpath_localization_msgs/CMakeLists.txt new file mode 100644 index 0000000..4cad67b --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_localization_msgs/CMakeLists.txt @@ -0,0 +1,36 @@ +cmake_minimum_required(VERSION 3.8) +project(clearpath_localization_msgs) + +## Find catkin macros and libraries + +find_package(rosidl_default_generators REQUIRED) +find_package(ament_cmake REQUIRED) +find_package(geometry_msgs REQUIRED) +find_package(sensor_msgs REQUIRED) +find_package(std_msgs REQUIRED) +set(CMAKE_CXX_STANDARD 17) + +rosidl_generate_interfaces( + ${PROJECT_NAME} + action/SurveyBaseStation.action + msg/GNSSStatus.msg + msg/LocalizationStatus.msg + msg/SurveyProperties.msg + msg/XvnStatus.msg + srv/ConvertCartesianToLatLon.srv + srv/ConvertCartesianToLatLonArray.srv + srv/ConvertLatLonToCartesian.srv + srv/ConvertLatLonToCartesianArray.srv + srv/ResetLocalization.srv + srv/SetDatum.srv + DEPENDENCIES + std_msgs + geometry_msgs + sensor_msgs +) + +ament_package() + +install(FILES + DESTINATION include/${PROJECT_NAME} +) diff --git a/clearpath_outdoornav_msgs/clearpath_localization_msgs/action/SurveyBaseStation.action b/clearpath_outdoornav_msgs/clearpath_localization_msgs/action/SurveyBaseStation.action new file mode 100644 index 0000000..2e2bee9 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_localization_msgs/action/SurveyBaseStation.action @@ -0,0 +1,12 @@ +# Action definition for surveying the base station + +# goal +# the number of GPS fixes that will be used to compute to surveyed position +uint32 number_of_desired_fixes +--- +# result +bool success +--- +# feedback +# current progress, as a percentage, of the surveying +float32 percent_complete diff --git a/clearpath_outdoornav_msgs/clearpath_localization_msgs/msg/GNSSStatus.msg b/clearpath_outdoornav_msgs/clearpath_localization_msgs/msg/GNSSStatus.msg new file mode 100644 index 0000000..445ca9b --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_localization_msgs/msg/GNSSStatus.msg @@ -0,0 +1,24 @@ +# Message definition containing the GNSS receiver status information. + +uint8 POSITION_RECEIVER = 0 +uint8 HEADING_RECEIVER = 1 +uint8 BASE_STATION_RECEIVER = 2 +uint8 receiver_type + +uint8 POSITION_NO_FIX = 0 +uint8 POSITION_SPP = 1 +uint8 POSITION_SBAS = 2 +uint8 POSITION_RTK_FLOAT = 3 +uint8 POSITION_RTK_FIXED = 4 +uint8 position_fix_type + +uint8 HEADING_NOT_APPLICABLE = 0 +uint8 HEADING_NO_SOLUTION = 1 +uint8 HEADING_RTK_FLOAT = 2 +uint8 HEADING_RTK_FIXED = 3 +uint8 heading_fix_type + +uint8 num_connected_sats # Number of satellites connected to the antenna/receiver +uint8 num_sats_solution # Number of sats used in solution +float32[] cn0 # The carrier-to-noise ratio of each connected satellite +float64 correction_age # Age of RTK corrections. -1 indicates none received diff --git a/clearpath_outdoornav_msgs/clearpath_localization_msgs/msg/LocalizationStatus.msg b/clearpath_outdoornav_msgs/clearpath_localization_msgs/msg/LocalizationStatus.msg new file mode 100644 index 0000000..9756fcf --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_localization_msgs/msg/LocalizationStatus.msg @@ -0,0 +1,12 @@ +# # Message definition containing localization status information for all sources of localization + +std_msgs/Header header +# the localization accuracy as a percentage value (covariance?) +float32 accuracy # in development + +# status information related to the GPS receiver units +GNSSStatus position_gnss +GNSSStatus heading_gnss +GNSSStatus base_station_gnss + +bool dead_reckoning \ No newline at end of file diff --git a/clearpath_outdoornav_msgs/clearpath_localization_msgs/msg/SurveyProperties.msg b/clearpath_outdoornav_msgs/clearpath_localization_msgs/msg/SurveyProperties.msg new file mode 100644 index 0000000..e776a88 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_localization_msgs/msg/SurveyProperties.msg @@ -0,0 +1,13 @@ +# Message definition containing the base station survey properties + +# ISO 8601 date/time format of last successfull base station survey +string last_survey_time + +# Number of samples used in survey +uint32 num_samples + +# GPS location of the base station +sensor_msgs/NavSatFix base_location + +# denotes a successfull base station survey +bool success diff --git a/clearpath_outdoornav_msgs/clearpath_localization_msgs/msg/XvnStatus.msg b/clearpath_outdoornav_msgs/clearpath_localization_msgs/msg/XvnStatus.msg new file mode 100644 index 0000000..ef22881 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_localization_msgs/msg/XvnStatus.msg @@ -0,0 +1,42 @@ +std_msgs/Header header +float64 latitude +float64 longitude +float32 yaw +float32 stddev_x +float32 stddev_y +float32 stddev_yaw + +uint8 UNKNOWN = 0 +uint8 VISION = 1 +uint8 VISUAL_INERTIAL = 2 +uint8 INERTIAL_GNSS = 3 +uint8 VI_GNSS = 4 +uint8 fusion_status + +uint8 IMU_NOT_CONVERGED = 0 +uint8 IMU_CONVERGED = 1 +uint8 imu_status + +int8 WS_NOT_USED = -1 +int8 WS_NOT_CONVERGED = 0 +int8 WS_CONVERGED = 1 +int8 wheelspeed_status + +uint8 GNSS_UNKNOWN = 0 +uint8 GNSS_NO_FIX = 1 +uint8 GNSS_DEAD_RECKONING = 2 +uint8 GNSS_TIME_FIX = 3 +uint8 GNSS_2D_FIX = 4 +uint8 GNSS_3D_FIX = 5 +uint8 GNSS_3D_WITH_DR = 6 +uint8 GNSS_RTK_FLOAT = 7 +uint8 GNSS_RTK_FIX = 8 + +uint8 gnss1_status +uint8 gnss2_status + +uint8 RTK_ERROR = 0 +uint8 RTK_WARNING = 1 +uint8 RTK_CONNECTING = 2 +uint8 RTK_CONNECTED = 3 +uint8 rtk_status diff --git a/clearpath_outdoornav_msgs/clearpath_localization_msgs/package.xml b/clearpath_outdoornav_msgs/clearpath_localization_msgs/package.xml new file mode 100644 index 0000000..a3e1732 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_localization_msgs/package.xml @@ -0,0 +1,25 @@ + + + + clearpath_localization_msgs + 0.9.9 + ROS package containing the message definitions for the Clearpath Robotics OutdoorNav localization module. + José Mastrangelo + Proprietary + + ament_cmake + rosidl_default_generators + + action_msgs + geometry_msgs + sensor_msgs + std_msgs + rosidl_default_runtime + + ament_cmake + + rosidl_interface_packages + + diff --git a/clearpath_outdoornav_msgs/clearpath_localization_msgs/srv/ConvertCartesianToLatLon.srv b/clearpath_outdoornav_msgs/clearpath_localization_msgs/srv/ConvertCartesianToLatLon.srv new file mode 100644 index 0000000..2faaccc --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_localization_msgs/srv/ConvertCartesianToLatLon.srv @@ -0,0 +1,5 @@ +# Service definition to convert Cartesian (map) coordinates to lat-lon + +geometry_msgs/PoseStamped pose +--- +sensor_msgs/NavSatFix msg diff --git a/clearpath_outdoornav_msgs/clearpath_localization_msgs/srv/ConvertCartesianToLatLonArray.srv b/clearpath_outdoornav_msgs/clearpath_localization_msgs/srv/ConvertCartesianToLatLonArray.srv new file mode 100644 index 0000000..99d7bda --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_localization_msgs/srv/ConvertCartesianToLatLonArray.srv @@ -0,0 +1,5 @@ +# Service definition to convert Cartesian (map) coordinates to lat-lon + +geometry_msgs/PoseStamped[] pose +--- +sensor_msgs/NavSatFix[] msg diff --git a/clearpath_outdoornav_msgs/clearpath_localization_msgs/srv/ConvertLatLonToCartesian.srv b/clearpath_outdoornav_msgs/clearpath_localization_msgs/srv/ConvertLatLonToCartesian.srv new file mode 100644 index 0000000..66fc022 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_localization_msgs/srv/ConvertLatLonToCartesian.srv @@ -0,0 +1,5 @@ +# Service definition to convert the Lat/Lon to Cartesian coordinates + +sensor_msgs/NavSatFix msg +--- +geometry_msgs/PoseStamped pose \ No newline at end of file diff --git a/clearpath_outdoornav_msgs/clearpath_localization_msgs/srv/ConvertLatLonToCartesianArray.srv b/clearpath_outdoornav_msgs/clearpath_localization_msgs/srv/ConvertLatLonToCartesianArray.srv new file mode 100644 index 0000000..ced3660 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_localization_msgs/srv/ConvertLatLonToCartesianArray.srv @@ -0,0 +1,5 @@ +# Service definition to convert the Lat/Lon to Cartesian coordinates + +sensor_msgs/NavSatFix[] msg +--- +geometry_msgs/PoseStamped[] pose \ No newline at end of file diff --git a/clearpath_outdoornav_msgs/clearpath_localization_msgs/srv/ResetLocalization.srv b/clearpath_outdoornav_msgs/clearpath_localization_msgs/srv/ResetLocalization.srv new file mode 100644 index 0000000..86a34fb --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_localization_msgs/srv/ResetLocalization.srv @@ -0,0 +1,6 @@ +# Service definition to reset the localization + +bool require_gnss +uint32 gnss_samples +--- +bool success diff --git a/clearpath_outdoornav_msgs/clearpath_localization_msgs/srv/SetDatum.srv b/clearpath_outdoornav_msgs/clearpath_localization_msgs/srv/SetDatum.srv new file mode 100644 index 0000000..c0f6057 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_localization_msgs/srv/SetDatum.srv @@ -0,0 +1,6 @@ +# Service definition to set the datum with a latitude (lat) and longitude (lon) + +float32 lat +float32 lon +--- +bool success diff --git a/clearpath_outdoornav_msgs/clearpath_logger_msgs/CHANGELOG.rst b/clearpath_outdoornav_msgs/clearpath_logger_msgs/CHANGELOG.rst new file mode 100644 index 0000000..a56b895 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_logger_msgs/CHANGELOG.rst @@ -0,0 +1,37 @@ +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Changelog for package clearpath_logger_msgs +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +0.10.0 (2024-07-04) +------------------- +* Merge pull request `#46 `_ from clearpathrobotics/0.13/features + 0.13/features +* Merge remote-tracking branch 'refs/remotes/origin/mission-logger' into 0.13/features +* Docs +* mission_uuid -> name in StartRecording +* EventLog mission_uuid -> name +* Add MIME types to media events +* Remove quotation marks around string constants; they are not required +* Add error event logging, add a custom json field to the master event log +* Add the custom json data to the stop_recording service +* Change the heading units +* Add the EventLogs message +* Add an additional flag to expunge the master record if desired +* Add the service to delete logs +* Add a flag to indicate if media files are missing from recording archives +* Add the auto_telemetry tag +* Remove an unnecessary dependency +* Fix the all-logs service to return an array +* Fix constants +* Add additional services, add fields to event-recorder services +* Add the download-log service +* TAG_POSITION -> TAG_LOCATION, add frame_id to custom events +* Add additional services +* Add the custom event service +* Add initial event-recording services +* Add first-draft Event, EventLog messages +* Fill in the skeleton for the new messages package +* Contributors: Chris Iverach-Brereton, Stephen Phillips, jmastrangelo-cpr + +0.9.9 (2024-03-14) +------------------ diff --git a/clearpath_outdoornav_msgs/clearpath_logger_msgs/CMakeLists.txt b/clearpath_outdoornav_msgs/clearpath_logger_msgs/CMakeLists.txt new file mode 100644 index 0000000..60c125c --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_logger_msgs/CMakeLists.txt @@ -0,0 +1,40 @@ +cmake_minimum_required(VERSION 3.8) +project(clearpath_logger_msgs) + +## Find catkin macros and libraries +find_package(rosidl_default_generators REQUIRED) +find_package(ament_cmake REQUIRED) +find_package(geometry_msgs REQUIRED) +find_package(nav_msgs REQUIRED) +find_package(sensor_msgs REQUIRED) +find_package(std_msgs REQUIRED) +set(CMAKE_CXX_STANDARD 17) + +rosidl_generate_interfaces( + ${PROJECT_NAME} + msg/Event.msg + msg/EventLog.msg + msg/EventLogs.msg + srv/DeleteLog.srv + srv/GetAllLogs.srv + srv/DownloadLog.srv + srv/RecordEvent.srv + srv/RecordCustomEvent.srv + srv/RecordErrorEvent.srv + srv/RecordLocationEvent.srv + srv/RecordMediaEvent.srv + srv/RecordPowerEvent.srv + srv/StartRecording.srv + srv/StopRecording.srv + DEPENDENCIES + geometry_msgs + nav_msgs + sensor_msgs + std_msgs +) + +ament_package() + +install(FILES + DESTINATION include/${PROJECT_NAME} +) diff --git a/clearpath_outdoornav_msgs/clearpath_logger_msgs/msg/Event.msg b/clearpath_outdoornav_msgs/clearpath_logger_msgs/msg/Event.msg new file mode 100644 index 0000000..62b54a4 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_logger_msgs/msg/Event.msg @@ -0,0 +1,101 @@ +################################################################################ +## Universal log event. Represents a single even recorded to the log +################################################################################ + +# Tag for events that include a media_path +string TAG_MEDIA = media + +# Tag indicating that the event's charger status & battery level have been set +string TAG_POWER = power + +# Tag indicating that the event's GPS position has been set +string TAG_LOCATION = location + +# Tag indicating that the event's odometry data has been set +string TAG_ODOMETRY = odom + +# Tag indicating that the event's velocity data has been set +string TAG_VELOCITY = vel + +# Tag indicating that the event's error/debugging data has been set +string TAG_ERROR = error + +# Tag indicating that this event was automatically recorded telemetry +string TAG_AUTO_TELEMETRY = auto_telemetry + +################################################################################ +## Header & general meta-data about the event +################################################################################ + +# Header +# - seq: the order of this event within its parent ExecutionLog +# - frame_id: the sensor/manipulator frame referenced by the frame_pose field +# - stamp: the time that this event occurred +std_msgs/Header header + +################################################################################ +## Media & sensor data +################################################################################ + +# If this even has media, this is its path on-disk +string media_path + +# If this event has media, this is its MIME type +# May be left blank +string media_mime_type + +# The pose of the sensor/manipulator frame given by header.frame_id relative to +# base_link +geometry_msgs/Pose frame_pose + +################################################################################ +## Robot location, orientation, velocity +################################################################################ + +# The robot's latitude, longitude, and heading as recorded by the GPS +# - lat: decimal degrees +# - lon: decimal degrees +# - heading: ENU orientation in radians +geometry_msgs/Point lat_lon_heading + +# The robot's location relative to the odometry frame +nav_msgs/Odometry odometry + +# The robot's linear & angular velocity +geometry_msgs/Twist velocity + +################################################################################ +## Power & battery +################################################################################ + +# The 0-1 charge level of the battery +float32 battery_percent + +# True of the robot's battery is charging, otherwise False +bool charging + +# True if power-saving/low-power mode is enabled, otherwise False +bool power_saver + +################################################################################ +## Error and debugging events +################################################################################ + +# An error code indicating the type of error +int32 error_code + +# A diagnostic error message, or non-integer error code +string error_msg + +# The name of the module/process/pipeline/etc... that signalled the error +string error_component + +################################################################################ +## Custom fields for expansion +################################################################################ + +# Arbitrary free-form tags usable to annotate custom data +string[] tags + +# Arbitrary JSON-formatted data that can contain user-defined fields +string custom_fields_json diff --git a/clearpath_outdoornav_msgs/clearpath_logger_msgs/msg/EventLog.msg b/clearpath_outdoornav_msgs/clearpath_logger_msgs/msg/EventLog.msg new file mode 100644 index 0000000..2c5dde0 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_logger_msgs/msg/EventLog.msg @@ -0,0 +1,45 @@ +################################################################################ +## A log representing a single mission execution +################################################################################ + +# The log is currently active and being modified +int32 STATE_ACTIVE = 0 + +# The log is old and closed +int32 STATE_CLOSED = 1 + +# The master record of the log exists, but its data has been deleted from the disk +int32 STATE_DELETED = 2 + +# The state of the log on disk +int32 state + +# The time the log started recording +builtin_interfaces/Time start_time + +# The time the log stopped recording +builtin_interfaces/Time end_time + +# This execution's unique ID +string uuid + +# A descriptive name for the log to be displayed in the GUI. Does not need to be unique +string name + +# The total percentage of the battery used during the execution +# This measures only negative changes, not positive ones +# e.g. if the robot uses 75% of the battery, returns to dock to recharge to full +# and then finishes the mission using another 75% of the battery, this value +# will read 1.5 +float32 battery_percent_used + +# The total distance driven by the robot (approximate) during the execution (meters) +# The exact path used to calculate the distance may be simplified and subject to +# sensor noise/error +float32 distance_driven + +# A custom JSON field for adding additional custom metrics, meta-data, etc... as needed +string custom_fields_json + +# The list of events recorded in this execution +clearpath_logger_msgs/Event[] events diff --git a/clearpath_outdoornav_msgs/clearpath_logger_msgs/msg/EventLogs.msg b/clearpath_outdoornav_msgs/clearpath_logger_msgs/msg/EventLogs.msg new file mode 100644 index 0000000..c55b10e --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_logger_msgs/msg/EventLogs.msg @@ -0,0 +1 @@ +clearpath_logger_msgs/EventLog[] logs diff --git a/clearpath_outdoornav_msgs/clearpath_logger_msgs/package.xml b/clearpath_outdoornav_msgs/clearpath_logger_msgs/package.xml new file mode 100644 index 0000000..ad27bd5 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_logger_msgs/package.xml @@ -0,0 +1,21 @@ + + + + clearpath_logger_msgs + 0.10.0 + ROS package containing the message definitions for the Clearpath Robotics OutdoorNav logging module. + Chris Iverach-Brereton + Proprietary + + ament_cmake + rosidl_default_generators + + rosidl_default_runtime + + ament_cmake + + rosidl_interface_packages + + diff --git a/clearpath_outdoornav_msgs/clearpath_logger_msgs/srv/DeleteLog.srv b/clearpath_outdoornav_msgs/clearpath_logger_msgs/srv/DeleteLog.srv new file mode 100644 index 0000000..a9c40bb --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_logger_msgs/srv/DeleteLog.srv @@ -0,0 +1,5 @@ +string uuid +bool delete_media +bool purge_record +--- +bool success diff --git a/clearpath_outdoornav_msgs/clearpath_logger_msgs/srv/DownloadLog.srv b/clearpath_outdoornav_msgs/clearpath_logger_msgs/srv/DownloadLog.srv new file mode 100644 index 0000000..36e02af --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_logger_msgs/srv/DownloadLog.srv @@ -0,0 +1,8 @@ +# The UUID of the recording to download +string log_uuid +--- +# The on-disk path the the generated archive +string path + +# If True at least one media file from the recording has been moved/deleted +bool media_missing diff --git a/clearpath_outdoornav_msgs/clearpath_logger_msgs/srv/GetAllLogs.srv b/clearpath_outdoornav_msgs/clearpath_logger_msgs/srv/GetAllLogs.srv new file mode 100644 index 0000000..32b1fe9 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_logger_msgs/srv/GetAllLogs.srv @@ -0,0 +1,2 @@ +--- +clearpath_logger_msgs/EventLog[] logs diff --git a/clearpath_outdoornav_msgs/clearpath_logger_msgs/srv/RecordCustomEvent.srv b/clearpath_outdoornav_msgs/clearpath_logger_msgs/srv/RecordCustomEvent.srv new file mode 100644 index 0000000..6d248e1 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_logger_msgs/srv/RecordCustomEvent.srv @@ -0,0 +1,10 @@ +# A valid JSON string containing the custom data to be recorded +string custom_fields_json + +# Tags to add to the event +string[] tags + +# Optional frame ID relevant to the event +string frame_id +--- +clearpath_logger_msgs/Event event diff --git a/clearpath_outdoornav_msgs/clearpath_logger_msgs/srv/RecordErrorEvent.srv b/clearpath_outdoornav_msgs/clearpath_logger_msgs/srv/RecordErrorEvent.srv new file mode 100644 index 0000000..8e61693 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_logger_msgs/srv/RecordErrorEvent.srv @@ -0,0 +1,10 @@ +# An error code indicating the type of error +int32 error_code + +# A diagnostic error message, or non-integer error code +string error_msg + +# The name of the module/process/pipeline/etc... that signalled the error +string error_component +--- +clearpath_logger_msgs/Event event diff --git a/clearpath_outdoornav_msgs/clearpath_logger_msgs/srv/RecordEvent.srv b/clearpath_outdoornav_msgs/clearpath_logger_msgs/srv/RecordEvent.srv new file mode 100644 index 0000000..cb8eea8 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_logger_msgs/srv/RecordEvent.srv @@ -0,0 +1,7 @@ +# The event to be recorded +# If the header's stamp is not zero the header will be modified to be the current time +# Otherwise the provided time will be used without verification +clearpath_logger_msgs/Event event +--- +# The event as it was recorded, after any modifications made for serialization +clearpath_logger_msgs/Event event diff --git a/clearpath_outdoornav_msgs/clearpath_logger_msgs/srv/RecordLocationEvent.srv b/clearpath_outdoornav_msgs/clearpath_logger_msgs/srv/RecordLocationEvent.srv new file mode 100644 index 0000000..efb79a7 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_logger_msgs/srv/RecordLocationEvent.srv @@ -0,0 +1,20 @@ +# The robot's current latitude (decimal degrees) +float64 latitude + +# The robot's current longitude (decimal degrees) +float64 longitude + +# The robot's current heading (cardinal direction in decimal degrees) +float64 heading + +# The robot's current linear & angular velocity +geometry_msgs/Twist velocity + +# The robot's current odometry location +nav_msgs/Odometry odometry + +# Tags for the event +# Should contain one or more of Event.TAG_LOCATION, TAG_ODOMETRY, or TAG_VELOCITY +string[] tags +--- +clearpath_logger_msgs/Event event diff --git a/clearpath_outdoornav_msgs/clearpath_logger_msgs/srv/RecordMediaEvent.srv b/clearpath_outdoornav_msgs/clearpath_logger_msgs/srv/RecordMediaEvent.srv new file mode 100644 index 0000000..8a707d0 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_logger_msgs/srv/RecordMediaEvent.srv @@ -0,0 +1,13 @@ +# The path to the media file on-disk +string media_path + +# A MIME type string indicating the media type +# May be left blank if desired +string mime_type + +# The frame ID for the sensor that recorded the media +# Leave blank if the sensor has no frame/TF data associated with it +string frame_id +--- +# The logged event +clearpath_logger_msgs/Event event diff --git a/clearpath_outdoornav_msgs/clearpath_logger_msgs/srv/RecordPowerEvent.srv b/clearpath_outdoornav_msgs/clearpath_logger_msgs/srv/RecordPowerEvent.srv new file mode 100644 index 0000000..7a2ad3d --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_logger_msgs/srv/RecordPowerEvent.srv @@ -0,0 +1,8 @@ +# The battery's current level +# 0.0 to 1.0 +float32 battery_percent + +# Is the battery currently charging? +bool charging +--- +clearpath_logger_msgs/Event event diff --git a/clearpath_outdoornav_msgs/clearpath_logger_msgs/srv/StartRecording.srv b/clearpath_outdoornav_msgs/clearpath_logger_msgs/srv/StartRecording.srv new file mode 100644 index 0000000..f42da2a --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_logger_msgs/srv/StartRecording.srv @@ -0,0 +1,4 @@ +# A human-readable name for the log +string name +--- +clearpath_logger_msgs/EventLog log diff --git a/clearpath_outdoornav_msgs/clearpath_logger_msgs/srv/StopRecording.srv b/clearpath_outdoornav_msgs/clearpath_logger_msgs/srv/StopRecording.srv new file mode 100644 index 0000000..905dbb8 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_logger_msgs/srv/StopRecording.srv @@ -0,0 +1,4 @@ +# Additional custom end-of-mission metrics to record as part of the log +string custom_fields_json +--- +clearpath_logger_msgs/EventLog log diff --git a/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/CHANGELOG.rst b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/CHANGELOG.rst new file mode 100644 index 0000000..00c1296 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/CHANGELOG.rst @@ -0,0 +1,64 @@ +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Changelog for package clearpath_mission_manager_msgs +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +0.9.9 (2024-03-14) +------------------ +* Message updates for onav-0.12 (`#34 `_) + * Add the size_exceeded field to NetworkMapState + * Mod: Update dock messages for new 0.12 docking APIs + * Mod: Add new autonomy API types to AutonomyStatus.msg + * Mod: Use float64 version of Vector2D for returning path recording lat-lons + * Mod: Add header field to RunNetworkGoToPlanner.action feedback + --------- + Co-authored-by: Chris Iverach-Brereton +* Contributors: stephen-cpr + +0.9.8 (2024-03-11) +------------------ +* Add additional messages for Network of Paths +* Contributors: Chris Iverach-Brereton , Stephen Phillips + +0.9.7 (2024-02-05) +------------------ + +0.9.6 (2023-12-21) +------------------ +* Add a new service for deleting multiple IDs at once +* Add a new service to import entire mission objects, including their associated tasks & waypoints +* Contributors: Chris Iverach-Brereton + +0.9.5 (2023-11-03) +------------------ +* [ONAV-1772] Add 'allow_failure' boolean to Task message type + - When set to True, any missions that execute this task will be allowed to continue if the task fails +* Merge pull request `#18 `_ from stephen-cpr/ONAV-1771/on_start_stop_tasks + [ONAV-1771] Add support for on_start / on_stop Mission Tasks +* Merge remote-tracking branch 'origin/noetic-devel' into ONAV-1771/on_start_stop_tasks +* [ONAV-1771] Add support for on_start / on_stop Mission Tasks + - clearpath_navigation_msgs/Mission.msg has been updated to include 'on_start' and 'on_stop' Task arrays which are executed when the mission begins and ends respectively (on_stop Tasks will execute regardless of mission failure or success) + - The CreateTask service has been updated to include 'assign_on_start' and 'assign_on_stop' fields (similar functionality as the 'assign_to' field) + - The 'assign_to' field of the CreateTask service has been updated to 'assign_to_wp' to distinguish it from assign_on_start/assign_on_stop + - Added the following service endpoints to mission_manager (using the AddRemoveById.srv type): + - ~add_task_to_start & ~add_task_to_stop - Adds a task to the on_start/on_stop array for given mission + - ~remove_task_from_start & ~remove_task_from_stop - Removes a task from the on_start/on_stop array for given mission +* Contributors: Stephen Phillips, Tony Baltovski + +0.9.4 (2023-10-20) +------------------ + +0.9.3 (2023-10-19) +------------------ + +0.9.2 (2023-10-17) +------------------ +* Use raw JSON strings for import & export; don't bother gzipping & base-64 encoding them +* Fix over & underline length in changelogs +* Contributors: Chris Iverach-Brereton + +0.9.1 (2023-08-22) +------------------ + +0.9.0 (2023-07-05) +------------------ +* Initial release diff --git a/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/CMakeLists.txt b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/CMakeLists.txt new file mode 100644 index 0000000..706b2cc --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/CMakeLists.txt @@ -0,0 +1,72 @@ +cmake_minimum_required(VERSION 3.8) +project(clearpath_mission_manager_msgs) + +find_package(rosidl_default_generators REQUIRED) +find_package(ament_cmake REQUIRED) +find_package(clearpath_navigation_msgs REQUIRED) +set(CMAKE_CXX_STANDARD 17) + +rosidl_generate_interfaces( + ${PROJECT_NAME} + msg/NetworkEdgeReq.msg + msg/NetworkMapState.msg + msg/NetworkMapValidityState.msg + msg/StorageState.msg + srv/AddNetworkEdge.srv + srv/AddNetworkPath.srv + srv/AddNetworkPoint.srv + srv/AddRemoveById.srv + srv/AddRemoveTag.srv + srv/CloneMission.srv + srv/CloneNetworkMap.srv + srv/CloneNetworkMission.srv + srv/ClonePointOfInterest.srv + srv/CreateMission.srv + srv/CreateNetworkMap.srv + srv/CreateNetworkMission.srv + srv/CreatePointOfInterest.srv + srv/CreateTask.srv + srv/CreateWaypoint.srv + srv/CreateWaypointFromPoi.srv + srv/DeleteById.srv + srv/DeleteEverything.srv + srv/DeleteMultiple.srv + srv/ExportData.srv + srv/GetAllMissions.srv + srv/GetAllNetworkMaps.srv + srv/GetAllNetworkMissions.srv + srv/GetAllPointsOfInterest.srv + srv/GetAllTasks.srv + srv/GetAllWaypoints.srv + srv/GetEverything.srv + srv/GetMission.srv + srv/GetNetworkMap.srv + srv/GetNetworkMission.srv + srv/GetPointOfInterest.srv + srv/GetTask.srv + srv/GetWaypoint.srv + srv/ImportData.srv + srv/ImportMission.srv + srv/ImportNetworkMap.srv + srv/ImportNetworkMission.srv + srv/SplitNetworkEdge.srv + srv/UpdateMission.srv + srv/UpdateNetworkEdge.srv + srv/UpdateNetworkEdges.srv + srv/UpdateNetworkMap.srv + srv/UpdateNetworkMission.srv + srv/UpdateNetworkPoint.srv + srv/UpdateNetworkPoints.srv + srv/UpdatePointOfInterest.srv + srv/UpdateTask.srv + srv/UpdateWaypoint.srv + srv/ValidateNetworkMap.srv + DEPENDENCIES + clearpath_navigation_msgs +) + +ament_package() + +install(FILES + DESTINATION include/${PROJECT_NAME} +) diff --git a/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/msg/NetworkEdgeReq.msg b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/msg/NetworkEdgeReq.msg new file mode 100644 index 0000000..c26127a --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/msg/NetworkEdgeReq.msg @@ -0,0 +1,6 @@ +string start_point_id +string end_point_id + +float32 speed_limit + +float32 radius diff --git a/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/msg/NetworkMapState.msg b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/msg/NetworkMapState.msg new file mode 100644 index 0000000..59259df --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/msg/NetworkMapState.msg @@ -0,0 +1,20 @@ +# The UUID of the map +string uuid + +# True if the map actually exists and was found +bool exists + +# The number of disconnected sub-graphs of the map +# Normally this will be 1 (i.e. the map is a single graph that is connected) +# but there are circumstances where the user may intentionally want 2+ disconnected graphs +# (e.g. a separate graph for each side of a fence, where the only connection between the two +# sides is an out-of-bounds, teleop-only road) +int32 num_subgraphs + +# If the map has any disconnected vertices, we enumerate them here by their ID +# If size_exceeded is true, this list may be empty or incomplete (see below) +string[] disconnected_point_ids + +# True if the map is too big for the validation to run on it +# Maps with more than 1000 vertices or 8000 edges will not be fully tests +bool size_exceeded diff --git a/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/msg/NetworkMapValidityState.msg b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/msg/NetworkMapValidityState.msg new file mode 100644 index 0000000..8cf775a --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/msg/NetworkMapValidityState.msg @@ -0,0 +1,2 @@ +# Reports the validity of all network of paths maps registered with the mission manager +clearpath_mission_manager_msgs/NetworkMapState[] map_states diff --git a/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/msg/StorageState.msg b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/msg/StorageState.msg new file mode 100644 index 0000000..e202755 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/msg/StorageState.msg @@ -0,0 +1,24 @@ +# The entire contents of the Mission database +# Note that all of the following cases are valid: +# - a Task can be referenced in multiple Waypoints +# - a Waypoint can be referenced in multiple Missions +# - a Waypoint can be orphaned (i.e. not included in any Missions) +# - a Task can be orphaned (i.e. not included in any Waypoints) + +# All missions defined in the database +clearpath_navigation_msgs/Mission[] missions + +# All waypoints defined in the database +clearpath_navigation_msgs/Waypoint[] waypoints + +# All tasks defined in the database +clearpath_navigation_msgs/Task[] tasks + +# All network of paths missions in the database +clearpath_navigation_msgs/NetworkMission[] network_missions + +# All network of paths maps in the database +clearpath_navigation_msgs/NetworkMap[] network_maps + +# Points of interest +clearpath_navigation_msgs/PointOfInterest[] points_of_interest diff --git a/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/package.xml b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/package.xml new file mode 100644 index 0000000..36dd598 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/package.xml @@ -0,0 +1,25 @@ + + + + clearpath_mission_manager_msgs + 0.9.9 + The clearpath_mission_manager_msgs package + + Chris Iverach-Brereton + Chris Iverach-Brereton + + Clearpath Proprietary + + ament_cmake + rosidl_default_generators + + clearpath_navigation_msgs + rosidl_default_runtime + + + ament_cmake + + rosidl_interface_packages + diff --git a/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/AddNetworkEdge.srv b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/AddNetworkEdge.srv new file mode 100644 index 0000000..3ac4913 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/AddNetworkEdge.srv @@ -0,0 +1,26 @@ +# The UUID of the map we're operating on +string map_id + +# The UUIDs of the start and end points for this edge +string start_point_id +string end_point_id + +# The operational radius around the edge +float32 radius + +# The speed limit when driving along this edge +float32 speed_limit + +# An additional cost factor to prioritize certain edges over others in the planner +# Higher costs -> edge is less likely to be included in the planned route +# Expected range is (0.0, 100.0) (exclusive range). +# Values outside the expected range will be treated as the default 1.0 +float32 cost_factor + +# If true, we add 2 edges, with the second one having inverted start and end points +bool symmetrical + +--- + +# The generated edge(s) +clearpath_navigation_msgs/NetworkEdge[] edges diff --git a/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/AddNetworkPath.srv b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/AddNetworkPath.srv new file mode 100644 index 0000000..112a584 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/AddNetworkPath.srv @@ -0,0 +1,13 @@ +# The lat-lon locations of the points to add +float64[] latitudes +float64[] longitudes + +# The UUID of the map we're adding points to +string map_id + +# If true, bidirectional edges are added between the points +bool symmetrical + +--- +bool success +string message \ No newline at end of file diff --git a/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/AddNetworkPoint.srv b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/AddNetworkPoint.srv new file mode 100644 index 0000000..10fe7b9 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/AddNetworkPoint.srv @@ -0,0 +1,22 @@ +# The location of this point on the map +float64 latitude +float64 longitude + +# The UUID of the map we're adding this point to +string map_id + +# Optional list of node IDs in the map we want to connect to the new node +# This specifies edges originating in the given nodes, pointing to the new node +string[] connect_from + +# Optional list of node IDs in the map we want to connect to the new node +# This specifies edges originating at the new node, pointing to the nodes with the given UUIDs +string[] connect_to + +# If true, bidirectional edge are added between the nodes specified in connect_from and connect_to +bool symmetrical + +--- + +# The added point, with generated UUID +clearpath_navigation_msgs/NetworkPoint point diff --git a/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/AddRemoveById.srv b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/AddRemoveById.srv new file mode 100644 index 0000000..a0efa48 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/AddRemoveById.srv @@ -0,0 +1,14 @@ +# The UUID of the object we're inserting/removing +# When removing, all instances with this UUID are deleted from the parent if this is set +# To remove a single instance at a given position, leave this blank and set position (see below) +string uuid + +# The UUID of the parent object +string parent_uuid + +# The zero-based index to insert the object into or removing from +# When removing by position, make sure to leave uuid empty +int32 position +--- +# True if the object was added/removed successfully, otherwise False +bool ok diff --git a/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/AddRemoveTag.srv b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/AddRemoveTag.srv new file mode 100644 index 0000000..f98eb3e --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/AddRemoveTag.srv @@ -0,0 +1,8 @@ +# The UUID of the item whose tags we're modifying +string uuid + +# The tag to add/remove +string tag +--- +# The item's tags after modification +string[] tags diff --git a/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/CloneMission.srv b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/CloneMission.srv new file mode 100644 index 0000000..18fd832 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/CloneMission.srv @@ -0,0 +1,12 @@ +# The UUID of the mission to clone +string uuid + +# The new name for the mission +# If blank, the old mission name will be re-used with -copy appended to the end +string new_name + +# If true, the order of the waypoints within the cloned mission are reversed +bool reverse +--- +# The Mission with the given ID, or null if no Mission with that ID exists +clearpath_navigation_msgs/Mission mission diff --git a/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/CloneNetworkMap.srv b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/CloneNetworkMap.srv new file mode 100644 index 0000000..bd907a0 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/CloneNetworkMap.srv @@ -0,0 +1,10 @@ +# The UUID of the map to clone +string uuid + +# The new name for the map +# If blank, the old map name will be re-used with -copy appended to the end +string new_name + +--- +# The newly-created copy of the original map, with a new name and new UUID +clearpath_navigation_msgs/NetworkMap map diff --git a/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/CloneNetworkMission.srv b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/CloneNetworkMission.srv new file mode 100644 index 0000000..9fe0fbd --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/CloneNetworkMission.srv @@ -0,0 +1,12 @@ +# The UUID of the mission to clone +string uuid + +# The new name for the mission +# If blank, the old mission name will be re-used with -copy appended to the end +string new_name + +# If true, the order of the waypoints within the cloned mission are reversed +bool reverse +--- +# The Mission with the given ID, or null if no Mission with that ID exists +clearpath_navigation_msgs/NetworkMission mission diff --git a/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/ClonePointOfInterest.srv b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/ClonePointOfInterest.srv new file mode 100644 index 0000000..230932a --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/ClonePointOfInterest.srv @@ -0,0 +1,5 @@ +string uuid + +string new_name +--- +clearpath_navigation_msgs/PointOfInterest result diff --git a/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/CreateMission.srv b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/CreateMission.srv new file mode 100644 index 0000000..129a803 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/CreateMission.srv @@ -0,0 +1,18 @@ +# The desired name for the new mission +string name + +# The additional configuration options +# see clearpath_navigation_msgs/msg/Mission for details +string onav_config + +# The ordered list of Waypoint UUIDs to include in this mission +string[] waypoint_ids + +# The ordered list of Task UUIDs to include in the on_start Task Array +string[] on_start_ids + +# The ordered list of Task UUIDs to include in the on_stop Task Array +string[] on_stop_ids +--- +# The resulting Mission, with an auto-generated UUID is returned +clearpath_navigation_msgs/Mission result diff --git a/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/CreateNetworkMap.srv b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/CreateNetworkMap.srv new file mode 100644 index 0000000..174950f --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/CreateNetworkMap.srv @@ -0,0 +1,21 @@ +# Create a new NetworkMap + +# The human-readable name for the map +string name + +float32 default_radius +float32 default_speed_limit + +# The UUIDs of the points will be re-generated when creating the map. +# When calling this service it is acceptable to use e.g. 0, 1, 2, ... to identify each point and re-use these +# values for the start/stop points in the connections +clearpath_navigation_msgs/NetworkPoint[] points + +# A simplified array of edges; just specify the start and end point IDs from the array above, rather than providing +# complete point objects +clearpath_mission_manager_msgs/NetworkEdgeReq[] connections + +--- + +# The resulting NetworkMap with an auto-generated UUID is returned +clearpath_navigation_msgs/NetworkMap result diff --git a/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/CreateNetworkMission.srv b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/CreateNetworkMission.srv new file mode 100644 index 0000000..90ef5f6 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/CreateNetworkMission.srv @@ -0,0 +1,37 @@ +# The desired name for the new mission +string name + +# The additional configuration options +# see clearpath_navigation_msgs/msg/Mission for details +string onav_config + +# The ordered list of Waypoint UUIDs to include in this mission +string[] waypoint_ids + +# The ordered list of Task UUIDs to include in the on_start Task Array +string[] on_start_ids + +# The ordered list of Task UUIDs to include in the on_stop Task Array +string[] on_stop_ids + +# Boolean value indicating whether robot should attempt 'return to dock' behavior +# when battery level drops below return_to_dock_battery_level +bool return_to_dock_enabled + +# Dock UUID that the robot should return to for 'return to dock' behavior +string return_to_dock_id + +# Value from 0 to 1 indicating what charge level the robot will return to dock at +float32 return_to_dock_battery_level + +# Value from 0 to 1 indicating what charge level the robot should resume this mission at +# after returning to dock for recharging +float32 resume_mission_battery_level + +# Boolean value indicating whether 'network' level replanning should be performed +# in the event that a network edge is deemed un-traversable (e.g., due to obstacles) +bool network_replan_enabled + +--- +# The resulting Mission, with an auto-generated UUID is returned +clearpath_navigation_msgs/NetworkMission result diff --git a/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/CreatePointOfInterest.srv b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/CreatePointOfInterest.srv new file mode 100644 index 0000000..45f5948 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/CreatePointOfInterest.srv @@ -0,0 +1,23 @@ +# The human-readable name of this POI +string name + +# The latitude (in decimal degrees) of this POI +float64 latitude + +# The longitude (in decinal degrees) of this POI +float64 longitude + +# The height above ground level (in meters) +float64 elevation + +# The compass heading (in degrees) of this POI (optional) +bool enable_heading +float64 heading + +# A set of labels assigned to the POI in order to categorize it +string[] tags + +# A JSON formatted string that contains user defined POI fields +string custom_fields_json +--- +clearpath_navigation_msgs/PointOfInterest result diff --git a/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/CreateTask.srv b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/CreateTask.srv new file mode 100644 index 0000000..1660e7a --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/CreateTask.srv @@ -0,0 +1,35 @@ +# The desired name for the Task +string name + +# The ROS Action to invoke to execute the task +string action_server_name + +# The version of the task +string version + +# The numerical arguments to pass to the action_server_name +float64[] floats + +# The string arguments to pass to the action_server_name +string[] strings + +# Boolean value which determines whether a mission using this task can continue +# if this task fails to execute +bool allow_failure + +# Optional list of Waypoint UUIDs to assign this task to automatically +# The new task will be appended to the end of the existing Waypoints +string[] assign_to_wp + +# Optional list of Mission UUIDs to assign this task to automatically +# The new task will be appended to the end of the existing on_start tasks +# associated with the specified mission +string[] assign_on_start + +# Optional list of Waypoint UUIDs to assign this task to automatically +# The new task will be appended to the end of the existing on_stop tasks +# associated with the specified mission +string[] assign_on_stop +--- +# The resulting Task with an auto-generated UUID is returned +clearpath_navigation_msgs/Task result diff --git a/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/CreateWaypoint.srv b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/CreateWaypoint.srv new file mode 100644 index 0000000..f458dc2 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/CreateWaypoint.srv @@ -0,0 +1,27 @@ +# The desired name for the Waypoint +string name + +# The latitude for the Waypoint in degrees +float64 latitude + +# The longitude for the Waypoint in degrees +float64 longitude + +# The compass heading in degrees for the Waypoint +float64 heading + +# The position tolerance for the Waypoint in meters +float64 position_tolerance + +# The orientation tolerance for the Waypoint in degrees +float64 yaw_tolerance + +# Optional ordered list of Task UUIDs to execute at this Waypoint +string[] task_ids + +# Optional list of Mission UUIDs to assign the new Waypoint to +# The new Waypoint is appended to the end of the existing Missions +string[] assign_to +--- +# The resulting Waypoint with an auto-generated UUID is returned +clearpath_navigation_msgs/Waypoint result diff --git a/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/CreateWaypointFromPoi.srv b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/CreateWaypointFromPoi.srv new file mode 100644 index 0000000..fdf59a2 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/CreateWaypointFromPoi.srv @@ -0,0 +1,3 @@ +clearpath_navigation_msgs/PointOfInterest point_of_interest +--- +clearpath_navigation_msgs/Waypoint waypoint diff --git a/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/DeleteById.srv b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/DeleteById.srv new file mode 100644 index 0000000..8076e9d --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/DeleteById.srv @@ -0,0 +1,5 @@ +# The UUID of the object we want to delete +string uuid +--- +# True if the item was successfully deleted, otherwise False +bool ok diff --git a/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/DeleteEverything.srv b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/DeleteEverything.srv new file mode 100644 index 0000000..f06cf37 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/DeleteEverything.srv @@ -0,0 +1,8 @@ +# Used to permanently delete everything from the database. +# Use this service at your own risk + +# This must be set to true to confirm you really want to delete everything +bool yes_i_am_absolutely_sure_i_want_to_do_this +--- +# True if the database was cleared, otherwise False +bool ok diff --git a/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/DeleteMultiple.srv b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/DeleteMultiple.srv new file mode 100644 index 0000000..52e5300 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/DeleteMultiple.srv @@ -0,0 +1,8 @@ +# A list of UUIDs of items we want to delete +string[] uuids + +# An optional ID of the parent object we're deleting from +string parent_id +--- +# A list of UUIDs that we were asked to delete, but failed to +string[] failed_uuids diff --git a/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/ExportData.srv b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/ExportData.srv new file mode 100644 index 0000000..9cff987 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/ExportData.srv @@ -0,0 +1,5 @@ +--- +# A JSON string representing the database contents. +# This can be written to a file or used with the ImportData.srv +# to back-up/restore the database contents +string data diff --git a/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/GetAllMissions.srv b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/GetAllMissions.srv new file mode 100644 index 0000000..aba5072 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/GetAllMissions.srv @@ -0,0 +1,3 @@ +--- +# An array of all Missions defined in the database +clearpath_navigation_msgs/Mission[] missions diff --git a/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/GetAllNetworkMaps.srv b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/GetAllNetworkMaps.srv new file mode 100644 index 0000000..5b81c42 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/GetAllNetworkMaps.srv @@ -0,0 +1,2 @@ +--- +clearpath_navigation_msgs/NetworkMap[] maps diff --git a/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/GetAllNetworkMissions.srv b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/GetAllNetworkMissions.srv new file mode 100644 index 0000000..e303d29 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/GetAllNetworkMissions.srv @@ -0,0 +1,3 @@ +--- +# An array of all Missions defined in the database +clearpath_navigation_msgs/NetworkMission[] missions diff --git a/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/GetAllPointsOfInterest.srv b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/GetAllPointsOfInterest.srv new file mode 100644 index 0000000..86a7354 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/GetAllPointsOfInterest.srv @@ -0,0 +1,2 @@ +--- +clearpath_navigation_msgs/PointOfInterest[] points_of_interest diff --git a/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/GetAllTasks.srv b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/GetAllTasks.srv new file mode 100644 index 0000000..fa8ae06 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/GetAllTasks.srv @@ -0,0 +1,3 @@ +--- +# The array of all Tasks defined in the database +clearpath_navigation_msgs/Task[] tasks diff --git a/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/GetAllWaypoints.srv b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/GetAllWaypoints.srv new file mode 100644 index 0000000..66d1c92 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/GetAllWaypoints.srv @@ -0,0 +1,3 @@ +--- +# The array of all Waypoints defined in the database +clearpath_navigation_msgs/Waypoint[] waypoints diff --git a/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/GetEverything.srv b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/GetEverything.srv new file mode 100644 index 0000000..c4fee04 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/GetEverything.srv @@ -0,0 +1,3 @@ +--- +# All Missions, Waypoints, and Tasks defined in the database +clearpath_mission_manager_msgs/StorageState state diff --git a/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/GetMission.srv b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/GetMission.srv new file mode 100644 index 0000000..369747c --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/GetMission.srv @@ -0,0 +1,5 @@ +# The UUID of the Mission we want to retrieve +string uuid +--- +# The Mission with the given ID, or null if no Mission with that ID exists +clearpath_navigation_msgs/Mission mission diff --git a/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/GetNetworkMap.srv b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/GetNetworkMap.srv new file mode 100644 index 0000000..98647a2 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/GetNetworkMap.srv @@ -0,0 +1,4 @@ +# The UUID of the NetworkMap we want to retrieve +string uuid +--- +clearpath_navigation_msgs/NetworkMap map diff --git a/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/GetNetworkMission.srv b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/GetNetworkMission.srv new file mode 100644 index 0000000..49aa655 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/GetNetworkMission.srv @@ -0,0 +1,5 @@ +# The UUID of the NetworkMission we want to retrieve +string uuid +--- +# The Mission with the given ID, or null if no Mission with that ID exists +clearpath_navigation_msgs/NetworkMission mission diff --git a/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/GetPointOfInterest.srv b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/GetPointOfInterest.srv new file mode 100644 index 0000000..667bbac --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/GetPointOfInterest.srv @@ -0,0 +1,3 @@ +string uuid +--- +clearpath_navigation_msgs/PointOfInterest point_of_interest diff --git a/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/GetTask.srv b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/GetTask.srv new file mode 100644 index 0000000..8a47d1d --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/GetTask.srv @@ -0,0 +1,5 @@ +# The UUID of the Task we want to retrieve +string uuid +--- +# The Task with the given ID, or null if no Task with that ID exists +clearpath_navigation_msgs/Task task diff --git a/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/GetWaypoint.srv b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/GetWaypoint.srv new file mode 100644 index 0000000..df77fa7 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/GetWaypoint.srv @@ -0,0 +1,5 @@ +# The UUID of the Waypoint we want to retrieve +string uuid +--- +# The Waypoint with the given ID, or null if no Waypoint with that ID exists +clearpath_navigation_msgs/Waypoint waypoint diff --git a/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/ImportData.srv b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/ImportData.srv new file mode 100644 index 0000000..2ce8ca5 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/ImportData.srv @@ -0,0 +1,7 @@ +# A JSON string representing the database contents. +# This is the same as the data output by the ExportData service, and is intended +# to be used to restore the database to a previous state +string data +--- +# The state of the database after importing the data +clearpath_mission_manager_msgs/StorageState state diff --git a/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/ImportMission.srv b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/ImportMission.srv new file mode 100644 index 0000000..734810c --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/ImportMission.srv @@ -0,0 +1,6 @@ +# The mission to import. UUIDs that do not already exist are added, but objects with existing UUIDs +# are re-used +clearpath_navigation_msgs/Mission mission +--- +# The imported mission +clearpath_navigation_msgs/Mission mission diff --git a/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/ImportNetworkMap.srv b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/ImportNetworkMap.srv new file mode 100644 index 0000000..9f6e9af --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/ImportNetworkMap.srv @@ -0,0 +1,6 @@ +# The map to import. UUIDs that do not already exist are added, but objects with existing UUIDs +# are re-used +clearpath_navigation_msgs/NetworkMap map +--- +# The imported map +clearpath_navigation_msgs/NetworkMap map diff --git a/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/ImportNetworkMission.srv b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/ImportNetworkMission.srv new file mode 100644 index 0000000..74d0e90 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/ImportNetworkMission.srv @@ -0,0 +1,6 @@ +# The mission to import. UUIDs that do not already exist are added, but objects with existing UUIDs +# are re-used +clearpath_navigation_msgs/NetworkMission mission +--- +# The imported mission +clearpath_navigation_msgs/NetworkMission mission diff --git a/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/SplitNetworkEdge.srv b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/SplitNetworkEdge.srv new file mode 100644 index 0000000..b8c0360 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/SplitNetworkEdge.srv @@ -0,0 +1,17 @@ +# Splits an edge on a NetworkMap to connect to a new point + +# The UUID of the map to edit +string map_id + +# The UUID of the edge we want to split +string edge_id + +# The position of the new point to create +float64 new_point_latitude +float64 new_point_longitude + +# If true, we also split the reverse edge (if it exists) +bool symmetrical +--- +# The map in its new state +clearpath_navigation_msgs/NetworkMap result diff --git a/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/UpdateMission.srv b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/UpdateMission.srv new file mode 100644 index 0000000..0c32ab9 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/UpdateMission.srv @@ -0,0 +1,20 @@ +# The UUID of the mission we want to edit +string uuid + +# The human-readable name for the Mission +string name + +# The configuration parameters for the Mission +string onav_config + +# The ordered list of Waypoint UUIDs to include in the Mission +string[] waypoint_ids + +# The ordered list of Task UUIDs to include in the on_start Task Array +string[] on_start_ids + +# The ordered list of Task UUIDs to include in the on_stop Task Array +string[] on_stop_ids +--- +# The edited Mission, or null if no mission with the given ID exists +clearpath_navigation_msgs/Mission result diff --git a/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/UpdateNetworkEdge.srv b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/UpdateNetworkEdge.srv new file mode 100644 index 0000000..74f6479 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/UpdateNetworkEdge.srv @@ -0,0 +1,27 @@ +# The UUID of the map we're operating on +string map_id + +# The UUIDs of the start and end points for this edge +string uuid + +# The UUIDs of the start & end points of the edge we're editing +# Ignored if null/empty +string start_point_id +string end_point_id + +# The operational radius around the edge +float32 radius + +# The speed limit when driving along this edge +float32 speed_limit + +# An additional cost factor to prioritize certain edges over others in the planner +# Higher costs -> edge is less likely to be included in the planned route +# Expected range is (0.0, 100.0) (exclusive range). +# Values outside the expected range will be treated as the default 1.0 +float32 cost_factor + +--- + +# The updated edge +clearpath_navigation_msgs/NetworkEdge result diff --git a/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/UpdateNetworkEdges.srv b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/UpdateNetworkEdges.srv new file mode 100644 index 0000000..6821d3e --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/UpdateNetworkEdges.srv @@ -0,0 +1,23 @@ +# Update multiple edges in a single map + +# The UUID of the map we're operating on +string map_id + +# The UUIDs of the start and end points for this edge +string[] uuids + +# The operational radii around the edges +# Ignored if negative +float32[] radii + +# The speed limit when driving along the edges +# Ignored if negative +float32[] speed_limits + +# The cost factors of the edges +float32[] cost_factors + +--- + +# The updated edge +clearpath_navigation_msgs/NetworkEdge[] result diff --git a/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/UpdateNetworkMap.srv b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/UpdateNetworkMap.srv new file mode 100644 index 0000000..81c2c64 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/UpdateNetworkMap.srv @@ -0,0 +1,7 @@ +string uuid + +string name +float32 default_radius +float32 default_speed_limit +--- +clearpath_navigation_msgs/NetworkMap result diff --git a/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/UpdateNetworkMission.srv b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/UpdateNetworkMission.srv new file mode 100644 index 0000000..5e58b01 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/UpdateNetworkMission.srv @@ -0,0 +1,40 @@ +# The UUID of the mission we want to edit +string uuid + +# The desired name for the new mission +string name + +# The additional configuration options +# see clearpath_navigation_msgs/msg/Mission for details +string onav_config + +# The ordered list of Waypoint UUIDs to include in this mission +string[] waypoint_ids + +# The ordered list of Task UUIDs to include in the on_start Task Array +string[] on_start_ids + +# The ordered list of Task UUIDs to include in the on_stop Task Array +string[] on_stop_ids + +# Boolean value indicating whether robot should attempt 'return to dock' behavior +# when battery level drops below return_to_dock_battery_level +bool return_to_dock_enabled + +# Dock UUID that the robot should return to for 'return to dock' behavior +string return_to_dock_id + +# Value from 0 to 1 indicating what charge level the robot will return to dock at +float32 return_to_dock_battery_level + +# Value from 0 to 1 indicating what charge level the robot should resume this mission at +# after returning to dock for recharging +float32 resume_mission_battery_level + +# Boolean value indicating whether 'network' level replanning should be performed +# in the event that a network edge is deemed un-traversable (e.g., due to obstacles) +bool network_replan_enabled + +--- +# The resulting Mission, with an auto-generated UUID is returned +clearpath_navigation_msgs/NetworkMission result diff --git a/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/UpdateNetworkPoint.srv b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/UpdateNetworkPoint.srv new file mode 100644 index 0000000..411304f --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/UpdateNetworkPoint.srv @@ -0,0 +1,14 @@ +# The UUID of the map we're working on +string map_id + +# The UUID of the point to edit +string uuid + +# The location of this point on the map +float64 latitude +float64 longitude + +--- + +# The added point, with generated UUID +clearpath_navigation_msgs/NetworkPoint result diff --git a/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/UpdateNetworkPoints.srv b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/UpdateNetworkPoints.srv new file mode 100644 index 0000000..9126f29 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/UpdateNetworkPoints.srv @@ -0,0 +1,14 @@ +# The UUID of the map we're working on +string map_id + +# The UUID of the points to edit +string[] uuids + +# The location of the points on the map, in the same order as uuids +float64[] latitudes +float64[] longitudes + +--- + +# The added point, with generated UUID +clearpath_navigation_msgs/NetworkPoint[] result diff --git a/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/UpdatePointOfInterest.srv b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/UpdatePointOfInterest.srv new file mode 100644 index 0000000..26e9163 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/UpdatePointOfInterest.srv @@ -0,0 +1,26 @@ +# The ID of the point to edit +string uuid + +# The human-readable name of this POI +string name + +# The latitude (in decimal degrees) of this POI +float64 latitude + +# The longitude (in decinal degrees) of this POI +float64 longitude + +# The height above ground level (in meters) +float64 elevation + +# The compass heading (in degrees) of this POI (optional) +bool enable_heading +float64 heading + +# A set of labels assigned to the POI in order to categorize it +string[] tags + +# A JSON formatted string that contains user defined POI fields +string custom_fields_json +--- +clearpath_navigation_msgs/PointOfInterest result diff --git a/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/UpdateTask.srv b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/UpdateTask.srv new file mode 100644 index 0000000..b494302 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/UpdateTask.srv @@ -0,0 +1,24 @@ +# The UUID of the Task to edit +string uuid + +# The human-readable name for the Task +string name + +# The ROS Action that the Task executes +string action_server_name + +# The version of the Task +string version + +# The numerical data to pass to the action_server_name +float64[] floats + +# The string data to pass to the action_server_name +string[] strings + +# Boolean value which determines whether a mission using this task can continue +# if this task fails to execute +bool allow_failure +--- +# The edited Task, or null if no Task with the given ID exists +clearpath_navigation_msgs/Task result diff --git a/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/UpdateWaypoint.srv b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/UpdateWaypoint.srv new file mode 100644 index 0000000..13cce9f --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/UpdateWaypoint.srv @@ -0,0 +1,26 @@ +# The UUID of the Waypoint to edit +string uuid + +# The human-readable name for the Waypoint +string name + +# The latitude of the Waypoint in degrees +float64 latitude + +# The longitude of the Waypoint in degrees +float64 longitude + +# The compass heading of the Waypoint in degrees +float64 heading + +# The Waypoint's position tolerance in meters +float64 position_tolerance + +# The Waypoint's orientation tolerance in degrees +float64 yaw_tolerance + +# The ordered list of Task UUIDs to execute at this Waypoint +string[] task_ids +--- +# The edited Waypoint, or null if no Waypoint with the given ID exists +clearpath_navigation_msgs/Waypoint result diff --git a/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/ValidateNetworkMap.srv b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/ValidateNetworkMap.srv new file mode 100644 index 0000000..ab7071a --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_manager_msgs/srv/ValidateNetworkMap.srv @@ -0,0 +1,6 @@ +# Checks that a Network of Paths map is valid and error/warning-free + +# The UUID of the map to check +string uuid +--- +clearpath_mission_manager_msgs/NetworkMapState state diff --git a/clearpath_outdoornav_msgs/clearpath_mission_scheduler_msgs/CHANGELOG.rst b/clearpath_outdoornav_msgs/clearpath_mission_scheduler_msgs/CHANGELOG.rst new file mode 100644 index 0000000..8665df3 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_scheduler_msgs/CHANGELOG.rst @@ -0,0 +1,40 @@ +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Changelog for package clearpath_mission_scheduler_msgs +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +0.9.9 (2024-03-14) +------------------ + +0.9.8 (2024-03-11) +------------------ +* Add additional messages for Network of Paths +* Contributors: Chris Iverach-Brereton , Stephen Phillips + +0.9.7 (2024-02-05) +------------------ + +0.9.6 (2023-12-21) +------------------ + +0.9.5 (2023-11-03) +------------------ +* Merge remote-tracking branch 'origin/noetic-devel' into ONAV-1771/on_start_stop_tasks +* Contributors: Stephen Phillips + +0.9.4 (2023-10-20) +------------------ + +0.9.3 (2023-10-19) +------------------ + +0.9.2 (2023-10-17) +------------------ +* Use raw JSON strings for import & export; don't bother gzipping & base-64 encoding them +* Contributors: Chris Iverach-Brereton + +0.9.1 (2023-08-22) +------------------ + +0.9.0 (2023-07-05) +------------------ +* Initial release diff --git a/clearpath_outdoornav_msgs/clearpath_mission_scheduler_msgs/CMakeLists.txt b/clearpath_outdoornav_msgs/clearpath_mission_scheduler_msgs/CMakeLists.txt new file mode 100644 index 0000000..b47a585 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_scheduler_msgs/CMakeLists.txt @@ -0,0 +1,35 @@ +cmake_minimum_required(VERSION 3.8) +project(clearpath_mission_scheduler_msgs) + +find_package(rosidl_default_generators REQUIRED) +find_package(ament_cmake REQUIRED) +find_package(builtin_interfaces REQUIRED) +find_package(clearpath_navigation_msgs REQUIRED) +set(CMAKE_CXX_STANDARD 17) + +rosidl_generate_interfaces( + ${PROJECT_NAME} + action/RunScheduleByUuid.action + msg/NextSchedule.msg + msg/Schedule.msg + msg/StorageState.msg + msg/UtcTime.msg + srv/CloneSchedule.srv + srv/CreateSchedule.srv + srv/EnableSchedule.srv + srv/ExportData.srv + srv/GetAllSchedules.srv + srv/GetNextSchedule.srv + srv/GetSchedule.srv + srv/ImportData.srv + srv/UpdateSchedule.srv + DEPENDENCIES + builtin_interfaces + clearpath_navigation_msgs +) + +ament_package() + +install(FILES + DESTINATION include/${PROJECT_NAME} +) diff --git a/clearpath_outdoornav_msgs/clearpath_mission_scheduler_msgs/action/RunScheduleByUuid.action b/clearpath_outdoornav_msgs/clearpath_mission_scheduler_msgs/action/RunScheduleByUuid.action new file mode 100644 index 0000000..14b221a --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_scheduler_msgs/action/RunScheduleByUuid.action @@ -0,0 +1,17 @@ +# Action definition for executing a schedule on-demand +# Potentially only useful for debugging + +# The UUID of the schedule to execute +string uuid + +# Wait this long before starting the schedule +builtin_interfaces/Duration delay +--- +# Did the schedule terminate successfully? +bool success +--- +# The ID of the mission we're executing right now +string current_mission_uuid + +# One of "waiting" or "executing" indicating what the schedule is doing +string state diff --git a/clearpath_outdoornav_msgs/clearpath_mission_scheduler_msgs/msg/NextSchedule.msg b/clearpath_outdoornav_msgs/clearpath_mission_scheduler_msgs/msg/NextSchedule.msg new file mode 100644 index 0000000..238f425 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_scheduler_msgs/msg/NextSchedule.msg @@ -0,0 +1,6 @@ +# The ID of the next schedule to start +# Empty if nothing is scheduled +string uuid + +# The time until the schedule starts (rounded to the nearest second) +builtin_interfaces/Duration time_to_start diff --git a/clearpath_outdoornav_msgs/clearpath_mission_scheduler_msgs/msg/Schedule.msg b/clearpath_outdoornav_msgs/clearpath_mission_scheduler_msgs/msg/Schedule.msg new file mode 100644 index 0000000..ba22944 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_scheduler_msgs/msg/Schedule.msg @@ -0,0 +1,45 @@ +# Single-execution mode; the schedule starts at the designated time and runs once +uint8 MODE_ONCE=0 + +# Looping mode; the schedule starts at the designated time, and every loop_interval seconds after +# for the designated number of repeats +uint8 MODE_LOOP=1 + +# Single-shot execution, but does NOT get added to the persistent storage +# Equivalent to MODE_ONCE, but for one-off, throw-away schedules (e.g. "Run X in 5 minutes") +uint8 MODE_TRANSIENT=2 + +# The human-readable name for this schedule +# Should be unique, but there's no hard requirement for it to be so +string name + +# The unique ID of this schedule +# A string of the form "12345678-90ab-cdef-1234-567890abcdef" +string uuid + +# The time that this mission starts every day +clearpath_mission_scheduler_msgs/UtcTime start_time + +# Either MODE_ONCE or MODE_LOOP to indicate the execution mode +uint8 mode + +# In MODE_LOOP, how many times do we repeat the missions? +uint8 loop_repeats + +# In MODE_LOOP, how long do we wait between executions? +builtin_interfaces/Duration loop_interval + +# The ordered list of Mission UUIDs to execute +string[] mission_ids + +# The minimum battery charge needed before we execute the missions +# Must be in the range 0-1 +float32 min_battery + +# If the missions take longer than this to execute, assume the schedule has failed and alert the user +# Set to zero to disable the timeout +builtin_interfaces/Duration timeout + +# Is this schedule enabled? +# Only enabled schedules will execute +bool enabled diff --git a/clearpath_outdoornav_msgs/clearpath_mission_scheduler_msgs/msg/StorageState.msg b/clearpath_outdoornav_msgs/clearpath_mission_scheduler_msgs/msg/StorageState.msg new file mode 100644 index 0000000..8d72082 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_scheduler_msgs/msg/StorageState.msg @@ -0,0 +1 @@ +clearpath_mission_scheduler_msgs/Schedule[] schedules diff --git a/clearpath_outdoornav_msgs/clearpath_mission_scheduler_msgs/msg/UtcTime.msg b/clearpath_outdoornav_msgs/clearpath_mission_scheduler_msgs/msg/UtcTime.msg new file mode 100644 index 0000000..e7ed930 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_scheduler_msgs/msg/UtcTime.msg @@ -0,0 +1,13 @@ +# Represents a moment in time on a 24-hour clock + +# The hour, 0-23 +uint8 hour + +# The minute, 0-59 +uint8 minute + +# The second, 0-59 +uint8 second + +# Milliseconds, 0-999 (not typically needed) +uint16 millisecond diff --git a/clearpath_outdoornav_msgs/clearpath_mission_scheduler_msgs/package.xml b/clearpath_outdoornav_msgs/clearpath_mission_scheduler_msgs/package.xml new file mode 100644 index 0000000..bc46f10 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_scheduler_msgs/package.xml @@ -0,0 +1,27 @@ + + + + clearpath_mission_scheduler_msgs + 0.9.9 + The clearpath_mission_scheduler_msgs package + + Chris Iverach-Brereton + Chris Iverach-Brereton + + Clearpath Proprietary + + ament_cmake + rosidl_default_generators + + action_msgs + builtin_interfaces + clearpath_navigation_msgs + rosidl_default_runtime + + + ament_cmake + + rosidl_interface_packages + diff --git a/clearpath_outdoornav_msgs/clearpath_mission_scheduler_msgs/srv/CloneSchedule.srv b/clearpath_outdoornav_msgs/clearpath_mission_scheduler_msgs/srv/CloneSchedule.srv new file mode 100644 index 0000000..66f4398 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_scheduler_msgs/srv/CloneSchedule.srv @@ -0,0 +1,9 @@ +# The UUID of the schedule to clone +string uuid + +# The name for the new copy of the schedule +string new_name +--- +# The cloned schedule +# This should be identical to the original, but with a new name and new UUID +clearpath_mission_scheduler_msgs/Schedule schedule diff --git a/clearpath_outdoornav_msgs/clearpath_mission_scheduler_msgs/srv/CreateSchedule.srv b/clearpath_outdoornav_msgs/clearpath_mission_scheduler_msgs/srv/CreateSchedule.srv new file mode 100644 index 0000000..da002d8 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_scheduler_msgs/srv/CreateSchedule.srv @@ -0,0 +1,35 @@ +# The human-readable name for this schedule +# Should be unique, but there's no hard requirement for it to be so +string name + +# The time that this mission starts every day +clearpath_mission_scheduler_msgs/UtcTime start_time + +# Either Schedule.MODE_ONCE, Schedule.MODE_LOOP, OR Schedule.MODE_TRANSIENT to indicate the execution mode +uint8 mode + +# In MODE_LOOP, how many times do we repeat the missions? +uint8 loop_repeats + +# In MODE_LOOP, how long do we wait between executions? +builtin_interfaces/Duration loop_interval + +# The ordered list of Mission UUIDs to execute +string[] mission_ids + +# The minimum battery charge needed before we execute the missions +# Must be in the range 0-1 +float32 min_battery + +# If the missions take longer than this to execute, assume the schedule has failed and alert the user +# Set to zero to disable the timeout +builtin_interfaces/Duration timeout + +# Is this schedule enabled? +# Only enabled schedules will execute +bool enabled + +--- + +# The created mission, as-saved on disk +clearpath_mission_scheduler_msgs/Schedule result diff --git a/clearpath_outdoornav_msgs/clearpath_mission_scheduler_msgs/srv/EnableSchedule.srv b/clearpath_outdoornav_msgs/clearpath_mission_scheduler_msgs/srv/EnableSchedule.srv new file mode 100644 index 0000000..cdeafd5 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_scheduler_msgs/srv/EnableSchedule.srv @@ -0,0 +1,11 @@ +# The ID of the schedule to enable/disable +string uuid + +# Should this schedule be enabled or disabled? +bool enable + +--- + +# True if we successfully enabled/disabled the schedule +# False if there was an error or the schedule wasn't found +bool ok diff --git a/clearpath_outdoornav_msgs/clearpath_mission_scheduler_msgs/srv/ExportData.srv b/clearpath_outdoornav_msgs/clearpath_mission_scheduler_msgs/srv/ExportData.srv new file mode 100644 index 0000000..9cff987 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_scheduler_msgs/srv/ExportData.srv @@ -0,0 +1,5 @@ +--- +# A JSON string representing the database contents. +# This can be written to a file or used with the ImportData.srv +# to back-up/restore the database contents +string data diff --git a/clearpath_outdoornav_msgs/clearpath_mission_scheduler_msgs/srv/GetAllSchedules.srv b/clearpath_outdoornav_msgs/clearpath_mission_scheduler_msgs/srv/GetAllSchedules.srv new file mode 100644 index 0000000..5c17728 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_scheduler_msgs/srv/GetAllSchedules.srv @@ -0,0 +1,2 @@ +--- +clearpath_mission_scheduler_msgs/Schedule[] schedules diff --git a/clearpath_outdoornav_msgs/clearpath_mission_scheduler_msgs/srv/GetNextSchedule.srv b/clearpath_outdoornav_msgs/clearpath_mission_scheduler_msgs/srv/GetNextSchedule.srv new file mode 100644 index 0000000..b1d2541 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_scheduler_msgs/srv/GetNextSchedule.srv @@ -0,0 +1,7 @@ +--- +# The ID of the next schedule to start +# Empty if nothing is scheduled +string uuid + +# The time until the schedule starts (rounded to the nearest second) +builtin_interfaces/Duration time_to_start diff --git a/clearpath_outdoornav_msgs/clearpath_mission_scheduler_msgs/srv/GetSchedule.srv b/clearpath_outdoornav_msgs/clearpath_mission_scheduler_msgs/srv/GetSchedule.srv new file mode 100644 index 0000000..da511c2 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_scheduler_msgs/srv/GetSchedule.srv @@ -0,0 +1,3 @@ +string uuid +--- +clearpath_mission_scheduler_msgs/Schedule schedule diff --git a/clearpath_outdoornav_msgs/clearpath_mission_scheduler_msgs/srv/ImportData.srv b/clearpath_outdoornav_msgs/clearpath_mission_scheduler_msgs/srv/ImportData.srv new file mode 100644 index 0000000..9eb03ec --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_scheduler_msgs/srv/ImportData.srv @@ -0,0 +1,7 @@ +# A JSON string representing the database contents. +# This is the same as the data output by the ExportData service, and is intended +# to be used to restore the database to a previous state +string data +--- +# The state of the database after importing the data +clearpath_mission_scheduler_msgs/StorageState state diff --git a/clearpath_outdoornav_msgs/clearpath_mission_scheduler_msgs/srv/UpdateSchedule.srv b/clearpath_outdoornav_msgs/clearpath_mission_scheduler_msgs/srv/UpdateSchedule.srv new file mode 100644 index 0000000..400b510 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_mission_scheduler_msgs/srv/UpdateSchedule.srv @@ -0,0 +1,38 @@ +# The ID of the mission to edit +string uuid + +# The human-readable name for this schedule +# Should be unique, but there's no hard requirement for it to be so +string name + +# The time that this mission starts every day +clearpath_mission_scheduler_msgs/UtcTime start_time + +# Either Schedule.MODE_ONCE, Schedule.MODE_LOOP, OR Schedule.MODE_TRANSIENT to indicate the execution mode +uint8 mode + +# In MODE_LOOP, how many times do we repeat the missions? +uint8 loop_repeats + +# In MODE_LOOP, how long do we wait between executions? +builtin_interfaces/Duration loop_interval + +# The ordered list of Mission UUIDs to execute +string[] mission_ids + +# The minimum battery charge needed before we execute the missions +# Must be in the range 0-1 +float32 min_battery + +# If the missions take longer than this to execute, assume the schedule has failed and alert the user +# Set to zero to disable the timeout +builtin_interfaces/Duration timeout + +# Is this schedule enabled? +# Only enabled schedules will execute +bool enabled + +--- + +# The modified mission, as-saved on disk +clearpath_mission_scheduler_msgs/Schedule result diff --git a/clearpath_outdoornav_msgs/clearpath_navigation_msgs/CHANGELOG.rst b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/CHANGELOG.rst new file mode 100644 index 0000000..baa2122 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/CHANGELOG.rst @@ -0,0 +1,69 @@ +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Changelog for package clearpath_navigation_msgs +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +0.9.9 (2024-03-14) +------------------ +* Message updates for onav-0.12 (`#34 `_) + * Add the size_exceeded field to NetworkMapState + * Mod: Update dock messages for new 0.12 docking APIs + * Mod: Add new autonomy API types to AutonomyStatus.msg + * Mod: Use float64 version of Vector2D for returning path recording lat-lons + * Mod: Add header field to RunNetworkGoToPlanner.action feedback + --------- + Co-authored-by: Chris Iverach-Brereton +* Contributors: stephen-cpr + +0.9.8 (2024-03-11) +------------------ +* Add additional messages for Network of Paths +* Contributors: Chris Iverach-Brereton , Stephen Phillips + +0.9.7 (2024-02-05) +------------------ + +0.9.6 (2023-12-21) +------------------ + +0.9.5 (2023-11-03) +------------------ +* [ONAV-1772] Add 'allow_failure' boolean to Task message type + - When set to True, any missions that execute this task will be allowed to continue if the task fails +* Merge pull request `#18 `_ from stephen-cpr/ONAV-1771/on_start_stop_tasks + [ONAV-1771] Add support for on_start / on_stop Mission Tasks +* Merge remote-tracking branch 'origin/noetic-devel' into ONAV-1771/on_start_stop_tasks +* [ONAV-1771] Add support for on_start / on_stop Mission Tasks + - clearpath_navigation_msgs/Mission.msg has been updated to include 'on_start' and 'on_stop' Task arrays which are executed when the mission begins and ends respectively (on_stop Tasks will execute regardless of mission failure or success) + - The CreateTask service has been updated to include 'assign_on_start' and 'assign_on_stop' fields (similar functionality as the 'assign_to' field) + - The 'assign_to' field of the CreateTask service has been updated to 'assign_to_wp' to distinguish it from assign_on_start/assign_on_stop + - Added the following service endpoints to mission_manager (using the AddRemoveById.srv type): + - ~add_task_to_start & ~add_task_to_stop - Adds a task to the on_start/on_stop array for given mission + - ~remove_task_from_start & ~remove_task_from_stop - Removes a task from the on_start/on_stop array for given mission +* Contributors: Stephen Phillips, Tony Baltovski + +0.9.4 (2023-10-20) +------------------ + +0.9.3 (2023-10-19) +------------------ + +0.9.2 (2023-10-17) +------------------ +* [ONAV-1546] Add autonomy API option to start mission from current position + - Changes to the ExecuteMissionByUuid.action and Mission.action to support 'Resuming' missions and starting missions from specified waypoints. + - The combination of the 'from_start' and 'start_waypoint' field determine the behavior: + - from_start == True will always force the mission to run from the beginning + - from_start == False AND start_waypoint_uuid/start_waypoint == Null will let autonomy decide where to start the mission ('closest' waypoint) + - from_start == False AND start_waypoint_uuid/start_waypoint != Null will tell autonomy to start the mission from the specified waypoint (useful in area-coverage type applications) +* Fix over & underline length in changelogs +* Contributors: Chris Iverach-Brereton, Stephen Phillips, Tony Baltovski + +0.9.1 (2023-08-22) +------------------ +* Add comments to Waypoint message to match documentation +* Added Metrics.msg +* Contributors: Chris Iverach-Brereton, José Mastrangelo + +0.9.0 (2023-07-05) +------------------ +* Initial release diff --git a/clearpath_outdoornav_msgs/clearpath_navigation_msgs/CMakeLists.txt b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/CMakeLists.txt new file mode 100644 index 0000000..699c6b7 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/CMakeLists.txt @@ -0,0 +1,66 @@ +cmake_minimum_required(VERSION 3.8) +project(clearpath_navigation_msgs) + +## Find catkin macros and libraries + +find_package(rosidl_default_generators REQUIRED) +find_package(ament_cmake REQUIRED) +find_package(builtin_interfaces REQUIRED) +find_package(geometry_msgs REQUIRED) +find_package(nav_msgs REQUIRED) +find_package(std_msgs REQUIRED) +set(CMAKE_CXX_STANDARD 17) + +rosidl_generate_interfaces( + ${PROJECT_NAME} + action/ExecuteMissionByUuid.action + action/ExecuteNetworkGoTo.action + action/ExecuteNetworkMissionByUuid.action + action/GetWaypointPath.action + action/Mission.action + action/RecordPath.action + action/RunNetworkGoToPlanner.action + action/RunNetworkMissionPreviewer.action + action/SmoothPath.action + action/UITask.action + msg/AutonomyStatus.msg + msg/DistanceToGoal.msg + msg/Metrics.msg + msg/Mission.msg + msg/MissionStatus.msg + msg/MotionState.msg + msg/NavigationState.msg + msg/NetworkEdge.msg + msg/NetworkGoalState.msg + msg/NetworkMap.msg + msg/NetworkMission.msg + msg/NetworkMissionSegment.msg + msg/NetworkPoint.msg + msg/OdomIntent.msg + msg/PointOfInterest.msg + msg/PointVector.msg + msg/Progress.msg + msg/ScanPoints.msg + msg/Task.msg + msg/TrackError.msg + msg/Vector2D.msg + msg/Vector2D64.msg + msg/Waypoint.msg + msg/WaypointStatus.msg + srv/AutonomyTaskSrv.srv + srv/SetDelayCompensation.srv + srv/SetPathShifter.srv + srv/SetPathSmoother.srv + srv/SetStopDistance.srv + DEPENDENCIES + builtin_interfaces + geometry_msgs + nav_msgs + std_msgs +) + +ament_package() + +install(FILES + DESTINATION include/${PROJECT_NAME} +) diff --git a/clearpath_outdoornav_msgs/clearpath_navigation_msgs/action/ExecuteMissionByUuid.action b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/action/ExecuteMissionByUuid.action new file mode 100644 index 0000000..fc420e8 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/action/ExecuteMissionByUuid.action @@ -0,0 +1,19 @@ +# Action definition for executing a mission by uuid + +# goal + +string uuid # UUID of The mission being executed + +# from_start = True -> Forces the mission to execute from the beginning +bool from_start + +# If from_start = False, mission will be executed from the waypoint with UUID specified. +# If from_start = False and no start_waypoint_uuid is specified then autonomy will pick the closest waypoint +string start_waypoint_uuid +--- +# result +bool success +string message +--- +# feedback +string message diff --git a/clearpath_outdoornav_msgs/clearpath_navigation_msgs/action/ExecuteNetworkGoTo.action b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/action/ExecuteNetworkGoTo.action new file mode 100644 index 0000000..e2c9b41 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/action/ExecuteNetworkGoTo.action @@ -0,0 +1,28 @@ +# Action definition for sending a mission to the Clearpath OutdoorNav software + +# goal +string map_uuid +clearpath_navigation_msgs/Waypoint waypoint + +--- +# result + +uint8 UNKNOWN = 0 +uint8 CANCELLED = 1 +uint8 COLLISION = 2 +uint8 PLANNING = 3 +uint8 START_TASKS = 4 +uint8 END_TASKS = 5 +uint8 MISSION_TASKS = 6 +uint8 code + +bool success +string message +uint16 NONE=0 +uint16 error_code +string error_msg + +--- +# feedback +string message +clearpath_navigation_msgs/NetworkMissionSegment network_plan \ No newline at end of file diff --git a/clearpath_outdoornav_msgs/clearpath_navigation_msgs/action/ExecuteNetworkMissionByUuid.action b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/action/ExecuteNetworkMissionByUuid.action new file mode 100644 index 0000000..9e18aaa --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/action/ExecuteNetworkMissionByUuid.action @@ -0,0 +1,29 @@ +# Action definition for executing a NetworkMission by uuid + +# goal +string mission_uuid +string map_uuid + +--- +# result + +uint8 UNKNOWN = 0 +uint8 CANCELLED = 1 +uint8 COLLISION = 2 +uint8 PLANNING = 3 +uint8 START_TASKS = 4 +uint8 END_TASKS = 5 +uint8 MISSION_TASKS = 6 +uint8 code + +bool success +string message +clearpath_navigation_msgs/NetworkGoalState[] goal_states +uint16 NONE=0 +uint16 error_code +string error_msg +--- +# feedback +string message +clearpath_navigation_msgs/NetworkGoalState[] goal_states +clearpath_navigation_msgs/NetworkMissionSegment network_plan \ No newline at end of file diff --git a/clearpath_outdoornav_msgs/clearpath_navigation_msgs/action/GetWaypointPath.action b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/action/GetWaypointPath.action new file mode 100644 index 0000000..8e288f9 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/action/GetWaypointPath.action @@ -0,0 +1,37 @@ +geometry_msgs/PoseStamped[] waypoints +bool use_start_pose # Use start_pose or current position as the beginning of the path +geometry_msgs/PoseStamped start_pose # The start pose for the path; optional, used if use_start_pose is true +float64 tolerance # If the goal is obstructed, how many meters the planner can relax the constraint in x and y before failing +string planner # Planner to use; defaults to the first one specified on "planners" parameter +uint8 concurrency_slot # use different slots for concurrency + +--- + +# Predefined success codes: +uint8 SUCCESS = 0 +# 1..9 are reserved as plugin specific non-error results + +# Possible error codes: +uint8 FAILURE = 50 # Unspecified failure, only used for old, non-mfb_core based plugins +uint8 CANCELED = 51 # The action has been canceled by a action client +uint8 INVALID_START = 52 # +uint8 INVALID_GOAL = 53 +uint8 NO_PATH_FOUND = 54 +uint8 PAT_EXCEEDED = 55 +uint8 EMPTY_PATH = 56 +uint8 TF_ERROR = 57 +uint8 NOT_INITIALIZED = 58 +uint8 INVALID_PLUGIN = 59 +uint8 INTERNAL_ERROR = 60 +uint8 OUT_OF_MAP = 61 +uint8 MAP_ERROR = 62 +uint8 STOPPED = 63 # The planner execution has been stopped rigorously. + +# 71..99 are reserved as plugin specific errors + +uint32 outcome +string message +nav_msgs/Path path +float64 cost +builtin_interfaces/Duration planning_time +--- diff --git a/clearpath_outdoornav_msgs/clearpath_navigation_msgs/action/Mission.action b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/action/Mission.action new file mode 100644 index 0000000..32bc0d0 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/action/Mission.action @@ -0,0 +1,18 @@ +# Action definition for sending a mission to the Clearpath OutdoorNav software + +# goal +clearpath_navigation_msgs/Mission mission + +# from_start = True -> Forces the mission to execute from the beginning +bool from_start + +# If from_start = False, mission will be executed from the start_waypoint specified. +# If from_start = False and no start_waypoint is specified then autonomy will pick the closest waypoint +clearpath_navigation_msgs/Waypoint start_waypoint +--- +# result +bool success +string message +--- +# feedback +string message diff --git a/clearpath_outdoornav_msgs/clearpath_navigation_msgs/action/RecordPath.action b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/action/RecordPath.action new file mode 100644 index 0000000..0451fb4 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/action/RecordPath.action @@ -0,0 +1,29 @@ +# Action definition for recording a path while the robot is driving + +# goal + +# the maximum allowed deviation in the smoothed path in meters +# this value is used during the path simiplification +float64 max_deviation + +# the minimum allowable distance between points (in meters) published in the feedback +# this filters the feedback topic to reduce the number of points published +# the final result _may_ include points closer than this distance as a result of +# the final simplification +float64 min_distance + +--- +# result + +# the simplified path; the length of this path will be <= the length of the last feedback +# [0] = latitude +# [1] = longitude +clearpath_navigation_msgs/Vector2D64[] points + +--- +# feedback + +# current progress; the raw points recorded so far +# [0] = latitude +# [1] = longitude +clearpath_navigation_msgs/Vector2D64[] points diff --git a/clearpath_outdoornav_msgs/clearpath_navigation_msgs/action/RunNetworkGoToPlanner.action b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/action/RunNetworkGoToPlanner.action new file mode 100644 index 0000000..cc0470b --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/action/RunNetworkGoToPlanner.action @@ -0,0 +1,14 @@ +# Action for starting network GoTo planner + +# goal +string map_uuid +clearpath_navigation_msgs/Waypoint waypoint + +--- +# result +bool success + +--- +# feedback +std_msgs/Header header +geometry_msgs/Point[] points diff --git a/clearpath_outdoornav_msgs/clearpath_navigation_msgs/action/RunNetworkMissionPreviewer.action b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/action/RunNetworkMissionPreviewer.action new file mode 100644 index 0000000..2254b3f --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/action/RunNetworkMissionPreviewer.action @@ -0,0 +1,13 @@ +# Action for starting network mission previewer + +# goal +string map_uuid +string mission_uuid + +--- +# result +bool success + +--- +# feedback +clearpath_navigation_msgs/NetworkMissionSegment[] segments diff --git a/clearpath_outdoornav_msgs/clearpath_navigation_msgs/action/SmoothPath.action b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/action/SmoothPath.action new file mode 100644 index 0000000..e0b028b --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/action/SmoothPath.action @@ -0,0 +1,29 @@ +#goal +uint8 CUBIC_SPLINE_SMOOTHER = 1 +uint8 DUBINS_SMOOTHER = 2 +uint8 GENERIC_SMOOTHER = 3 + +nav_msgs/Path path +uint8 type + +## Parameters for cubic spline smoother +int32 spline_points_per_unit +int32 spline_skip_points +bool spline_use_end_conditions +bool spline_use_middle_conditions + +## Parameters for dubins +float64 dubins_turning_radius +float64 dubins_step_size + +## Parameters for generic +bool generic_enable_refinement +int32 generic_refinement_iterations + +--- +#result definition +nav_msgs/Path smoothed_path +float64 time +--- +#feedback +string sequence diff --git a/clearpath_outdoornav_msgs/clearpath_navigation_msgs/action/UITask.action b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/action/UITask.action new file mode 100644 index 0000000..d334fd9 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/action/UITask.action @@ -0,0 +1,10 @@ +#goal definition +string version +float64[] floats +string[] strings +--- +#result definition +bool success +--- +#feedback +string state diff --git a/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/AutonomyStatus.msg b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/AutonomyStatus.msg new file mode 100644 index 0000000..10e1118 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/AutonomyStatus.msg @@ -0,0 +1,19 @@ +# Message containing status of individual Waypoint in NetworkMission + +std_msgs/Header header +builtin_interfaces/Time last_start +string mission_uuid +string map_uuid +bool paused + +uint8 IDLE = 0 +uint8 MISSION_DIRECT = 1 +uint8 MISSION_BY_ID = 2 +uint8 NETWORK_MISSION = 3 +uint8 NETWORK_GOTO = 4 +uint8 LOCAL_DOCKING = 5 +uint8 LOCAL_UNDOCKING = 6 +uint8 RADIUS_DOCKING = 7 +uint8 NETWORK_DOCKING = 8 + +uint8 state diff --git a/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/DistanceToGoal.msg b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/DistanceToGoal.msg new file mode 100644 index 0000000..056a2ef --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/DistanceToGoal.msg @@ -0,0 +1,4 @@ +# Message includes Euclidean and Path distance, in meters, to the end of the mission. + +float32 euclidean +float32 path diff --git a/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/Metrics.msg b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/Metrics.msg new file mode 100644 index 0000000..addee86 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/Metrics.msg @@ -0,0 +1,10 @@ +# Message containing some metric information related to the autonomy metrics. + +float64 total_distance_travelled # [m] +float64 total_duration # [s] + +uint64 num_missions_sent +uint64 num_missions_completed +uint64 num_replans +uint64 num_recoveries +uint64 num_tasks_executed diff --git a/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/Mission.msg b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/Mission.msg new file mode 100644 index 0000000..9e04f92 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/Mission.msg @@ -0,0 +1,23 @@ +# Message definition for an OutdoorNav mission + +std_msgs/Header header + +# The human-readable name of this mission +string name + +# A UUID string used to uniquely identify this mission +string uuid + +# The ordered list of Waypoints that make up the mission +clearpath_navigation_msgs/Waypoint[] waypoints + +# An array of Tasks to execute on Mission start +clearpath_navigation_msgs/Task[] on_start + +# An array of Tasks to execute on Mission stop +# These Tasks will execute regardless of mission success or failure +clearpath_navigation_msgs/Task[] on_stop + +# Configuration parameters for the mission +# Additional details TBD +string onav_config diff --git a/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/MissionStatus.msg b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/MissionStatus.msg new file mode 100644 index 0000000..1046b7e --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/MissionStatus.msg @@ -0,0 +1,8 @@ +# Message definition for an OutdoorNav mission + +std_msgs/Header header + +string name +string uuid + +clearpath_navigation_msgs/WaypointStatus[] waypoints diff --git a/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/MotionState.msg b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/MotionState.msg new file mode 100644 index 0000000..8faa2f5 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/MotionState.msg @@ -0,0 +1,23 @@ +# Motion state message to indicate the current motion, expected motion and the direction of travel of the robot. + +# State pertaining to current motion of the robot. +uint8 MOTION_NORMAL=10 +uint8 MOTION_STOPPED=11 +uint8 MOTION_REVERSE=12 +uint8 MOTION_SLOWING=13 # Currently unused +uint8 motion + +# State pertaining to the robot's movement along the path. Predictive, ie state +# will be INDICATOR_LEFT_TURN if in or approaching a left turn. +uint8 INDICATOR_NORMAL=20 +uint8 INDICATOR_LEFT_TURN=21 +uint8 INDICATOR_RIGHT_TURN=22 +uint8 INDICATOR_CLOCKWISE=23 +uint8 INDICATOR_COUNTERCLOCKWISE=24 +uint8 INDICATOR_HAZARD=25 # Currently unused +uint8 indicator + +# Direction of travel of the robot relative to its physical forward direction. +uint8 DIRECTION_FORWARD=30 +uint8 DIRECTION_REVERSE=31 +uint8 direction diff --git a/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/NavigationState.msg b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/NavigationState.msg new file mode 100644 index 0000000..509daa5 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/NavigationState.msg @@ -0,0 +1,15 @@ +# Message containing the current navigation state(s). Navigation may be in multiple states. + +uint8 STATE_IDLE = 0 +uint8 STATE_COMPUTE_PATH = 1 +uint8 STATE_EXECUTE_PATH = 2 +uint8 STATE_REPLAN = 3 +uint8 STATE_NAVIGATING_AROUND_OBSTACLE = 4 +uint8 STATE_RECOVERY = 5 +uint8 STATE_LOST = 6 +uint8 STATE_DONE = 7 +uint8 STATE_SAFETY_STOP = 8 +uint8 STATE_PAUSE = 9 +uint8 STATE_DISABLE = 10 + +uint8[] states diff --git a/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/NetworkEdge.msg b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/NetworkEdge.msg new file mode 100644 index 0000000..618aa0e --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/NetworkEdge.msg @@ -0,0 +1,26 @@ +# A directed edge connecting two NetworkPoint instances + +float32 MIN_COST_FACTOR = 0.0 +float32 MAX_COST_FACTOR = 100.0 +float32 DEFAULT_COST_FACTOR = 1.0 + +# The unique ID for this edge +string uuid + +# The points on either end of this edge +clearpath_navigation_msgs/NetworkPoint start_point +clearpath_navigation_msgs/NetworkPoint end_point + +# The deviation radius allowed around this edge in meters +# If zero/negative, the planner will use the parent NetworkGraph object's default_radius property +float32 radius + +# The speed limit for the zone covered by this edge in m/s +# If zero/negative, the planner will use the parent NetworkGraph object's default_speed_limit property +float32 speed_limit + +# An additional cost factor to prioritize certain edges over others in the planner +# Higher costs -> edge is less likely to be included in the planned route +# Expected range is (0.0, 100.0] (i.e. 0 < cost_factor <= 100). +# Values outside the expected range will be treated as the default 1.0 +float32 cost_factor diff --git a/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/NetworkGoalState.msg b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/NetworkGoalState.msg new file mode 100644 index 0000000..129eb57 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/NetworkGoalState.msg @@ -0,0 +1,11 @@ +# Message containing status of individual Waypoint in NetworkMission + +uint8 PENDING = 0 +uint8 ACTIVE = 1 +uint8 SUCCEEDED = 2 +uint8 NAV_FAILURE = 3 +uint8 TASK_WARNING = 4 +uint8 TASK_FAILURE = 5 + +uint8 state +clearpath_navigation_msgs/Waypoint waypoint diff --git a/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/NetworkMap.msg b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/NetworkMap.msg new file mode 100644 index 0000000..c2d3057 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/NetworkMap.msg @@ -0,0 +1,19 @@ +# The graph representing the Network of Paths +# This is implemented as a directed graph + +string name +string uuid + +# The default radius for all edges in the graph +# Edges with a zero/negative radius will use this default instead +float32 default_radius + +# The default speed limit for all edges in the graph +# Edges with a zero/negative speed limit will use this default instead +float32 default_speed_limit + +# The array of vertices in the graph +clearpath_navigation_msgs/NetworkPoint[] points + +# The array of all edges in the graph +clearpath_navigation_msgs/NetworkEdge[] connections diff --git a/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/NetworkMission.msg b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/NetworkMission.msg new file mode 100644 index 0000000..3a242e2 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/NetworkMission.msg @@ -0,0 +1,39 @@ +# A Network of Paths mission +# Broadly the same as a standard Mission, but with additional fields to allow NoP planning + +std_msgs/Header header + +string name +string uuid + +# The ordered list of waypoints to visit during this mission +clearpath_navigation_msgs/Waypoint[] waypoints + +# An array of Tasks to execute on Mission start +clearpath_navigation_msgs/Task[] on_start + +# An array of Tasks to execute on Mission stop +# These Tasks will execute regardless of mission success or failure +clearpath_navigation_msgs/Task[] on_stop + +# Boolean value indicating whether robot should attempt 'return to dock' behavior +# when battery level drops below return_to_dock_battery_level +bool return_to_dock_enabled + +# Dock UUID that the robot should return to for 'return to dock' behavior +string return_to_dock_id + +# Value from 0 to 1 indicating what charge level the robot will return to dock at +float32 return_to_dock_battery_level + +# Value from 0 to 1 indicating what charge level the robot should resume this mission at +# after returning to dock for recharging +float32 resume_mission_battery_level + +# Boolean value indicating whether 'network' level replanning should be performed +# in the event that a network edge is deemed un-traversable (e.g., due to obstacles) +bool network_replan_enabled + +# Configuration parameters for the mission +# Additional details TBD +string onav_config diff --git a/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/NetworkMissionSegment.msg b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/NetworkMissionSegment.msg new file mode 100644 index 0000000..7b7bfe6 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/NetworkMissionSegment.msg @@ -0,0 +1,5 @@ +# Message containing points defining network path + +std_msgs/Header header +clearpath_navigation_msgs/Waypoint goal +geometry_msgs/Point[] points \ No newline at end of file diff --git a/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/NetworkPoint.msg b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/NetworkPoint.msg new file mode 100644 index 0000000..ce343f1 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/NetworkPoint.msg @@ -0,0 +1,8 @@ +# A node on the network of paths + +# The unique ID of this point +string uuid + +# The location of this point on the map +float64 latitude +float64 longitude diff --git a/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/OdomIntent.msg b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/OdomIntent.msg new file mode 100644 index 0000000..256b2f7 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/OdomIntent.msg @@ -0,0 +1,10 @@ +# Message containing current and predicted odom related information + +std_msgs/Header header + +# Current and predicted odom +nav_msgs/Odometry odom +nav_msgs/Odometry predicted_odom + +# Time offset corresponding to prediction +float32 dt diff --git a/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/PointOfInterest.msg b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/PointOfInterest.msg new file mode 100644 index 0000000..7016137 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/PointOfInterest.msg @@ -0,0 +1,32 @@ +# Message containing the data used to represent a Point of interest (POI) + +# If this tag is present, the POI can be used as a navigation goal +string TAG_GOTO = goto + +# If this tag is present, the POI can be set as the target for a PTZ camera action +string TAG_INSPECT = inspect + +# A UUID string to uniquely identify this POI +string uuid + +# The human-readable name of this POI +string name + +# The latitude (in decimal degrees) of this POI +float64 latitude + +# The longitude (in decinal degrees) of this POI +float64 longitude + +# The height above ground level (in meters) +float64 elevation + +# The compass heading (in degrees) of this POI (optional) +bool enable_heading +float64 heading + +# A set of labels assigned to the POI in order to categorize it +string[] tags + +# A JSON formatted string that contains user defined POI fields +string custom_fields_json diff --git a/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/PointVector.msg b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/PointVector.msg new file mode 100644 index 0000000..998022d --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/PointVector.msg @@ -0,0 +1,4 @@ +# Vector of point vectors (for GUI) +std_msgs/Header header + +clearpath_navigation_msgs/Vector2D[] cloud diff --git a/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/Progress.msg b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/Progress.msg new file mode 100644 index 0000000..40d5cc3 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/Progress.msg @@ -0,0 +1,5 @@ +# Message containing the completion percentage of the currently executed path and the current goal. + +float32 path_progress +float32 goal_progress # IN DEVELOPMENT +float32 mission_progress # IN DEVELOPMENT diff --git a/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/ScanPoints.msg b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/ScanPoints.msg new file mode 100644 index 0000000..f581aa9 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/ScanPoints.msg @@ -0,0 +1,6 @@ +# Message definition for the detection points used by the navigation that relate to the detected obstacles. + +std_msgs/Header header + +string[] frames_vector +clearpath_navigation_msgs/PointVector[] cloud_vector diff --git a/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/Task.msg b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/Task.msg new file mode 100644 index 0000000..2ab9ccd --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/Task.msg @@ -0,0 +1,25 @@ +# A single task that can be executed at a Waypoint + +# The human-readable name of this task +string name + +# A UUID string to uniquely identify this Task +string uuid + +# The ROS action that this task executes +string action_server_name + +# The version of this task +string version + +# Numerical/boolean data to be passed to the action_server_name +# The exact meaning of these values is dependent on the underlying service +float64[] floats + +# String data to be passed to the action_server_name +# The exact meaning of these values is dependent on the underlying service +string[] strings + +# Boolean value which determines whether a mission using this task can continue +# if this task fails to execute +bool allow_failure diff --git a/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/TrackError.msg b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/TrackError.msg new file mode 100644 index 0000000..a251b14 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/TrackError.msg @@ -0,0 +1,5 @@ +# The path error message containing the off-path cross track error and the relative heading error to the path direction + +std_msgs/Header header +float32 cross_track_error +float32 heading_error diff --git a/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/Vector2D.msg b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/Vector2D.msg new file mode 100644 index 0000000..9f48884 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/Vector2D.msg @@ -0,0 +1,3 @@ +# 2D Vector of floats (used for GUI) + +float32[2] point diff --git a/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/Vector2D64.msg b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/Vector2D64.msg new file mode 100644 index 0000000..d4f0863 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/Vector2D64.msg @@ -0,0 +1,3 @@ +# 2D Vector of float64s + +float64[2] point diff --git a/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/Waypoint.msg b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/Waypoint.msg new file mode 100644 index 0000000..9a7fb25 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/Waypoint.msg @@ -0,0 +1,27 @@ +# A single Waypoint along a Mission + +# A UUID string to uniquely identify this Waypoint +string uuid + +# The human-readable name of this Waypoint +string name + +# The latitude (in degrees) of this Waypoint +float64 latitude + +# The longitude (in degrees) of this Waypoint +float64 longitude + +# The compass heading (in degrees) of this Waypoint +float64 heading + +# A radius in meters indicating the acceptable radius from the target location +# Posititon tolerance is disabled if this value is negative +float64 position_tolerance + +# A tolerance in degrees indicating the acceptable deviation from the heading +# Heading tolerance is disabled if this value is negative +float64 yaw_tolerance + +# The ordered set of Tasks to execute once the goal position & orientation are reached +clearpath_navigation_msgs/Task[] tasks diff --git a/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/WaypointStatus.msg b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/WaypointStatus.msg new file mode 100644 index 0000000..1c7edea --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/msg/WaypointStatus.msg @@ -0,0 +1,6 @@ +# The x and y coordinates of a specific waypoint in map (utm) coordinates. + +clearpath_navigation_msgs/Waypoint waypoint + +bool visited +bool skipped diff --git a/clearpath_outdoornav_msgs/clearpath_navigation_msgs/package.xml b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/package.xml new file mode 100644 index 0000000..bc5a5f3 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/package.xml @@ -0,0 +1,26 @@ + + + + clearpath_navigation_msgs + 0.9.9 + ROS package containing the message definitions for the Clearpath Robotics OutdoorNav navigation module. + José Mastrangelo + Proprietary + + ament_cmake + rosidl_default_generators + + action_msgs + builtin_interfaces + geometry_msgs + nav_msgs + std_msgs + rosidl_default_runtime + + ament_cmake + + rosidl_interface_packages + + diff --git a/clearpath_outdoornav_msgs/clearpath_navigation_msgs/srv/AutonomyTaskSrv.srv b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/srv/AutonomyTaskSrv.srv new file mode 100644 index 0000000..36f15cb --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/srv/AutonomyTaskSrv.srv @@ -0,0 +1,17 @@ + +string version +float64[] floats +string[] strings +--- +#List of possible things that we will use in status, add more items later +uint8 NOGPS = 0 +uint8 NOHEADING_RTK = 1 +uint8 ROBOT_IS_MOVING = 2 +uint8 ERROR = 3 +uint8 SERVICE_NOT_AVAILABLE = 4 +uint8 PENDING = 5 +uint8 COMPLETED = 6 + + +bool success +int8 status diff --git a/clearpath_outdoornav_msgs/clearpath_navigation_msgs/srv/SetDelayCompensation.srv b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/srv/SetDelayCompensation.srv new file mode 100644 index 0000000..867a2fe --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/srv/SetDelayCompensation.srv @@ -0,0 +1,7 @@ +# Service definition to enable/disable the delay compensation feature. If enabling, the delay to compensate for must be specified in the request. + +bool enable_delay_compensation +uint16 delay +--- +bool success +string message diff --git a/clearpath_outdoornav_msgs/clearpath_navigation_msgs/srv/SetPathShifter.srv b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/srv/SetPathShifter.srv new file mode 100644 index 0000000..1576422 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/srv/SetPathShifter.srv @@ -0,0 +1,8 @@ +# Service definition to enable/disable the path smoothing feature. If enabling, minimum turning radius must be specified in the request. + +bool enable_path_shifter +float32 path_shift_offset +float32 path_shift_time +--- +bool success +string message diff --git a/clearpath_outdoornav_msgs/clearpath_navigation_msgs/srv/SetPathSmoother.srv b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/srv/SetPathSmoother.srv new file mode 100644 index 0000000..3182de9 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/srv/SetPathSmoother.srv @@ -0,0 +1,8 @@ +# Service definition to enable/disable the path smoothing feature. If enabling, minimum turning radius must be specified in the request. + +bool enable_path_smoother +float32 turn_radius +float32 step_size +--- +bool success +string message diff --git a/clearpath_outdoornav_msgs/clearpath_navigation_msgs/srv/SetStopDistance.srv b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/srv/SetStopDistance.srv new file mode 100644 index 0000000..81a0abe --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_navigation_msgs/srv/SetStopDistance.srv @@ -0,0 +1,7 @@ +# Service definition to enable/disable the stop distance. If enabling, the stop distance must be specified in the request. + +bool enable_stop_distance +float32 stop_distance +--- +bool success +string message diff --git a/clearpath_outdoornav_msgs/clearpath_safety_msgs/CHANGELOG.rst b/clearpath_outdoornav_msgs/clearpath_safety_msgs/CHANGELOG.rst new file mode 100644 index 0000000..28f0053 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_safety_msgs/CHANGELOG.rst @@ -0,0 +1,48 @@ +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Changelog for package clearpath_safety_msgs +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +0.9.9 (2024-03-14) +------------------ + +0.9.8 (2024-03-11) +------------------ +* remove old commented message +* finalized assisted teleop state message +* change stop field +* add new endline +* change bypass trigger to uint8 +* added bypass trigger type to state message +* added assisted teleop messages +* Contributors: José Mastrangelo + +0.9.7 (2024-02-05) +------------------ + +0.9.6 (2023-12-21) +------------------ + +0.9.5 (2023-11-03) +------------------ +* Merge remote-tracking branch 'origin/noetic-devel' into ONAV-1771/on_start_stop_tasks +* Contributors: Stephen Phillips + +0.9.4 (2023-10-20) +------------------ + +0.9.3 (2023-10-19) +------------------ +* Added trigger_type field and include in message generation +* Contributors: José Mastrangelo + +0.9.2 (2023-10-17) +------------------ +* Fix over & underline length in changelogs +* Contributors: Chris Iverach-Brereton + +0.9.1 (2023-08-22) +------------------ + +0.9.0 (2023-07-05) +------------------ +* Initial release diff --git a/clearpath_outdoornav_msgs/clearpath_safety_msgs/CMakeLists.txt b/clearpath_outdoornav_msgs/clearpath_safety_msgs/CMakeLists.txt new file mode 100644 index 0000000..4952263 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_safety_msgs/CMakeLists.txt @@ -0,0 +1,59 @@ +cmake_minimum_required(VERSION 3.8) +project(clearpath_safety_msgs) + +## Find catkin macros and libraries + +find_package(rosidl_default_generators REQUIRED) +find_package(ament_cmake REQUIRED) +find_package(std_msgs REQUIRED) +set(CMAKE_CXX_STANDARD 17) + +rosidl_generate_interfaces( + ${PROJECT_NAME} + msg/AssistedTeleopState.msg + msg/ObstacleMap.msg + msg/Safety.msg + msg/WatchdogConfigArray.msg + msg/WatchdogConfigCommon.msg + msg/WatchdogConfigCommunication.msg + msg/WatchdogConfigEmergencyStop.msg + msg/WatchdogConfigHeartbeat.msg + msg/WatchdogConfigInclination.msg + msg/WatchdogConfigNodeletStatus.msg + msg/WatchdogConfigNodeStatus.msg + msg/WatchdogConfigNumPoints.msg + msg/WatchdogConfigOdomCovariance.msg + msg/WatchdogConfigRtkFix.msg + msg/WatchdogConfigTopicData.msg + msg/WatchdogStatus.msg + msg/WatchdogStatusArray.msg + srv/AddCommunicationWatchdog.srv + srv/AddEmergencyStopWatchdog.srv + srv/AddHeartbeatWatchdog.srv + srv/AddInclinationWatchdog.srv + srv/AddNodeletStatusWatchdog.srv + srv/AddNodeStatusWatchdog.srv + srv/AddNumPointsWatchdog.srv + srv/AddOdomCovarianceWatchdog.srv + srv/AddRtkFixWatchdog.srv + srv/AddTopicDataWatchdog.srv + srv/RemoveWatchdog.srv + srv/UpdateCommunicationWatchdog.srv + srv/UpdateEmergencyStopWatchdog.srv + srv/UpdateHeartbeatWatchdog.srv + srv/UpdateInclinationWatchdog.srv + srv/UpdateNodeletStatusWatchdog.srv + srv/UpdateNodeStatusWatchdog.srv + srv/UpdateNumPointsWatchdog.srv + srv/UpdateOdomCovarianceWatchdog.srv + srv/UpdateRtkFixWatchdog.srv + srv/UpdateTopicDataWatchdog.srv + DEPENDENCIES + std_msgs +) + +ament_package() + +install(FILES + DESTINATION include/${PROJECT_NAME} +) diff --git a/clearpath_outdoornav_msgs/clearpath_safety_msgs/msg/AssistedTeleopState.msg b/clearpath_outdoornav_msgs/clearpath_safety_msgs/msg/AssistedTeleopState.msg new file mode 100644 index 0000000..eca2f4c --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_safety_msgs/msg/AssistedTeleopState.msg @@ -0,0 +1,18 @@ +# Assisted teleoperation message indicating the current state of the protection + +uint8 STATE_ACTIVE = 0 +uint8 STATE_DISABLED = 1 +uint8 STATE_COLLISION_IMMINENT = 2 +uint8 STATE_STOPPED = 3 +uint8 STATE_COLLISION = 4 +uint8 STATE_ERROR = 5 +uint8 state + +uint8 ASSIST_ON = 100 +uint8 ASSIST_OFF_SERVICE = 101 +uint8 ASSIST_OFF_JOYSTICK_OVERRIDE = 102 +uint8 ASSIST_OFF_SENSOR_TIMEOUT = 103 +uint8 ASSIST_OFF_REMOTE_CONTROLLER_OVERRIDE = 104 +uint8 assist_off_trigger + +string error_message diff --git a/clearpath_outdoornav_msgs/clearpath_safety_msgs/msg/ObstacleMap.msg b/clearpath_outdoornav_msgs/clearpath_safety_msgs/msg/ObstacleMap.msg new file mode 100644 index 0000000..ffcce9e --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_safety_msgs/msg/ObstacleMap.msg @@ -0,0 +1,3 @@ +# Assisted teleoperation message indicating the threat level of obstacles surrounidng the platform + +float32[] threat_level diff --git a/clearpath_outdoornav_msgs/clearpath_safety_msgs/msg/Safety.msg b/clearpath_outdoornav_msgs/clearpath_safety_msgs/msg/Safety.msg new file mode 100644 index 0000000..e47ba25 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_safety_msgs/msg/Safety.msg @@ -0,0 +1,9 @@ +# Safety monitor message telling us if the safety monitor has been triggered and a message +# indicating what caused the trigger + +uint8 SAFETY_ESTOP = 0 +uint8 SAFETY_SENSOR_TIMEOUT = 1 + +bool safety_monitor_triggered +uint8 trigger_type +string message diff --git a/clearpath_outdoornav_msgs/clearpath_safety_msgs/msg/WatchdogConfigArray.msg b/clearpath_outdoornav_msgs/clearpath_safety_msgs/msg/WatchdogConfigArray.msg new file mode 100644 index 0000000..6566741 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_safety_msgs/msg/WatchdogConfigArray.msg @@ -0,0 +1,14 @@ +# Watchdog config message containing information related to device +# monitoring and what action should be taken to recover from an error + + +WatchdogConfigCommunication[] communication_config +WatchdogConfigEmergencyStop[] emergency_stop_config +WatchdogConfigHeartbeat[] heartbeat_config +WatchdogConfigInclination[] inclination_config +WatchdogConfigNodeStatus[] node_status_config +WatchdogConfigNodeletStatus[] nodelet_status_config +WatchdogConfigNumPoints[] num_points_config +WatchdogConfigOdomCovariance[] odom_covariance_config +WatchdogConfigRtkFix[] rtk_fix_config +WatchdogConfigTopicData[] topic_data_config diff --git a/clearpath_outdoornav_msgs/clearpath_safety_msgs/msg/WatchdogConfigCommon.msg b/clearpath_outdoornav_msgs/clearpath_safety_msgs/msg/WatchdogConfigCommon.msg new file mode 100644 index 0000000..a1fdff0 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_safety_msgs/msg/WatchdogConfigCommon.msg @@ -0,0 +1,6 @@ +string name +string type +bool enabled +string[] components +string on_trigger_action +# string[] on_trigger_options diff --git a/clearpath_outdoornav_msgs/clearpath_safety_msgs/msg/WatchdogConfigCommunication.msg b/clearpath_outdoornav_msgs/clearpath_safety_msgs/msg/WatchdogConfigCommunication.msg new file mode 100644 index 0000000..210836f --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_safety_msgs/msg/WatchdogConfigCommunication.msg @@ -0,0 +1,5 @@ +WatchdogConfigCommon base_config +string protocol +string ip # only used when protocol is 'ip' +string interface # only used when protocol is 'can' or 'serial' +float32 timeout \ No newline at end of file diff --git a/clearpath_outdoornav_msgs/clearpath_safety_msgs/msg/WatchdogConfigEmergencyStop.msg b/clearpath_outdoornav_msgs/clearpath_safety_msgs/msg/WatchdogConfigEmergencyStop.msg new file mode 100644 index 0000000..882a10d --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_safety_msgs/msg/WatchdogConfigEmergencyStop.msg @@ -0,0 +1,3 @@ +WatchdogConfigCommon base_config +string topic +float32 timeout diff --git a/clearpath_outdoornav_msgs/clearpath_safety_msgs/msg/WatchdogConfigHeartbeat.msg b/clearpath_outdoornav_msgs/clearpath_safety_msgs/msg/WatchdogConfigHeartbeat.msg new file mode 100644 index 0000000..882a10d --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_safety_msgs/msg/WatchdogConfigHeartbeat.msg @@ -0,0 +1,3 @@ +WatchdogConfigCommon base_config +string topic +float32 timeout diff --git a/clearpath_outdoornav_msgs/clearpath_safety_msgs/msg/WatchdogConfigInclination.msg b/clearpath_outdoornav_msgs/clearpath_safety_msgs/msg/WatchdogConfigInclination.msg new file mode 100644 index 0000000..9c74a0b --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_safety_msgs/msg/WatchdogConfigInclination.msg @@ -0,0 +1,5 @@ +WatchdogConfigCommon base_config +float32 roll_limit +float32 pitch_limit +float32 delay +string topic diff --git a/clearpath_outdoornav_msgs/clearpath_safety_msgs/msg/WatchdogConfigNodeStatus.msg b/clearpath_outdoornav_msgs/clearpath_safety_msgs/msg/WatchdogConfigNodeStatus.msg new file mode 100644 index 0000000..9c64093 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_safety_msgs/msg/WatchdogConfigNodeStatus.msg @@ -0,0 +1,3 @@ +WatchdogConfigCommon base_config +string node_name +uint8 num_requests diff --git a/clearpath_outdoornav_msgs/clearpath_safety_msgs/msg/WatchdogConfigNodeletStatus.msg b/clearpath_outdoornav_msgs/clearpath_safety_msgs/msg/WatchdogConfigNodeletStatus.msg new file mode 100644 index 0000000..cc5716b --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_safety_msgs/msg/WatchdogConfigNodeletStatus.msg @@ -0,0 +1,4 @@ +WatchdogConfigCommon base_config +string manager +string nodelet +uint8 num_requests diff --git a/clearpath_outdoornav_msgs/clearpath_safety_msgs/msg/WatchdogConfigNumPoints.msg b/clearpath_outdoornav_msgs/clearpath_safety_msgs/msg/WatchdogConfigNumPoints.msg new file mode 100644 index 0000000..1a166bc --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_safety_msgs/msg/WatchdogConfigNumPoints.msg @@ -0,0 +1,3 @@ +WatchdogConfigCommon base_config +string topic +int32 threshold diff --git a/clearpath_outdoornav_msgs/clearpath_safety_msgs/msg/WatchdogConfigOdomCovariance.msg b/clearpath_outdoornav_msgs/clearpath_safety_msgs/msg/WatchdogConfigOdomCovariance.msg new file mode 100644 index 0000000..f6d24d8 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_safety_msgs/msg/WatchdogConfigOdomCovariance.msg @@ -0,0 +1,5 @@ +WatchdogConfigCommon base_config +string topic # Odometry topic +float32 xy_threshold +float32 yaw_threshold +float32 timeout diff --git a/clearpath_outdoornav_msgs/clearpath_safety_msgs/msg/WatchdogConfigRtkFix.msg b/clearpath_outdoornav_msgs/clearpath_safety_msgs/msg/WatchdogConfigRtkFix.msg new file mode 100644 index 0000000..88d331f --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_safety_msgs/msg/WatchdogConfigRtkFix.msg @@ -0,0 +1,6 @@ +WatchdogConfigCommon base_config + +bool rtk_heading_required +bool rtk_position_required +float32 timeout +string gnss_type # Either 'swiftnav' or 'xvn' diff --git a/clearpath_outdoornav_msgs/clearpath_safety_msgs/msg/WatchdogConfigTopicData.msg b/clearpath_outdoornav_msgs/clearpath_safety_msgs/msg/WatchdogConfigTopicData.msg new file mode 100644 index 0000000..882a10d --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_safety_msgs/msg/WatchdogConfigTopicData.msg @@ -0,0 +1,3 @@ +WatchdogConfigCommon base_config +string topic +float32 timeout diff --git a/clearpath_outdoornav_msgs/clearpath_safety_msgs/msg/WatchdogStatus.msg b/clearpath_outdoornav_msgs/clearpath_safety_msgs/msg/WatchdogStatus.msg new file mode 100644 index 0000000..c6e7e7c --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_safety_msgs/msg/WatchdogStatus.msg @@ -0,0 +1,8 @@ +# The message definition for a Watchdog including the type of watchdog, whether it +# has been triggered or not and the recovery taken. + + +string name +bool triggered +string trigger_message +string action diff --git a/clearpath_outdoornav_msgs/clearpath_safety_msgs/msg/WatchdogStatusArray.msg b/clearpath_outdoornav_msgs/clearpath_safety_msgs/msg/WatchdogStatusArray.msg new file mode 100644 index 0000000..c9145ba --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_safety_msgs/msg/WatchdogStatusArray.msg @@ -0,0 +1,5 @@ +# Watchdog status message containing information related to device +# monitoring and what action has been taken to recover from an error + +std_msgs/Header header +WatchdogStatus[] statuses diff --git a/clearpath_outdoornav_msgs/clearpath_safety_msgs/package.xml b/clearpath_outdoornav_msgs/clearpath_safety_msgs/package.xml new file mode 100644 index 0000000..ff9ee1f --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_safety_msgs/package.xml @@ -0,0 +1,21 @@ + + + + clearpath_safety_msgs + 0.9.9 + ROS package containing the message definitions for the Clearpath Robotics OutdoorNav safety module. + José Mastrangelo + Proprietary + + ament_cmake + rosidl_default_generators + + rosidl_default_runtime + + ament_cmake + + rosidl_interface_packages + + diff --git a/clearpath_outdoornav_msgs/clearpath_safety_msgs/srv/AddCommunicationWatchdog.srv b/clearpath_outdoornav_msgs/clearpath_safety_msgs/srv/AddCommunicationWatchdog.srv new file mode 100644 index 0000000..bd9a912 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_safety_msgs/srv/AddCommunicationWatchdog.srv @@ -0,0 +1,5 @@ + +WatchdogConfigCommunication config + +--- +bool success diff --git a/clearpath_outdoornav_msgs/clearpath_safety_msgs/srv/AddEmergencyStopWatchdog.srv b/clearpath_outdoornav_msgs/clearpath_safety_msgs/srv/AddEmergencyStopWatchdog.srv new file mode 100644 index 0000000..459fd2b --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_safety_msgs/srv/AddEmergencyStopWatchdog.srv @@ -0,0 +1,5 @@ + +WatchdogConfigEmergencyStop config + +--- +bool success diff --git a/clearpath_outdoornav_msgs/clearpath_safety_msgs/srv/AddHeartbeatWatchdog.srv b/clearpath_outdoornav_msgs/clearpath_safety_msgs/srv/AddHeartbeatWatchdog.srv new file mode 100644 index 0000000..0dc753e --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_safety_msgs/srv/AddHeartbeatWatchdog.srv @@ -0,0 +1,5 @@ + +WatchdogConfigHeartbeat config + +--- +bool success diff --git a/clearpath_outdoornav_msgs/clearpath_safety_msgs/srv/AddInclinationWatchdog.srv b/clearpath_outdoornav_msgs/clearpath_safety_msgs/srv/AddInclinationWatchdog.srv new file mode 100644 index 0000000..2fd425d --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_safety_msgs/srv/AddInclinationWatchdog.srv @@ -0,0 +1,5 @@ + +WatchdogConfigInclination config + +--- +bool success diff --git a/clearpath_outdoornav_msgs/clearpath_safety_msgs/srv/AddNodeStatusWatchdog.srv b/clearpath_outdoornav_msgs/clearpath_safety_msgs/srv/AddNodeStatusWatchdog.srv new file mode 100644 index 0000000..d167fbf --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_safety_msgs/srv/AddNodeStatusWatchdog.srv @@ -0,0 +1,5 @@ + +WatchdogConfigNodeStatus config + +--- +bool success diff --git a/clearpath_outdoornav_msgs/clearpath_safety_msgs/srv/AddNodeletStatusWatchdog.srv b/clearpath_outdoornav_msgs/clearpath_safety_msgs/srv/AddNodeletStatusWatchdog.srv new file mode 100644 index 0000000..6a9650b --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_safety_msgs/srv/AddNodeletStatusWatchdog.srv @@ -0,0 +1,5 @@ + +WatchdogConfigNodeletStatus config + +--- +bool success diff --git a/clearpath_outdoornav_msgs/clearpath_safety_msgs/srv/AddNumPointsWatchdog.srv b/clearpath_outdoornav_msgs/clearpath_safety_msgs/srv/AddNumPointsWatchdog.srv new file mode 100644 index 0000000..4a4b6e5 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_safety_msgs/srv/AddNumPointsWatchdog.srv @@ -0,0 +1,5 @@ + +WatchdogConfigNumPoints config + +--- +bool success diff --git a/clearpath_outdoornav_msgs/clearpath_safety_msgs/srv/AddOdomCovarianceWatchdog.srv b/clearpath_outdoornav_msgs/clearpath_safety_msgs/srv/AddOdomCovarianceWatchdog.srv new file mode 100644 index 0000000..04100b9 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_safety_msgs/srv/AddOdomCovarianceWatchdog.srv @@ -0,0 +1,5 @@ + +WatchdogConfigOdomCovariance config + +--- +bool success diff --git a/clearpath_outdoornav_msgs/clearpath_safety_msgs/srv/AddRtkFixWatchdog.srv b/clearpath_outdoornav_msgs/clearpath_safety_msgs/srv/AddRtkFixWatchdog.srv new file mode 100644 index 0000000..125fa2d --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_safety_msgs/srv/AddRtkFixWatchdog.srv @@ -0,0 +1,5 @@ + +WatchdogConfigRtkFix config + +--- +bool success diff --git a/clearpath_outdoornav_msgs/clearpath_safety_msgs/srv/AddTopicDataWatchdog.srv b/clearpath_outdoornav_msgs/clearpath_safety_msgs/srv/AddTopicDataWatchdog.srv new file mode 100644 index 0000000..d08f243 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_safety_msgs/srv/AddTopicDataWatchdog.srv @@ -0,0 +1,5 @@ + +WatchdogConfigTopicData config + +--- +bool success diff --git a/clearpath_outdoornav_msgs/clearpath_safety_msgs/srv/RemoveWatchdog.srv b/clearpath_outdoornav_msgs/clearpath_safety_msgs/srv/RemoveWatchdog.srv new file mode 100644 index 0000000..a2e6dcf --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_safety_msgs/srv/RemoveWatchdog.srv @@ -0,0 +1,4 @@ + +string name +--- +bool success diff --git a/clearpath_outdoornav_msgs/clearpath_safety_msgs/srv/UpdateCommunicationWatchdog.srv b/clearpath_outdoornav_msgs/clearpath_safety_msgs/srv/UpdateCommunicationWatchdog.srv new file mode 100644 index 0000000..2635315 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_safety_msgs/srv/UpdateCommunicationWatchdog.srv @@ -0,0 +1,5 @@ + +WatchdogConfigCommunication new_config +string current_name # used as a key to find the watchdog in the list of watchdogs +--- +bool success diff --git a/clearpath_outdoornav_msgs/clearpath_safety_msgs/srv/UpdateEmergencyStopWatchdog.srv b/clearpath_outdoornav_msgs/clearpath_safety_msgs/srv/UpdateEmergencyStopWatchdog.srv new file mode 100644 index 0000000..ca74220 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_safety_msgs/srv/UpdateEmergencyStopWatchdog.srv @@ -0,0 +1,5 @@ + +WatchdogConfigEmergencyStop new_config +string current_name # used as a key to find the watchdog in the list of watchdogs +--- +bool success diff --git a/clearpath_outdoornav_msgs/clearpath_safety_msgs/srv/UpdateHeartbeatWatchdog.srv b/clearpath_outdoornav_msgs/clearpath_safety_msgs/srv/UpdateHeartbeatWatchdog.srv new file mode 100644 index 0000000..9aee227 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_safety_msgs/srv/UpdateHeartbeatWatchdog.srv @@ -0,0 +1,5 @@ + +WatchdogConfigHeartbeat new_config +string current_name # used as a key to find the watchdog in the list of watchdogs +--- +bool success diff --git a/clearpath_outdoornav_msgs/clearpath_safety_msgs/srv/UpdateInclinationWatchdog.srv b/clearpath_outdoornav_msgs/clearpath_safety_msgs/srv/UpdateInclinationWatchdog.srv new file mode 100644 index 0000000..550fb49 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_safety_msgs/srv/UpdateInclinationWatchdog.srv @@ -0,0 +1,5 @@ + +WatchdogConfigInclination new_config +string current_name # used as a key to find the watchdog in the list of watchdogs +--- +bool success diff --git a/clearpath_outdoornav_msgs/clearpath_safety_msgs/srv/UpdateNodeStatusWatchdog.srv b/clearpath_outdoornav_msgs/clearpath_safety_msgs/srv/UpdateNodeStatusWatchdog.srv new file mode 100644 index 0000000..9f373c5 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_safety_msgs/srv/UpdateNodeStatusWatchdog.srv @@ -0,0 +1,5 @@ + +WatchdogConfigNodeStatus new_config +string current_name # used as a key to find the watchdog in the list of watchdogs +--- +bool success diff --git a/clearpath_outdoornav_msgs/clearpath_safety_msgs/srv/UpdateNodeletStatusWatchdog.srv b/clearpath_outdoornav_msgs/clearpath_safety_msgs/srv/UpdateNodeletStatusWatchdog.srv new file mode 100644 index 0000000..070750e --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_safety_msgs/srv/UpdateNodeletStatusWatchdog.srv @@ -0,0 +1,5 @@ + +WatchdogConfigNodeletStatus new_config +string current_name # used as a key to find the watchdog in the list of watchdogs +--- +bool success diff --git a/clearpath_outdoornav_msgs/clearpath_safety_msgs/srv/UpdateNumPointsWatchdog.srv b/clearpath_outdoornav_msgs/clearpath_safety_msgs/srv/UpdateNumPointsWatchdog.srv new file mode 100644 index 0000000..bbecc50 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_safety_msgs/srv/UpdateNumPointsWatchdog.srv @@ -0,0 +1,5 @@ + +WatchdogConfigNumPoints new_config +string current_name # used as a key to find the watchdog in the list of watchdogs +--- +bool success diff --git a/clearpath_outdoornav_msgs/clearpath_safety_msgs/srv/UpdateOdomCovarianceWatchdog.srv b/clearpath_outdoornav_msgs/clearpath_safety_msgs/srv/UpdateOdomCovarianceWatchdog.srv new file mode 100644 index 0000000..9a50948 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_safety_msgs/srv/UpdateOdomCovarianceWatchdog.srv @@ -0,0 +1,5 @@ + +WatchdogConfigOdomCovariance new_config +string current_name # used as a key to find the watchdog in the list of watchdogs +--- +bool success diff --git a/clearpath_outdoornav_msgs/clearpath_safety_msgs/srv/UpdateRtkFixWatchdog.srv b/clearpath_outdoornav_msgs/clearpath_safety_msgs/srv/UpdateRtkFixWatchdog.srv new file mode 100644 index 0000000..5950b66 --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_safety_msgs/srv/UpdateRtkFixWatchdog.srv @@ -0,0 +1,5 @@ + +WatchdogConfigRtkFix new_config +string current_name # used as a key to find the watchdog in the list of watchdogs +--- +bool success diff --git a/clearpath_outdoornav_msgs/clearpath_safety_msgs/srv/UpdateTopicDataWatchdog.srv b/clearpath_outdoornav_msgs/clearpath_safety_msgs/srv/UpdateTopicDataWatchdog.srv new file mode 100644 index 0000000..58f206b --- /dev/null +++ b/clearpath_outdoornav_msgs/clearpath_safety_msgs/srv/UpdateTopicDataWatchdog.srv @@ -0,0 +1,5 @@ + +WatchdogConfigTopicData new_config +string current_name # used as a key to find the watchdog in the list of watchdogs +--- +bool success diff --git a/clearpath_platform_msgs/CMakeLists.txt b/clearpath_platform_msgs/CMakeLists.txt index 2a99201..0a72a8d 100644 --- a/clearpath_platform_msgs/CMakeLists.txt +++ b/clearpath_platform_msgs/CMakeLists.txt @@ -21,8 +21,11 @@ rosidl_generate_interfaces(${PROJECT_NAME} msg/Fans.msg msg/Feedback.msg msg/Lights.msg + msg/PlatformID.msg msg/Power.msg msg/RGB.msg + msg/RYG.msg + msg/StackLightState.msg msg/Status.msg msg/StopStatus.msg srv/ConfigureMcu.srv diff --git a/clearpath_platform_msgs/msg/PlatformID.msg b/clearpath_platform_msgs/msg/PlatformID.msg new file mode 100644 index 0000000..ac11b46 --- /dev/null +++ b/clearpath_platform_msgs/msg/PlatformID.msg @@ -0,0 +1,6 @@ +# Platform ID message containing the model, serial #, hardware and firmware versions + +string model +string serial_id +string hardware_revision +string firmware_revision diff --git a/clearpath_platform_msgs/msg/RYG.msg b/clearpath_platform_msgs/msg/RYG.msg new file mode 100644 index 0000000..4496444 --- /dev/null +++ b/clearpath_platform_msgs/msg/RYG.msg @@ -0,0 +1,6 @@ +# Represents the intensity of a single RYG LED, either reported or commanded. +# Each channel is limited to a range of [0, 255] + +uint8 red +uint8 yellow +uint8 green diff --git a/clearpath_platform_msgs/msg/StackLightState.msg b/clearpath_platform_msgs/msg/StackLightState.msg new file mode 100644 index 0000000..c200ee1 --- /dev/null +++ b/clearpath_platform_msgs/msg/StackLightState.msg @@ -0,0 +1,11 @@ +# Status messages can be encoded with the LEDs on the stack light +# The light has 2 componenents: a 3-channel RYG LED and an orange strobe + +# What is the RYG color of the stack light? +RYG color + +# Is the strobe light currently on? +bool strobe_on + +# Human-readable explanation of why the light is in the state it's in +string message diff --git a/clearpath_platform_msgs/package.xml b/clearpath_platform_msgs/package.xml index f6ae13f..1b4178e 100644 --- a/clearpath_platform_msgs/package.xml +++ b/clearpath_platform_msgs/package.xml @@ -25,4 +25,4 @@ ament_cmake - \ No newline at end of file +