rpos::robot_platforms::SlamwareCorePlatform类

SlamwareCorePlatform对象代表一个基于Slamware的机器人,用以获取设备的状态、控制设备的行为。

头文件

rpos/robot_platforms/slamware_core_platform.h

适用于

  • Slamware
  • Mapper (部分)

父类

继承自rpos::core::RobotPlatform

构造器

SlamwareCorePlatform(boost::shared_ptr<detail::SlamwareCorePlatformImpl> impl);

该构造器仅限SDK内部使用

SlamwareCorePlatform(const SlamwareCorePlatform&);

拷贝构造函数

运算符

SlamwareCorePlatform& operator=(const SlamwareCorePlatform&);

赋值运算符

静态方法

static SlamwareCorePlatform connect(const std::string& host, int port, int timeoutInMs = 10000)
​    throw(ConnectionTimeOutException, ConnectionFailException);

连接到指定的Slamware设备

名称 类型 说明
host const std::string& Slamware Core的IP地址
port int Slamware Core的端口(通常为1445)
timeoutInMs int 连接超时时间,单位为毫秒
返回 SlamwareCorePlatform 连接成功后返回对象

方法

总体方法

void disconnect();

断开与Core之间的连接

Artifacts相关方法 不适用于Mapper

std::vector<core::Line> getLines(features::artifact_provider::ArtifactUsage usage);

获取系统中的所有指定类型的线段

名称 类型 说明
usage features::artifact_provider::ArtifactUsage 指定要获取的线段类型
返回 std::vector<core::Line> 获取线段
bool addLine(features::artifact_provider::ArtifactUsage usage, const core::Line& line);

添加线段

名称 类型 说明
usage features::artifact_provider::ArtifactUsage 待添加的线段类型
line const core::Line& 待添加的线段
返回 bool 添加成功返回true,反之返回false
bool addLines(features::artifact_provider::ArtifactUsage usage, const std::vector<core::Line>& lines);

添加多条线段

名称 类型 说明
usage features::artifact_provider::ArtifactUsage 待添加的线段类型
lines const std::vector<core::Line>& 待添加的线段
返回 bool 添加成功返回true,反之返回false
bool removeLineById(features::artifact_provider::ArtifactUsage usage, rpos::core::SegmentID id);

移除线段

名称 类型 说明
usage features::artifact_provider::ArtifactUsage 待移除的线段类型
id rpos::core::SegmentID 待移除线段ID
返回 bool 移除成功返回true,反之返回false
bool clearLines(features::artifact_provider::ArtifactUsage usage);

移除所有线段

名称 类型 说明
usage features::artifact_provider::ArtifactUsage 待移除的线段类型
返回 bool 移除成功返回true,反之返回false
bool moveLine(features::artifact_provider::ArtifactUsage usage, const core::Line& line);

移动线段

名称 类型 说明
usage features::artifact_provider::ArtifactUsage 待移动的线段类型
line const core::Line& 待移动的线段
返回 bool 移动成功返回true,反之返回false
bool moveLines(features::artifact_provider::ArtifactUsage usage, const std::vector<core::Line>& lines);

移动多条线段

名称 类型 说明
usage features::artifact_provider::ArtifactUsage 待移动的线段类型
lines const std::vector<core::Line>& 待移动的线段
返回 bool 移动成功返回true,反之返回false
std::vector<core::Line> getWalls();

获取系统中所有的虚拟墙

名称 类型 说明
返回 std::vector<core::Line> 获取虚拟墙
bool addWall(const core::Line& wall);

添加虚拟墙

名称 类型 说明
wall const core::Line& 待添加的虚拟墙
返回 bool 添加成功返回true,反之返回false
bool addWalls(const std::vector<core::Line>& walls);

添加多条虚拟墙

名称 类型 说明
walls const std::vector<core::Line>& 待添加的虚拟墙
返回 bool 添加成功返回true,反之返回false
bool clearWallById(const core::SegmentID& id);

移除虚拟墙

