Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

rpos::actions::MoveAction类

MoveAction类表示一个移动的动作,它包含了当前机器人规划的路径、检查点列表、移动的进程。

头文件

rpos/features/motion_planner/move_action.h

父类

继承自rpos::core::Action类

构造器

MoveAction(boost::shared_ptr<rpos::actions::detail::MoveActionImpl>)

该构造器仅限SDK内部使用。

MoveAction(const MoveAction&)

拷贝构造函数

运算符

MoveAction& operator=(const MoveAction&)

赋值运算符

方法

rpos::features::motion_planner::Path getRemainingPath()

获得已经规划好的,剩余的路径

rpos::features::motion_planner::Path getRemainingMilestones()

获得剩余的里程碑


rpos::features::motion_planner::MoveOptionFlag枚举

机器人行走方式

枚举项

MoveOptionFlagNone 

机器人以系统默认的方式行走
MoveOptionFlagAppending 

机器人依次移动到指定的点
MoveOptionFlagMilestone 

路径搜索
MoveOptionFlagNoSmoot

机器人不走平滑曲线
MoveOptionFlagKeyPoints

机器人沿着虚拟轨道行走
MoveOptionFlagPrecise

机器人以误差在10cm的范围内移动到指定点的方式行走
MoveOptionFlagWithYaw 

rpos::features::motion_planner::MoveOptions类

机器人行走方式及速率设定


MoveOptionFlag flag

机器人的行走方式

boost::optional<double> speed_ratio;

机器人以一定的速率行走(最大速度的百分比)

rpos::features::ArtifactProvider类

器物功能特征,包括了虚拟墙功能。

头文件

rpos/features/artifact_provider.h

父类

继承自rpos::core::Feature类

构造器

ArtifactProvider(boost::shared_ptr<detail::ArtifactProviderImpl>)

该构造器仅限SDK内部使用。

ArtifactProvider(const ArtifactProvider&)

拷贝构造函数。

运算符

ArtifactProvider& operator=(const ArtifactProvider&)

赋值运算符。

方法

std::vector<rpos::core::Line> getWalls()

获取系统中所有的虚拟墙。

bool addWall(const rpos::core::Line&)

添加虚拟墙。

bool addWalls(const std::vector<rpos::core::Line>&)

添加虚拟墙。

bool clearWallById(const rpos::core::SegmentID&)

清除指定的虚拟墙。

bool clearWalls()

清除所有的虚拟墙。

rpos::features::LocationProvider类

定位功能特征,包括了自动建图和定位的功能(亦即SLAM功能)。

头文件

rpos/features/location_provider.h

父类

继承自rpos::core::Feature类

构造器

LocationProvider(boost::shared_ptr<detail::LocationProviderImpl>)

该构造器仅限SDK内部使用。

LocationProvider(const LocationProvider&)构造器

拷贝构造函数。

运算符

LocationProvider& operator=(const LocationProvider&)

赋值运算符。

方法

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

获得该定位功能特征提供的所有地图类型。

rpos::features::location_provider::Map getMap(rpos::features::location_provider::MapType,rpos::core::RectangleF, rpos::features::location_provider::MapKind)

获得该定位功能特征提供的指定地图类型指定区域的地图数据。

bool setMap(const rpos::features::location_provider::Map&,rpos::features::location_provider::MapType,rpos::features::location_provider::MapKind)

上载指定地图类型指定区域的地图数据到该定位功能特征,返回是否成功。

rpos::core::RectangleF getKnownArea(rpos::features::location_provider::MapType, rpos::features::location_provider::MapKind)

获得指定地图类型的地图中,已经完成建图的区域。

bool clearMap()

清除地图数据。

rpos::core::Location getLocation()

获得机器人在上述地图坐标系统中的坐标。

rpos::core::Pose getPose()

获得机器人在上述地图坐标系统中的姿态。

bool setPose(const rpos::core::Pose&)

上载当前机器人的姿态到上述地图坐标系统中,返回是否成功。

bool getMapLocalization()

获得机器人是否启用定位功能。

bool setMapLocalization(bool)

设置机器人是否启用定位功能。

bool getMapUpdate(rpos::features::location_provider::MapKind kind = rpos::features::location_provider::EXPLORERMAP);

