Versions Compared

Key

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



Excerpt

本页介绍了moveThis document introduces the demo project of "move_to_spot的用法, 包含导航模式下和轨道模式下的运动到目标点的过程。spot", including how to move in standard mode and virtual track mode.


Content

Table of Contents
stylesquare


IDE Preparation 

  • Software

本页内容

Table of Contents

运行环境准备

  • 软件平台

    • Visual Studio 2010  SP1
    • Slamware Windows SDK:Slamware Windows SDK
    • RoboStudio(用于显示地图for map display):Robostudio installer 
    • Sample Code: 

      Info

      使用更高版本的Visual Studio可能会带来编译异常。

      使用Visual Studio 2010(无SP1)可能会因为无法与.Net Framework兼容而报编译错误,此时增加SP1更新包即可解决问题

      Higher version of Visual Studio will cause errors. sometime you will need to upgrade SP1 package to make your VS compatable with .Net Framework.


  • Hardware

    硬件平台

          (以下任选其一)(Either one of following)

    • Slamware SDP mini 
    • Slamware SDP
    • Slamware
    • 套装 (基于Slamware导航方案的用户机器人系统)
    • Kit 
    • Zeus/
    • Apollo等底盘系统
    • Apollo robot base
例程下载

Download

Win32-例程下载Demo

Compiling

  1. Right click on "move

编译运行

  1. 打开samples工程,右键move_to_spot, 将此工程设置成StartUp projectspot" project, set as StartUp project.
  2. 右键moveRight click on "move_to_spot, 打开属性选项,将Slamware SDK 的include目录和lib目录添加到工程

    Info

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

    Image Removed

    ",then " Properties",configure "include" and "lib" directories to the corresponding folder path of Slamware SDK.

    Info

    It's not necessary to copy files to the project directory, user will only need to configure the path of SDK.


    Image Added

  3. Right click on "move_to_spot",set "Command Arguments"  as follows:
    Syntax Description:move右键move_to_spot, 在Debugging页面中command Arguments处输入 192.168.11.1 
    格式说明: move_to_spot <IP address> 


  4. 点击F5运行

  5. Click " F5" to execute.
  6. Robot motion and map could be seen on Robostudio.可以连上Robostudio查看地图及机器人的运动
    Multimedia
    namebandicam 2018-01-30 15-29-41-992.mp4

Code 

  • Robot moves firstly  to point

代码描述

  • 机器人导航运动到目标点(2, 0) ,期间遇到障碍物会自主避障,然后从(2,0) 沿虚拟轨道运动到目标点(0, 0)in standard mode, and then back to point (0,0) in virtual track mode, if any obstacle is detected, it will be automatically avoided with the standard mode or it will stops on virtual tracks on virtual track mode.

    Code Block
    languagecpp
    firstline1
    title导航到目标点
    linenumberstrue
            SlamwareCorePlatform sdp = SlamwareCorePlatform::connect(argv[1], 1445);
    		std::cout <<"SDK Version: " << sdp.getSDKVersion() << std::endl;
    		std::cout <<"SDP Version: " << sdp.getSDPVersion() << std::endl;
    		rpos::actions::MoveAction action = sdp.getCurrentAction();
    		if (action)
    			action.cancel();		
    		//move to location (2, 0), not on virtual track
    		rpos::features::motion_planner::MoveOptions options;
    		options.flag = MoveOptionFlag(MoveOptionFlagMilestone | MoveOptionFlagPrecise);
    		action = sdp.moveTo(rpos::core::Location(2, 0), options);
    		action.waitUntilDone();
    		if (action.getStatus() == rpos::core::ActionStatusError)
    			std::cout << "Action Failed: " << action.getReason() << std::endl;
    		//draw a virtual track from (0, 0) to (2, 0), then move to (0, 0) via virtual track
    		rpos::core::Line line(rpos::core::Point(0,0),rpos::core::Point(2,0));
    		sdp.addLine(ArtifactUsageVirtualTrack, line);
    		options.flag = MoveOptionFlag(MoveOptionFlagKeyPoints | MoveOptionFlagPrecise);
    		action = sdp.moveTo(rpos::core::Location(0, 0), options);
    		action.waitUntilDone();
    		if (action.getStatus() == rpos::core::ActionStatusError)
    			std::cout << "Action Failed: " << action.getReason() << std::endl;