名称 类型 说明
id const core::SegmentID 待移除虚拟墙ID
返回 bool 移除成功返回true,反之返回false
bool clearWalls();

移除所有虚拟墙

名称 类型 说明
返回 bool 移除成功返回true,反之返回false

定位相关方法

std::vector<features::location_provider::MapType> getAvailableMaps();

获取系统提供的所有地图类型

名称 类型 说明
返回 std::vector<features::location_provider::MapType> 支持的地图类型
features::location_provider::Map getMap(features::location_provider::MapType type, core::RectangleF area, features::location_provider::MapKind kind);

获取地图数据

名称 类型 说明
type features::location_provider::MapType 待获取的地图数据类型
area core::RectangleF 待获取的地图区域
kind features::location_provider::MapKind 待获取的地图类型
返回 features::location_provider::Map 地图

代码示例

rpos::feature::location_provider::MapType mapType = rpos::feature::location_provider::MapType::MapTypeBitmap8Bit;
rpos::feature::location_provider::Mapkind mapKind = rpos::feature::location_provider::MapKind::EXPLORERMAP;
rpos::core::Rectangle knownArea = robotPlatform.getKnownArea(mapType, mapKind);
rpos::feature::location_provider:Map map = robotPlatform.getMap(mapType, knownArea, mapKind);
bool setMap(const features::location_provider::Map& map, features::location_provider::MapType type, features::location_provider::MapKind kind, bool partially = false);

上传地图数据到Slamware CORE

名称 类型 说明
map const features::location_provider::Map& 地图
type features::location_provider::MapType 待上传的地图数据类型
kind features::location_provider::MapKind 待上传的地图类型
partially bool 是否上传局部地图
返回 bool 上传成功返回true,反之返回false

代码示例

rpos::feature::location_provider::MapType mapType = rpos::feature::location_provider::MapType::MapTypeBitmap8Bit;
rpos::feature::location_provider::Mapkind mapKind = rpos::feature::location_provider::MapKind::EXPLORERMAP;
rpos::core::Rectangle knownArea = robotPlatform.getKnownArea(mapType, mapKind);
rpos::feature::location_provider:Map map = robotPlatform.getMap(mapType, knownArea, mapKind);
bool bRet = robotPlatform.setMap(map, mapType, mapKind);
bool setMapAndPose(const core::Pose& pose, const features::location_provider::Map& map, features::location_provider::MapType type, features::location_provider::MapKind kind, bool partially = false);

上传地图数据及机器人位姿到Slamware CORE

名称 类型 说明
pose const core::Pose& 机器人位姿
map const features::location_provider::Map& 地图
type features::location_provider::MapType 待上传的地图数据类型
kind features::location_provider::MapKind 待上传的地图类型
partially bool 是否上传局部地图
返回 bool 上传成功返回true,反之返回false

代码示例

rpos::core::Pose pose;
rpos::feature::location_provider::MapType mapType = rpos::feature::location_provider::MapType::MapTypeBitmap8Bit;
rpos::feature::location_provider::Mapkind mapKind = rpos::feature::location_provider::MapKind::EXPLORERMAP;
rpos::core::Rectangle knownArea = robotPlatform.getKnownArea(mapType, mapKind);
rpos::feature::location_provider:Map map = robotPlatform.getMap(mapType, knownArea, mapKind);
bool bRet = robotPlatform.setMapAndPose(pose, map, mapType, mapKind);
core::RectangleF getKnownArea(features::location_provider::MapType type, features::location_provider::MapKind kind);

获取已完成的建图区域

名称 类型 说明
type features::location_provider::MapType 待获取的地图数据类型
kind features::location_provider::MapKind 待获取的地图类型
返回 core::RectangleF 已完成的建图区域

代码示例

rpos::feature::location_provider::MapType mapType = rpos::feature::location_provider::MapType::MapTypeBitmap8Bit;
rpos::feature::location_provider::Mapkind mapKind = rpos::feature::location_provider::MapKind::EXPLORERMAP;
rpos::core::RectangleF knownArea = robotPlatform.getKnownArea(mapType, mapKind);
bool clearMap();

