跳到主要内容

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 行为
idint32禁区的数值标识;查询返回,更新时用于定位目标。新增时由 GRW 分配。
boundarygeometry_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),
]

相关接口​