Skip to content

Commit e9519ed

Browse files
author
Jorge Santos Simón
authored
Create new service FindValidPose (#316)
1 parent d3806cd commit e9519ed

File tree

4 files changed

+35
-3
lines changed

4 files changed

+35
-3
lines changed

mbf_msgs/srv/CheckPath.srv

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,6 @@ uint8 UNKNOWN = 3 # path is partially in unknown spac
2121
uint8 OUTSIDE = 4 # path is partially outside the map
2222

2323
uint32 last_checked # index of the first pose along the path with return_on state or worse
24-
uint8 state # path worst state (until last_checked): FREE, INFLATED, LETHAL, UNKNOWN...
24+
uint8 state # path worst state (until last_checked): FREE, INSCRIBED, LETHAL, UNKNOWN...
2525
uint32 cost # cost of all cells traversed by path within footprint padded by safety_dist
2626
# or just by the path if path_cells_only is true

mbf_msgs/srv/CheckPoint.srv

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,5 @@ uint8 LETHAL = 2 # point is in collision
1010
uint8 UNKNOWN = 3 # point is in unknown space
1111
uint8 OUTSIDE = 4 # point is outside the map
1212

13-
uint8 state # point state: FREE, INFLATED, LETHAL, UNKNOWN or OUTSIDE
13+
uint8 state # point state: FREE, INSCRIBED, LETHAL, UNKNOWN or OUTSIDE
1414
uint32 cost # cost of the cell at point

mbf_msgs/srv/CheckPose.srv

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,5 +17,5 @@ uint8 LETHAL = 2 # robot is partially in collision
1717
uint8 UNKNOWN = 3 # robot is partially in unknown space
1818
uint8 OUTSIDE = 4 # robot is partially outside the map
1919

20-
uint8 state # pose state: FREE, INFLATED, LETHAL, UNKNOWN or OUTSIDE
20+
uint8 state # pose state: FREE, INSCRIBED, LETHAL, UNKNOWN or OUTSIDE
2121
uint32 cost # total cost of all cells within footprint padded by safety_dist

mbf_msgs/srv/FindValidPose.srv

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# Find the closest free pose to the given one, within the given linear and angular tolerances.
2+
#
3+
# A pose is considered free if the robot footprint there is entirely inside the map and neither in
4+
# collision nor unknown space.
5+
#
6+
# If no free pose can be found, but we find one partially in unknown space, or partially outside the map,
7+
# we will return it and set state to the corresponding option (unknown space takes precedence).
8+
# Otherwise state will be set to LETHAL.
9+
#
10+
# You can also instruct this service to use current robot's pose, instead of providing one.
11+
12+
uint8 LOCAL_COSTMAP = 1
13+
uint8 GLOBAL_COSTMAP = 2
14+
15+
geometry_msgs/PoseStamped pose # the starting pose from which we start the search
16+
float32 safety_dist # minimum distance allowed to the closest obstacle
17+
float32 dist_tolerance # maximum distance we can deviate from the given pose during the search
18+
float32 angle_tolerance # maximum angle we can rotate the given pose during the search
19+
uint8 costmap # costmap in which to check the pose
20+
bool current_pose # check current robot pose instead (ignores pose field)
21+
bool use_padded_fp # include footprint padding when checking cost; note that safety distance
22+
# will be measured from the padded footprint
23+
---
24+
uint8 FREE = 0 # found pose is completely in traversable space
25+
uint8 INSCRIBED = 1 # found pose is partially in inscribed space
26+
uint8 LETHAL = 2 # found pose is partially in collision
27+
uint8 UNKNOWN = 3 # found pose is partially in unknown space
28+
uint8 OUTSIDE = 4 # found pose is partially outside the map
29+
30+
uint8 state # found pose's state: FREE, INSCRIBED, LETHAL, UNKNOWN or OUTSIDE
31+
uint32 cost # found pose's cost (sum of costs over all cells covered by the footprint)
32+
geometry_msgs/PoseStamped pose # the pose found (filled only if state is not set to LETHAL)

0 commit comments

Comments
 (0)