清除地图数据

名称 类型 说明
返回 bool 清除成功返回true,反之返回false
bool clearMap(features::location_provider::MapKind kind);

清除指定类型的地图数据

名称 类型 说明
kind features::location_provider::MapKind 待清除的地图类型
返回 bool 清除成功返回true,反之返回false
core::Location getLocation();

获取机器人在地图上的坐标

名称 类型 说明
返回 core::Location 机器人地图坐标
core::Pose getPose();

获取机器人在地图上的位姿

名称 类型 说明
返回 core::Pose 机器人在地图上的位姿
bool setPose(const core::Pose& pose);

上传机器人在地图上的位姿

名称 类型 说明
pose const core::Pose& 待上传的机器人位姿
返回值 bool 上传成功返回true,反之返回false
bool getMapLocalization();

获取地图定位开关状态

名称 类型 说明
返回 bool 地图定位打开返回true,反之返回false
bool setMapLocalization(bool localization);

设置地图定位开关状态

名称 类型 说明
localization bool 待设置的定位开关状态
返回 bool 设置成功返回true,反之返回false
bool getMapUpdate(rpos::features::location_provider::MapKind kind = rpos::features::location_provider::EXPLORERMAP);

获取建图开关状态

名称 类型 说明
kind rpos::features::location_provider::MapKind 地图类型
返回 bool 建图打开返回true,反之返回false
bool setMapUpdate(bool update, rpos::features::location_provider::MapKind kind = rpos::features::location_provider::EXPLORERMAP);

设置建图开关状态

名称 类型 说明
update bool 待设置的建图开关状态
kind rpos::features::location_provider::MapKind 待设置的地图类型
返回 bool 设置成功返回true,反之返回false
int getLocalizationQuality();

获取定位质量

名称 类型 说明
返回 int 定位质量值
features::location_provider::PointPDF getAuxLocation();

获取辅助传感器的定位信息

名称 类型 说明
返回 features::location_provider::PointPDF 定位信息
bool getHomePose(core::Pose& pose);

获取充电桩位姿

名称 类型 说明
pose core::Pose& 获取的充电桩位姿(引用)
返回 bool 获取成功返回true,反之返回false
bool setHomePose(core::Pose pose);

上传充电桩位姿

名称 类型 说明
pose core::Pose 待设置的充电桩位姿
返回 bool 设置成功返回true,反之返回false
features::location_provider::AuxLocalizationStatus getAuxLocalizationStatus(features::location_provider::AuxLocalizationSource source);

获取辅助传感器定位状态

名称 类型 说明
source features::location_provider::AuxLocalizationSource 指定辅助定位信息的来源
返回 features::location_provider::AuxLocalizationStatus 辅助定位状态信息,包括功能支持状态、建图打开状态、最后一次定位的报告时间等

运动规划相关方法 不适用于Mapper

actions::MoveAction moveTo(const std::vector<core::Location>& locations, bool appending, bool isMilestone);

控制机器人沿着路径移动

名称 类型 说明
locations const std::vector<core::Location>& 待移动的坐标位置
appending bool 是否添加至末尾;若为true机器人将locations添加至现有路径之后,反之将清除现有路径
isMilestone bool 是否为里程碑点(已弃用)
返回 actions::MoveAction 运动行为
actions::MoveAction moveTo(const core::Location& location, bool appending, bool isMilestone);

控制机器人移动到目标位置

名称 类型 说明
location const core::Location& 待移动的坐标位置
appending bool 是否添加至末尾;若为true机器人将location添加至现有路径之后,反之将清除现有路径
isMilestone bool 是否为里程碑点(已弃用)
返回 actions::MoveAction 运动行为
actions::MoveAction moveTo(const std::vector<rpos::core::Location>& locations, const features::motion_planner::MoveOptions& options, float yaw = 0);

控制机器人沿着路径移动

