diff --git a/docs_outdoornav_user_manual/installation/overview.mdx b/docs_outdoornav_user_manual/installation/overview.mdx index cdcf04cc..f836cbdb 100644 --- a/docs_outdoornav_user_manual/installation/overview.mdx +++ b/docs_outdoornav_user_manual/installation/overview.mdx @@ -8,7 +8,7 @@ toc_max_heading_level: 4 As of version 2.0.0, the OutdoorNav software uses ROS 2 Jazzy as its base. It is incompatible with any other previous version of ROS. If you have a base platform running an older version -of ROS 2, consult [the following page](../../docs/ros/installation/upgrading) to upgrade your +of ROS 2, consult [the following page](../../../docs/ros/installation/upgrading) to upgrade your base to ROS 2 Jazzy. If you have a base platform running ROS 1, please reach out to \ in order to receive instructions to install the correct version. diff --git a/outdoornav_user_manual_versioned_docs/version-2.0.0/installation/overview.mdx b/outdoornav_user_manual_versioned_docs/version-2.0.0/installation/overview.mdx index cdcf04cc..f836cbdb 100644 --- a/outdoornav_user_manual_versioned_docs/version-2.0.0/installation/overview.mdx +++ b/outdoornav_user_manual_versioned_docs/version-2.0.0/installation/overview.mdx @@ -8,7 +8,7 @@ toc_max_heading_level: 4 As of version 2.0.0, the OutdoorNav software uses ROS 2 Jazzy as its base. It is incompatible with any other previous version of ROS. If you have a base platform running an older version -of ROS 2, consult [the following page](../../docs/ros/installation/upgrading) to upgrade your +of ROS 2, consult [the following page](../../../docs/ros/installation/upgrading) to upgrade your base to ROS 2 Jazzy. If you have a base platform running ROS 1, please reach out to \ in order to receive instructions to install the correct version. diff --git a/outdoornav_user_manual_versioned_docs/version-2.1.0/_category_.json b/outdoornav_user_manual_versioned_docs/version-2.1.0/_category_.json new file mode 100644 index 00000000..f5966a95 --- /dev/null +++ b/outdoornav_user_manual_versioned_docs/version-2.1.0/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "OutdoorNav User Manual", + "position": 1 +} diff --git a/outdoornav_user_manual_versioned_docs/version-2.1.0/api/_category_.json b/outdoornav_user_manual_versioned_docs/version-2.1.0/api/_category_.json new file mode 100644 index 00000000..d9a89b34 --- /dev/null +++ b/outdoornav_user_manual_versioned_docs/version-2.1.0/api/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "API", + "position": 7 +} diff --git a/outdoornav_user_manual_versioned_docs/version-2.1.0/api/api_endpoints/_category_.json b/outdoornav_user_manual_versioned_docs/version-2.1.0/api/api_endpoints/_category_.json new file mode 100644 index 00000000..ff29bf08 --- /dev/null +++ b/outdoornav_user_manual_versioned_docs/version-2.1.0/api/api_endpoints/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Endpoints", + "position": 2 +} diff --git a/outdoornav_user_manual_versioned_docs/version-2.1.0/api/api_endpoints/autonomy_api.mdx b/outdoornav_user_manual_versioned_docs/version-2.1.0/api/api_endpoints/autonomy_api.mdx new file mode 100644 index 00000000..d1bd2a74 --- /dev/null +++ b/outdoornav_user_manual_versioned_docs/version-2.1.0/api/api_endpoints/autonomy_api.mdx @@ -0,0 +1,118 @@ +--- +title: Autonomy API Endpoints +sidebar_label: Autonomy API +sidebar_position: 2 +toc_min_heading_level: 2 +toc_max_heading_level: 4 +--- + +:::note + +All nodes, topics, and services are namespace prefixed with the robot serial number. + +If your serial number is `cpr-a300-00001`, then your namespace +will be `a300_00001`. This can be overwritten in the [robot.yaml](../../../../docs/ros/config/yaml/overview) file. + +::: + +  + +## Subscribers {#autonomy-subscribers} + +  + +| Topic | Message type | Description | QoS | +| :---------------------- | :----------------------------------------------------------------------------------------------------------- | :-------------- | :-------------------------------------------- | +| platform/cmd_vel_out | [geometry_msgs/msg/TwistStamped](https://github.com/ros2/common_interfaces/blob/jazzy/geometry_msgs/msg/TwistStamped.msg) | Continuous platform level velocity output | [System Default](/docs/ros/api/overview#system-default) | +| platform/odom | [nav_msgs/msg/Odometry](https://github.com/ros2/common_interfaces/blob/jazzy/nav_msgs/msg/Odometry.msg) | Platform wheel odometry | [System Default](/docs/ros/api/overview#system-default) | +| joy_teleop/cmd_vel | [geometry_msgs/msg/TwistStamped](https://github.com/ros2/common_interfaces/blob/jazzy/geometry_msgs/msg/TwistStamped.msg) | Velocity commands from joystick inputs | [System Default](/docs/ros/api/overview#system-default) | + +  + +## Publishers {#autonomy-publishers} + +  + +| Topic | Message type | Description | QoS | +| :---------------------- | :----------------------------------------------------------------------------------------------------------- | :-------------- | :-------------------------------------------- | +| autonomy/config | [clearpath_navigation_msgs/msg/AutonomyConfig](pathname:///api/html/clearpath_navigation_msgs/msg/AutonomyConfig.html) | Autonomy configuration | [System Default](/docs/ros/api/overview#system-default) | +| autonomy/initial_path | [nav_msgs/msg/Path](https://github.com/ros2/common_interfaces/blob/jazzy/nav_msgs/msg/Path.msg) | Initial Path computed by autonomy | [System Default](/docs/ros/api/overview#system-default) | +| autonomy/status | [clearpath_navigation_msgs/msg/AutonomyStatus](pathname:///api/html/clearpath_navigation_msgs/msg/AutonomyStatus.html) | Status of the autonomy | [System Default](/docs/ros/api/overview#system-default) | +| control_selection/current_mode | [clearpath_control_msgs/msg/ControlMode](pathname:///api/html/clearpath_control_msgs/msg/ControlMode.html) | Current control mode (NEUTRAL, MANUAL, AUTONOMY). | [System Default](/docs/ros/api/overview#system-default) | +| control_selection/control_state | [clearpath_control_msgs/msg/ControlSelectionState](pathname:///api/html/clearpath_control_msgs/msg/ControlSelectionState.html) | Complete state of control selection node. | [System Default](/docs/ros/api/overview#system-default) | +| docking/docking_server/path | [nav_msgs/msg/Path](https://github.com/ros2/common_interfaces/blob/jazzy/nav_msgs/msg/Path.msg) | Docking path | +| docking/undocking_server/path | [nav_msgs/msg/Path](https://github.com/ros2/common_interfaces/blob/jazzy/nav_msgs/msg/Path.msg) | Undocking path | +| goto/preview | [clearpath_navigation_msgs/msg/GoToPreview](pathname:///api/html/clearpath_navigation_msgs/msg/GoToPreview.html) | Preview points for a GoTo execution | [System Default](/docs/ros/api/overview#system-default) | +| localization/datum | [sensor_msgs/msg/NavSatFix](https://github.com/ros2/common_interfaces/blob/jazzy/sensor_msgs/msg/NavSatFix.msg) | Map origin (0, 0), specified as the datum | [System Default](/docs/ros/api/overview#system-default) | +| localization/fix | [sensor_msgs/msg/NavSatFix](https://github.com/ros2/common_interfaces/blob/jazzy/sensor_msgs/msg/NavSatFix.msg) | Platform lat/lon coordinates | [System Default](/docs/ros/api/overview#system-default) | +| localization/odom | [nav_msgs/msg/Odometry](https://github.com/ros2/common_interfaces/blob/jazzy/nav_msgs/msg/Odometry.msg) | Platform map coordinates | [System Default](/docs/ros/api/overview#system-default) | +| mission/preview | [clearpath_navigation_msgs/msg/MissionPreview](pathname:///api/html/clearpath_navigation_msgs/msg/MissionPreview.html) | Preview points for a mission execution | [System Default](/docs/ros/api/overview#system-default) | +| speed_limit | [clearpath_navigation_msgs/msg/GoToPreview](https://github.com/ros-navigation/navigation2/blob/main/nav2_msgs/msg/SpeedLimit.msg) | Current navigation speed limit | [System Default](/docs/ros/api/overview#system-default) | +| ui/heartbeat | [geometry_msgs/msg/TwistStamped](https://github.com/ros2/common_interfaces/blob/jazzy/geometry_msgs/msg/TwistStamped.msg) | Heartbeat of the UI | [System Default](/docs/ros/api/overview#system-default) | +| ui_teleop/cmd_vel | [geometry_msgs/msg/TwistStamped](https://github.com/ros2/common_interfaces/blob/jazzy/geometry_msgs/msg/TwistStamped.msg) | Velocity commands fron the UI joystick | [System Default](/docs/ros/api/overview#system-default) | + +  + +## Services {#autonomy-services} + +  + +| Service | Service type | Description | +| :---------------------- | :----------------------------------------------------------------------------------------------------------- | :-------------- | +| autonomy/stop | [std_srvs/srv/Trigger](https://docs.ros2.org/foxy/api/std_srvs/srv/Trigger.html) | Stop all autonomy executions | +| control_selection/set_mode | [clearpath_control_msgs/srv/SetControlMode](pathname:///api/html/clearpath_control_msgs/srv/SetControlMode.html) | Set the control mode | +| control_selection/pause | [std_srvs/srv/SetBool](https://docs.ros2.org/foxy/api/std_srvs/srv/SetBool.html) | Pause execution | +| control_selection/resume | [std_srvs/srv/SetBool](https://docs.ros2.org/foxy/api/std_srvs/srv/SetBool.html) | Resume execution | +| docking/dock_manager/add_dock | [clearpath_dock_msgs/srv/AddDock](pathname:///api/html/clearpath_dock_msgs/srv/AddDock.html) | Add a dock | +| docking/dock_manager/clear_data | [std_srvs/srv/Trigger](https://docs.ros2.org/foxy/api/std_srvs/srv/Trigger.html) | Clear all dock data | +| docking/dock_manager/delete_dock | [clearpath_dock_msgs/srv/RemoveDock](pathname:///api/html/clearpath_dock_msgs/srv/RemoveDock.html) | Delete a dock | +| docking/dock_manager/export | [clearpath_dock_msgs/srv/ExportData](pathname:///api/html/clearpath_dock_msgs/srv/ExportData.html) | Export dock data | +| docking/dock_manager/get_database | [clearpath_dock_msgs/srv/GetDockDatabase](pathname:///api/html/clearpath_dock_msgs/srv/GetDockDatabase.html) | Returns the entire dock database | +| docking/dock_manager/get_dock | [clearpath_dock_msgs/srv/GetDock](pathname:///api/html/clearpath_dock_msgs/srv/GetDock.html) | Returns a docks info | +| docking/dock_manager/import | [clearpath_dock_msgs/srv/ImportData](pathname:///api/html/clearpath_dock_msgs/srv/ImportData.html) | Import a dock | +| docking/dock_manager/update_dock | [clearpath_dock_msgs/srv/UpdateDock](pathname:///api/html/clearpath_dock_msgs/srv/UpdateDock.html) | Update a docks information | +| docking/dock_localizer/add_dock_current_pose| [clearpath_dock_msgs/srv/AddDockCurrentPose](pathname:///api/html/clearpath_dock_msgs/srv/AddDockCurrentPose.html) | Add a dock with the current pose | +| docking/dock_localizer/get_dock_poses| [clearpath_dock_msgs/srv/GetDockPoses](pathname:///api/html/clearpath_dock_msgs/srv/GetDockPoses.html) | Return the dock and predock poses of a specific dock | +| docking/dock_localizer/survey_dock| [clearpath_dock_msgs/srv/SurveyDock](pathname:///api/html/clearpath_dock_msgs/srv/SurveyDock.html) | Survey the docks position | +| localization/lat_lon_to_xy | [clearpath_localization_msgs/srv/ConvertLatLonToCartesian](pathname:///api/html/clearpath_localization_msgs/srv/ConvertLatLonToCartesian.html) | Convert lat/lon condinate to map XY coordinate | +| localization/lat_lon_to_xy_array | [clearpath_localization_msgs/srv/ConvertLatLonToCartesianArray](pathname:///api/html/clearpath_localization_msgs/srv/ConvertLatLonToCartesianArray.html) | Convert a set of lat/lon coordinates to map XY coordinates | +| localization/set_datum | [clearpath_localization_msgs/srv/SetDatum](pathname:///api/html/clearpath_localization_msgs/srv/SetDatum.html) | Set the datum | +| localization/xy_to_lat_lon | [clearpath_localization_msgs/srv/ConvertCartesianToLatLon](pathname:///api/html/clearpath_localization_msgs/srv/ConvertCartesianToLatLon.html) | Convert map XY coordinate to lat/lon coordinate | +| localization/xy_to_lat_lon_array | [clearpath_localization_msgs/srv/ConvertCartesianToLatLonArray](pathname:///api/html/clearpath_localization_msgs/srv/ConvertCartesianToLatLonArray.html) | Convert a set of map XY coordinates to lat/lon coordinates | +| log_manager/delete_log | [clearpath_logger_msgs/srv/DeleteLog](pathname:///api/html/clearpath_logger_msgs/srv/DeleteLog.html) | Delete a secific log | +| log_manager/start_recording | [std_srvs/srv/Trigger](https://docs.ros2.org/foxy/api/std_srvs/srv/Trigger.html) | Start logging data | +| log_manager/stop_recording | [std_srvs/srv/Trigger](https://docs.ros2.org/foxy/api/std_srvs/srv/Trigger.html) | Stop logging data | +| safety/watchdogs/add_communication_watchdog | [clearpath_safety_msgs/srv/AddCommunicationWatchdog](pathname:///api/html/clearpath_safety_msgs/srv/AddCommunicationWatchdog.html) | Create a new Communication watchdog | +| safety/watchdogs/add_heartbeat_watchdog | [clearpath_safety_msgs/srv/AddHeartbeatWatchdog](pathname:///api/html/clearpath_safety_msgs/srv/AddHeartbeatWatchdog.html) | Create a new Heartbeat watchdog | +| safety/watchdogs/add_inclination_watchdog | [clearpath_safety_msgs/srv/AddInclinationWatchdog](pathname:///api/html/clearpath_safety_msgs/srv/AddInclinationWatchdog.html) | Create a new Inclination watchdog | +| safety/watchdogs/add_num_points_watchdog | [clearpath_safety_msgs/srv/AddNumPointsWatchdog](pathname:///api/html/clearpath_safety_msgs/srv/AddNumPointsWatchdog.html) | Create a new NumPoints watchdog | +| safety/watchdogs/add_odom_covariance_watchdog | [clearpath_safety_msgs/srv/AddOdomCovarianceWatchdog](pathname:///api/html/clearpath_safety_msgs/srv/AddOdomCovarianceWatchdog.html) | Create a new OdomCovariance watchdog | +| safety/watchdogs/add_rtk_fix_watchdog | [clearpath_safety_msgs/srv/AddRtkFixWatchdog](pathname:///api/html/clearpath_safety_msgs/srv/AddRtkFixWatchdog.html) | Create a new RTKFix watchdog | +| safety/watchdogs/add_topic_data_watchdog | [clearpath_safety_msgs/srv/AddTopicDataWatchdog](pathname:///api/html/clearpath_safety_msgs/srv/AddTopicDataWatchdog.html) | Create a new TopicData watchdog | +| safety/watchdogs/add_trigger_watchdog | [clearpath_safety_msgs/srv/AddTriggerWatchdog](pathname:///api/html/clearpath_safety_msgs/srv/AddTriggerWatchdog.html) | Create a new Trigger watchdog | +| safety/watchdogs/enable_all | [std_srvs/srv/SetBool](https://docs.ros2.org/foxy/api/std_srvs/srv/SetBool.html) | Enable/disable all watchdogs | +| safety/watchdogs/remove_watchdog | [clearpath_safety_msgs/srv/RemoveWatchdog](pathname:///api/html/clearpath_safety_msgs/srv/RemoveWatchdog.html) | Remove/delete a watchdog | +| safety/watchdogs/update_communication_watchdog | [clearpath_safety_msgs/srv/UpdateCommunicationWatchdog](pathname:///api/html/clearpath_safety_msgs/srv/UpdateCommunicationWatchdog.html) | Create a new Communication watchdog | +| safety/watchdogs/update_heartbeat_watchdog | [clearpath_safety_msgs/srv/UpdateHeartbeatWatchdog](pathname:///api/html/clearpath_safety_msgs/srv/UpdateHeartbeatWatchdog.html) | Create a new Heartbeat watchdog | +| safety/watchdogs/update_inclination_watchdog | [clearpath_safety_msgs/srv/UpdateInclinationWatchdog](pathname:///api/html/clearpath_safety_msgs/srv/UpdateInclinationWatchdog.html) | Create a new Inclination watchdog | +| safety/watchdogs/update_num_points_watchdog | [clearpath_safety_msgs/srv/UpdateNumPointsWatchdog](pathname:///api/html/clearpath_safety_msgs/srv/UpdateNumPointsWatchdog.html) | Create a new NumPoints watchdog | +| safety/watchdogs/update_odom_covariance_watchdog | [clearpath_safety_msgs/srv/UpdateOdomCovarianceWatchdog](pathname:///api/html/clearpath_safety_msgs/srv/UpdateOdomCovarianceWatchdog.html) | Create a new OdomCovariance watchdog | +| safety/watchdogs/update_rtk_fix_watchdog | [clearpath_safety_msgs/srv/UpdateRtkFixWatchdog](pathname:///api/html/clearpath_safety_msgs/srv/UpdateRtkFixWatchdog.html) | Create a new RTKFix watchdog | +| safety/watchdogs/update_topic_data_watchdog | [clearpath_safety_msgs/srv/UpdateTopicDataWatchdog](pathname:///api/html/clearpath_safety_msgs/srv/UpdateTopicDataWatchdog.html) | Create a new TopicData watchdog | +| safety/watchdogs/update_trigger_watchdog | [clearpath_safety_msgs/srv/UpdateTriggerWatchdog](pathname:///api/html/clearpath_safety_msgs/srv/UpdateTriggerWatchdog.html) | Create a new Trigger watchdog | + +  + +## Actions {#autonomy-actions} + +  + +| Action Name | Action type | Description | +| :---------------------- | :----------------------------------------------------------------------------------------------------------- | :-------------- | +| autonomy/network_mission | [clearpath_navigation_msgs/action/ExecuteNetworkMissionByUuid](pathname:///api/html/clearpath_navigation_msgs/action/ExecuteNetworkMissionByUuid.html) | Execute an autonomous mission | +| autonomy/network_mission_from_goal | [clearpath_navigation_msgs/action/ExecuteNetworkMissionFromGoal](pathname:///api/html/clearpath_navigation_msgs/action/ExecuteNetworkMissionFromGoal.html) | Execute an autonomous mission, starting from a specific goal | +| autonomy/network_goto | [clearpath_navigation_msgs/action/ExecuteNetworkGoTo](pathname:///api/html/clearpath_navigation_msgs/action/ExecuteNetworkGoTo.html) | Send platform to location | +| autonomy/network_goto_poi | [clearpath_navigation_msgs/action/ExecuteNetworkGoToPOI](pathname:///api/html/clearpath_navigation_msgs/action/ExecuteNetworkGoToPOI.html) | Send platform to a point of interest | +| autonomy/local_dock | [clearpath_dock_msgs/action/Dock](pathname:///api/html/clearpath_dock_msgs/action/Dock.html) | Dock the platform (charge target must be visible by platform 2D lidar sensor) | +| autonomy/local_undock | [clearpath_dock_msgs/action/Undock](pathname:///api/html/clearpath_dock_msgs/action/Undock.html) | Undock the platform (charge target must be visible by the 2D lidar sensor) | +| autonomy/network_dock | [clearpath_dock_msgs/action/NetworkDock](pathname:///api/html/clearpath_dock_msgs/action/NetworkDock.html) | Send robot to charger (charger must be in the driveable space of the map) | diff --git a/outdoornav_user_manual_versioned_docs/version-2.1.0/api/api_endpoints/mission_manager_api.mdx b/outdoornav_user_manual_versioned_docs/version-2.1.0/api/api_endpoints/mission_manager_api.mdx new file mode 100644 index 00000000..3aacfcc1 --- /dev/null +++ b/outdoornav_user_manual_versioned_docs/version-2.1.0/api/api_endpoints/mission_manager_api.mdx @@ -0,0 +1,102 @@ +--- +title: Mission Manager API Endpoints +sidebar_label: Mission Manager API +sidebar_position: 3 +toc_min_heading_level: 2 +toc_max_heading_level: 4 +--- + +:::note + +All nodes, topics, and services are namespace prefixed with the robot serial number. + +If your serial number is `cpr-a300-00001`, then your namespace +will be `a300_00001`. This can be overwritten in the [robot.yaml](../../../../docs/ros/config/yaml/overview) file. + +::: + +  + +## Publishers {#mission-manager-publishers} + +  + +| Topic | Message type | Description | QoS | +| :---------------------- | :----------------------------------------------------------------------------------------------------------- | :-------------- | :-------------------------------------------- | +| mission_manager/state | [clearpath_mission_manager_msgs/msg/StorageState](pathname:///api/html/clearpath_mission_manager_msgs/msg/StorageState.html) | Database containing all map/mission data | Latched | +| mission_manager/network_maps_validity | [clearpath_mission_manager_msgs/msg/NetworkMapValidityState](pathname:///api/html/clearpath_mission_manager_msgs/msg/NetworkMapValidityState.html) | Validity state of all maps | Latched | + +  + +## Services {#mission-manager-services} + +  + +| Service | Service type | Description | +| :---------------------- | :----------------------------------------------------------------------------------------------------------- | :-------------- | +| mission_manager/add_network_edge | [clearpath_mission_manager_msgs/srv/AddNetworkEdge](pathname:///api/html/clearpath_mission_manager_msgs/srv/AddNetworkEdge.html) | Add edge to network map | +| mission_manager/add_network_path | [clearpath_mission_manager_msgs/srv/AddNetworkPath](pathname:///api/html/clearpath_mission_manager_msgs/srv/AddNetworkPath.html) | Add a path to map | +| mission_manager/add_network_point | [clearpath_mission_manager_msgs/srv/AddNetworkPoint](pathname:///api/html/clearpath_mission_manager_msgs/srv/AddNetworkPoint.html) | Add a map point | +| mission_manager/add_tag | [clearpath_mission_manager_msgs/srv/AddRemoveTag](pathname:///api/html/clearpath_mission_manager_msgs/srv/AddRemoveTag.html) | Add tag to map point | +| mission_manager/add_task_to_start | [clearpath_mission_manager_msgs/srv/AddRemoveById](pathname:///api/html/clearpath_mission_manager_msgs/srv/AddRemoveById.html) | Add task to list of start tasks | +| mission_manager/add_task_to_stop | [clearpath_mission_manager_msgs/srv/AddRemoveById](pathname:///api/html/clearpath_mission_manager_msgs/srv/AddRemoveById.html) | Add task to list of stop tasks | +| mission_manager/add_task_to_waypoint | [clearpath_mission_manager_msgs/srv/AddRemoveById](pathname:///api/html/clearpath_mission_manager_msgs/srv/AddRemoveById.html) | Add task to a Goal point | +| mission_manager/add_waypoint_to_mission | [clearpath_mission_manager_msgs/srv/AddRemoveById](pathname:///api/html/clearpath_mission_manager_msgs/srv/AddRemoveById.html) | Add Goal to mission | +| mission_manager/clone_mission | [clearpath_mission_manager_msgs/srv/CloneMission](pathname:///api/html/clearpath_mission_manager_msgs/srv/CloneMission.html) | Clone mission | +| mission_manager/clone_network_map | [clearpath_mission_manager_msgs/srv/CloneNetworkMap](pathname:///api/html/clearpath_mission_manager_msgs/srv/CloneNetworkMap.html) | Clone map | +| mission_manager/clone_network_mission | [clearpath_mission_manager_msgs/srv/CloneNetworkMission](pathname:///api/html/clearpath_mission_manager_msgs/srv/CloneNetworkMission.html) | Clone mission | +| mission_manager/clone_point_of_interest | [clearpath_mission_manager_msgs/srv/ClonePointOfInterest](pathname:///api/html/clearpath_mission_manager_msgs/srv/ClonePointOfInterest.html) | Clone point of interest | +| mission_manager/clone_task | [clearpath_mission_manager_msgs/srv/GetTask](pathname:///api/html/clearpath_mission_manager_msgs/srv/GetTask.html) | Clone task | +| mission_manager/clone_waypoint | [clearpath_mission_manager_msgs/srv/GetWaypoint](pathname:///api/html/clearpath_mission_manager_msgs/srv/GetWaypoint.html) | Clone goal | +| mission_manager/create_network_map | [clearpath_mission_manager_msgs/srv/CreateNetworkMap](pathname:///api/html/clearpath_mission_manager_msgs/srv/CreateNetworkMap.html) | Create map | +| mission_manager/create_network_mission | [clearpath_mission_manager_msgs/srv/CreateNetworkMission](pathname:///api/html/clearpath_mission_manager_msgs/srv/CreateNetworkMission.html) | Create mission | +| mission_manager/create_point_of_interest | [clearpath_mission_manager_msgs/srv/CreatePointOfInterest](pathname:///api/html/clearpath_mission_manager_msgs/srv/CreatePointOfInterest.html) | Create point of interest | +| mission_manager/create_task | [clearpath_mission_manager_msgs/srv/CreateTask](pathname:///api/html/clearpath_mission_manager_msgs/srv/CreateTask.html) | Create task | +| mission_manager/create_waypoint | [clearpath_mission_manager_msgs/srv/CreateWaypoint](pathname:///api/html/clearpath_mission_manager_msgs/srv/CreateWaypoint.html) | Create Goal | +| mission_manager/create_waypoint_from_poi | [clearpath_mission_manager_msgs/srv/CreateWaypointFromPoi](pathname:///api/html/clearpath_mission_manager_msgs/srv/CreateWaypointFromPoi.html) | Create Goal from point of interest | +| mission_manager/delete_all | [clearpath_mission_manager_msgs/srv/DeleteEverything](pathname:///api/html/clearpath_mission_manager_msgs/srv/DeleteEverything.html) | Delete all mission/map/poi data | +| mission_manager/delete_network_edge | [clearpath_mission_manager_msgs/srv/AddRemoveById](pathname:///api/html/clearpath_mission_manager_msgs/srv/AddRemoveById.html) | Delete map edge | +| mission_manager/delete_network_edges | [clearpath_mission_manager_msgs/srv/DeleteMultiple](pathname:///api/html/clearpath_mission_manager_msgs/srv/DeleteMultiple.html) | Delete map edges | +| mission_manager/delete_network_map | [clearpath_mission_manager_msgs/srv/DeleteById](pathname:///api/html/clearpath_mission_manager_msgs/srv/DeleteById.html) | Delete map | +| mission_manager/delete_network_mission | [clearpath_mission_manager_msgs/srv/DeleteById](pathname:///api/html/clearpath_mission_manager_msgs/srv/DeleteById.html) | Delete mission | +| mission_manager/delete_network_point | [clearpath_mission_manager_msgs/srv/AddRemoveById](pathname:///api/html/clearpath_mission_manager_msgs/srv/AddRemoveById.html) | Delete map point | +| mission_manager/delete_network_points | [clearpath_mission_manager_msgs/srv/DeleteMultiple](pathname:///api/html/clearpath_mission_manager_msgs/srv/DeleteMultiple.html) | Delete map points | +| mission_manager/delete_orphan_objects | [clearpath_mission_manager_msgs/srv/DeleteEverything](pathname:///api/html/clearpath_mission_manager_msgs/srv/DeleteEverything.html) | Delete orphaned objects | +| mission_manager/delete_point_of_interest | [clearpath_mission_manager_msgs/srv/DeleteById](pathname:///api/html/clearpath_mission_manager_msgs/srv/DeleteById.html) | Delete point of interest | +| mission_manager/delete_task | [clearpath_mission_manager_msgs/srv/DeleteById](pathname:///api/html/clearpath_mission_manager_msgs/srv/DeleteById.html) | Delete task | +| mission_manager/delete_tasks | [clearpath_mission_manager_msgs/srv/DeleteMultiple](pathname:///api/html/clearpath_mission_manager_msgs/srv/DeleteMultiple.html) | Delete tasks | +| mission_manager/delete_waypoint | [clearpath_mission_manager_msgs/srv/DeleteById](pathname:///api/html/clearpath_mission_manager_msgs/srv/DeleteById.html) | Delete Goal | +| mission_manager/delete_waypoints | [clearpath_mission_manager_msgs/srv/DeleteMultiple](pathname:///api/html/clearpath_mission_manager_msgs/srv/DeleteMultiple.html) | Delete Goals | +| mission_manager/remove_tag | [clearpath_mission_manager_msgs/srv/AddRemoveTag](pathname:///api/html/clearpath_mission_manager_msgs/srv/AddRemoveTag.html) | Remove tag from item | +| mission_manager/export | [clearpath_mission_manager_msgs/srv/ExportData](pathname:///api/html/clearpath_mission_manager_msgs/srv/ExportData.html) | Export mission/map/poi database | +| mission_manager/get_all | [clearpath_mission_manager_msgs/srv/GetEverything](pathname:///api/html/clearpath_mission_manager_msgs/srv/GetEverything.html) | Return all map/mission/poi data | +| mission_manager/get_all_network_maps | [clearpath_mission_manager_msgs/srv/GetAllNetworkMaps](pathname:///api/html/clearpath_mission_manager_msgs/srv/GetAllNetworkMaps.html) | Return all maps | +| mission_manager/get_all_network_missions | [clearpath_mission_manager_msgs/srv/GetAllNetworkMissions](pathname:///api/html/clearpath_mission_manager_msgs/srv/GetAllNetworkMissions.html) | Return all missions | +| mission_manager/get_all_points_of_interest | [clearpath_mission_manager_msgs/srv/GetAllPointsOfInterest](pathname:///api/html/clearpath_mission_manager_msgs/srv/GetAllPointsOfInterest.html) | Return all points of interest | +| mission_manager/get_all_tasks | [clearpath_mission_manager_msgs/srv/GetAllTasks](pathname:///api/html/clearpath_mission_manager_msgs/srv/GetAllTasks.html) | Return all tasks | +| mission_manager/get_all_waypoints | [clearpath_mission_manager_msgs/srv/GetAllWaypoints](pathname:///api/html/clearpath_mission_manager_msgs/srv/GetAllWaypoints.html) | Return all goals | +| mission_manager/get_network_map | [clearpath_mission_manager_msgs/srv/GetNetworkMap](pathname:///api/html/clearpath_mission_manager_msgs/srv/GetNetworkMap.html) | Return specific map | +| mission_manager/get_network_mission | [clearpath_mission_manager_msgs/srv/GetNetworkMission](pathname:///api/html/clearpath_mission_manager_msgs/srv/GetNetworkMission.html) | Return specific mission | +| mission_manager/get_point_of_interest | [clearpath_mission_manager_msgs/srv/GetPointOfInterest](pathname:///api/html/clearpath_mission_manager_msgs/srv/GetPointOfInterest.html) | Return specific point of interest | +| mission_manager/get_task | [clearpath_mission_manager_msgs/srv/GetTask](pathname:///api/html/clearpath_mission_manager_msgs/srv/GetTask.html) | Return specific task | +| mission_manager/get_waypoint | [clearpath_mission_manager_msgs/srv/GetWaypoint](pathname:///api/html/clearpath_mission_manager_msgs/srv/GetWaypoint.html) | Return specific goal | +| mission_manager/import | [clearpath_mission_manager_msgs/srv/ImportData](pathname:///api/html/clearpath_mission_manager_msgs/srv/ImportData.html) | Import mission/map/poi data to database | +| mission_manager/import_mission | [clearpath_mission_manager_msgs/srv/ImportMission](pathname:///api/html/clearpath_mission_manager_msgs/srv/ImportMission.html) | Import mission to database | +| mission_manager/import_network_map | [clearpath_mission_manager_msgs/srv/ImportNetworkMap](pathname:///api/html/clearpath_mission_manager_msgs/srv/ImportNetworkMap.html) | Inport map to database | +| mission_manager/import_network_mission | [clearpath_mission_manager_msgs/srv/ImportNetworkMission](pathname:///api/html/clearpath_mission_manager_msgs/srv/ImportNetworkMission.html) | Import mission to database | +| mission_manager/remove_task_from_start | [clearpath_mission_manager_msgs/srv/AddRemoveById](pathname:///api/html/clearpath_mission_manager_msgs/srv/AddRemoveById.html) | Remove task from list of start tasks | +| mission_manager/remove_task_from_stop | [clearpath_mission_manager_msgs/srv/AddRemoveById](pathname:///api/html/clearpath_mission_manager_msgs/srv/AddRemoveById.html) | Remove task from list of stop tasks| +| mission_manager/remove_task_from_waypoint | [clearpath_mission_manager_msgs/srv/AddRemoveById](pathname:///api/html/clearpath_mission_manager_msgs/srv/AddRemoveById.html) | Remove task from goal | +| mission_manager/remove_waypoint_from_mission | [clearpath_mission_manager_msgs/srv/AddRemoveById](pathname:///api/html/clearpath_mission_manager_msgs/srv/AddRemoveById.html) | Remove goal from mission | +| mission_manager/restore | [clearpath_mission_manager_msgs/srv/ImportData](pathname:///api/html/clearpath_mission_manager_msgs/srv/ImportData.html) | Restore data from a file | +| mission_manager/split_network_edge | [clearpath_mission_manager_msgs/srv/SplitNetworkEdge](pathname:///api/html/clearpath_mission_manager_msgs/srv/SplitNetworkEdge.html) | Split a map edge | +| mission_manager/update_network_edge | [clearpath_mission_manager_msgs/srv/UpdateNetworkEdge](pathname:///api/html/clearpath_mission_manager_msgs/srv/UpdateNetworkEdge.html) | Update map edge | +| mission_manager/update_network_edges | [clearpath_mission_manager_msgs/srv/UpdateNetworkEdges](pathname:///api/html/clearpath_mission_manager_msgs/srv/UpdateNetworkEdges.html) | Update map edges | +| mission_manager/update_network_map | [clearpath_mission_manager_msgs/srv/UpdateNetworkMap](pathname:///api/html/clearpath_mission_manager_msgs/srv/UpdateNetworkMap.html) | Update map | +| mission_manager/update_network_mission | [clearpath_mission_manager_msgs/srv/UpdateNetworkMission](pathname:///api/html/clearpath_mission_manager_msgs/srv/UpdateNetworkMissiond.html) | Update mission | +| mission_manager/update_network_point | [clearpath_mission_manager_msgs/srv/UpdateNetworkPoint](pathname:///api/html/clearpath_mission_manager_msgs/srv/UpdateNetworkPoint.html) | Update map point | +| mission_manager/update_network_points | [clearpath_mission_manager_msgs/srv/UpdateNetworkPoints](pathname:///api/html/clearpath_mission_manager_msgs/srv/UpdateNetworkPoints.html) | UPdate map points | +| mission_manager/update_point_of_interest | [clearpath_mission_manager_msgs/srv/UpdatePointOfInterest](pathname:///api/html/clearpath_mission_manager_msgs/srv/UpdatePointOfInterest.html) | Update points of interestt | +| mission_manager/update_task | [clearpath_mission_manager_msgs/srv/UpdateTask](pathname:///api/html/clearpath_mission_manager_msgs/srv/UpdateTask.html) | Update task | +| mission_manager/update_waypoint | [clearpath_mission_manager_msgs/srv/UpdateWaypoint](pathname:///api/html/clearpath_mission_manager_msgs/srv/UpdateWaypoint.html) | Update goal | +| mission_manager/validate_network_map | [clearpath_mission_manager_msgs/srv/ValidateNetworkMap](pathname:///api/html/clearpath_mission_manager_msgs/srv/ValidateNetworkMap.html) | Check validity of specific map | diff --git a/outdoornav_user_manual_versioned_docs/version-2.1.0/api/api_examples/_category_.json b/outdoornav_user_manual_versioned_docs/version-2.1.0/api/api_examples/_category_.json new file mode 100644 index 00000000..62e826ee --- /dev/null +++ b/outdoornav_user_manual_versioned_docs/version-2.1.0/api/api_examples/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Examples", + "position": 3 +} diff --git a/outdoornav_user_manual_versioned_docs/version-2.1.0/api/api_examples/api_examples_overview.mdx b/outdoornav_user_manual_versioned_docs/version-2.1.0/api/api_examples/api_examples_overview.mdx new file mode 100644 index 00000000..7b29ba74 --- /dev/null +++ b/outdoornav_user_manual_versioned_docs/version-2.1.0/api/api_examples/api_examples_overview.mdx @@ -0,0 +1,15 @@ +--- +title: API Examples Overview +sidebar_label: Overview +sidebar_position: 1 +toc_min_heading_level: 2 +toc_max_heading_level: 4 +--- + +:::note + +API examples will be available in version 2.2.0. +For urgent concerns regarding the API, please contact +[customer support](../../support.mdx) + +::: \ No newline at end of file diff --git a/outdoornav_user_manual_versioned_docs/version-2.1.0/api/api_examples/run_basic_mission.mdx b/outdoornav_user_manual_versioned_docs/version-2.1.0/api/api_examples/run_basic_mission.mdx new file mode 100644 index 00000000..bebd90f4 --- /dev/null +++ b/outdoornav_user_manual_versioned_docs/version-2.1.0/api/api_examples/run_basic_mission.mdx @@ -0,0 +1,15 @@ +--- +title: Run a Basic Mission +sidebar_label: Run a Basic Mission +sidebar_position: 3 +toc_min_heading_level: 2 +toc_max_heading_level: 4 +--- + +:::note + +API examples will be available in version 2.2.0. +For urgent concerns regarding the API, please contact +[customer support](../../support.mdx) + +::: diff --git a/outdoornav_user_manual_versioned_docs/version-2.1.0/api/api_examples/using_the_api.mdx b/outdoornav_user_manual_versioned_docs/version-2.1.0/api/api_examples/using_the_api.mdx new file mode 100644 index 00000000..70524228 --- /dev/null +++ b/outdoornav_user_manual_versioned_docs/version-2.1.0/api/api_examples/using_the_api.mdx @@ -0,0 +1,164 @@ +--- +title: Using the API +sidebar_label: Using the API +sidebar_position: 2 +toc_min_heading_level: 2 +toc_max_heading_level: 4 +--- + +:::note + +All action names and service names are namespace prefixed with the robot serial number. + +::: + + +## Commanding the Robot + +To command a robot, we provide action interfaces that are defined in our Autonomy API. +Below, are the `action_name`, `action_type`, and `pkg_name` for each required action. +The user is then able to write their own C++ or Python action client using this +information. + +### Start a mission + +| | | +| :---------------------- | :--------------| +| `action_name` | autonomy/network_mission | +| `pkg_name` | clearpath_navigation_msgs | +| `action_type` | ExecuteNetworkMissionByUuid | + +### Start a Mission from a specific goal + +| | | +| :---------------------- | :--------------| +| `action_name` | autonomy/network_mission_from_goal | +| `pkg_name` | clearpath_navigation_msgs | +| `action_type` | ExecuteNetworkMissionFromGoal | + + +### Send the robot to a location in the map + +| | | +| :---------------------- | :--------------| +| `action_name` | autonomy/network_goto | +| `pkg_name` | clearpath_navigation_msgs | +| `action_type` | ExecuteNetworkGoTo | + +### Send the robot to a point of interest (POI) + +| | | +| :---------------------- | :--------------| +| `action_name` | autonomy/network_goto_poi | +| `pkg_name` | clearpath_navigation_msgs | +| `action_type` | ExecuteNetworkGoToPOI | + +## Docking the robot + +### Local docking + +| | | +| :---------------------- | :--------------| +| `action_name` | autonomy/local_dock | +| `pkg_name` | clearpath_navigation_msgs | +| `action_type` | Dock | + +### Local undocking + +| | | +| :---------------------- | :--------------| +| `action_name` | autonomy/local_undock | +| `pkg_name` | clearpath_navigation_msgs | +| `action_type` | Undock | + +`action_name`: autonomy/local_undock + +`pkg_name`: clearpath_dock_msgs + +`action_type`: Undock + +### Network docking + +| | | +| :---------------------- | :--------------| +| `action_name` | autonomy/network_dock | +| `pkg_name` | clearpath_navigation_msgs | +| `action_type` | NetworkDock | + +## Navigation Control + +### Pause navigation + +| | | +| :---------------------- | :--------------| +| `service_name` | control_selection/pause | +| `pkg_name` | std_srvs | +| `service_type` | SetBool | + +### Resume navigation + +| | | +| :---------------------- | :--------------| +| `service_name` | control_selection/resume | +| `pkg_name` | std_srvs | +| `service_type` | SetBool | + +### Stop all autonomy actions + +| | | +| :---------------------- | :--------------| +| `service_name` | autonomy/stop| +| `pkg_name` | std_srvs | +| `service_type` | Trigger | + +## [Action Client (C++)](https://docs.ros.org/en/jazzy/Tutorials/Intermediate/Writing-an-Action-Server-Client/Cpp.html#writing-an-action-client) +```cpp +#include "action_tutorials_interfaces/action/fibonacci.hpp" + +#include "rclcpp/rclcpp.hpp" +#include "rclcpp_action/rclcpp_action.hpp" +#include "rclcpp_components/register_node_macro.hpp" + +... + using = action_tutorials_interfaces::action::; + using GoalHandle = rclcpp_action::ClientGoalHandle; + +... + this->client_ptr_ = rclcpp_action::create_client<>( + this, ); + +... + auto goal_msg = ::Goal(); + auto send_goal_options = rclcpp_action::Client<>::SendGoalOptions(); + +... + this->client_ptr_->async_send_goal(goal_msg, send_goal_options); +``` + +## [Action Client (Python)](https://docs.ros.org/en/jazzy/Tutorials/Intermediate/Writing-an-Action-Server-Client/Py.html#writing-an-action-client) + +```python +from .action import + +... + + self._action_client = ActionClient(self, , ) + +... + goal_msgs = .Goal() + self._action_client.wait_for_server() + self._action_client.send_goal_async(goal_msg) +``` + + +## Terminal Command-line + +In order to command the robot from the command-line, you will need to run the +following command, where the `--feedack` argument will allow the user to view +the action feedbacks message: + +```bash +ros2 action send_goal --feedback +``` + +The `values` are based on the actions message type. diff --git a/outdoornav_user_manual_versioned_docs/version-2.1.0/api/api_overview.mdx b/outdoornav_user_manual_versioned_docs/version-2.1.0/api/api_overview.mdx new file mode 100644 index 00000000..92e2c273 --- /dev/null +++ b/outdoornav_user_manual_versioned_docs/version-2.1.0/api/api_overview.mdx @@ -0,0 +1,129 @@ +--- +title: API Overview +sidebar_label: Overview +sidebar_position: 1 +toc_min_heading_level: 2 +toc_max_heading_level: 4 +--- + +While the Web User Interface provides a great way to get started quickly +with OutdoorNav Software, some users will want programmatic control or +may wish to develop their own graphical user interfaces \-- for those +users, the Application Programming Interface (API) provides the +flexibility to do so. + +The API is, at present, a [ROS 2 Jazzy](https://docs.ros.org/en/jazzy/index.html) API. +The API is divided into two sections, whose details are provided below: + +- [Autonomy API](./api_endpoints/autonomy_api): The set of [ROS + Topics](http://wiki.ros.org/Topics) that are used for monitoring and + controlling the the hardware platform through the OutdoorNav + autonomy software. + - [Topics Subscribed to by Autonomy](./api_endpoints/autonomy_api.mdx#autonomy-subscribers): + The set of [ROS Topics](http://wiki.ros.org/Topics) + subscribed to by OutdoorNav Software, typically published by the + client for directing OutdoorNav operation. + - [Topics Published by Autonomy](./api_endpoints/autonomy_api.mdx#autonomy-publishers): + The set of [ROS Topics](http://wiki.ros.org/Topics) published by + OutdoorNav Software, to be subscribed to by the UGV. + - [Services Exported by Autonomy](./api_endpoints/autonomy_api#autonomy-services): + The set of [ROS Services](http://wiki.ros.org/Services) provided + by OutdoorNav Software, for use by the client to modify/control + the behaviour of the Autonomy. + - [Actions Exported by Autonomy](./api_endpoints/autonomy_api#autonomy-actions): + The set of [ROS Actions](http://wiki.ros.org/actionlib) provided + by OutdoorNav Software, for use by the client to modify/control + the behaviour of the Autonomy. +- [Mission Manager API](./api_endpoints/mission_manager_api): The set of [ROS + Services](http://wiki.ros.org/Services) that are used for creating, deleting, + and modifying OutdoorNav Missions +- [API Examples](./api_examples/api_examples_overview): Example code to come. + + +## QoS Profiles {#qos-profiles} + +Topics and services in ROS 2 use Quality of Service (QoS) profiles to change communication policies. The QoS profile +of a topic or service has several policies such as history, depth, reliability, durability, and more. For more details on +QoS settings, visit the [ROS 2 documentation](https://docs.ros.org/en/jazzy/Concepts/About-Quality-of-Service-Settings.html). + +For Clearpath platforms, the main policies that may change between different topics and services are reliability and durability. For reliability +there are two options: _Best Effort_, and _Reliable_. A _Best Effort_ reliability suggests that an attempt will be made to publish +the data, but if the network is not robust then the data may be lost. On the other hand, _Reliable_ guarantees that the data will be received. +This may require that the data be sent multiple times. + +The durability of a QoS profile can be either _Transient Local_ or _Volatile_. _Transient Local_ means that data for published messages will +be stored by the publisher even after it has been published. A new subscriber will receive the data even if a lot of time has passed since it was originally published. +This durability is typically used for data that only needs to be published once, such as the robot description. The other durability policy is _Volatile_ which does not +store old messages. The messages are published and only active subscribers will receive the data. New subscribers will have to wait for the next message to be published. +Most topics will use a _Volatile_ durability policy. + +It is important to check for [QoS compatibility](https://docs.ros.org/en/jazzy/Concepts/Intermediate/About-Quality-of-Service-Settings.html#qos-compatibilities) when interacting with ROS 2. +Mixing of QoS policies when publishing or subscribing to topics can lead to incompatibility. For example, subscribing to a Best Effort publisher with a Reliable subscriber +is not compatible and will result in no data being received on the subscriber. The easiest way to check the QoS profile of a topic is to use the ROS 2 command line interface. + +``` +ros2 topic info /topic_name -v +``` + +## Common QoS profiles {#common-qos-profiles} + +The following are some common QoS profiles used by Clearpath platforms. + +### System Default + +- **History**: _Keep Last_ +- **Depth**: _10_ +- **Reliability**: _Reliable_ +- **Durability**: _Volatile_ +- **Deadline**: _System Default_ +- **Lifespan**: _System Default_ +- **Liveliness**: _Automatic_ +- **Lease Duration**: _System Default_ + +The _System Default_ QoS profile is the most common profile used by most topics. + +### Sensor Data + +- **History**: _Keep Last_ +- **Depth**: _5_ +- **Reliability**: _Best Effort_ +- **Durability**: _Volatile_ +- **Deadline**: _System Default_ +- **Lifespan**: _System Default_ +- **Liveliness**: _Automatic_ +- **Lease Duration**: _System Default_ + +The _Sensor Data_ QoS Profile uses a _Best Effort_ reliability to send the latest data +as soon as possible, without bothering to resend data that was not received. This is mostly used +by the MCU and sensor drivers. + +:::note + +Not all sensor drivers use this QoS profile. Always check the QoS profile before trying to subscribe to the topic. + +::: + +### Transient Local + +- **History**: _Keep Last_ +- **Depth**: _10_ +- **Reliability**: _Reliable_ +- **Durability**: _Transient Local_ +- **Deadline**: _System Default_ +- **Lifespan**: _System Default_ +- **Liveliness**: _Automatic_ +- **Lease Duration**: _System Default_ + +The _Transient Local_ QoS Profile offers a _Transient Local_ durability, and is typically used by topics that only +want to send messages once. For Clearpath platforms, this includes the robot description topic and the `/rosout` topic +which offers system logs. + +## Namespacing + +Namespacing is the method of adding a prefix to a robot's nodes and topics; this helps differentiate them from another robot that +may be on the same network. For example, every robot will have a `cmd_vel` topic for commanding velocity. If both robots +used the same topic, then they would both drive when a message is published to that topic. By namespacing, we can remap the topic +to `robot1/cmd_vel` and `robot2/cmd_vel` for each respective robot. + +By default, the namespace of the robot will be obtained from the serial number of the robot. If your serial number is `cpr-a300-00001`, then your namespace +will be `a300_00001`. This can be overwritten in the [robot.yaml](../../../docs/ros/config/yaml/overview) file. diff --git a/outdoornav_user_manual_versioned_docs/version-2.1.0/faq.mdx b/outdoornav_user_manual_versioned_docs/version-2.1.0/faq.mdx new file mode 100644 index 00000000..ae2cf7eb --- /dev/null +++ b/outdoornav_user_manual_versioned_docs/version-2.1.0/faq.mdx @@ -0,0 +1,65 @@ +--- +title: Frequently Asked Questions +sidebar_label: Frequently Asked Questions +sidebar_position: 11 +toc_min_heading_level: 2 +toc_max_heading_level: 4 +--- + +## General + +1. **How do I start, pause or stop a mission?** + + A mission can be started through the web user interface or through the ROS 2 API. + +2. **When I start a mission the UGV does not move. What could be the + problem?** + + There could be one of several reasons for why this is happening: + + 1. Check that none of the onboard Motion-Stop actuators are + activated. + 2. Check that none of the wireless Motion-Stops are engaged. This + can be checked via the UI (a red Status Indicator means + Motion-Stop is engaged) or the onboard UGV lights (will flash + when Motion-Stop is engaged). + 3. If OutdoorNav is running on a Clearpath Robotics Warthog UGV + that is programmed with a Futaba controller, then ensure that + the controller is turned off. If it is on then it will be + sending "no motion" commands that will be overriding the + autonomy commands. + 4. Check the task settings for each Waypoint in the Mission. + A missing task setting for a Move PTZ task will block the + execution of the Mission it is in. + +3. **What version of ROS is compatible with OutdoorNav?** + + OutdoorNav 2.0.0+ is developed in ROS 2 (and is built in Docker containers on top of ROS 2 Jazzy), + so the recommended ROS version is ROS 2 Jazzy. Previous versions of OutdoorNav were based on ROS 1, + but those versions are no longer supported. + +4. **Where do all the video/audio/images get saved from the mission tasks?** + + All of the data that gets saved (ROSbags, video recordings, audio recordings, and saved images) gets stored on + UGV's computer at the following location: `/opt/onav/saved_files/...` + +## Autonomy + +1. **Can I use OutdoorNav without using the UI?** + + We empower customers to send mission via either the UI or our [ROS 2 API](./api/api_overview.mdx). Through this + API, you are enabled to write either CPP code or Python scripts where you would generate your mission. + +## Web User Interface + +1. **Why is the "Save Image" Task failing?** + + Check the Waypoints that have a **Save Image** task in the Waypoint panel. + If you see a red warning triangle beside the **Save Image** task it means + that the settings for this task were not properly set. Set them and rerun + the mission. + +2. **Are we able to make any changes to the UI?** + + Unfortunately, users are not currently enabled to make modifications to the user interface. + This feature will be available in a future release. Please direct any feature requests to [Support](./support.mdx). diff --git a/outdoornav_user_manual_versioned_docs/version-2.1.0/index.mdx b/outdoornav_user_manual_versioned_docs/version-2.1.0/index.mdx new file mode 100644 index 00000000..3d1655b9 --- /dev/null +++ b/outdoornav_user_manual_versioned_docs/version-2.1.0/index.mdx @@ -0,0 +1,18 @@ +--- +title: OutdoorNav User Manual +sidebar_label: OutdoorNav User Manual +sidebar_position: 1 +toc_min_heading_level: 2 +toc_max_heading_level: 4 +--- + +
+
+ +
+
+ +OutdoorNav is an outdoor autonomy software platform designed for vehicle developers, +OEMs and robotics researchers. Compatible with Clearpath outdoor mobile platforms +and third-party vehicles, OutdoorNav provides reliable, industry-leading GPS-based +navigation for faster, more efficient autonomous vehicle development. \ No newline at end of file diff --git a/outdoornav_user_manual_versioned_docs/version-2.1.0/installation/_category_.json b/outdoornav_user_manual_versioned_docs/version-2.1.0/installation/_category_.json new file mode 100644 index 00000000..2ffaa157 --- /dev/null +++ b/outdoornav_user_manual_versioned_docs/version-2.1.0/installation/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Installation", + "position": 10 +} diff --git a/outdoornav_user_manual_versioned_docs/version-2.1.0/installation/overview.mdx b/outdoornav_user_manual_versioned_docs/version-2.1.0/installation/overview.mdx new file mode 100644 index 00000000..cdcf04cc --- /dev/null +++ b/outdoornav_user_manual_versioned_docs/version-2.1.0/installation/overview.mdx @@ -0,0 +1,21 @@ +--- +title: Installation +sidebar_label: Installation +sidebar_position: 1 +toc_min_heading_level: 2 +toc_max_heading_level: 4 +--- + +As of version 2.0.0, the OutdoorNav software uses ROS 2 Jazzy as its base. It is incompatible +with any other previous version of ROS. If you have a base platform running an older version +of ROS 2, consult [the following page](../../docs/ros/installation/upgrading) to upgrade your +base to ROS 2 Jazzy. If you have a base platform running ROS 1, please reach out to +\ in order to receive instructions to install the correct +version. + +## Installing OutdoorNav Updates + +All AMP/Observer UGVs ship with the latest version of the OutdoorNav software. +If you receive an email regarding an available OutdoorNav software update, follow +the [update instructions](updates) to update the OutdoorNav software. + diff --git a/outdoornav_user_manual_versioned_docs/version-2.1.0/installation/updates.mdx b/outdoornav_user_manual_versioned_docs/version-2.1.0/installation/updates.mdx new file mode 100644 index 00000000..7aca7f4e --- /dev/null +++ b/outdoornav_user_manual_versioned_docs/version-2.1.0/installation/updates.mdx @@ -0,0 +1,102 @@ +--- +title: Installing Updates +sidebar_label: Installing Updates +sidebar_position: 1 +toc_min_heading_level: 4 +toc_max_heading_level: 4 +--- + +The following page details the steps to update the OutdoorNav software that is already +installed on your platform. + + +:::note + +Please ensure that you have received an email advising you that an update is available +since only those who receive the update emails will be have access to the update files. + +::: + +## Download + +1. Click the link that was sent to you in the update email. You will be sent to a cloud storage +drive with the following file structure (/Documents/General/Releases/...) + +2. Navigate to the version folder you wish to update to and download the following files: + + - **cpr-onav-ui.tar** + + - **cpr-onav-base.tar** + + - **cpr-onav-autonomy.tar** + + - **cpr-onav-app.zip** + +3. Connect to the robot + + Option 1: via ethernet (port located inside of the rear charge port door) + + Option 2: via wifi (Husky SSID: cpr_a300_amp_xxx) + +4. Transfer all files to the robots **/opt/onav/** folder + + **Linux**: + + ```code + scp cpr-onav-app.zip cpr-onav-ui.tar cpr-onav-base.tar cpr-onav-autonomy.tar robot@192.168.131.1:/opt/onav/ + ``` + + **Windows**: Use [FileZilla Client](https://filezilla-project.org/download.php?platform=win64) to transfer all files to the robot. + + SFTP Connection: + + * Host: sftp://192.168.131.1 + + * Username: robot + + * Password: clearpath + + +## Update + +1. Run the below command to update the version of OutdoorNav, where +***\*** is the folder of the last version of OutdoorNav that +has been installed on the robot and ***\*** is the version you want +to update to. + + ```code + python3 /opt/onav//app/update/update.py -v + ``` + + Eg. To update from version 2.1.0 to version 2.2.0 run the following + + ```code + python3 /opt/onav/2.1.0/app/update/update.py -v 2.2.0 + ``` + + * this will create a new version folder in /opt/onav/ + + * copy all persistent data from the last version + + * installs the app folder + + * stops the currently running version of OutdoorNav + + * starts the new version of OutdoorNav + + +## Cleanup + +1. Remove all extraneous files + + ```code + rm /opt/onav/cpr-onav-ui.tar /opt/onav/cpr-onav-base.tar /opt/onav/cpr-onav-autonomy.tar /opt/onav/cpr-onav-app.zip + ``` + +:::note + +If you have made any customization changes to the **app/** directory of your +previous version, you will need to make these same modifications manually +yourself to the new versions app/ directory files. + +::: \ No newline at end of file diff --git a/outdoornav_user_manual_versioned_docs/version-2.1.0/overview/_category_.json b/outdoornav_user_manual_versioned_docs/version-2.1.0/overview/_category_.json new file mode 100644 index 00000000..8414dc7f --- /dev/null +++ b/outdoornav_user_manual_versioned_docs/version-2.1.0/overview/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Overview", + "position": 4 +} diff --git a/outdoornav_user_manual_versioned_docs/version-2.1.0/overview/overview_introduction.mdx b/outdoornav_user_manual_versioned_docs/version-2.1.0/overview/overview_introduction.mdx new file mode 100644 index 00000000..21a17e20 --- /dev/null +++ b/outdoornav_user_manual_versioned_docs/version-2.1.0/overview/overview_introduction.mdx @@ -0,0 +1,79 @@ +--- +title: Introduction +sidebar_label: Introduction +sidebar_position: 1 +toc_min_heading_level: 2 +toc_max_heading_level: 4 +--- + +## Summary + +OutdoorNav Software is a software package developed by Clearpath +Robotics for autonomous and manual navigation of Unmanned Ground +Vehicles (UGVs) in outdoor environments. + +
+
+ +
Web UI Mission Planning View
+
+
+ +
+
+ +
Web UI Front Camera View
+
+
+ +## Compatible Platforms + +While it has been optimized for use with OutdoorNav Hardware from +Clearpath Robotics +([Husky](https://clearpathrobotics.com/husky-unmanned-ground-vehicle-robot/), +[Jackal](https://clearpathrobotics.com/jackal-small-unmanned-ground-vehicle/), +and +[Warthog](https://clearpathrobotics.com/warthog-unmanned-ground-vehicle-robot/)), +it has been designed so that it can be added easily to third-party UGVs. + +## Key Features + +Key features of OutdoorNav Software include: + +- Mission Planning and Autonomous Navigation + + - Robust GPS-based localization with sensor fusion of camera, IMU, LiDAR + and platform odometry + - Autonomous path following through a network of paths + - Obstacle Detection and Avoidance: Stop and wait or + autonomously plan a collision-free path around obstacles + without the need to stop + +- Teleoperation + + - Operate the robot remotely using an on-screen or physical + joystick + - Visualize what the robot sees by displaying its network + cameras + +- Web User Interface (Web UI) + + - Build missions containing sets of paths, with optional task + execution on each path; tasks can be standard tasks (eg. save + camera image) or user provided functions + - View the robot's live position and attitude on the map + - Display robot data such as velocity, signal strength, status + of the motion stop, status of navigation system, and battery charge + - Save and export Missions + +- Application Programming Interface (API) + + - Build your own application and UI by accessing the navigation + API to control the UGV through software or implement fleet + management by accessing the autonomy API + +- Third Party Integration + + - The Web UI and API can be accessed through a network connection; + cloud-based services are available from third parties to + facilitate remote connections and networking to robot hardware diff --git a/outdoornav_user_manual_versioned_docs/version-2.1.0/overview/overview_operating_conditions.mdx b/outdoornav_user_manual_versioned_docs/version-2.1.0/overview/overview_operating_conditions.mdx new file mode 100644 index 00000000..072e3180 --- /dev/null +++ b/outdoornav_user_manual_versioned_docs/version-2.1.0/overview/overview_operating_conditions.mdx @@ -0,0 +1,113 @@ +--- +title: Operating Conditions +sidebar_label: Operating Conditions +sidebar_position: 3 +toc_min_heading_level: 2 +toc_max_heading_level: 4 +--- + +OutdoorNav Software is designed and tested for use in rugged outdoor +environments. + +## Operating Conditions + +### Terrain + +OutdoorNav Software is compatible with terrains in which the UGV can be +driven manually without excessive slipping. The performance limits will +be a function of the base UGV traction. + +Using Clearpath Robotics Husky, Jackal, and Warthog as a the base UGV, +OutdoorNav Software is suitable for use in the following terrains: + +- asphalt +- concrete +- grass +- snow + +:::note + +Grass should not exceed 30 cm in height if collision avoidance is +enabled. + +::: + +:::note + +Winter/studded tires may be required for proper traction on snow. + +::: + +OutdoorNav Software is currently **not** suitable in the following +terrains: + +- ice +- loose gravel + +The terrain capabilities of third-party UGVs will be dependent on a +variety of factors including the vehicle mass, the tire treading, and +motor power. + +### Environment + +OutdoorNav Software is suitable for use in the following environmental +conditions: + +- light rainfall (drizzle) +- light snowfall (powdery snow) + +:::note + +If erratic behavior, such as frequent replanning, is perceived in these +light precipitation conditions, disabling the "continuous planning" +feature may help. + +::: + +OutdoorNav Software is **not** suitable for use in the following +environmental conditions: + +- heavy rainfall +- heavy snowfall + +:::note + +If navigation is required in heavy rain or snow, disabling the collision +avoidance feature will allow the UGV to navigate properly. This should +be done with caution. + +![](/img/outdoornav_images/gps_danger.png) + +::: + +## Performance + +The performance of the system is highly dependent on both the base UGV, +the sensors, the system integration details, and the environment. With +standard sensors: + +- Location accuracy (position & heading): Less than 5 cm and less than 2° +- Path tracking accuracy (approximate): 10 cm + +## Limitations + +While OutdoorNav Software operates effectively in a range of rugged +outdoor environments, the operator should be aware of the following +limitations and plan accordingly. + +_OutdoorNav System Limitations_ + +| Limitation | Details | +|--------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| RTK accuracy | Localization accuracy for the Standard (RTK) configuration assumes the base station location has been accurately surveyed. | +| Localization accuracy | Localization accuracy is influenced by the quality of GNSS data that is available. Navigating in GNSS denied areas (e.g., under bridges, near tall buildings, etc.) will cause degradation in localization performance. | +| Negative obstacle detection not present | Outdoor Navigation Software does not have negative obstacle detection capability. Your UGV will not detect stairs, cliffs, potholes, depressions or edges and may drive into these obstacles causing harm to people or property. | +| Limited obstacle detection in vertical dimension | The small vertical field of view of 3D LiDARs limits the vertical obstacle detection capability of the OutdoorNav Software. | +| Low traction may cause UGV to get stuck | Your UGV may navigate itself into a situation where wheels slip or do not make contact with the ground. | +| Rain and snow may affect obstacle detection | Adverse weather conditions may obscure obstacle detection and avoidance data from 3D LiDARs. Obstacle detection and avoidance may not function in all weather conditions and must be disabled to navigate in heavy snow or rain. | +| WiFi range limits | The current configurations of the OutdoorNav Software will continue navigation if the WiFi disconnects or goes out of range. The Web UI will reconnect once the WiFi has reconnected but certain functions of the UI may be limited such as the ability to issue a pause/stop commands or sending new missions to the UGV. | +| Wireless motion stop range limits | The UGV will motion stop if the UGV is driven out of range of the wireless motion stop device. | +| RTK GPS limited by WiFi range | If WiFi goes out of range, your UGV will not receive RTK corrections from the Base Station. This can potentially decrease the accuracy of the GPS signal which can subsequently degrade path following performance of your system. | +| Obstacle detection may cause UGV to become stuck | The UGV may stop and become stuck if obstacles are detected and not cleared from its path. If obstacle avoidance is enabled, it may not be able to calculate an acceptable path to the next Viapoint or Goal Point under all circumstances. This will result in the UGV becoming stuck and failing its Mission. | +| Zones are not currently supported | It is not possible to define “keep-out” or “unsafe” zones that the UGV needs to avoid. Rather, careful use of Waypoint placement by the operator can be used to keep the UGV at a safe distance from unsafe zones. | +| No collision avoidance during teleoperation mode | When operating in Manual Mode (Teleoperation), no collision avoidance is enabled. The operator is responsible for avoiding collisions. | diff --git a/outdoornav_user_manual_versioned_docs/version-2.1.0/overview/overview_scope.mdx b/outdoornav_user_manual_versioned_docs/version-2.1.0/overview/overview_scope.mdx new file mode 100644 index 00000000..5b741ff5 --- /dev/null +++ b/outdoornav_user_manual_versioned_docs/version-2.1.0/overview/overview_scope.mdx @@ -0,0 +1,13 @@ +--- +title: Scope +sidebar_label: Scope +sidebar_position: 2 +toc_min_heading_level: 2 +toc_max_heading_level: 4 +--- + +This documentation focuses on the OutdoorNav software itself, including +hardware dependencies and integration, but not the specifics of UGV +hardware. For details on compatible Clearpath Robotics UGVs and custom +hardware integrations, contact \ or check +out our [YouTube channel](https://www.youtube.com/channel/UCNPP3C-ZK3mwpG2x89VE-2Q). \ No newline at end of file diff --git a/outdoornav_user_manual_versioned_docs/version-2.1.0/quick_start/_category_.json b/outdoornav_user_manual_versioned_docs/version-2.1.0/quick_start/_category_.json new file mode 100644 index 00000000..6a14af93 --- /dev/null +++ b/outdoornav_user_manual_versioned_docs/version-2.1.0/quick_start/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Quick Start", + "position": 5 +} diff --git a/outdoornav_user_manual_versioned_docs/version-2.1.0/quick_start/quick_start.mdx b/outdoornav_user_manual_versioned_docs/version-2.1.0/quick_start/quick_start.mdx new file mode 100644 index 00000000..673d4f12 --- /dev/null +++ b/outdoornav_user_manual_versioned_docs/version-2.1.0/quick_start/quick_start.mdx @@ -0,0 +1,204 @@ +--- +title: Quick Start +sidebar_label: Quick Start +sidebar_position: 1 +toc_min_heading_level: 2 +toc_max_heading_level: 4 +--- + +This section outlines how to set up your OutdoorNav system for some +preliminary testing with the OutdoorNav Software on a UGV. + +## Connect to Web UI {#connecting_to_web_ui} + +1. Ensure that the UGV is powered on. +1. If the optional Base Station is included, ensure that it is powered on. +1. If using a custom networking configuration, ensure that the custom + networking setup on the UGV is complete. +1. Connect your computer to the same wifi network as the UGV, then open the + Chrome browser on your computer and load the OutdoorNav Homepage. + + - Option 1 (easiest): No base station, computer connected to UGV's + wifi access point (eg. cpr_a300_amp_00009) + - OutdoorNav homepage: https://192.168.131.1 + - Option 2: No base station, UGV and computer connected to the same + (external) wifi access point + - OutdoorNav homepage: + - if DNS is working on the wifi network, use the robot's hostname (eg. https://cpr-a300-00009) + - if DNS is not working on the wifi network, check the IP address of the UGV's computer and use it + - Option 3: Base station, UGV and computer connected to base station + - OutdoorNav homepage: use the IP address that was noted on the documentation + that shipped with the robot + +1. Click to accept the End-User License Agreement. This page will be visible each + time the UGV is restarted but only on the first navigation to the page. + The EULA should be reviewed prior to using the system. + +
+
+ +
Web UI Mission Planning View
+
+
+ +## Check Camera Views {#checking-camera-feeds} + +When your system includes cameras, the live view from each camera is shown on the right side +of the OutdoorNav Homepage. Clicking on a camera view will maximize it on the screen. +Cycle through each camera view and confirm that it is providing live updates. + +Refer to [Camera Views](../web_user_interface/ui_overview#camera-views) for more details. + +
+
+ +
Web UI Front Camera View
+
+
+ +## Check System Status {#checking-system-status} + +Access **Menu** → **TOOLS** → **Status Monitor** to display the system status. + +Make note of any issues and correct those before proceeding. + +
+
+ +
Web UI Status Monitor (showing warnings on IMU status and Wheelspeed)
+
+
+ +## Check GPS RTK Fix {#checking-gpt-rtk-fix} + +Each time the UGV has been powered up (or moved from a GPS-denied +environment to a GPS-available environment), let the UGV sit in this +position for 2 minutes to acquire an RTK GPS fix. The POS (position), +DIR (heading), and FUS (sensor fusion) GPS status indicators on the UI +should be green: . + +:::note + +If the GPS status indicators are yellow or red, the selected location +does not have an adequate GPS signal. Move the UGV such that the GPS +antennas have clearer visibility to satellites. + +If your robot is not equipped with a Base Station, a separate data +source is required to obtain a GPS fix. Contact [Support](../support) +for additional details. + +::: + +## Complete the System Configuration {#system_config} + +### Load Map Tiles {#loading_map_tiles} + +The Web UI does not cache map tiles on the browser; therefore, the user +will need to ensure their computer has a connection to an Internet +source to load the map tiles. There are a several options to achieve +this: + +1. If the system includes a Base Station that is connected to the + Internet, you will be able to access the Internet and therefore map + tiles over the base station network without needing any further + updates. +2. Connect your phone via USB to your computer (or tablet) and enable + USB tethering on your phone to share the Internet from your phone. +3. Switch your computer (or tablet) to a network that is connected to + the Internet, zoom in/out of the map to load the tiles then switch + back to the original network. + +### Set Dock Location + +:::note + +If the Clearpath Robotics autonomous docking package has been included, +follow these instructions to set up the dock location. Otherwise, this +section can be skipped. + +::: + +:::warning + +Keep the area around the dock free of objects and people. There is no +obstacle detection between the pre-docking point and the dock; +similarly, there is no obstacle detection during the undocking +operation. + +::: + +
+
+ +
Husky A300 Autocharge Dock
+
+
+ +
Husky A300 at Dock
+
+
+ +Before being able to dock the UGV autonomously, set up the dock +location. Follow these steps to position the UGV in its correct position +and orientation. + +1. Power ON the UGV and wait for the system to finish booting. + +2. Start by manually driving the UGV to the dock target and align it as + straight and centered as possible so that it begins charging. + +3. Let the UGV sit in this position for 2 minutes to acquire an RTK GPS + fix. The POS (position), DIR (heading), and FUS (sensor fusion) GPS status indicators on + the UI should be green: . + + :::note + + If the GPS status indicators are yellow or red, the selected + location of the dock is NOT appropriate. Please change the dock + location such that the GPS antennas have a clearer visibility. + + ::: + +4. On the UI, **Menu** → **SETTINGS** → **Add New Dock Location**. + The dock location will be stored in 5 - 10 seconds as data is collected. + +If the Base Station has been moved (and therefore been resurveyed), or +if the dock has been moved to a new location, the user will need to +reset the location of the dock. This is done in the following manner: + +1. Repeat the previous set of instructions from step 1 to 4. + +2. While in **Edit Mode** select the dock on the UI. A drop down should appear + with the option to reset the dock location. Select that option. + +3. After approximately 5 - 10 seconds the dock location should be updated and the UI will + reflect the change accordingly. + +## Create Your First Map + +1. Ensure that the UI is in "Map Edit Mode": + → + . +1. Open the drop down menu in the bottom bar (left-side) and select the "Add Map" option. +1. Start placing points and building paths. (A map will be created with the default settings.) + +For more details, refer to [Map Creation](../web_user_interface/ui_map_mode#mapCreation). + +## Create Your First Mission + +1. Ensure that the UI is in "Mission Edit Mode": + → + . +1. Open the drop down menu in the bottom bar (right side) and select the "Add Mission" option. +1. Select the "Goalpoint Mode" button. +1. Click on the map to add a goalpoint. +1. Confirm that a preview path is shown on the map. + +For more details, refer to [Mission Creation](../web_user_interface/ui_map_mode#missionCreation). + +## Execute Your First Mission + +1. In the bottom bar of the UI, click the "Play" button . +1. Confirm that the "Play" button has turned green, which indicates that the mission has started. + +For more details, refer to [Mission Execution](../web_user_interface/ui_map_mode#missionExecution). diff --git a/outdoornav_user_manual_versioned_docs/version-2.1.0/release_notes.mdx b/outdoornav_user_manual_versioned_docs/version-2.1.0/release_notes.mdx new file mode 100644 index 00000000..16b9dc0d --- /dev/null +++ b/outdoornav_user_manual_versioned_docs/version-2.1.0/release_notes.mdx @@ -0,0 +1,392 @@ +--- +title: Release Notes +sidebar_label: Release Notes +sidebar_position: 2 +toc_min_heading_level: 2 +toc_max_heading_level: 4 +--- + +import Style from '/assets/css/changelog.css'; + +
+ +## 2.0.0 + +### New Features + +- First release with ROS 2 Jazzy support + +### API Changes + +- Many changes as part of the migration to ROS 2; not backwards compatible with earlier releases + +### Bug Fixes + +- N/A + +### Known Issues + +- None + +## 0.14.0 + +### New Features + +- Added in the ability to connect a PS4 controller to the UI directly. +- Improved the PTZ Controls, allowing users to move via a draggable interface, + box selection or double clicking. +- System Watchdogs can now be added to the UGV to + allow for safeguards to be put in place depending on the needs of the user. + +### API Changes + +- Added new message definitions and service calls for watchdogs + +### Bug Fixes + +- 2532: Wireless Connection adaptor not publishing + +### Known Issues + +- 1396: Robot gets temporarily stuck at start of mission when near a Waypoint +- 1844: [MPC] Maximum acceleration param doesn't appear to have any effect +- 2525: Path Previewer has issues cleaning up upon completion in mission less states + +## 0.13.0 + +### New Features + +- Points of Interest can now be added either + through the UI or through the API to specify locations/objects of interest that + are persistent. +- Execution Logs are now recorded and stored on the UGV. + These logs record all mission data, images, video/audio recordings as well as telemetry + and GPS data. Details of the logs can be viewed through the UI or you can access the file browser. +- Reformatted the UI menu. +- Updated UI layout. Map editing, tables and zooming features now in new location on UI. + Moved from bottom bar to left bar. +- Added layers to UI for user customized views. + +### API Changes + +- Added new message definitions and service calls for points of interest +- Added new message definitions and service calls for execution logging + +### Bug Fixes + +- 2332: upgrading from 0.11 to 0.12.0 in teleoperation only configuration and Q62 + installed causes duplication of axis driver. Please contact [Support](./support.mdx) + if you run into this issue. +- 2344: Autonomy not going down during low-power mode +- 2360: Waypoint/Map modes use different mouse click to open context menus + +### Known Issues + +- 1396: Robot gets temporarily stuck at start of mission when near a Waypoint +- 1844: [MPC] Maximum acceleration param doesn't appear to have any effect +- 2532: Wireless Connection adaptor not publishing +- 2525: Path Previewer has issues cleaning up upon completion in mission less states + +## 0.12.0 + +### New Features + +- Modified mission planning modes. Now includes: + - Map mode (which allows the user to create maps of an environment + and send mission using said map) + - Waypoint mode (which allows the user to create more direct mission + by placing waypoints directly on the Aerial overlay) +- Added an Assisted teleoperation feature to prevent robot collisions with + obstacles when it is being teleoperated. +- Added the upgrade command to the CLI tool. Customers can now upgrade their + software as long as they are eligible to be upgraded to the newest version. + Please contact [Support](./support.mdx) for more information. +- New visualization of status command in CLI tool +- Added a filebrowser extension to access/view the robot filesystem for easier + media access + +### API Changes + +- Added new message definitions and service calls for the storage/editing of Maps + +### Bug Fixes + +- 1973: Fixed python “machineid” error during installation +- 2089: Fixed the no serial number on /platform/id topic +- 2169: Fixed the mission manager/scheduler still requesting during Teleop only mode + +### Known Issues + +- 1396: Robot gets temporarily stuck at start of mission when near a Waypoint +- 1844: [MPC] Maximum acceleration param doesn't appear to have any effect +- 2332: upgrading from 0.11 to 0.12.0 in teleoperation only configuration and Q62 + installed causes duplication of axis driver. Please contact [Support](./support.mdx) + if you run into this issue. +- 2344: Autonomy not going down during low-power mode +- 2360: Waypoint/Map modes use different mouse click to open context menus + +## 0.11.0 + +### New Features + +- Command Line Tool used to install/update/manage OutdoorNav +- Added the End User License Agreement to the UI upon start up +- Light and PTZ Pan/Tilt controls can now be mapped to a controller +- OutdoorNav/IndoorNav switch over improvements +- Can now place waypoints at UGV location via shortcut key (Shift + X) + +### API Changes + +- Can now delete multiple mission objects (missions, waypoints, tasks) in single call +- Stack Light can now be manually overridden/muted +- Added ability to import single missions to the robot + +### Bug Fixes + +- 1688: Move PTZ task only ever uses the first PTZ camera's positions +- 2011: Filter false "Move PTZ Failure" notifications when moving PTZ camera + +### Known Issues + +- 1396: Robot gets temporarily stuck at start of mission when near a Waypoint +- 1844: [MPC] Maximum acceleration param doesn't appear to have any effect + +## 0.10.0 + +### New Features + +- Added the ability to start mission from a specific Waypoint +- Added the ability to resume mission from current location +- Added the option to include on-start and on-stop tasks to a Mission +- Added the option to continue a Mission if a Task should fail +- Full release of the API examples repository to the public (link API examples top level page) + +### API Changes + +- Action definition changes + - Mission.action added from_start and _start_waypoint_uuid_ fields + - ExecuteMissionByUuid.action: added from_start and _start_waypoint_uuid_ fields +- Message Definition changes + - Mission.msg: added an array of on_start and and array of on_stop tasks fields + - Task.msg: added a boolean allow_failure field +- Updated /safety/safety_stop message type +- Added import/export services for /dock, /mission_manager/ and /mission_scheduler features + +### Bug Fixes + +- 1546: Robot cannot start mission part-way through if a task is assigned on any Waypoint prior to its location +- 1764: Importing missions with docking tasks fails to bring in docks + +### Known Issues + +- 1396: Robot gets temporarily stuck at start of mission when near a Waypoint +- 1844: [MPC] Maximum acceleration param doesn't appear to have any effect + +## 0.9.0 + +### New Features + +- Operators can now Schedule Missions to run at specific times +- Added in support for BulletCat12 Microhard WiFi and Cellular connections +- Allow Audio recording as both tasks and manual operations if UGV has Microphones +- Create custom tasks that can be run during missions +- If installed with PDU, UGV can be set to Low Power mode to better conserve power +- New navigation topics added to ROS Autonomy API: + - /navigation/progress + - /navigation/motion_state + - /navigation/metrics +- Improved precision of docking +- Improved autonomy feedback when something goes wrong in the mission to increase the diagnosability of the error +- Updated Navigation features available to the customer: + - Continuous Replanning renamed to Continuous Planning and is always enabled. + - Constrained Planning is always enabled. Environment Variable to update the path constraint has been modified. + - Removed Obstacle Avoidance Mode. The UGV will always attempt to avoid obstacles. + - Removed Path Smoothing. This is always enabled. + - Docking feature added for customers who have purchased a dock. + +### Bug Fixes + +- 1324: Allow single Waypoint missions and/or tasks on first waypoint (required for undocking through tasks). +- 1340: Undocking not working through tasks +- 1607: Fixed MovePTZ task failures + +### Known Issues + +- 131: Software upgrade process not documented fully. +- 609: Realsense D435 collision avoidance not fully tuned. +- 751: Wireless icon in UI doesn't work for Ubiquity hardware. +- 1396: Robot gets temporarily stuck at start of mission when near a Waypoint. +- 1546: Robot cannot start mission part-way through if a task is assigned on any Waypoint prior to its location. + +## 0.8.0 + +### New Features + +- Inertial Measurement Units (IMUs) integrated into localization. +- Added localization status topic. +- Added re-localization service. +- Additional diagnostic information in the status view. +- Docking improvements including: multiple docks, visual representation of docks on map, + local docking/undocking through teleop view. Docking only functional with 2D LiDARs. +- Customization & Tuning Appendix C added. Lists of tuning parameters for navigation + and collision avoidance are now available. As well as, instructions/process on how to + tune UGVs with differential drive dynamics. Instructions for UGVs with Ackermann dynamics + are on their way. + +### Bug Fixes + +- 1134: Display/Hide Datum Point not working. +- 1139: Issues with non-husky platforms. +- 1137: Refreshing page re-enables edit button while mission running. +- 1276: Feedback added for incorrect first Waypoint placement. + +### Known Issues + +- 131: Software upgrade process not documented fully. +- 609: Realsense D435 collision avoidance not fully tuned. +- 751: Wireless icon in UI doesn't work for Ubiquity hardware. +- 1138: Issues with greying out Waypoints in edge cases. +- 1324: Allow single Waypoint missions and/or tasks on first waypoint (required for undocking through tasks). +- 1340: Undocking not working through tasks. + +## 0.7.0 + +### New Features + +- Goal terminology has been removed from the mission generation nomenclature. + Users can now add tasks, apply final headings, and set navigation tolerances + to any Waypoint in a Mission. +- Drag and Drop of Waypoints now available in Edit Mode. +- New Waypoints can be inserted between existing Waypoints in a Mission. +- Mission API now available to create/edit/load missions, waypoints and tasks. +- Mission execution via mission ID is now available. +- The base station location is now displayed in the UI after carrying out an automated survey. +- New coloring scheme for GNSS status icons to provide more accurate information. + +### Bug Fixes + +- 996: Axis camera missing ptz_state + +### Known Issues + +- 131: Software upgrade process not documented fully. +- 609: Realsense D435 collision avoidance not fully tuned. +- 751: Wireless icon in UI doesn't work for Ubiquity hardware. +- 1134: Display/Hide Datum point not working. +- 1137: Refreshing page re-enables edit button while mission running. +- 1138: Issues with greying out Waypoints in edge cases. + +## 0.6.0 + +### New Features + +- OutdoorNav ROS API updated. API now divided into Platform and + Autonomy sections. See [API Overview](./api/api_overview.mdx) + for more details. +- Simulation environment created with charge dock, base station and + camera plugins. +- Added deviation path visualization to UI when constrained replanning + is enabled. +- Modified goalpoint icons to reflect tasks assigned to them. +- Added the ability to record rosbags from UI. +- Added GPS signal strength to status page. +- Added improvements to PTZ controls (cosmetic changes, ability to + disable zoom, added a reset mark). +- User can set map source from OpenStreet, MapBox, Bing Maps, or + custom map tiles through UI. + +### Bug Fixes + +- 632: Prevent users from changing mission while a mission is running. +- 661: Removed map view when no map is provided in default-state.json. + file. +- 712: Fixed front end hanging when user opens menu from any view + other than main view. +- 716: Removed connecting lines from disabled goals. + +### Known Issues + +- 131: Software upgrade process not documented fully. +- 609: Realsense D435 collision avoidance not fully tuned. +- 751: Wireless icon in UI doesn't work for Ubiquity hardware. +- 756: Waypoints stop turning grey when they are hit if a waypoint is + skipped. + +## 0.5.0 + +### New Features + +- Sensor Kit Options: Starter, Standard, Backpack. +- New localization module. +- Added support for UBlox F9K and F9P GNSS receivers in the + localization module. +- Added support for either single or dual Swiftnav Duro/Piksi GNSS + receiver(s) in the localization module. +- Added support for Realsense D435 camera in collision avoidance + module. +- New/updated user modifiable environment variables for sensor and + navigation tuning. +- Added a Virtual Guided tour of the application for first time users. +- Added StreetView and Bing map tiles (to existing MapBox tile). +- Allow users to specify custom map tile source. +- Added cosmetic changes to traversed waypoints as well as a robot. + status icon with ROS topic health information. + +### Bug Fixes + +- 253: Replace default camera image for camera views when stream is + unavailable. +- 281: Fixed navigation latched in a PAUSE state. +- 574: Fixed map settings page to not rerender when robots position + changes. + +### Known Issues + +- 131: Software upgrade process not documented fully. +- 609: Realsense D435 collision avoidance not fully tuned. + +## 0.4.0 + +### New Features + +- Improved wireless charger docking workflow and added ROS Noetic + docking support. +- Added option to record videos from cameras. +- Improved Docker setup to allow concurrent installation with + IndoorNav. +- Added initial support for integration with + [Formant](https://formant.io/). +- Added Docker installation support for Jackal and Warthog robots. + +### Bug Fixes + +- 480: Added rate limiter for continuous planner. +- 490: Fixed base station survey pop up to better reflect survey time. + +### Known Issues + +- 131: Software upgrade process not documented fully. + +## 0.3.0 + +### New Features + +- Upgraded from ROS Melodic to ROS Noetic. +- Published initial performance metrics. +- Updated system architecture to work in Docker containers. + +### Bug Fixes + +- 266: Allowed map offsets to be set more than once without needing to + reset them back to zero. +- 365: Updated costmap to handle large stop distances properly. +- 377: Fixed handling of goal tolerances of 0.02m or less. +- 389: Fixed issue with goal being skipped in some cases where final + heading was specified. + +### Known Issues + +- 131: Software upgrade process not documented fully. +- 150: Docking not yet implemented in Noetic. + +
diff --git a/outdoornav_user_manual_versioned_docs/version-2.1.0/safety.mdx b/outdoornav_user_manual_versioned_docs/version-2.1.0/safety.mdx new file mode 100644 index 00000000..3f2d6645 --- /dev/null +++ b/outdoornav_user_manual_versioned_docs/version-2.1.0/safety.mdx @@ -0,0 +1,139 @@ +--- +title: Safety +sidebar_label: Safety +sidebar_position: 3 +toc_min_heading_level: 2 +toc_max_heading_level: 4 +--- + +## Important Safety Information + +The use of Unmanned Ground Vehicles (UGVs) can result in unexpected and +dangerous behavior. Although Clearpath Robotics endeavors to create safe +and reliable software and systems, autonomous outdoor UGVs should not be +considered safe for unsupervised use around humans or other obstacles. +No level of safety and reliability of software and non-safety rated +hardware components is guaranteed. + +Clearpath strongly recommends that users carry out a risk assessment +related to their application and deployment of autonomous UGVs. The +ISO-12100 standard [Risk assessment and risk reduction](https://www.iso.org/standard/51528.html) provides guidance on +performing risk assessments. + +Functional safety in robotics is often achieved through the use of +safety related parts and control systems to minimize risks such as +safety LiDARs for obstacle detection. These hardware components must be +designed into the UGV hardware and can be tightly integrated with +navigation software. Clearpath Robotics recommends that this process be +undertaken after the product or process has been fully defined. It can +be a significant design effort. + +## Safety Notice Levels + +For Clearpath Robotics hardware and software, the risk level is captured +using the following types of labels. + +![](/img/outdoornav_images/safety_information.png) + +## General Hazard Labels + +Review the following to learn more about the labels that may be used on +Clearpath Robotics products. Hazards can also apply to attachments and +accessories used in conjunction with a Clearpath Robotics product. UGVs +from other providers may present additional hazards and risks. + +_General Hazards_ + +| Label | Label Title | Label Description | +|--------------------------------------------------------------------------------------|----------------------|------------------------------------------| +|
| Automatic Motion Hazard | Clearpath Robotics UGVs may begin moving suddenly, either autonomously or when being driven manually. Always be aware of Clearpath Robotics products and their potential for movement. | +|
| Crushing Risk | Objects or personnel can be crushed between the Clearpath Robotics UGV and another object. Keep hands and other objects clear of crush points at all times. Keep clear of all docking Clearpath Robotics UGVs. | +|
| Electrical Shock Risk | Clearpath Robotics UGVs contain circuitry and batteries that may cause electrical shock if not properly insulated. | +|
| Entanglement Risk | Clearpath Robotics UGVs as well as their cameras can lead to entanglement of hair or dangling materials during their rotation. Keep hair and dangling materials away from Clearpath Robotics UGVs during motion. | +|
| Environmental Hazard | Clearpath Robotics UGVs contain batteries and materials that may require special disposal methods. Consult local regulations. | +|
| Falling Object Risk | Beware of objects that may have shifted in any Clearpath Robotics UGV crate as they pose a risk of falling when opened. | +|
| High Surface Temperature Risk | UGV computer heat sinks and UGV motors can become extremely hot during operation. | +|
| Impact Risk | Clearpath Robotics UGVs travelling through a facility can potentially impact objects and personnel. Keep clear of all docking Clearpath Robotics UGVs. | +|
| Laser Radiation Risk | Clearpath Robotics UGVs may use Class 1 laser products. These provide no hazard during normal use, however it is not recommended to stare directly into the beam(s). | +|
| Material Hazard - Lithium | Lithium UGV batteries contain harmful material. Always use proper handling procedures when handling UGV batteries. | +|
| Manual Load Lifting Risk | Always use ergonomic techniques when manually lifting loads. | +|
| Pinching Risk | Keep hands and other objects clear of pinch points at all times. Keep clear of all docking Clearpath Robotics UGVs. | +|
| Radio Frequency Risk | Clearpath Robotics UGVs and/or accessories may use radio frequency (RF) radiating antennas. These provide no hazard during normal use, however prolonged exposure around the antenna is not recommended. | +|
| Tripping Hazard | Clearpath Robotics products may pose a tripping hazard. | + +## Safety Awareness + +Personnel present during the operation of an Unmanned Ground Vehicle +(UGV) need to be made aware or be accompanied by personnel who are +familiar with the specific risks and hazards associated with autonomous +mobile robots (AMR). The following checklist identifies basic topics +that should be addressed by site-specific worker and visitor safety +orientation training. + +
+ +
+ +- Proper PPE must be worn, including safety footwear (ie. steel toe). +- Crossing into the path of a moving UGV should be avoided, as well as + placing or throwing obstacles into the path of a moving UGV. + +
+ +
+ +- Be aware that a UGV can be anywhere in the operating area of the + facility at any time, and may pose a tripping hazard even when not + in motion. +- Personnel need to be aware of the UGV docking and charging areas, + where detection fields are reduced. +- Personnel should be aware that Clearpath Robotics UGVs LiDAR safety + scanners use a class 1 laser and high intensity LED. +- Personnel should keep all loose clothing and body parts away from + UGVs, accessories, attachments, and payloads, while they are in + autonomous operation. Using an Emergency Stop button is the only + acceptable manner of interacting with a Clearpath Robotics UGV or + attachment while it is being operated autonomously. + +In addition to the preceding basic items for all workers and visitors, +the following should be considered for facility personnel, including +drivers of other UGVs: + +- When required to move a product manually, personnel must ensure it + is in an Emergency Stop state or shut down completely and should not + push manually for prolonged periods. +- Alert personnel that while operating a Clearpath Robotics UGV + outside of the Autonomy State, they are solely responsible for + obstacle and collision avoidance. +- Maintenance of a Clearpath UGV not outlined in either this document + or the operations and maintenance manual can only be performed by a + Clearpath Robotics Authorized Personnel. + +To reduce the risk of harming people or damaging properties, a trained +operator must monitor the behavior of the UGV under autonomous +navigation mode at all times. The operator should use the wireless +emergency stop device to immediately avert any possible damaging or +dangerous behavior from the UGV. Failure in proper use of the software +might result in collision of the UGV into objects. + +- Ensure that low-height obstacles are removed from the potential path + of the UGV prior to operation. +- OutdoorNav Software does not have negative obstacle detection + capability. This means that your UGV will not detect stairs, cliffs + or edges and may drive off these obstacles causing harm to people or + properties as well as potentially damage the UGV. +- Adverse weather conditions may obscure obstacle detection and + avoidance data from the VLP-16 LiDAR. Obstacle detection and + avoidance may not function properly in snow, rain or fog. +- The current configurations of the OutdoorNav Software will continue + navigation if the WiFi disconnects or goes out of range. The Web UI + will reconnect once the WiFi has reconnected but certain functions + of the Web UI may be limited such as the ability to issue a stop + command or send new missions to the UGV. +- If connection of the UGV to the base station is lost (e.g., WiFi + goes out of range, low battery level, etc), UGV will not receive RTK + corrections from the base station. This can potentially decrease the + accuracy of the GPS signal which can subsequently degrade path + following performance of your system. +- Obstacle detection and avoidance is disabled during the docking and + undocking operations. Keep this area clear of people and objects. diff --git a/outdoornav_user_manual_versioned_docs/version-2.1.0/support.mdx b/outdoornav_user_manual_versioned_docs/version-2.1.0/support.mdx new file mode 100644 index 00000000..b9dc2da6 --- /dev/null +++ b/outdoornav_user_manual_versioned_docs/version-2.1.0/support.mdx @@ -0,0 +1,11 @@ +--- +title: Support +sidebar_label: Support +sidebar_position: 12 +toc_min_heading_level: 2 +toc_max_heading_level: 4 +--- + +import OutdoorNavSupport from "/components/support_outdoornav.mdx"; + + diff --git a/outdoornav_user_manual_versioned_docs/version-2.1.0/tools/_category_.json b/outdoornav_user_manual_versioned_docs/version-2.1.0/tools/_category_.json new file mode 100644 index 00000000..35283c57 --- /dev/null +++ b/outdoornav_user_manual_versioned_docs/version-2.1.0/tools/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Tools", + "position": 9 +} diff --git a/outdoornav_user_manual_versioned_docs/version-2.1.0/tools/docker_logs.mdx b/outdoornav_user_manual_versioned_docs/version-2.1.0/tools/docker_logs.mdx new file mode 100644 index 00000000..958a2c87 --- /dev/null +++ b/outdoornav_user_manual_versioned_docs/version-2.1.0/tools/docker_logs.mdx @@ -0,0 +1,25 @@ +--- +title: Docker Logs +sidebar_label: Docker Logs +sidebar_position: 1 +toc_min_heading_level: 2 +toc_max_heading_level: 4 +--- + +We have enabled the ability to view, through a web browser, the logs of all of the +running docker images on the system. All of the docker images that are related to +OutdoorNav are prefixes with the tag `app-`. To access the logs, either open the user +interface, access the **Menu** → **Tools** → **Docker Logs** or navigate to the +following [URL](http://192.168.131.1/_/logs). + +
+
+ +
Docker logs (Dozzle)
+
+
+ +The docker logs are enabled using a software called [Dozzle](https://dozzle.dev/). diff --git a/outdoornav_user_manual_versioned_docs/version-2.1.0/tools/file_browser.mdx b/outdoornav_user_manual_versioned_docs/version-2.1.0/tools/file_browser.mdx new file mode 100644 index 00000000..56b47017 --- /dev/null +++ b/outdoornav_user_manual_versioned_docs/version-2.1.0/tools/file_browser.mdx @@ -0,0 +1,24 @@ +--- +title: File Browser +sidebar_label: File Browser +sidebar_position: 2 +toc_min_heading_level: 2 +toc_max_heading_level: 4 +--- + +We have enabled the ability to view, through a web browser, the robot filesystem +for the specific version that is running. To access the file browser, either open the user +interface, access the **Menu** → **File** → **File Browser** or navigate to the +following [URL](http://192.168.131.1/_/files). + +
+
+ +
File Browser
+
+
+ +The file browser is enabled using a software called [File Browser](https://filebrowser.org/). diff --git a/outdoornav_user_manual_versioned_docs/version-2.1.0/tools/foxglove_visualization.mdx b/outdoornav_user_manual_versioned_docs/version-2.1.0/tools/foxglove_visualization.mdx new file mode 100644 index 00000000..ba6a0462 --- /dev/null +++ b/outdoornav_user_manual_versioned_docs/version-2.1.0/tools/foxglove_visualization.mdx @@ -0,0 +1,28 @@ +--- +title: Foxglove Visualization +sidebar_label: Foxglove Visualization +sidebar_position: 3 +toc_min_heading_level: 2 +toc_max_heading_level: 4 +--- + +We have enabled Foxglove visualization as part of OutdoorNav, for improved debugging +and data visualization and analysis. To access the Foxglove visualization interface for +standard OutdoorNav configurations, access the **Menu** → **Tools** → +**Foxglove Visualization** or navigate to the following [URL](http://192.168.131.1/_/foxglove). + +For UGVs running OutdoorNav that are not equipped with a base station, you must first connect the UGV's computer to a network over the 192.168.131.xxx +subnet. You will then be able to access the platform at (`platform_pc_ip_address`/\_/foxglove), where the _\_ is +the IP address of the host (UGV) computer, typically 192.168.131.1. + +
+
+ +
Foxglove layout
+
+
+ +For more information on the available Foxglove panels and how to more thoroughly use it, please consult the [Foxglove documentation](https://foxglove.dev/docs/studio). diff --git a/outdoornav_user_manual_versioned_docs/version-2.1.0/web_user_interface/_category_.json b/outdoornav_user_manual_versioned_docs/version-2.1.0/web_user_interface/_category_.json new file mode 100644 index 00000000..31b78035 --- /dev/null +++ b/outdoornav_user_manual_versioned_docs/version-2.1.0/web_user_interface/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Web User Interface", + "position": 6 +} diff --git a/outdoornav_user_manual_versioned_docs/version-2.1.0/web_user_interface/ui_manual_mode.mdx b/outdoornav_user_manual_versioned_docs/version-2.1.0/web_user_interface/ui_manual_mode.mdx new file mode 100644 index 00000000..62f4f4d4 --- /dev/null +++ b/outdoornav_user_manual_versioned_docs/version-2.1.0/web_user_interface/ui_manual_mode.mdx @@ -0,0 +1,73 @@ +--- +title: Web UI Manual Mode (Teleoperation) +sidebar_label: Web UI Manual Mode (Teleoperation) +sidebar_position: 2 +toc_min_heading_level: 2 +toc_max_heading_level: 4 +--- + +## Manual Mode Overview + +The Manual Mode in the Web UI allows the user to operate the UGV +remotely (teleoperate) by using sensors on the UGV to visualize the +environment and by using a joystick to control the motion of the UGV. + +![](/img/outdoornav_images/teleop_danger.png) + +Ensure that you have read [Safety](../safety.mdx) and are +aware of possible hazards when using this product as well as the safety +methods that can be used to stop the moving UGV. + +
+
+ +
Teleoperation Components
+
+
+ +1. **User Connections:** Shows the number of users connected to OutdoorNav. +2. **Joystick:** The joystick will allow the user to move the UGV + manually from the UI. Motion can be sent to the UGV in 360° + directions and the speed can be controlled by the distance of the + joystick from its neutral position. Four fixed direction buttons are + now present to move the UGV in purely forward/reverse directions or + clockwise/counter-clockwise. Finally, we overlay an obstacle map + on top of the joystick, representing obstacle distances from the + UGV. +3. **Speedometer:** An indicator of the UGV's current linear speed. +4. **Sensitivity Scale:** A UGV-specific scale that controls the + maximum allowable UGV velocities at each level. The default maximum + linear velocity is 1.0 meters per second and the maximum angular + velocity is 0.5 radians per second. These can be changed in the + [General Settings](./ui_overview.mdx#config-general-settings) page. + The scale levels are 100%, 80%, 50% and 20%, with the default set + to 80%. +5. **UI Lockout:** The lockout toggle that will prevent the Joystick from + sending commands to the UGV. The purpose of this is to help prevent + unwanted users from teleoperating the UGV. This feature + does not lock out the controller connected to the robot. + +## Remote Controller Connection + +If the user has a PS4 controller they can connect it to the UI directly. This +will allow user drive the UGV the same way as the controller thats connected +directly to the UGV. The controller will only function provided the UI window +is in focus. Users can also see if other connections have a controller connected +by expanding the User Connections icon as seen below. + +
+
+ +
Users connected to the UGV's UI Interface
+
+
+ +## Monitor Wireless Strength + +While teleoperating the UGV, the user will notice that the delay between +the time a command is sent and the time it is executed (and/or visible +on the UI camera views) will increase as the distance increases. This +effect will be further amplified by any obstacles between the UGV and +the base (eg. walls, vehicles, mounds, etc.). It is important to monitor +this delay and be cautious when driving the UGV with larger delay for +risk of crashing into obstacles. diff --git a/outdoornav_user_manual_versioned_docs/version-2.1.0/web_user_interface/ui_map_mode.mdx b/outdoornav_user_manual_versioned_docs/version-2.1.0/web_user_interface/ui_map_mode.mdx new file mode 100644 index 00000000..1c44916d --- /dev/null +++ b/outdoornav_user_manual_versioned_docs/version-2.1.0/web_user_interface/ui_map_mode.mdx @@ -0,0 +1,362 @@ +--- +title: Web UI Map Mode +sidebar_label: Web UI Map Mode +sidebar_position: 3 +toc_min_heading_level: 2 +toc_max_heading_level: 4 +--- + +![](/img/outdoornav_images/gps_danger.png) + +Ensure that the [Safety](../safety.mdx) document has been +read and the Operator is aware of possible hazards when using this product as well as the safety +methods that can be used to stop the moving UGV. + +The Map Mode of OutdoorNav Software uses a set of robotic +navigation modules that allows the Operator(s) to define driveable paths and +then execute missions using these maps. The UGV leverages these paths +along with specified goal points to calculate a route. Operators can +define one-way or two-way paths, speed limits for paths, allowable +deviation distances from the paths and cost factors for each path. + +## Definitions {#definitions} + +The list below defines what a "Map" and "Mission" are in relation to the Map mode view. The list also includes +their relevant components. These terms are referred to throughout this page. + +- **Mission** A Mission is a set of one or more Goalpoints. +- **Map** An Operator created map that goes over the aerial view and is used to define valid driveable + areas for a mission. +- **Point** A map point used to help define a path. +- **Path** A connection between two points that the UGV can travel along for missions. Can be defined as + one way or two way. +- **Goalpoint** A Goalpoint is a mission relevant geographical point referenced by its + position relative to the datum in meters. These points are travelled to as part of the Mission. +- **Task** A Task is an automated activity or wait time implemented as + a ROS action at a specific event or Goalpoint. +- **GoToPoint** A Goalpoint that is independent of a mission. This point is meant to be a one off + position to send the UGV to. +- **Ghost point** A transparent point that is not part of the map. This + point appears between two other points when in map edit mode. The Operator can + drag and drop this ghost point to split a path. The newly created paths will + keep the same properties as the path that was split (speed limit, cost factor, etc. ) + +## Map Mode Bottom Bar + +
+
+ +
Map Mode Bottom Bar
+
+
+ +1. **Map List:** Contains the list of Maps that Operator(s) have + created. The system also performs a health check of the map + to ensure that the UGV can't get into a stuck state. This is + shown with various icons by the map's name. + + - Valid Map: Every path is reachable within the map and the UGV should not become trapped. + + - Disconnected Points: + The map contains points that will trap the UGV if it navigates to it. The best example of these are one-way paths that lead to dead ends. + + - Disconnected Maps: + There are groups of paths that are not connected and are treated as separate maps. This may be desired by the Operator but it can lead to situations where the UGV has sections that aren't navigable.{" "} + +2. **Path Type Button:** The Path connection button that is used to set the type of path being connected between + points (one-way/two-way). When in connection mode the button will be highlighted. To disable connection mode click the button or + press the ESC key. + +3. **Point Drop Button:** Drops a point at the UGV's current location. This action can also be accomplished by pressing Shift + P. + +4. **Mission List** Contains the list of Missions that Operator(s) have created. + +5. **Goalpoint Drop Button:** The Goalpoint indicator marker on the + bottom bar allows the Operator to place a Goalpoint at the location of the UGV. + This action can also be triggered by using the shortcut key combination Shift + X. + +## Map Creation {#mapCreation} + +Before creating a mission the Operator will need to first create a map that the UGV can use +to generate paths. First ensure that the UI is in "Map Edit Mode" (select the pencil icon in the bottom bar next to +the map selection drop down). Open the drop down menu and select the "Add Map" option. From here the Operator can create +a new map from scratch, clone the current map that is open or import a previously exported map. Once created the Operator can +start placing points and building paths. If there are no maps in the system the Operator can also start placing points and the +system will automatically create a map for them with default settings. + +### Map Points + +To add points to the map, ensure that the UI is still in "Map Edit Mode" and click on the map. This will +add a point to the map and also trigger the "Connection Mode". The path type button (one-way/two-way) will +turn blue to indicate that the next point that is added will be connected to the previously created point. +An Operator may cancel this connection by pressing the ESC key or by clicking the path type button. Points can be +dragged and dropped to adjust their positions. To delete a point, right click the point and select Delete. + +While in edit mode, Ghost points will appear in the center of each path that can be dragged and dropped to split the +path. + +### Map Paths + +Paths are generally added as part of the Point placement process as mentioned above. However, there may be +cases where an Operator would like to connect existing points. To accomplish this, simply exit out of connection mode +then click on the existing points. Once the first point is clicked on, connection mode will be re-established with +the previously clicked point as the starting location. + +As paths are added they will be visible in the Map properties table, along with their relevant details. To edit a +path's details an Operator can simply right click on the path or select the gear icon for the specific path in the table. +This will open an overlay on the map that will allow the Operator to edit both one-way paths and two-way paths. In the +case of two-way paths users can keep both ways in sync with each other or vary the properties depending on the +direction. + +
+
+ +
Editing a two-way path that's in sync
+
+
+ +### Map Panel + +
+
+ +
Map Panel
+
+
+ +Enable the "Map Panel" toggle to open the details of the current map. This table will +show the maps current default settings, the "Network Path Recorder" and the general +map details. The Operator can modify the maps name, default path properties and edit path's through this +view. + +### Rename Map + +To rename the Map click the Map name as it appears in the upper left +hand corner. This should change the text into an input box that can then be +modified. Press enter/click aside to save the change. + +### Map Defaults + +When adding paths the map uses defined default values to set the maximum driving radius +and speed limit. If an Operator wishes to adjust these defaults this can be done here. This will +only affect paths created after the changes have been made. + +### Network Path Recorder + +An Operator can start a path recorder to place map points based on the UGV's position as it drives. +As the UGV drives a preview path will be generated to show generally where the path will be placed. +The Operator can then choose to save the path which will generate the relevant points and paths or cancel +the recording which will remove the preview. + +### Map Details + +The general map details includes the total number of points as well as a table that highlights each +path within the map. Operators can delete paths or edit paths through this table as needed. If a path is +one-way it will show a directional arrow next to it. Two-way paths are shown as a single row unless they +are out of sync regarding their cost factor, speed limit or maximum driving radius. + +## Mission Creation {#missionCreation} + +To create a new Mission first ensure that the UI is in "Mission Edit Mode" ( +select the rightmost pencil icon in the bottom bar). Then open the drop down menu in the bottom +bar and select the "Add Mission" option. This will allow the Operator to create a new Mission +which can then be defined with Goalpoints. + +### Goalpoint Mode + +To add new Goalpoints to a Mission while edit mode is enabled select the +"Goalpoint Mode" button. This will allow the Operator to place Goalpoints at +locations where the Operator clicks on the map. These will appear as a circle +with an arrow pointing in the direction the UGV will face upon arriving +at the Goalpoint. The arrow can be rotated by holding the CTRL key and dragging +the Goalpoint to the new direction. It can also be modified through the Mission Panel's Goalpoint Advanced Settings. +When not holding the CTRL key the Goal point can be dragged and dropped +to new locations in the same way as map Points. + +### Preview Path + +
+
+ +
Mission Path Preview
+
+
+ +As Goalpoints are placed on the map the system will generate a path preview based on the UGV's +location and the order the Goalpoints are placed in. This can be used to help determine the +general route the UGV will attempt to take. + +:::note + +**In order for the UGV to reach the Goalpoint it must be on a reachable path. The preview path will look like a segmented red line for any points that +the UGV cannot reach.** + +::: + +### Goalpoint Panel + +
+
+ +
Goalpoint Panel
+
+
+ +Enable the "Goalpoint Panel" toggle to open the list of available Goalpoints +within the selected Mission as shown in the figure above. The Operator can +now rearrange the list, add Tasks to the Goalpoints, and modify the final heading +and/or tolerance of each Goalpoint. The Operator can also modify mission properties such +as the mission name, a return to dock threshold, and apply Tasks to when the Mission starts and stops. + +### Rename Mission + +To rename the Mission click the Mission name as it appears in the upper left +hand corner. This should change the text into an input box that can then be +modified. Press enter/click aside to save the change. + +### Return to Dock + +An Operator may wish to add a flag to the mission to indicate when and if the UGV should +return to the dock while executing the mission. When enabled, the Operator can input a +battery percentage that once reached the UGV will begin navigating back to the specified +dock or to the closest dock. They can then set the minimum battery life before the UGV +is expected to resume the mission. + +### Mission Tasks + +A Mission can have Tasks assigned to when it starts and when it stops. These +Tasks will run in the order they are listed in and will always run whenever the Mission +starts or stops. + +### Rearrange List of Goalpoints + +Goalpoints can be rearranged in order of operation in the list. To do this, +enable the "Goalpoints Panel" toggle to access the list of Goalpoints. Here, the +Operator will be able to drag and drop the Goalpoints to reorder them. + +### Add Tasks to Goalpoint {#add-task} + +
+
+ +
Add Task to Goalpoint
+
+
+ +To add a Task to a Goalpoint: + +1. Click the "+" icon (beside the Gear icon) in the Goalpoint row the Task is + to be added to. + +2. Click the "Add Task" button that has appeared. + +3. Select the Task from the dropdown list. Standard Goalpoint icons will be + decorated accordingly depending on the task selected. Goalpoints in the + table will also have a small icon to indicate if tasks are assigned to the + Goalpoint accordingly. + +4. The check box next to the Task name controls mission behaviour in the event that the Task fails. If the checkbox is + checked the Mission will proceed to the next step in it's process, such as the next task or navigating to the next Goalpoint. + If it's not checked, the Mission will become cancelled upon the Task's failure. + +5. Click the Gear icon next to the selected Task to modify or add required Task testings. + +### Advanced Settings + +#### Goalpoint Heading + +When creating a Goalpoint, the Operator has the option of setting a final heading +for the Goalpoint. For example, when creating a Goalpoint at an inspection point, +the Operator may want the UGV to navigate and stop facing a certain +direction. In [Goalpoint Panel](#goalpoint-panel), the list of +Goalpoints can be seen and the advanced settings of each Goalpoint can be accessed +by clicking the "Gear" icon. + +To set the Goalpoint's final heading, the Operator will need to check the +"Final Heading Enabled" checkbox and enter the heading value in +degrees. The heading indicator on the top bar can be used to help set +this value. See the figure below showing the advanced settings. + +:::note + +Goalpoints that have a heading or tolerance assigned to them will show a different colour +on their settings icon. + +::: + +
+
+ +
Goalpoint Advanced Settings
+
+
+ +This heading is the same heading that is applied to the Goalpoint icon's arrow direction. + +#### Goalpoint Tolerance + +When creating a Mission, the Operator has the option of setting a specific +tolerance for each Goalpoint. By default, the Goalpoint position and orientation +tolerances are 0.3 meters and 180°, respectively. If a specific Goalpoint +requires that the tolerances be either increased or decreased, these +values can be modified in the advanced settings. For example, if it's +required that the position and/or orientation at a Goalpoint be very accurate, +such as 0.1 meters position and 5° orientation, or looser at 1.0 meter +position, this can be done within these settings. + +In [Goalpoint Panel](#goalpoint-panel), the list of Goalpoints can be +seen and the advanced settings of each Goalpoint can be accessed by clicking +the "Gear" icon. To set the Goalpoint's tolerance, the Operator will need to +check the "Goalpoint Tolerance Enabled" checkbox and enter the position and +orientation values, in meters and degrees, respectively. + +## Mission Execution {#missionExecution} + +### Start Mission + +In the bottom bar of the UI, the Operator has the ability to start the currently selected Mission by +clicking the "Play" button . + +When a Mission has been started the Play button will turn green. + +### Pause Mission + +At the bottom of the UI, the Operator has the ability to pause the currently +running mission by clicking the "Pause" button . When the +mission has been paused this button will turn yellow. Pausing a mission +allows the Operator to take time to look around with the camera or to +teleoperate the UGV to a nearby location to perform an inspection. For +ease of operation, the Operator must PAUSE the active mission if the Operator +wants to teleoperate the UGV. + +### Cancel Mission/Task + +At the bottom of the UI, the Operator has the ability to stop the currently +running mission or task by clicking the "Stop" button . When the +mission/task has been cancelled this button will turn red. The name of +the mission/task will be shown to be cancelled in the feedback bar. + +### Navigate to GoToPoint + +
+
+ +
GoToPoint with preview path
+
+
+ +When a Map has been created a user can right click on a path or a path's driveable area to place a GoToPoint. This +point will be a single point that will also create a small overlay to allow users to start or cancel the "Go To" +execution. Before starting the execution the GoToPoint can be dragged to any driveable area or rotated using the CTRL +key just like with Goalpoints. + +A user can also right click on any Point of Interest that has the "Go To" tag and navigate to it in the same way. diff --git a/outdoornav_user_manual_versioned_docs/version-2.1.0/web_user_interface/ui_overview.mdx b/outdoornav_user_manual_versioned_docs/version-2.1.0/web_user_interface/ui_overview.mdx new file mode 100644 index 00000000..2628753b --- /dev/null +++ b/outdoornav_user_manual_versioned_docs/version-2.1.0/web_user_interface/ui_overview.mdx @@ -0,0 +1,510 @@ +--- +title: Web UI Overview +sidebar_label: Web UI Overview +sidebar_position: 1 +toc_min_heading_level: 2 +toc_max_heading_level: 4 +--- + +The Web User Interface (Web UI) provides an easy, graphical, means to +control both manual and autonomous operation of your UGV. The following +sections outline: the components and views of the UI, the details of +operating in manual mode, and the details of operating in autonomous +mode. + +## Main Components + +
+
+ +
UI Main Components
+
+
+ +1. **Menu:** A dropdown menu allowing the user to access the Dashboard + (ie. Home), File, Settings, Autonomy, Tools, and Help. + +2. **Feedback Bar:** The feedback bar will display information + regarding the execution state of the navigation and of any Tasks + being executed. + +3. **Path Progress Meter:** A meter indicating the percentage complete + of a Mission. + +4. **UGV Position:** The UGV's X and Y position in the world frame + relative to the Datum. Can also be shown in Lat/Lon coordinates + +5. **UGV Heading:** The UGV's heading in the world frame. 0 degrees is North, 90 degrees is East, 180 degrees is South and 270 degrees is West. + +6. **Status Indicator:** The status indicator will display information + regarding various UGV status monitors such as the Emergency Stop, + Surveying, etc. When the UGV is fully operational, the indicator + will be green. Operators can click on the status indicator to see more details + pertaining to the current state as well as past messages. + +7. **GPS Status Indicator:** The GPS status indicators will display GPS + signal accuracy for position (POS indicator), heading (DIR + indicator), and sensor fusion (FUS indicator). + Green indicators represent RTK accuracy and are + currently required for accurate autonomous navigation. Yellow and orange + indicators represent SBAS and SPP accuracy respectively and noticeable + oscillations may occur in such cases. Red indicators mean no GPS signal + and autonomous navigation missions should not be started. + +8. **Battery Life Indicator:** The UGV's battery life indicator. + + :::note + + If the indicator is stuck at 50%, that means that your UGV does not + have a supported battery management system and this indicator is not + active. + + ::: + +9. **Views List:** A dropdown list of available views, detailed later + in this section. Some of the available views are Map, and Camera views etc. + +10. **Lights Control:** If the UGV is equipped with software controllable lights they can be + controlled here. + +11. **Mission Execution Buttons:** These buttons allow users to Start, Pause and Stop an + autonomous mission. + +By opening the dropdown list "Views", on the right side of the UI, the +Operator can access the following views: + +- Map View +- PTZ Camera View (if available) +- Front/Back Camera View (if available) + +## Map View + +
+
+ +
Map View
+
+
+ +1. **Zoom-to-Robot Button:** This button will zoom the map to where the UGV + is presently located. +2. **Zoom-to-Fit Button:** This button will zoom the map to where there + is activity (ie. where the datum is set or where features have been + set on the map.) +3. **Table Button:** This button opens the Map/Mission table. When in Waypoint Mode it will open the table directly, while in + Map mode it will allow users to select the table to open or open a table based on which mode is being edited. +4. **Edit Mode Buttons:** This button will allow the user to set the current map edit mode. + By clicking the button, a panel opens on the right with the available modes to edit with. +
+
+ +
Edit Modes
+
+
+5. **UGV + Dock:** The robot represents the UGV position, with the red arrow pointing forward. + Its location is its position in the world frame and its orientation is the heading in + the world frame. +6. **Datum (not shown):** The blue Waypoint marker on the map view represents the + location of the reference point (ie. (x,y)=(0,0)) of the world + coordinate system. The world (ie. map) coordinate system is in the + ENU convention. + +## Camera Views {#camera-views} + +:::note + +If PTZ and/or Front/Back camera(s) are included on the UGV, their feeds +can be viewed through the UI and the PTZ can be controlled through the +UI. If not, there will not be any PTZ, Front/Back view(s) in the list of +available views. + +::: + +### Pan-Tilt-Zoom (PTZ) View {#ptz-view} + +
+
+ +
PTZ Camera View
+
+
+ +1. **Tilt Slider:** The left slider can be used to tilt the camera in a + vertical motion, (ie. upwards or downwards motion). By default, the + slider is at its neutral ("zero") position. +2. **Pan Slider:** The bottom slider can be used to pan/rotate the + camera, (ie. rotational motion). By default, the slider is at its + neutral ("zero") position. +3. **Zoom Slider:** The right slider can be used to zoom the camera + feed. By default, the slider is at its neutral ("zero") position. +4. **Start/Stop Recording:** This button will start/stop video recording for the + camera and store the video file on the UGV. +5. **Save Image:** Depending on the current camera view selected, this + button will save an image to the computer/tablet running the UI. + Images will be saved to the location in which your browser saves + files. +6. **Camera Positions List:** Deprecated feature. +7. **Save Camera Position:** Deprecated feature. + +#### Q62 PTZ Features + +
+
+ +
Q62 PTZ Camera Controls
+
+
+ +1. **Virtual PTZ Joystick:** This joystick can be dragged away from the center + of the screen and the camera will follow. The further away from the center + the user drags the joystick, the faster the camera moves. +2. **Q62 Wiper:** Future feature. +3. **Q62 Defogger:** Future feature. +4. **Q62 Infrared:** Future feature. + +The Q62 PTZ Camera has the ability to move the camera in other ways besides the +sliders on the screen. Some of these are shown below in brief video clips. + +
+
+
+
+ +### Front and Back Views + +
+
+ +
Front View
+
+
+ +
+
+ +
Back View
+
+
+ +## Settings {#config-general-settings} + +The settings section can be found accessing **Menu** → **SETTINGS** and allows the user to modify +some settings, both for the UI and the UGV. + +
+
+ +
Settings Page
+
+
+ +### Teleop Settings + +#### Maximum Linear Speed + +The maximum linear speed (forwards/backwards) at which the robot will +be allowed to operate. + +#### Maximum Angular Speed + +The maximum speed at which the robot will be allowed to turn. + +### Map Settings + +#### Coordinate Display Format + +The Operator can change the coordinate space from X/Y relative to the Datum to Latitude/Longitude. + +#### Map Tile Source + +Select between [OpenStreetMap](https://www.openstreetmap.org/), +[MapBox](https://www.mapbox.com/), and Custom map tiles. + +The Web UI ships with access to free +[OpenStreetMap](https://www.openstreetmap.org/) maps. Aerial view +requires access to third-party aerial maps or your own aerial maps. + +The Web UI is pre-configured for use with +[MapBox](https://www.mapbox.com/) once a suitable map key has been +acquired. It offers a free tier that will be sufficient in +almost all cases. + +##### Using OpenStreetMap Maps + +No key is required to use +[OpenStreetMap](https://www.openstreetmap.org/) maps. + +##### Using MapBox Maps + +Using [MapBox](https://www.mapbox.com/) maps requires a key, which can +then be used by the Web UI. + +1. Acquire a MapBox key from the [MapBox + website](https://account.mapbox.com/auth/signup/). Review the + license terms and select the appropriate plan. In most cases, the + free tier will be sufficient. +2. Back in the Web UI, select **MapBox**. +4. Copy the MapBox key from Step 1 into the input box. +5. Click **Save All Settings**. + +##### Using Custom Maps {#using_custom_maps} + +Custom Maps allow you to use another set of maps in XYZ format, either +from a third-party map provider or from maps that you have generated on +your own, such as from drone aerial images. Custom maps can be selected +by using the steps below. + +1. Ensure that the maps are accessible on an internal network or on the + Internet by the device that is being used to display the Web UI, + such as a laptop, tablet, or desktop computer. +2. Ensure that the directory structure for the individual tiles is well + defined. See the section below for details on + [Preparing Custom Map Tiles from Drone Aerial Images](#preparing_custom_map_tiles). +3. In the Web UI, select **Custom**. +5. Enter the network path for the maps into the **Custom URL** field. + If hosting the maps on your local computer, this will be similar to + http://localhost:8000/{z}/{x}/{-y}.png. Note how the + URL is parameterized with `{z}`, `{x}`, and `{-y}` values. This will + need to be adapted to match the directory structure of your map tile + images. +6. Click **Save All Settings**. + +##### Preparing Custom Map Tiles from Drone Aerial Images {#preparing_custom_map_tiles} + +In some cases, it is desirable to create your own maps rather than using +third party maps which might be outdated. One way to do this is to use a +drone to capture aerial images and convert those images into map tiles. +While there are many ways to accomplish this, one approach is outlined +below. + +1. Use a drone to collect top-down photos covering the area of + interest. It is highly recommended to use a drone control app that + allows you to specify the area of interest and desired image overlap + (recommended \~75%) and takes care of coverage planning, drone + control, and image acquisition. + +2. Perform ortho-mosaicing/ortho-rectification to stitch the collected + images together into a single orthographic image. [Open Drone + Map](https://www.opendronemap.org/) is a popular open source project + that Clearpath has used for stitching, but there are also paid + services that automate the process. + +3. Georeference the orthographic image. One way to do this is to define + the locations of well-defined features (sewer grates, utility holes, + etc.) based on their known positions, such as their position data + from an existing mapping service (e.g., Google Maps). Open source + tools, such as [QGIS](https://www.qgis.org/en/site/) can help with + this process. + +4. Generate the map tiles. Using Ubuntu, this can be accomplished with + the following commands, where `GEOREFERENCED_IMG.tif` is the output + of the previous step. + + ``` + sudo apt install gdal-bin + gdal2tiles.py + ``` + +5. Use a web server to host the tiles locally. Using Ubuntu, one way to + accomplish this is to use the commands below, which will make the + tiles available at: \. + + ``` + cd /base/directory/of/tiles + python3 -m http.server + ``` + +Once your map tiles are available on the network, you can follow the +steps in [Using Custom Maps](#using_custom_maps) to have the +Web UI use your custom tiles. + +#### Datum Latitude, Datum Longitude + +The datum is represented by a blue marker on the +map and should be set to a location within 10km of the test site. +The user can change this value. Enter the +new values and click the "Set Datum Position" button. + +### Advanced Settings + +Only adjust these settings if advised to by [Support](../support). + +## Autonomy Features + +To operate the UGV autonomously, use [Map Mode](ui_map_mode.mdx). +The key features of Map Mode are outlined below. + +### Tasks + +When running a mission autonomously the user can assign tasks to various events. These tasks, along with their decoration icons, are found below: + +- Dock Robot: + Will dock the UGV to begin charging the UGV's battery. + +- Move PTZ: + Will move the PTZ camera to the position selected in the task settings. + + Settings: Select the camera position. See + [Pan-Tilt-Zoom (PTZ) View](ui_overview.mdx#ptz-view) for details on how to + save camera positions. + +- Save Image: + Will save an image using one of the UGV camera(s) to the /opt/onav/saved_files/media/... directory and can be retrieved using a tool such as FileZilla or by navigating to the Files section in the hamburger menu. + + Settings: Select which camera the image will be saved from. + +- / + Start/Stop Video Recording: + Will start/stop recording video using one of the UGV camera(s) to the /opt/onav/saved_files/media/... folder and can be retrieved using a tool such as FileZilla or by navigating to the Files section in the hamburger menu. + + Settings: Select which camera the recording will come from. + +- Start/Stop Audio Recording: + Will start/stop recording audio using one of the UGV microphone(s) to the /opt/onav/saved_files/media/... folder and can be retrieved using a tool such as FileZilla or by navigating to the Files section in the hamburger menu. + + Settings: Select which microphone the recording will come from. + +- Undock UGV: + Will undock the UGV from the autocharge dock. Once completed, the UGV can be sent on autonomous missions. + +- Wait: + Will pause and wait for the specified number of seconds at the end of the Waypoint. + + Settings: Enter the amount of time to wait, in seconds. + +- Inspect POI: + Will move the PTZ camera to inspect a specified Point of interest. + + Settings: Select the inspectable Point of Interest and enter in the zoom level to use. + +- New Custom Task: + Creates a new custom task that is defined by the user. +
+
+ +
Custom Task Settings Dialog
+
+
+ + - Task Name: Task name that will show up in the list of available tasks on the UI. + - Action Server Name: The namespace of the custom task action server. + - Float CSV: A list of comma seperated float values that consist of the numerical inputs to the custom task. + - String CSV: A list of comma seperated string values that consist of the semantic inputs to the custom task. + +:::note + +If a Waypoint/Goalpoint has more than one task assigned to it, the icon will +be replaced with a sheet of paper icon like so: + +::: + +### Points of Interest + +Points of Interest (POI) can be added onto the map, marking a location or an object that is persistent. +The intended use for the points of interest feature is to allow the +user to set up locations that they know will almost never change and to be able to navigate to and inspect these +locations. + +#### Creating POIs + +To create a POI, ensure that you are in "POI edit mode" (Hotkey, e+4). Click on the map to place your POI and assign +the POI a name. You also have the ability on creation to assign a heading, tags and custom fields (all optional). + +
+
+ +
Point of Interest creation
+
+
+ +#### Editing POIs + +To edit an existing POI, right click the POI and select Edit. This will allow you to modify any of the existing properties +of the POI. If you want to simply modify the heading of a POI, you can use the CTRL hotkey to enable heading modification +and rotate the POI to your desired heading. See video below for an example of the editing the heading of a POI using the +(CTRL hotkey). + +
+
+ +
Rotating a Point of Interests heading
+
+
+ +#### Predefined actions + +If a POI is assigned one of the two predefined tags, `goto` and/or `inspect`, the user will have the ability to perform +some quick actions when they right click the POI. If the POI has a `goto` tag, +the user will see a `Go To` option in the right click options that will autonomously navigate the UGV to the location of +the POI (if it is within the bounds of the current network). If the POI has an `inspect` tag, the user will see an `Inspect` +option in the right click options that will move the PTZ camera to view the POI when clicked. See the below image for an +example of a POI that has both the `goto` and `inspect` tags, and therefore has the `Go To` and `Inspect` action options +when right clicked. + +
+
+ +
Point of Interest actions
+
+
+ +#### Creating Missions from POIs + +If the user wants your UGV to navigate to a set of predefined locations they can create POI's for each of these stops and leverage +them accordingly. By entering the network mission edit mode (hotkey: e+3), the user can simply click on the POIs in order of +traversal to create your network mission. The network goals that are created on each click of a POI will place a Goal at the +exact location of the POI and will also use the heading that has been defined by the POI. + +
+
+ +
Creating a Goal from a POI
+
+
diff --git a/outdoornav_user_manual_versioned_sidebars/version-2.1.0-sidebars.json b/outdoornav_user_manual_versioned_sidebars/version-2.1.0-sidebars.json new file mode 100644 index 00000000..2782dc0f --- /dev/null +++ b/outdoornav_user_manual_versioned_sidebars/version-2.1.0-sidebars.json @@ -0,0 +1,8 @@ +{ + "sidebar": [ + { + "type": "autogenerated", + "dirName": "." + } + ] +} diff --git a/outdoornav_user_manual_versions.json b/outdoornav_user_manual_versions.json index cafb07c5..99f368fc 100644 --- a/outdoornav_user_manual_versions.json +++ b/outdoornav_user_manual_versions.json @@ -1,4 +1,5 @@ [ + "2.1.0", "2.0.0", "0.14.0", "0.13.0", diff --git a/static/versions.js b/static/versions.js index 53ea7253..fd70a694 100644 --- a/static/versions.js +++ b/static/versions.js @@ -1,5 +1,5 @@ const versions = Object.freeze({ - "outdoornav": "0.14.0", + "outdoornav": "2.1.0", }); export default versions;