本页介绍了go_home_charge的用法, 包含机器人回充命令的使用。
本页内容
运行环境准备
软件平台
- Visual Studio 2010 SP1
- Slamware Windows SDK:Slamware Windows SDK
- RoboStudio(用于显示地图):Robostudio installer
Sample Code:
使用更高版本的Visual Studio可能会带来编译异常。
使用Visual Studio 2010(无SP1)可能会因为无法与.Net Framework兼容而报编译错误,此时增加SP1更新包即可解决问题
硬件平台
(以下任选其一)
- Slamware SDP mini
- Slamware 套装 (基于Slamware导航方案的用户机器人系统)
- Apollo/Ares/Athena等底盘系统
编译运行
- 打开samples工,右键go_home_to_charge, 将此工程设置成StartUp project
右键go_home_to_charge, 打开属性选项,将Slamware SDK 的include目录和lib目录添加到工程
Slamware SDK的include和lib目录无需复制到参考例程目录,只需在Visual Studio里指定路径即可。
- 右键go_home_to_charge, 在Debugging页面中command Arguments处输入 192.168.11.1
格式说明:go_home_to_charge <IP address> - 点击F5运行
- 可以连上Robostudio查看地图及机器人的运动
代码描述
调用goHome()接口来进行自动回充,如果没有找到充电桩或者充电失败,可以考虑重复调用此接口尝试再次对接。
一般来说,只有重复三次调用goHome()后对接仍然失败时,才可判定此次充电对接失败。在三次尝试调用过程中,任何一次完成了对接,仍可判定充电对接成功。
自动回充const int max_go_home_times = 3; SlamwareCorePlatform sdp = SlamwareCorePlatform::connect(argv[1], 1445); std::cout <<"SDK Version: " << sdp.getSDKVersion() << std::endl; std::cout <<"SDP Version: " << sdp.getSDPVersion() << std::endl; int go_home_count = 1; rpos::actions::MoveAction action; do { action = sdp.goHome(); action.waitUntilDone(); if(action.getStatus() == rpos::core::ActionStatusFinished) break; std::cout << "go home to charge times count: " << go_home_count << std::endl; go_home_count++; } while(go_home_count <= max_go_home_times);