Versions Compared

Key

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

...


Code Block
languagecpp
firstline0
linenumberstrue
rpos::core::Action someAction = robotPlatform.startSomeAction();
rpos::actions::MoveAction moveAction = someAction.cast<rpos::actions::MoveAction>;

rpos::core::ActionStatus枚举

ActionStatus枚举列举了动作的状态

头文件

rpos/core/action.h

枚举项

ActionStatusWaitingForStart

动作正在等待开始

ActionStatusRunning

动作正在进行

ActionStatusFinished

动作已经完成

ActionStatusPaused

动作已经暂停

ActionStatusStopped

动作已经停止(取消)

ActionStatusError

动作执行过程中出现错误

rpos::core::Feature类

Feature类表示一个特征,即一个特定的功能集合

头文件

rpos/core/feature.h

构造器

Feature(const Feature&)

拷贝构造函数

运算符

Feature& operator=(const Feature&)

赋值运算符

rpos::core::RectangleF类


RectangleF类表示一个矩形,其坐标参数的类型为float

头文件


rpos/core/geometory.h

构造器

RectangleF()构造器

创建一个x、y、width、height都为0的矩形

RectangleF(Vector2f position, Vector2f size)

创建一个位置和大小为指定值的矩形

RectangleF(float x, float y, float width, float height)

创建一个位置和大小为指定值的矩形

RectangleF(const RectangleF&)

拷贝构造函数

运算符

RectangleF& operator=(const RectangleF&)

赋值运算符

方法

const Vector2f& position()、Vector2f& position()

矩形的位置(左上角)

const Vector2f& size()、Vector2f& size()

矩形的大小

float x() const、float& x()

矩形左上角的x坐标

float y() const、float& y()

矩形左上角的y坐标

float width() const、float& width()

矩形的宽度

float height() const、float& height()

矩形的高度

float left() const

矩形左侧的x坐标

float right() const

矩形右侧的x坐标(right=x+width)

float top() const

矩形顶部的y坐标

float bottom() const

矩形底部的y坐标(bottom=y+height)

bool contains(const Vector2i& point)

判断点是否在矩形的范围内

bool empty()

判断矩形是否是全空的(即width() < epsilon或height()<epsilon)

bool contains(const RectangleF& dest)

判断目标矩形是否完全在本矩形的区域内

void unionOf(const RectangleF& dest)

计算本矩形和目标矩形重合的部分,并将本矩形设定为该重合部分矩形

rpos::core::Vector2f

二维向量,元素数据类型为float型

...

方法

int x() const、int& x()

二维向量的x分量

int y() const、int& y()

二维向量的y分量

rpos::core::LaserPoint

激光雷达测距的单点数据,包括了距离、角度、是否有效等信息

头文件

rpos/core/laser_point.h

构造器

LaserPoint()

创建一个新的LaserPoint对象

LaserPoint(float distance, float angle, bool valid)

创建一个距离、角度、有效性为指定值的LaserPoint对象

LaserPoint(const LaserPoint&)

拷贝构造函数

运算符

LaserPoint& operator=(const LaserPoint&)

赋值运算符

方法

float distance() constfloat& distance()

距离数据(单位:米)

float angle() constfloat& angle()

本次测量的角度(单位:弧度)

bool valid() constbool& valid()

本次测量是否有效

rpos::core::RobotPlatform

机器人平台是一系列设备组合而成的整体,提供一系列的特征从而提供功能。RobotPlatform类是所有机器人平台的基类。

头文件

rpos/core/robot_platform.h

构造器

RobotPlatform(const RobotPlatform&)

拷贝构造函数

运算符

RobotPlatform& operator=(const RobotPlatform&)

赋值运算符

方法

std::vector<Feature> getFeatures()

获得该机器人平台提供的所有特征

template<class RobotPlatformT> RobotPlatformT cast()

将RobotPlatform对象转换成子类对象,示例请参考rpos::core::Action::cast<>

