Skip to main content

unsafe_traversal

Includes action to move between two points unsafely and service to switch to unsafe parameters.

This package is maintained by:

Prerequisites

This package depends on the following ROS packages:

  • catkin (buildtool)
  • message_generation (build)
  • message_runtime (exec)
  • rospy
  • rosservice
  • actionlib
  • dynamic_reconfigure
  • geometry_msgs
  • actionlib_msgs
  • nav_msgs

Usage

Run the node:

rosrun unsafe_traversal unsafe_traversal

Warning Any interactions with this node should be done in a "stop the world" fashion whereby all other processes which have the potential to move the robot must cease in order to minimise the potential of a crash.

Warning ❗ This service does not currently tuck the arm or change the speed of the robot.

Basic Service Usage

Switch to unsafe mode:

rosservice call /unsafe_traversal/set_unsafe_traversal true

Switch back:

rosservice call /unsafe_traversal/set_unsafe_traversal false

Or use the helper script:

rosrun unsafe_traversal test_service

Action Usage

This node provides two actions:

  • /unsafe_traversal/move_to_goal (unsafe_traversal.msg.MoveToGoalAction): move to start pose aligned to the end pose then move to the end pose
  • /unsafe_traversal/align_to_goal (unsafe_traversal.msg.AlignToGoalAction): align from start pose to end pose

You can test these by editing test_move_action or test_align_action in the scripts folder.

Test Plan Viability

To test whether a plan is viable (can be traversed in a straight line), you can use the viability service.

This provided under the service /unsafe_traversal/check_if_plan_is_viable.

You must provide:

# starting position
geometry_msgs/PoseStamped start_pose

# end position
geometry_msgs/PoseStamped end_pose

And you will get back:

# check if viable
bool viable

# the difference between ideal and real plans
float64 raw_error

Example

Ask the package maintainer to write a doc/EXAMPLE.md for their package!

Technical Overview

Ask the package maintainer to write a doc/TECHNICAL.md for their package!

ROS Definitions

Launch Files

This package has no launch files.

Messages

This package has no messages.

Services

DeterminePathViability

Request

FieldTypeDescription
start_posegeometry_msgs/PoseStampedstarting position
end_posegeometry_msgs/PoseStampedend position

Response

FieldTypeDescription
viableboolcheck if viable
raw_errorfloat64the difference between ideal and real plans

LaserDist

Request

FieldTypeDescription
fov_degreesfloat32

Response

FieldTypeDescription
distfloat32

ChangeTraversalParameters

Request

FieldTypeDescription
unsafebool

Response

FieldTypeDescription

Actions

MoveToGoal

Goal

FieldTypeDescription
start_posegeometry_msgs/PoseStampedfirst point to start at
end_posegeometry_msgs/PoseStampedsecond point to move to

Result

FieldTypeDescription
successboolresult

Feedback

FieldTypeDescription

AlignToGoal

Goal

FieldTypeDescription
start_posegeometry_msgs/PoseStampedfirst point to position at
end_posegeometry_msgs/PoseStampedsecond point to face towards

Result

FieldTypeDescription

Feedback

FieldTypeDescription