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