名称 类型 说明
locations const std::vector<rpos::core::Location>& 待移动的坐标位置
options features::motion_planner::MoveOptions& 运动选项
yaw float 设备的旋转角度
返回 actions::MoveAction 运动行为
actions::MoveAction moveTo(const core::Location& location, const features::motion_planner::MoveOptions& options, float yaw = 0);

控制机器人移动到目标位置

名称 类型 说明
location const core::Location& 待移动的坐标位置
options features::motion_planner::MoveOptions& 运动选项
yaw float 设备的旋转角度
返回 actions::MoveAction 运动行为
actions::MoveAction moveBy(const core::Direction& direction);

手动控制机器人运动

名称 类型 说明
direction const core::Direction& 机器人运动方向
返回 actions::MoveAction 运动行为

代码示例

rpos::core::ACTION_DIRECTION actionDirection = rpos::core::ACTION_DIRECTION::FORWARD;
rpos::core::Direction direction(actionDirection);
rpos::actions::MoveAction moveBy = platform.moveBy(direction);
actions::MoveAction moveBy(const core::Direction& direction, const features::motion_planner::MoveOptions& options);

手动控制机器人运动

名称 类型 说明
direction const core::Direction& 机器人运动方向
options features::motion_planner::MoveOptions& 暂不支持
返回 actions::MoveAction 运动行为
actions::MoveAction moveBy(float theta, const features::motion_planner::MoveOptions& options);

轨迹球方式控制机器人移动

名称 类型 说明
theta float 轨迹球角度
options features::motion_planner::MoveOptions& 暂不支持
返回 actions::MoveAction 运动行为
actions::MoveAction rotateTo(const core::Rotation& orientation);

控制机器人转动至指定的朝向

名称 类型 说明
orientation const core::Rotation& 要求机器人转动到的朝向
返回 actions::MoveAction 运动行为
actions::MoveAction rotateTo(const core::Rotation& orientation, const features::motion_planner::MoveOptions& options);

控制机器人转动至指定的朝向

名称 类型 说明
orientation const core::Rotation& 要求机器人转动到的朝向
options features::motions_planner::MoveOptions& 暂不支持
返回 actions::MoveAction 运动行为
actions::MoveAction rotate(const core::Rotation& rotation);

控制机器人转动指定角度

名称 类型 说明
orientation const core::Rotation& 转动角度
返回 actions::MoveAction 运动行为
actions::MoveAction rotate(const core::Rotation& rotation, const features::motion_planner::MoveOptions& options);

控制机器人转动指定角度

名称 类型 说明
orientation const core::Rotation& 转动角度
options features::motions_planner::MoveOptions& 暂不支持
返回 actions::MoveAction 运动行为
actions::MoveAction recoverLocalization(const core::RectangleF& area, const features::motion_planner::RecoverLocalizationOptions& options=features::motion_planner::RecoverLocalizationOptions());

重定位

名称 类型 说明
area const core::Rectangle& 置信区域
options features::motion_planner::RecoverLocalizationOptions& 重定位选项,包含重定位时的行为表现、时长限制等
返回 actions::MoveAction 运动行为
actions::MoveAction getCurrentAction();

获取机器人当前的运动行为

名称 类型 说明
返回 actions::MoveAction 当前运动行为
features::motion_planner::Path searchPath(const core::Location& location);

获取寻路算法搜出的前往目标点的路径

名称 类型 说明
location const core::Location& 目标点
返回 features::motion_planner::Path 路径
features::motion_planner::Path getRobotTrack(int count);

获取机器人移动路径(暂不支持)

actions::SweepMoveAction startSweep();

开始清扫(暂不支持)

actions::SweepMoveAction sweepSpot(const core::Location& location);

定点清扫(暂不支持)

actions::MoveAction goHome();

回充电桩

名称 类型 描述
返回 actions::MoveAction 运动行为
float getSweepArea();

获取清扫面积(暂不支持)

actions::SweepMoveAction startRegionSweep(const std::vector<size_t>& ids, const std::vector<size_t>& numbers);

开始区域清扫(暂不支持)

