update_forbidden_area
服务类型: map_manager/srv/AddForbiddenArea
服务名: /forbidden/update
描述
更新已有禁区。端点复用 AddForbiddenArea 服务类型,以 area.id 的数值 ID 定位目标;成功后 ID 保持不变。禁区必须为四顶点轴对齐矩形,且服务不会创建虚拟墙。GRW 忽略 floor_id。
请求 (Request)
| 字段 | 类型 | 描述 |
|---|---|---|
| floor_id | string | IDL 字段;GRW 忽略该值。 |
| area | map_manager/msg/ForbiddenArea | id 为待更新数值 ID;boundary.points 必须是四顶点轴对齐矩形。 |
响应 (Response)
| 字段 | 类型 | 描述 |
|---|---|---|
| success | bool | 操作是否成功。 |
| message | string | 结果消息。 |
| area_id | int32 | 成功时为被更新禁区的原 数值 ID。 |
| wall_ids | int32[] | 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。