跳到主要内容

delete_map_archive

服务类型: map_manager/srv/SaveCompositeMap

服务名: /delete_map_archive

描述​

删除 map_path 指定的已保存地图归档。该服务复用 SaveCompositeMap 的请求和响应类型,仅删除归档目录,不清空当前运行时地图。

map_path 只能指向配置的 archive root 的直接子目录,不能指定任意文件系统路径、archive root 本身或更深层级的目录。默认 archive root 为 /opt/fftai/nav/nav-map,因此默认路径格式为 /opt/fftai/nav/nav-map/<map-id>。服务校验路径后只删除该归档目录及其内容,不删除运行时地图。

请求 (Request)​

字段类型描述
map_pathstring要删除的归档目录路径;必须是配置的 archive root 的直接子目录,默认格式为 /opt/fftai/nav/nav-map/<map-id>
compressbool复用服务类型中的接口字段;删除操作不读取其值

响应 (Response)​

字段类型描述
successbool操作是否成功
messagestring结果消息或错误信息
saved_pathstring请求中的 map_path

使用示例​

以下示例使用默认 archive root /opt/fftai/nav/nav-map。部署修改 archive root 后,应将示例中的根目录替换为配置值,但 map_path 仍必须是该根目录的直接子目录。

命令行调用​

Bash
ros2 service call /delete_map_archive map_manager/srv/SaveCompositeMap \
"{map_path: '/opt/fftai/nav/nav-map/office', compress: false}"

Python 示例​

Python
import rclpy
from rclpy.node import Node
from map_manager.srv import SaveCompositeMap


rclpy.init()
node = Node('map_archive_deleter')
client = node.create_client(SaveCompositeMap, '/delete_map_archive')
client.wait_for_service()
request = SaveCompositeMap.Request()
request.map_path = '/opt/fftai/nav/nav-map/office'
request.compress = False
future = client.call_async(request)
rclpy.spin_until_future_complete(node, future)
print(future.result().message)
node.destroy_node()
rclpy.shutdown()

C++ 示例​

C++
#include <memory>
#include <rclcpp/rclcpp.hpp>
#include <map_manager/srv/save_composite_map.hpp>

auto node = std::make_shared<rclcpp::Node>("map_archive_deleter");
auto client = node->create_client<map_manager::srv::SaveCompositeMap>(
"/delete_map_archive");
client->wait_for_service();

auto request = std::make_shared<map_manager::srv::SaveCompositeMap::Request>();
request->map_path = "/opt/fftai/nav/nav-map/office";
request->compress = false;
auto future = client->async_send_request(request);
if (rclcpp::spin_until_future_complete(node, future) ==
rclcpp::FutureReturnCode::SUCCESS) {
RCLCPP_INFO(node->get_logger(), "%s", future.get()->message.c_str());
}

相关接口​