获取机器人指定地图类型的更新功能,默认地图类型为探索地图。

enum MapKind 
EXPLORERMAP = 0,

探索地图
SWEEPERMAP = 10,

清扫地图
UWBMAP = 20

辅助定位地图

bool setMapUpdate(bool update, rpos::features::location_provider::MapKind kind = rpos::features::location_provider::EXPLORERMAP);

设置机器人指定类型的更新功能。

rpos::features::MotionPlanner类

路径规划功能特征,包括了动态路径规划功能和自动壁障功能。

头文件

rpos/features/motion_planner.h

父类

继承自rpos::core::Feature类

构造器

MotionPlanner(boost::shared_ptr<detail::MotionPlannerImpl>)

该构造器仅限SDK内部使用。

MotionPlanner(const MotionPlanner&)

拷贝构造函数。

运算符

MotionPlanner& operator=(const MotionPlanner&)

赋值运算符。

方法

rpos::actions::MoveAction moveTo(const std::vector<rpos::core::Location>&, bool, bool)

让机器人沿着路径移动(机器人会逐一走过路径中的节点,在节点之间尽量走圆滑的曲线,如果遇到障碍物,机器人会自动避开)。

参数

名称

类型

说明

locations

const std::vector<rpos::core::Location>&

期望机器人经过的点

appending

bool

如果机器人正在执行其他的移动动作,该参数决定新的点是追加或是替换既有节点

isMilestone

bool

当该参数为true时,机器人会将上述点视作关键点,通过路径搜索的方式前往目的地;

当参数为false时,会被视作普通点,不会启用路径搜索功能。

rpos::actions::MoveAction moveTo(const rpos::core::Location&, bool, bool)

让机器人移动到目标位置。

参数

名称

类型

说明

location

const rpos::core::Location&

期望机器人经过的点

appending

bool

如果机器人正在执行其他的移动动作,该参数决定新的点是追加或是替换既有节点

isMilestone

bool

当该参数设为true时,机器人会将上述点视作关键点,通过路径搜索的方式前往目的地;

当参数设为false时,会被视作普通点,不会启用路径搜索功能。

rpos::actions::MoveAction getCurrentAction()

获得机器人当前正在进行的移动动作。您可以使用Action::isEmpty()方法判断它是否存在。当机器人当前没有正在进行的动作时,它Action::isEmpty()将会返回true。

rpos::features::motion_planner::Path searchPath(const rpos::core::Location&)

使用机器人内置的寻路算法寻找前往指定目的地的路径。

rpos::features::SweepMotionPlanner类

清扫路径规划功能特征类。该类中的功能主要针对扫地机专属版本Slamware Core所提供的清扫和自动回充功能。

头文件

rpos/features/sweep_motion_planner.h

父类

继承自rpos::core::Feature类

构造器

SweepMotionPlanner(boost::shared_ptr<detail::SweepMotionPlannerImpl>)

该构造器仅限SDK内部使用。

SweepMotionPlanner(const SweepMotionPlanner&)

拷贝构造函数。

运算符

SweepMotionPlanner& operator=(const SweepMotionPlanner&)

赋值运算符。

方法

rpos::actions::SweepMoveAction startSweep()

让机器人进行清扫。(此接口仅适用于扫地机版本)

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

让机器人定点打扫。(此接口仅适用于扫地机版本)

rpos::actions::MoveAction goHome()

让机器人回家充电。

rpos::features::system_resource::DeviceInfo类

获取设备信息。设备信息包括设备ID,制造商,型号,硬件版本,软件版本。

头文件

rpos/features/device_info.h

构造器

DeviceInfo()

构造函数。

DeviceInfo(const DeviceInfo&)

构造一个特定设备信息的函数。

运算符

DeviceInfo& operator=(const DeviceInfo&)

赋值运算符。

方法

std::string deviceID() const、std::string& deviceID();

deviceID属性。

int manufacturerID() const、int& manufacturerID();

manufacturerID属性。

std::string manufacturerName() const、std::string& manufacturerName();

manufacturerName属性。

int modelID() const、int& modelID();

modelID属性。

std::string modelName() const、std::string& modelName();

modelName属性。