void insertRegion(const features::Region& region);

插入区域(暂不支持)

void insertRegions(const std::vector\features::Region>& regions);

插入区域(暂不支持)

void removeRegion(size_t id);

移除区域(暂不支持)

void removeRegions(const std::vector<size_t>& ids);

移除区域(暂不支持)

void updateRegion(const rpos::features::Region& region);

更新区域(暂不支持)

void updateRegions(const std::vector<rpos::features::Region>& regions);

更新区域(暂不支持)

std::vector<features::Region> getRegions();

获取区域(暂不支持)

std::vector<rpos::features::Region> getSweepingRegions();

获取正在清扫的区域(暂不支持)

rpos::actions::SweepMoveAction startFollowPathSweep(const rpos::features::motion_planner::Path& path);

开始沿路径清扫(暂不支持)

rpos::actions::SweepMoveAction startFollowPathSweep(const std::vector<std::vector<rpos::core::Location>>& paths);

开始沿路径清扫(暂不支持)

rpos::features::motion_planner::Path getPaintedSweepPath();

获取已画的清扫路径(暂不支持)

std::vector<rpos::features::motion_planner::Path> getPaintedSweepPaths();

获取已画的清扫路径(暂不支持)

系统资源相关方法

int getBatteryPercentage();

获取电量百分比

名称 类型 描述
返回 int 电量百分比
bool getBatteryIsCharging();

获取充电状态

名称 类型 描述
返回 bool 充电中返回true,反之返回false
bool getDCIsConnected();

获取直流电源连接状态

名称 类型 描述
返回 bool 直流电源连接返回true,反之返回false
features::system_resource::PowerStatus getPowerStatus();

获取电源状态

名称 类型 描述
返回 features::system_resource::PowerStatus 电源状态,包括直流电源连接状态、上桩状态、充电状态、电量、模式等信息
void wakeUp();

请求唤醒

int getBoardTemperature();

获取机器人核心温度

名称 类型 描述
返回 int 温度值,单位0.1℃(如45.2℃将返回452)
std::string getSDPVersion();

获取SDP版本号

名称 类型 描述
返回 std::string SDP版本
std::string getSDKVersion();

获取SDK版本号

名称 类型 描述
返回 std::string SDK版本
features::system_resource::LaserScan getLaserScan();

获取激光数据

名称 类型 描述
返回 features::system_resource::LaserScan 激光数据
bool restartModule(features::system_resource::RestartMode mode = features::system_resource::RestartModeSoft);

请求重启

名称 类型 描述
mode features::system_resource::RestartMode 指定重启模式
返回 bool 请求成功返回true,反之返回false
bool setSystemParameter(const std::string& param, const std::string& value);

设置系统参数

名称 类型 描述
param const std::string& 待设置的参数项
value const std::string& 待设置的参数值
返回 bool 设置成功返回true,反之返回false

代码示例

Bool bRet = platform.setSystemParameter(SYSPARAM_ROBOT_SPEED, SYSVAL_ROBOT_SPEED_HIGH);
std::string getSystemParameter(const std::string& param);

获取系统参数

名称 类型 描述
param const std::string& 待获取的参数项
返回 std::string 参数值

代码示例

std::string robotSpeed = platform.getSystemParameter(SYSPARAM_ROBOT_SPEED);
bool updateBinaryConfig(const Json::Value& jsnCfg);

上传Binary配置

名称 类型 描述
jsnCfg const Json::Value& 待上传的配置
返回 bool 上传成功返回true,反之返回false
bool shutdownSlamcore(const rpos::core::SlamcoreShutdownParam& shutdownArg);

请求关机

名称 类型 描述
shutdownArg const rpos::core::SlamcoreShutdownParam& 关闭参数,下次启动的间隔时间,以及关机时间
返回 bool 请求成功返回true,反之返回false
features::system_resource::DeviceInfo getDeviceInfo();

获取设备信息

