跳到主要内容

update_forbidden_area

服务类型: map_manager/srv/AddForbiddenArea

服务名: /forbidden/update

描述​

更新已有禁区。端点复用 AddForbiddenArea 服务类型,以 area.id 的数值 ID 定位目标;成功后 ID 保持不变。禁区必须为四顶点轴对齐矩形,且服务不会创建虚拟墙。GRW 忽略 floor_id。

请求 (Request)​

字段类型描述
floor_idstringIDL 字段;GRW 忽略该值。
areamap_manager/msg/ForbiddenAreaid 为待更新数值 ID;boundary.points 必须是四顶点轴对齐矩形。

响应 (Response)​

字段类型描述
successbool操作是否成功。
messagestring结果消息。
area_idint32成功时为被更新禁区的原数值 ID。
wall_idsint32[]IDL 响应字段;GRW 不创建虚拟墙,不应依赖该字段。

使用示例​

运行前请先完成环境准备:命令行示例需设置 ROBOT_NAMESPACE;Python/C++ 示例使用相对服务名,运行时追加 --ros-args -r __ns:=$ROBOT_NAMESPACE。

命令行调用​

Bash
ros2 service call $ROBOT_NAMESPACE/forbidden/update map_manager/srv/AddForbiddenArea \
"{area: {id: 17, boundary: {points: [{x: 1.0, y: 1.0}, {x: 4.0, y: 1.0}, {x: 4.0, y: 3.0}, {x: 1.0, y: 3.0}]}}}"

相关接口:AddForbiddenArea、ListForbiddenAreas、RemoveForbiddenArea。