std::string hardwareVersion() const、std::string& hardwareVersion();

硬件版本属性。

std::string softwareVersion() const、std::string& softwareVersion();

软件版本属性。

rpos::features::SystemResource类

系统资源功能特征类。该类提供了对原始激光扫描数据、电源管理系统等相关资源的访问API。

头文件

rpos/features/system_resource.h

父类

继承自rpos::core::Feature类

构造器

SystemResource(boost::shared_ptr<detail::SystemResourceImpl>)构造器

该构造器仅限SDK内部使用。

SystemResource(const SystemResource&)构造器

拷贝构造函数。

运算符

SystemResource& operator=(const SystemResource&)运算符

赋值运算符。

方法

int getBatteryPercentage()

获得电池电量,返回值的单位是百分比。比如电池剩余为56%,则该返回值为56。

bool getBatteryIsCharging()

电池是否处于充电状态。

bool getDCIsConnected()

外部电源是否连接。

int getBoardTemperature()

系统温度。

std::string getSDPVersion()

底盘的版本号。

rpos::features::system_resource::LaserScan getLaserScan()

获取原始激光扫描数据。

features::system_resource::HeartBeatToken startHeartBeat(int heartBeatTimeoutInSeconds);

启用心跳功能。启用后,客户应用程序将会有规律地向Slamware Core发送数据以表示连接正常。如在设定的时间内未收到返回数据token,系统将判定Slamware core和客户应用程序断开连接,从而取消正在执行的操作。该功能使客户应用程序崩溃后再重新启动时的状态及行为更具可控性。

参数
参数名称类型说明
heartBeatTimeoutInSecondsint心跳超时时间,单位为秒。即超过该设定时间后将判定为超时。

void refreshHeartBeat(features::system_resource::HeartBeatToken token);

刷新心跳。同一时刻仅一个token起作用。如果第二次调用startHeartBeat,之前的token以及timeout将失效,系统将采用新的token和timeout时间。

参数名称类型说明
tokenfeatures::system_resource::HeartBeatToken

信令,每次启用心跳功能后返回数据为与该次启动操作唯一对应的信令。

该信令同步传到refreshHeartBeat和stopHeartBeat,以防止后续操作时误调用。

void stopHeartBeat(features::system_resource::HeartBeatToken token);

停止心跳功能。

rpos::features::location_provider::Map类

地图基类,泛指定位功能获得的地图。

头文件

rpos/features/location_provider.h

构造器

Map(boost::shared_ptr<detail::MapImpl>)构造器

该构造器仅限SDK内部使用。

Map(const Map&)构造器

拷贝构造函数。

运算符

Map& operator=(const Map&)运算符

赋值运算符。

方法

rpos::core::RectangleF getMapArea()

获得这张地图所包含的区域。

rpos::core::Vector2f getMapPosition()

获得这张地图左上角的坐标。

rpos::core::Vector2i getMapDimension()

获得地图的尺寸(两个维度的像素个数)

rpos::core::Vector2f getMapResolution()

获得地图的分辨率(在各个维度上,每个像素代表多少米)

rpos::system::types::timestamp_t getMapTimestamp()

获得地图生成的时间。

void setMapData(float, float, int, int, float, const std::vector<_u8>&, rpos::system::types::_u64)

设置地图数据。

std::vector<_u8>& getMapData()

获得地图数据。

template<class MapT> MapT cast()

将地图转换成特定类型的子类对象。

rpos::features::location_provider::MapType枚举

MapType枚举表示地图的类型。

头文件

rpos/features/location_provider.h

枚举项

MapTypeBitmap8Bit

每像素8位的位图。

rpos::features::location_provider::BitmapMap类

位图地图。

头文件

rpos/features/location_provider.h

父类

继承自rpos::features::location_provider::Map类

构造器

BitmapMap(boost::shared_ptr<detail::BitmapMapImpl>)构造器

该构造器仅限SDK内部使用。

BitmapMap(const BitmapMap&)构造器

拷贝构造函数。

运算符

BitmapMap& operator=(const BitmapMap&)运算符

赋值运算符。

方法

继承自rpos::features::location_provider::Map类的方法

BitmapMapPixelFormat getMapFormat()

获得地图的像素格式。

