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
Field | Type | Description |
---|---|---|
start_pose | geometry_msgs/PoseStamped | starting position |
end_pose | geometry_msgs/PoseStamped | end position |
Response
Field | Type | Description |
---|---|---|
viable | bool | check if viable |
raw_error | float64 | the difference between ideal and real plans |
LaserDist
Request
Field | Type | Description |
---|---|---|
fov_degrees | float32 |
Response
Field | Type | Description |
---|---|---|
dist | float32 |
ChangeTraversalParameters
Request
Field | Type | Description |
---|---|---|
unsafe | bool |
Response
Field | Type | Description |
---|
Actions
MoveToGoal
Goal
Field | Type | Description |
---|---|---|
start_pose | geometry_msgs/PoseStamped | first point to start at |
end_pose | geometry_msgs/PoseStamped | second point to move to |
Result
Field | Type | Description |
---|---|---|
success | bool | result |
Feedback
Field | Type | Description |
---|
AlignToGoal
Goal
Field | Type | Description |
---|---|---|
start_pose | geometry_msgs/PoseStamped | first point to position at |
end_pose | geometry_msgs/PoseStamped | second point to face towards |
Result
Field | Type | Description |
---|
Feedback
Field | Type | Description |
---|