forbidden_area
消息类型: map_manager/msg/ForbiddenArea
描述
禁止区域定义,机器人不得进入该区域。
GRW 使用范围
GRW 通过 /forbidden/add、/forbidden/list、/forbidden/update 和 /forbidden/remove 管理当前地图的禁区。禁区以数值 id 和 boundary 表示:边界必须恰好包含四个顶点,且四点构成轴对齐矩形;其他形状会失败。新增成功后服务返回数值 area_id,更新时使用 id 定位目标。相关服务中的 floor_id 为 IDL 兼容字段,GRW 忽略该值。禁区服务不会自动创建或删除虚拟墙。
字段定义
字段
| 字段名 | 类型 | GRW 行为 |
|---|---|---|
| id | int32 | 禁区的数值标识;查询返回,更新时用于定位目标。新增时由 GRW 分配。 |
| boundary | geometry_msgs/Polygon | 禁区边界;points 必须是四顶点轴对齐矩形。 |
使用示例
在服务中使用
Bash
ros2 service call /forbidden/add map_manager/srv/AddForbiddenArea \
"{area: {boundary: {points: [{x: 0.0, y: 0.0}, {x: 2.0, y: 0.0}, {x: 2.0, y: 2.0}, {x: 0.0, y: 2.0}]}}}"
Python 中构造
Python
from geometry_msgs.msg import Point32, Polygon
from map_manager.msg import ForbiddenArea
area = ForbiddenArea()
area.id = 1
area.boundary = Polygon()
area.boundary.points = [
Point32(x=0.0, y=0.0, z=0.0),
Point32(x=2.0, y=0.0, z=0.0),
Point32(x=2.0, y=2.0, z=0.0),
Point32(x=0.0, y=2.0, z=0.0),
]
相关接口
- AddForbiddenArea - 添加禁区
- ListForbiddenAreas - 列出禁区
- UpdateForbiddenArea - 更新禁区
- RemoveForbiddenArea - 删除禁区