rpos::features::location_provider::BitmapMapPixelFormat枚举

BitmapMapPixelFormat枚举表示位图地图的像素格式。

头文件

rpos/features/location_provider.h

枚举项

BitmapMapPixelFormat8Bit

位图中的每个像素占用1个字节。

rpos::features::motion_planner::Path类

Path对象是一系列Location对象的集合,代表一条路径。

头文件

rpos/features/motion_planner.h

构造器

Path(const std::vector<rpos::core::Location>&)构造器

创建一个由一系列点组成的路径。

Path(const Path&)构造器

拷贝构造函数。

运算符

Path& operator=(const Path&)运算符

赋值运算符。

方法

std::vector<rpos::core::Location>& getPoints()

获得路径中的所有点。

rpos::features::system_resource::LaserScan类

LaserScan对象是一系列LaserPoint对象的集合,代表一次激光扫描的数据。

头文件

rpos/features/system_resource.h

构造器

LaserScan(const std::vector<rpos::core::LaserPoint>&)构造器

创建一个由一系列激光扫描点组成的扫描数据。

LaserScan(const LaserScan&)构造器

拷贝构造函数。

运算符

LaserScan& operator=(const LaserScan&)运算符

赋值运算符。

方法

std::vector<rpos::core::LaserPoint>& getLaserPoints()

获取激光扫描数据。


rpos::robot_platforms::objects::CompositeMapReader类

头文件

compositeMapReader.h

rpos::robot_platforms::SlamwareCorePlatform类

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

头文件

rpos/robot_platforms/slamware_core_platform.h

构造器


方法

boost::shared_ptr<CompositeMap> loadFile(const std::string& rcFilePath);

读取地图文件,参数为文件路径名。在成功读取地图后会返回一个CompositeMap对象的指针,否则抛出 CompositeMapException 类型的异常

boost::shared_ptr<CompositeMap> loadFile(const std::wstring& rcFilePath);

读取地图文件,参数为宽字符文件路径名。在成功读取地图后会返回一个CompositeMap对象的指针,否则抛出 CompositeMapException 类型的异常。

boost::shared_ptr<CompositeMap> loadFile(std::string& rErrMsg, const std::string& rcFilePath);

读取地图文件,参数为文件路径名。在成功读取地图后会返回一个CompositeMap对象的指针,并且rErrMsg为空,否则会返回空指针,rErrMsg为错误的描述。

boost::shared_ptr<CompositeMap> loadFile(std::string& rErrMsg, const std::wstring& rcFilePath);

读取地图文件,参数为宽字符文件路径名。成功读取地图后会返回一个CompositeMap对象的指针,并且rErrMsg为空,否则会返回空指针,rErrMsg为错误的描述

rpos::robot_platforms::objects::CompositeMap getCompositeMap()

获取当前地图的所有信息。

void saveFile(const std::string& rcFilePath, const CompositeMap& rcCmpstMap);

保存地图文件,参数为文件路径名。设置CompositeMap以及保存文件的路径名,成功保存文件后,函数正常退出,否则抛出 CompositeMapException 类型的异常

void saveFile(const std::wstring& rcFilePath, const CompositeMap& rcCmpstMap);

保存地图文件,参数为宽字符文件路径名。设置CompositeMap以及保存文件的路径名,成功保存文件后,函数正常退出,否则抛出 CompositeMapException 类型的异常

bool saveFile(std::string& rErrMsg, const std::string& rcFilePath, const CompositeMap& rcCmpstMap);

保存地图文件,参数为文件路径名。设置CompositeMap以及保存文件的路径名,成功保存文件后,函数返回true,否则返回false,rErrMsg为错误的描述。

bool saveFile(std::string& rErrMsg, const std::wstring& rcFilePath, const CompositeMap& rcCmpstMap);

保存地图文件,参数为宽字符文件路径名。设置CompositeMap以及保存文件的路径名,成功保存文件后,函数返回true,否则返回false,rErrMsg为错误的描述。

父类

继承自rpos::core::RobotPlatform类

构造器

SlamwareCorePlatform(boost::shared_ptr<detail::SlamwareCorePlatformImpl>)构造器

该构造器仅限SDK内部使用。

SlamwareCorePlatform(const SlamwareCorePlatform&)构造器

