AGVC SDK  0.8.0
AGVC SDK

当前 API 文档下载地址:AGVC SDK API 文档.pdf

概述

AGVC SDK 提供了一套完整的接口来控制和管理AGV系统,通过 AGVC_API (主入口) 建立通讯可以实现AGV的地图管理、路径规划、运动控制、充电、系统状态监控等功能

目录

  • 快速开始
  • SDK 架构
  • 使用示例
  • 命名空间
  • 错误处理
  • 支持的编程语言

快速开始

基本使用流程

// 1. agv sdk初始化
auto rpc = std::make_shared<agvc_interface::RpcClient>();
// 2. agv通讯设置
// 2.1 设置通讯超时时间
rpc->setRequestTimeout(100);
// 2.2 连接agv
rpc->connect("192.168.192.100", 30104);
// 2.3 登录
rpc->login("aa", "bb");
// 3. agv 功能接口使用
// 3.1 查询agv信息
rpc->getAgvDetails();
// 3.2 获取激光点云
rpc->getLaserPointCloud();

SDK 架构

层次结构

AGVC_API (主入口)
├── Map(地图)
├── Station(站点)
├── Path(路径)
├── Navigation(导航)
├── Charging(充电)
├── AgvInfo(Agv信息)
└── System(系统)

使用示例

获取机器人详细信息

// 建立通讯
auto rpc = std::make_shared<agvc_interface::RpcClient>();
rpc->setRequestTimeout(100);
rpc->connect("192.168.192.100", 30104);
rpc->login("aa", "bb");
// 获取agv详细信息
auto agv_details = rpc->getAgvDetails();

创建地图

// 抢占控制权
rpc->setPriority("aa", "");
// 切换建图模式
agvc_interface::Header header;
header.id = "123sdaw-asdafas-zff";
agvc_interface::RunningMode mode = agvc_interface::RunningMode::MAPPING;
auto ret = rpc->changeRunningMode(mode, header);
// 查询异步接口(changeRunningMode)执行状态
agvc_interface::AsyncInterfaceResultStatus async_rusult = rpc->getAsyncInterfaceResultStatus();
agvc_interface::ChangeRunningModeStatus change_running_mode_status = async_rusult.change_running_mode_status.status;
// 如果异步接口运行状态为Running, 则重复调用,直到异步接口运行完成
while (change_running_mode_status == agvc_interface::ChangeRunningModeStatus::RUNNING)
{
change_running_mode_status = rpc->getAsyncInterfaceResultStatus().change_running_mode_status.status;
std::this_thread::sleep_for(std::chrono::milliseconds(10));
}
// 异步接口运行状态非running,接口运行结束,重新调用接口查询执行接口
ret = rpc->changeRunningMode(mode, header);
// 判断异步接口运行结果
if(ret == 10100000){
std::cout <<"切换建图模式成功";
}else{
std::cout <<"切换建图模式失败,错误码:"<< ret;
}

保存地图

// 抢占控制权
rpc->setPriority("aa", "");
// 设置地图header
agvc_interface::Header map_header;
map_header.id = "test_save_map";
map_header.map_id = map_id;
map_header.name = "test1";
map_header.stamp = 1;
auto ret = rpc->saveMap(map_header);
// 查询异步接口(savemap)执行状态
agvc_interface::AsyncInterfaceResultStatus async_rusult = rpc->getAsyncInterfaceResultStatus();
auto save_map_status = ret.save_map_status.status;
// 如果异步接口运行状态为Running, 则重复调用,直到异步接口运行完成
while (save_map_status == agvc_interface::ChangeRunningModeStatus::RUNNING)
{
save_map_status = rpc->getAsyncInterfaceResultStatus().save_map_status.status;
std::this_thread::sleep_for(std::chrono::milliseconds(10));
}
// 异步接口运行状态非running,接口运行结束,重新调用接口查询执行接口
ret = rpc->saveMap(map_header);
// 判断异步接口运行结果
if(ret == 10100000){
std::cout <<"保存地图成功";
}else{
std::cout <<"保存地图失败,错误码:"<< ret;
}

命名空间

所有接口都定义在以下命名空间中:

namespace agvc_interface {
// 所有接口定义
}

错误处理

大多数接口方法返回整数错误码,其中 10100000 表示成功,其他值表示错误码,可以通过错误码查询接口查询含义。某些接口可能抛出 AuboException 异常。

支持的编程语言

  • C++
  • Python
  • JSON-RPC

相关文件