rpos::robot::heading::HeadingMode枚举

HeadingMode枚举表示机器人移动时头朝向的方式。

头文件

rpos/features/motion_planner/move_heading.h

枚举项

HeadingModeAuto

机器人按照自己的方式随意行走

HeadingModeFixAngle

机器人行走时头与前进方向成固定角度

HeadingModeCircleMotion

机器人行走时头始终朝向某个物体或者某点

HeadingModeDirection

机器人行走时头始终朝向某个固定的方向

rpos::robot::heading::RobotHeading

RobotHeading类表示机器人在行走的时候的头朝向某个物体或者方向的设置。

头文件

rpos/features/motion_planner/move_heading.h

构造器

RobotHeading()构造器

构造函数

RobotHeading(HeadingMode headingMode, rpos::core::Pose pose)构造器

构造函数

运算符

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

赋值运算符。

方法

const rpos::core::Pose& RobotHeading::pose() const

获取机器人行走时头朝向的角度或者物体的位置
头朝向与位置或者角度的对应关系如下:

朝向

HeadingModeAuto

Pose值不可用

HeadingModeFixAngle或者HeadingModeDirection

Pose的Rotation参数可用

HeadingModeCircleMotion

Pose的Location参数可用


const HeadingMode& RobotHeading::headingMode() const

获取机器人行走时头朝向设置
可以参考rpos::robot::heading::HeadingMode

rpos::robot::option::MoveOption结构体

MoveOption结构体存储机器人运行时的设置。

头文件

rpos/features/motion_planner/move_option.h

结构体说明

appending

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

isMilestone

机器人是否通过路径搜索的方式前往目的地。

robotHeading

机器人行走时头朝向设置。参考rpos::robot::heading::RobotHeading


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::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()

获取机器人是否启用地图更新功能。

bool setMapUpdate(bool)

设置机器人是否启用地图更新功能。

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

获得机器人当前正在进行的移动动作。您可以使用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()

获取原始激光扫描数据。

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::SlamwareCorePlatform类

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

头文件

rpos/robot_platforms/slamware_core_platform.h

父类

继承自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>&, rpos::robot::option::MoveOption &)

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

参数

名称

类型

说明

locations

const std::vector

<rpos::core::Location>&

期望机器人经过的点

moveOption

rpos::robot::option::MoveOption

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

moveOption详细可参考rpos::robot::option::MoveOption

示例
Code Block
languagecpp
firstline0
linenumberstrue
std::vector<rpos::core::Location> locations;
rpos::core::Location location(1,1);
locations.push
rpos::robot::option::MoveAction moveOption;
moveOption.appending = false;
moveOption.isMilestone = true;
rpos::core::Pose pose(Rotation(2));
rpos::robot::heading::RobotHeading robotHeading(rpos::robot::heading::HeadingMode::HeadingModeFixAngle, pose);
moveOption.robotHeading = robotHeading;
rpos::actions::MoveAction moveInfo = robotPlatform.moveTo(locations, moveOption);


rpos::actions::MoveAction moveTo(const rpos::core::Location&, rpos::robot::option::MoveOption&)

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

详细参考 rpos::actions::MoveAction moveTo(const std::vector<rpos::core::Location>&,rpos::robot::option::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

 

向左

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

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

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

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

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类

Void startCalibration(rpos::features::system_resource::CalibrationType type)

机器人开始进行磁罗盘校正

Void stoptCalibration()

机器人停止进行磁罗盘校正

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

NetworkModeAp

可选

可选

可选

NetworkModeStation

必选

可选

--

NetworkModeWifiDisabled

--

--

--

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

示例
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;
};

字段说明:

字段名称类型单位说明

Time

Long

微秒

表示获得该数据的时间。

Value

Float

表示该碰撞传感器检测到的与障碍物之间的距离。若传感器为数字传感器,则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& )

设置当前的地图信息。

示例
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);

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

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

...