拷贝构造函数。

运算符

SlamwareCorePlatform& operator=(const SlamwareCorePlatform&)运算符

赋值运算符。

静态方法

SlamwareCorePlatform connect(const std::string&, int, int)

连接到指定的Slamware设备。

参数

名称

类型

说明

host

const std::string&

Slamware Core的IP地址

port

int

Slamware Core的端口(通常为1445)

timeout_in_ms

int

连接超时时间,单位为毫秒

方法

void disconnect()

断开与CORE之间的连接。

std::vector<rpos::core::Line> getWalls()

获取系统中所有的虚拟墙。

bool addWall(const rpos::core::Line&)

添加虚拟墙。

bool addWalls(const std::vector<rpos::core::Line>&)

添加多个虚拟墙。

bool clearWallById(const rpos::core::SegmentID&)

清除指定的虚拟墙。

bool clearWalls()

清除所有的虚拟墙。

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

获得该Slamware CORE提供的所有地图类型。

rpos::features::location_provider::Map getMap(rpos::features::location_provider::MapType, rpos::core::RectangleF, rpos::features::location_provider::MapKind)

获得该Slamware CORE提供的指定地图类型指定区域的地图数据。

参数

名称

类型

说明

type

rpos::features::location_provider::MapType

地图的数据类型

area

core::RectangleF

地图的区域

kind

rpos::features::location_provider::MapKind

地图类型

示例
Code Block
languagecpp
firstline0
linenumberstrue
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);

注: 扫地机版本mapkind可以使用SWEEPERMAP

bool setMap(const rpos::features::location_provider::Map&, rpos::features::location_provider::MapType, rpos::features::location_provider::MapKind, bool partially)

上载指定地图类型指定区域的地图数据到该Slamware CORE。

参数

名称

类型

说明

map

rpos::features::location_provider::Map

地图

type

rpos::features::location_provider::MapType

地图数据类型

kind

rpos::features::location_provider::MapKind

地图类型

partially

bool

是否部分更新地图

示例
Code Block
languagecpp
firstline0
linenumberstrue
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 setMap( const core::Pose& pose, const rpos::features::location_provider::Map&, rpos::features::location_provider::MapType, rpos::features::location_provider::MapKind, bool partially)

上载指定地图类型指定区域的地图数据到该Slamware CORE。

参数

名称

类型

说明

pose

core::Pose

机器人的pose信息

map

rpos::features::location_provider::Map

地图

type

rpos::features::location_provider::MapType

地图数据类型

kind

rpos::features::location_provider::MapKind

地图类型

partially

bool

是否部分更新地图

示例
Code Block
languagecpp
firstline0
linenumberstrue
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.setMap(pose, map, mapType, mapKind);

rpos::core::RectangleF getKnownArea(rpos::features::location_provider::MapType, rpos::features::location_provider::MapKind)

获得指定地图类型的地图中,已经完成建图的区域。

示例
Code Block
languagecpp
firstline0
linenumberstrue
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);

bool clearMap()

清除地图数据。

bool clearMap(rpos::features::location_provider::MapKind kind)

清除指定地图类型的地图数据。

rpos::core::Location getLocation()

获得机器人在上述地图坐标系统中的坐标。

rpos::core::Pose getPose()

获得机器人在上述地图坐标系统中的姿态。

bool setPose(const core::Pose&)

获得机器人在上述地图坐标系统中的姿态。

bool getMapLocalization()

获取地图定位。

bool setMapLocalization(bool)

设定是否启用定位功能。

bool getMapUpdate()

获得是否启用地图更新功能。

bool setMapUpdate(bool)

设定是否启用地图更新功能。

int getLocalizationQuality()

获取雷达定位点的可信度(返回一个0到100的数值,数值越高 当前雷达点的定位越可信,建议取50以上的定位点)

rpos::actions::MoveAction moveTo(const std::vector< rpos::core::Location>&, bool, bool)

让机器人沿着路径移动(机器人会逐一走过路径中的节点,在节点之间尽量走圆滑的曲线,如果遇到障碍物,机器人会自动避开)。

参数详细参考 rpos::action::MoveAction MoveTo(const std::vector<rpos::core::Location>&, bool, bool)