名称 类型 描述
返回 features::system_resource::DeviceInfo 设备信息,包括设备ID、制造商ID、制造商名称、型号ID、型号名称、软硬件版本等信息
features::system_resource::BaseHealthInfo getRobotHealth();

获取机器人底盘健康状态信息

名称 类型 描述
返回 features::system_resource::BaseHealthInfo 底盘健康状态信息
void clearRobotHealth(int errorCode);

清除机器人底盘健康状态信息

名称 类型 描述
errorCode int 待删除健康状态信息的错误码
bool configurateNetwork(features::system_resource::NetworkMode mode, const std::map<std::string, std::string>& options);

配置机器人的网络

名称 类型 描述
mode features::system_resource::NetworkMode 网络模式
options const std::map<std::string, std::string>& 配置选项
返回值 bool 配置完成返回true,反之返回false

参数

网络模式 ssid password channel ip dns gateway mask
NetworkModeAp 可选 可选 可选 可选 可选 可选 可选
NetworkModeStation 必选 可选 -- -- -- -- --
NetworkModeWithDisabled -- -- -- -- -- -- --

代码示例

std::map<std::string, std::string> options;
options[“ssid”] = “Slamtec”;
options[“password”] = “slamtect”;
Bool bRet = platform.configureNetwork(rpos::features::system_resource::NetworkMode::NetworkModeStation,options);
std::map<std::string, std::string> getNetworkStatus();

获取机器人当前无线网络的配置信息

名称 类型 描述
返回 std::map<std::string, std::string> 网络配置信息,包含mode,ssid和ip三个选项
features::system_resource::HeartBeatToken startHeartBeat(int heartBeatTimeoutInSeconds);

启动心跳

名称 类型 描述
heartBeatTimeoutInSeconds int 心跳超时时间
返回 features::system_resource::HeartBeatToken 心跳token
void refreshHeartBeat(features::system_resource::HeartBeatToken token);

刷新心跳

名称 类型 描述
token features::system_resource::HeartBeatToken 指定心跳token
void stopHeartBeat(features::system_resource::HeartBeatToken token);

停止心跳

名称 类型 描述
token features::system_resource::HeartBeatToken 指定心跳token
void voiceRespond();

语音响应(暂不支持)

void startFirmwareUpgrade(const std::string& filename);

启动系统固件升级

名称 类型 描述
filename const std::string& 文件名
void publishDepthCamFrame(int sensorId, const rpos::message::depth_camera::DepthCameraFrame& frame);

发布深度摄像头数据

名称 类型 描述
sensorId int 深度摄像头的传感器ID
frame const rpos::message::depth_camera::DepthCameraFrame& 深度摄像头数据
std::vector<features::system_resource::OperationAuditLog> getOperationAuditLogs();

获取运行审计日志

名称 类型 描述
返回 std::vector<features::system_resource::OperationAuditLog> 日志列表
int sendAndRecvUserDefinedCBUSMessage(const void * payload, const size_t payloadsize, void * recvBuffer, size_t & recvDataSize);

发送并接收自定义消息

名称 类型 描述
payload const void* 消息载体指针
payloadsize const size_t 消息载体字节数
recvBuffer void* 接收消息载体的buffer指针
recvDataSize size_t& 接收消息的字节数(引用)
返回 int 接收消息的结果

雷达调整相关方法 不适用于Mapper

rpos::features::system_resource::LidarAutoTweakRequestResult beginLidarAutoTweak();

启动雷达自动调整

名称 类型 描述
返回 rpos::features::system_resource::LidarAutoTweakRequestResult 请求结果
rpos::features::system_resource::LidarAutoTweakStatus getLidarAutoTweakStatus();

获取雷达自动调整状态

名称 类型 描述
返回 rpos::features::system_resource::LidarAutoTweakStatus 雷达自动调整状态
bool acceptLidarTweakResult();

接受雷达调整结果

名称 类型 描述
返回 bool 保存调整结果成功返回true,反之返回false
void resetLidarTweakResult();

不接受雷达调整结果,保留原始值

void cancelLidarAutoTweak();

取消雷达自动调整

