本页介绍了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等底盘系统

例程下载

Win32-例程下载


编译运行

  1. 打开samples工,右键go_home_to_charge, 将此工程设置成StartUp project


  2. 右键go_home_to_charge, 打开属性选项,将Slamware SDK 的include目录和lib目录添加到工程

    Slamware SDK的include和lib目录无需复制到参考例程目录,只需在Visual Studio里指定路径即可。




  3. 右键go_home_to_charge, 在Debugging页面中command Arguments处输入 192.168.11.1
    格式说明:go_home_to_charge <IP address> 


  4. 点击F5运行
  5. 可以连上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);