rpos::actions::MoveAction moveTo(const rpos::core::Location&, bool, bool)

让机器人移动到目标位置。

参数详细参考 rpos::action::MoveAction MoveTo(const rpos::core::Location&, bool, bool)

rpos::actions::MoveAction moveTo(const std::vector< rpos::core::Location>&,  MoveOptions&, float yaw)

让机器人沿着路径移动(机器人会逐一走过路径中的节点,并根据MoveAction参数的变量决定机器人行走的方式和移动过朝向)。

参数

名称

类型

说明

locations

const std::vector<rpos::core::Location>&

期望机器人经过的点

moveOption

rpos::robot::option::MoveOption

如果机器人正在执行其他的移动动作,该参数决定新的点是追加或是替换既有节点

yaw

float表示设备的旋转角度,默认为。

moveOption详细可参考MoveOptions

rpos::actions::MoveAction moveTo(const rpos::core::Location&,  MoveOptions&, float yaw)

让机器人沿着路径移动(机器人会逐一走过路径中的节点,并根据MoveAction参数的变量决定机器人行走的方式和移动过朝向)。

rpos::actions::MoveAction moveBy(const rpos::core::Direction&)

控制机器人的运行方向

参数

名称

类型

说明

direction

const rpos::core::Direction&

机器人运行的方向

示例
Code Block
languagecpp
firstline0
linenumberstrue
rpos::core::ACTION_DIRECTION actionDirection = rpos::core::ACTION_DIRECTION::FORWARD;
rpos::core::Direction direction(actionDirection);
rpos::actions::MoveAction moveBy = platform.moveBy(direction);

注:direction参数rpos::core::ACTION_DIRECTION取值说明如下

说明

FORWARD

向前

BACKWARD

向后

TURNRIGHT

向右

TURNLEFT

向左

actions::MoveAction moveBy(const core::Direction& direction, const features::motion_planner::MoveOptions&);

根据指定的移动方式控制机器人向指定的方向移动。MoveOptions设置暂时不支持。

moveOption详细可参考MoveOptions

actions::MoveAction moveBy(const float theta, const features::motion_planner::MoveOptions&);

根据theta角和MoveOptions中的speed_ratio控制机器人移动,实现设备以规定角度和速度移动,持续200ms。

rpos::actions::MoveAction rotateTo(const rpos::core::Rotation&)

使机器人水平转动到特定的角度。

actions::MoveAction rotateTo(const core::Rotation& orientation, const features::motion_planner::MoveOptions& options);

根据指定的移动方式控制机器人旋转到特定的角度。MoveOptions设置暂时不支持。

rpos::actions::MoveAction rotate(const rpos::core::Rotation&)

使机器人水平转动一定的角度。

actions::MoveAction rotate(const core::Rotation& rotation, const features::motion_planner::MoveOptions& options);

根据指定的移动方式控制机器人旋转到一定的角度。MoveOptions设置暂时不支持。

rpos::actions::MoveAction getCurrentAction()

获得机器人当前正在进行的移动动作。

您可以使用rpos::core::Action::isEmpty()方法判断它是否存在。当机器人当前没有正在进行的动作时,它rpos::core::Action::isEmpty()将会返回true。

rpos::features::motion_planner::Path searchPath(const rpos::core::Location& location)

使用机器人内置的寻路算法寻找前往指定目的地的路径。

rpos::actions::SweepMoveAction startSweep()

命令机器人开始打扫。(此接口仅适用于扫地机版本)

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

在机器人处于扫地状态下,可以命令机器人定点清扫。(此接口仅适用于扫地机版本)

rpos::actions::MoveAction goHome()

在机器人处于扫地状态下,可命令机器人返回充电位置。(此接口仅适用于扫地机版本)

int getBatteryPercentage()

获得机器人电池剩余电量(0表示完全没电,100表示电量全满)。

bool getBatteryIsCharging()

获得机器人是否正在充电。

bool getDCIsConnected()

获得直流电源是否插上。

int getBoardTemperature()

获得机器人核心温度。单位是0.1℃,比如该函数的返回结果为452,则表示机器人的核心温度为45.2℃。

std::string getSDPVersion()

获得机器人底盘的版本号。

