Welcome to Slamware C++ SDK

Slamware是适用于移动机器人的模块化自主定位导航解决方案。

Get Started

下载和安装SDK

请在思岚科技官方网站上的支持与下载页面 下载适合您的平台的SDK并解压至本地。

目录结构

Slamware SDK包含了大量您开发过程中可能会用到的资源、代码、和项目文件,其目录结构组织如下:

目录 说明
bin 预编译的工具
dll 动态链接库文件
docs 参考文档
include SDK相关的头文件
lib 预编译的库文件
samples 样例程序
workspaces 项目文件

头文件结构

在include目录下,我们包含了Slamware SDK以及它所依赖的所有库的头文件:

目录 说明
boost Boost 1.53.0
Eigen Eigen矩阵库
json JsonCpp库的头文件
rpos Slamware SDK相关的头文件

开发环境搭建

开发环境要求

基于Windows操作系统对Slamware SDK进行应用开发,您的开发环境需满足如下条件:

您的计算机应当安装Visual Studio 2010 SP1(由于我们提供的预编译库采用Visual Studio 2010 SP1进行编译,因此不建议使用Visual Studio 2012或者2013进行开发)

  1. 打开Visual Studio 2010并新建项目.

  1. 选择Visual C++项目,并选择Win32 Console Application(Win32控制台应用程序)项目类型
  2. 在Name(名称)中输入项目名称
  3. 点击OK(确定)
  1. 设定应用程序选项

点击Next(下一步)

  1. Application Type(应用程序类型)选择Console Application(命令行应用程序)
  2. Additional options(附加选项)勾选Empty Project(空项目)
  3. 点击Finish完成项目创建

配置编译选项

  1. 打开项目属性面板

在Solution Explorer(解决方案)中右键单击您刚刚创建的项目,并单击Properties(属性)菜单,打开属性面板:

  1. 配置VC++目录

在左侧列表中,选择VC++ Directories(VC++目录)

  1. 选中右侧的Include Directories(包含目录),并点击下拉按钮
  2. 选择(<编辑…>)
  3. 将第一章节中提到的SDK中的include目录加入到列表中

  1. 选中右侧的Library Directories(库目录),并点击下拉按钮
  2. 选择(<编辑…>)
  3. 将第一种中提到的SDK中的lib目录加入到列表中

完成后,您的项目属性页应当与下图相似:

点击OK(确定)完成配置。

Hello World

  1. 创建源文件

在Solution Explorer中您的项目下的Source Files目录上,右键单机,并在菜单中选择Add(添加)->New Item(新项目)

选择C++ File (.cpp),并将文件命名成main.cpp

  1. 添加代码

在弹出的编辑器中输入如下代码:

#include <rpos/robot_platforms/slamware_core_platform.h>
#include <iostream>
using namespace std;
using namespace rpos::robot_platforms;
int main(int argc, char * argv[])
{
    SlamwareCorePlatform platform = SlamwareCorePlatform::connect("192.168.11.1", 1445);
    cout << "Base version: " << platform.getSDPVersion() << endl;
    return 0
}
  1. 编译运行

在Visual Studio的主菜单中,单击Debug(调试)->Start Debugging(开始调试)即可编译运行您的程序。

API 概览

对象 说明
rpos::core::Location 位置
rpos::core::Rotation 旋转姿态
rpos::core::Pose 姿态
rpos::core::Action 动作
rpos::core::ActionStatus枚举 动作执行状态
rpos::core::Feature 特征类
rpos::core::RectangleF 矩形(float型)
rpos::core::Vector2f类 二维向量(float型)
rpos::core::Vector2i类 二维向量(int型)
rpos::core::LaserPoint类 激光雷达扫描点
rpos::core::RobotPlatform 机器人平台基类
rpos::actions::MoveAction 移动动作
rpos::feature::motion_planner::MoveOptionFlag枚举 机器人的移动方式
rpos::feature::motion_planner::MoveOptions结构体 机器人的移动特征
rpos::features::ArtifactProvider 器物功能特征,包括了虚拟墙功能。
rpos::features::LocationProvider 定位功能特征。
rpos::features::MotionPlanner 路径规划功能特征。
rpos::features::SweepMotionPlanner类 清扫路径规划功能特征类。
rpos::features::SystemResource 系统资源功能特征类。
rpos::features::location_provider::Map 地图基类。
rpos::features::location_provider::MapType枚举 MapType枚举表示地图的类型。
rpos::features::location_provider::BitmapMap 位图地图。
rpos::features::location_provider::BitmapMapPixelFormat枚举 BitmapMapPixelFormat枚举表示位图地图的像素格式。
rpos::features::motion_planner::Path 代表一条路径。
rpos::features::system_resource::LaserScan 代表一次激光扫描数据。
rpos::robot_platforms::SlamwareCorePlatform Slamware CORE对象