传感器相关方法

bool getSensors(std::vector<features::impact_sensor::ImpactSensorInfo>& sensors);

获取传感器列表

名称 类型 描述
sensors std::vector<features::impact_sensor::ImpactSensorInfo&> 传感器信息(引用),单个传感器信息包含ID、类型、位姿和刷新频率
返回 bool 获取成功返回true,反之返回false
bool getSensorValues(std::map<features::impact_sensor::impact_sensor_id_t, features::impact_sensor::ImpactSensorValue>& values);

获取所有传感器值

名称 类型 描述
values std::map<features::impact_sensor::impact_sensor_id_t, features::impact_sensor::ImpactSensorValue>& 传感器值(引用)
返回 bool 获取成功返回true,反之返回false

注:features::impact_sensor::ImpactSensorValue数据结构如下:

struct ImpactSensorValue {
    impact_sensor_timestamp_t time;
    float value;
};
bool getSensorValues(const std::vector<features::impact_sensor::impact_sensor_id_t>& sensorIds, std::vector<features::impact_sensor::ImpactSensorValue>& values);

获取指定多个传感器的数据

名称 类型 描述
sensorIds const std::vector<features::impact_sensor::impact_sensor_id_t>& 待获取的传感器ID
values std::vector<features::impact_sensor::ImpactSensorValue>& 传感器值(引用),与指定的sensorIds相对应
返回 bool 获取成功返回true,反之返回false
bool getSensorValue(features::impact_sensor::impact_sensor_id_t sensorId, features::impact_sensor::ImpactSensorValue& value);

获取指定传感器的数据

名称 类型 描述
sensorId features::impact_sensor::impact_sensor_id_t 待获取的传感器ID
values features::impact_sensor::ImpactSensorValue& 传感器值(引用)
返回 bool 获取成功返回true,反之返回false

固件服务相关方法

detail::objects::UpdateInfo getUpdateInfo();

获取固件更新信息

名称 类型 描述
返回 detail::objects::UpdateInfo 更新信息
bool startFirmwareUpdate();

启动固件更新

名称 类型 描述
返回 bool 请求成功返回true,否则返回false
detail::objects::UpdateProgress getFirmwareUpdateProgress();

获取固件更新进度

名称 类型 描述
返回 detail::objects::UpdateProgress 更新进度,包括当前步骤、总步骤数、当前步骤名称、进度百分比、当前状态等信息

Composite地图相关方法

robot_platforms::objects::CompositeMap getCompositeMap();

获取Composite地图数据

名称 类型 描述
返回 robot_platforms::objects::CompositeMap 获取Composite地图数据,包含多个图层
void setCompositeMap(const robot_platforms::objects::CompositeMap& map, const core::Pose& pose);

上传Composite地图数据

名称 类型 描述
map const robot_platforms::objects::CompositeMap& 待上传的Composite地图
pose const core::Pose& 机器人位姿

代码示例

auto pose = platform.getPose();

rpos::robot_platforms::objects::Metadata metadata;
std::vector< boost::shared_ptr<rpos::robot_platforms::objects::MapLayer> > maps;

auto map_layer_v_walls = boost::make_shared<rpos::robot_platforms::objects::LineMapLayer>();
maps.push_back(map_layer_v_walls);
map_layer_v_walls->setUsage("virtual_walls");
map_layer_v_walls->setType(rpos::robot_platforms::objects::LineMapLayer::Type);
rpos::robot_platforms::objects::Line line(Point(0, 0), Point(10, 10));
line.name = "1";
map_layer_v_walls->lines()[line.name] = line;

rpos::robot_platforms::objects::CompositeMap compositeMap(metadata, maps);
platform. setCompositeMap (compositeMap, pose);

统计相关方法 不适用于Mapper

int getSweepTimeMs();

获取清扫时间(暂不支持)

double getOdometry();

获取总里程统计

名称 类型 描述
返回 double 里程计值
double getSystemRunningTime();

获取系统运行时间

名称 类型 描述
返回 double 系统运行时间