std::string getSDKVersion()

获得SDK的版本号。

rpos::features::system_resource::LaserScan getLaserScan()

获得上一次激光扫描的原始数据。

bool restartModule(rpos::features::system_resource::RestartMode mode = rpos::features::system_resource::RestartModeSoft)

根据指定的重启模式(默认软复位)执行重启操作。

重启模式:

   RestartModeSoft(软复位),重启SDK,速度较快。建议使用。
   RestartModeHard(硬复位),速度较慢,需要几分钟时间。不建议经常使用。

bool setSystemParameter(const std::string& param, const std::string& value)

调整系统参数

参数

名称

类型

说明

param

const std::string&

调整的参数名

value

Const std::string &

调整的参数值

注:目前只支持调整系统速度的设置

param只能取值为SYSPARAM_ROBOT_SPEED

value对应可取如下三种

1.SYSVAL_ROBOT_SPEED_HIGH (高)

2.SYSVAL_ROBOT_SPEED_MEDIUM (中)

3.SYSVAL_ROBOT_SPEED_LOW (低)

示例
Code Block
languagecpp
firstline0
linenumberstrue
Bool bRet = platform.setSystemParameter(SYSPARAM_ROBOT_SPEED, SYSVAL_ROBOT_SPEED_HIGH);

std::string getSystemParameter(const std::string& param)

获取系统参数

参数

名称

类型

说明

param

const std::string&

要获取的系统参数名

注:目前只支持调整系统速度的设置

param只能取值为SYSPARAM_ROBOT_SPEED

示例

std::string robotSpeed = platform.getSystemParameter(SYSPARAM_ROBOT_SPEED);

rpos::features::system_resource::DeviceInfo getDeviceInfo()

获取设备信息。设备信息包括设备ID,制造商ID,制造商名称,型号ID,型号名称,硬件版本,软件版本。

具体返回值信息请参考:rpos::features::system_resource::DeviceInfo类

rpos::features::system_resource::BaseHealthInfo getRobotHealth()

获取机器人当前的状态信息

void clearRobotHealth(int errorCode)

清除机器人当前出错的状态信息

bool configureNetwork(rpos::features::system_resource::NetworkMode mode, const std::map<std::string, std::string>& options)

配置机器人的网络信息

参数

网络状况

ssid

password

channel

ipdnsgatewaymask

NetworkModeAp

可选

可选

可选

可选可选可选可选

NetworkModeStation

必选

可选

--

--------

NetworkModeWifiDisabled

--

--

--

--------

注:1. 目前暂只支持以上三中mode形式,ssid,password,channel三个选项的信息如上表(--表示不可用)

       2. NetworkModeWifiDisabled将禁用无线设置

示例
Code Block
languagecpp
firstline0
linenumberstrue
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()

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

注:目前返回的结果只包含mode,ssid和ip三个选项的值

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

用于获取机器人上已安装的所有碰撞传感器,返回值为ImpactSensorInfo列表。

ImpactSensorInfo数据结构如下:

No Format
struct ImpactSensorInfo {
           impact_sensor_id_t id;
           rpos::core::Pose pose;
           ImpactSensorType type;
           float refreshFreq;
};


字段说明:

字段名称

单位

说明

Id

 

Id字段为后续API中会用到的数值。

Pose

 

Pose字段表示传感器的安装姿态,即传感器相对于机器人中间的位置和方向。

Type

 

如果机器人正在执行其他的移动动作,该参数表示传感器类型,为ImpactSensorTypeDigital 或ImpactSensorTypeAnalog中的一种。

前者表示普通的碰撞传感器,只有发生碰撞和不发生碰撞两种状态。

后者表示距离传感器,如超声波测距传感器,红外测距传感器等。

refreshFreq

Hz

表示传感器刷新频率,Hz表示每秒刷新次数。

bool getSensorValues(std::map<impact_sensor_id_t, ImpactSensorValue>& values)

用于获取当前碰撞传感器状态,返回值为map,key字段为上述API中获得的id,value字段是ImpactSensorValue类型,数据结构如下:

No Format
struct ImpactSensorValue {
           impact_sensor_timestamp_t time;
           float value;
};

字段说明:

字段名称类型单位说明
TimeLong微秒表示获得该数据的时间。
ValueFloat

表示该碰撞传感器检测到的与障碍物之间的距离。

若传感器为数字传感器,则0~FLT_EPSILON表示发生了碰撞,FLT_MAX表示没有发生碰撞(建议用“<FLT_EPSILON”来判断);

若传感器为模拟传感器,则value表示传感器和障碍物之间的距离,FLT_MAX表示没有检测到障碍物。

(建议用“<1000”来判断,1000为场景中最长轴长度的两倍)

bool getSensorValues(const std::vector<features::impact_sensor::impact_sensor_id_t>& sensorIds, std::vector<features::impact_sensor::ImpactSensorValue>& values)

获取指定传感器的数据。返回值为ImpactSensorValue数组。

bool getSensorValue(features::impact_sensor::impact_sensor_id_t sensorId, features::impact_sensor::ImpactSensorValue& value)

获取指定传感器的数据。返回值为ImpactSensorValue。

void setCompositeMap(const rpos::robot_platforms::objects::CompositeMap& , const core::Pose& )

设置当前的地图信息。

Composite map由两个MapLayer组成,GridMapLayer和LineMapLayer

MapLayer 名称描述
GridMapLayer表示网格地图,存放信息包括explorer map和sweep map
LineMapLayer表示线地图,存放信息为虚拟墙
示例
Code Block
languagecpp
firstline0
linenumberstrue
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);

metadata.setUsage()函数取值如下:

说明
explore表示设置为探索地图
sweep表示设置为清扫地图
virtual_walls表示设置为虚拟墙

注:如果设置的有地图信息可以先设置区域信息,函数如下:

 metadata.set<rpos::core::RectangleF>("area", area)

features::system_resource::HeartBeatToken startHeartBeat(int heartBeatTimeoutInSeconds);

启用心跳功能。启用后,客户应用程序将会有规律地向Slamware Core发送数据以表示连接正常。如在设定的时间内未收到返回数据token,系统将判定Slamware core和客户应用程序断开连接,从而取消正在执行的操作。该功能使客户应用程序崩溃后再重新启动时的状态及行为更具可控性。

参数
参数名称类型说明
heartBeatTimeoutInSecondsint心跳超时时间,单位为秒。即超过该设定时间后将判定为超时。

void refreshHeartBeat(features::system_resource::HeartBeatToken token);

刷新心跳。同一时刻仅一个token起作用。如果第二次调用startHeartBeat,之前的token以及timeout将失效,系统将采用新的token和timeout时间。

参数名称类型说明
tokenfeatures::system_resource::HeartBeatToken

信令,每次启用心跳功能后返回数据为与该次启动操作唯一对应的信令。

该信令同步传到refreshHeartBeat和stopHeartBeat,以防止后续操作时误调用。

void stopHeartBeat(features::system_resource::HeartBeatToken token);

停止心跳功能。

features::system_resource::PowerStatus getPowerStatus();

获取电源相关的信息。

成员:

bool isDCConnected;

直流电源连接

DockingStatus dockingStatus;

Docking状态

bool isCharging;

设备是否处于充电状态

int batteryPercentage;

电池电量(从0~100)

SleepMode sleepMode;

设备休眠模式

enum SleepMode 

设备的休眠模式

SleepModeUnknown,

目标Slamware固件不支持该命令

SleepModeAwake

设备处于已唤醒状态,可以立刻响应命令

The device is waking up, please wait for some time
SleepModeWakingUp

设备处于正在被唤醒中的状态,需要少许时间响应命令

SleepModeAsleep

设备处于已休眠状态,需要稍长时间响应命令

enum DockingStatus 

枚举,机器人的Docking状态
DockingStatusUnknown

Docking状态未知(目标Slamware固件不支持)

DockingStatusOnDock,

设备在充电座上

DockingStatusNotOnDock
设备不在充电座上

void wakeUp();

从休眠状态唤醒设备。

getSweepTimeMs(扫地机专用接口)

int getSweepTimeMs();

当前设备处于清扫状态时,获取从开始清扫时刻到此时刻的清扫时间。当前设备不处于清扫状态时,获取上一次清扫动作的清扫时间。

float getSweepArea();(扫地机专用接口)

...