Versions Compared

Key

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

本页介绍了 RotationAction 的用法, 包含底盘当前的充电状态、电池电量、回坞状态等信息。包含使用rotate顺时针旋转、逆时针旋转,使用rotateTo旋转到指定角度等功能。

...

本页内容

Table of Contents


...

运行环境准备

...

  1. 打开RotationAction工程,检查libs路径下是否有 slamware_sdk_android.jar 文件,以及jinLibs路径下是否有 librpsdk.so 文件,若想尝试其他版本的SDK,请直接将这两个文件替换。



  2. 到 Project Structure --> app --> Dependencies 检查Slamware SDK是否添加到工程中。

    l


  3. 将以下代码段的"10.0.130.71"修改为底盘的IP地址,默认情况下为192.168.11.1,当WIFI处于Station模式下请将PC与底盘使用Ethenet连接后查看。方法说明:AbstractSlamwarePlatform connect(String host, int port),其中host为底盘IP,port为网络端口号,返回值为底盘的实例对象。

    Code Block
    languagejava
    themeMidnight
    /* 与底盘连接 */
    AbstractSlamwarePlatform robotPlatform = DeviceManager.connect("10.0.130.71", 1445);


  4. Android设备连接底盘发射出的WIFI或连入底盘的同一网络,按下shift + F10 运行,Android手机端的显示界面如下

    Info

    本例程仅仅用作最简单SDK类的演示,故没有写设计精美的界面和复杂的事务逻辑



  5. 在手机界面上从上到下依次点击各个按钮,机器人底盘将会进行相应的旋转运动,其运动状态可在Robostuio上观察到
    Multimedia
    date//旋转到指定角度

代码描述

  1. nameRotateAction.mp4



...


代码描述

  • Android端从上到下三个按键一次是使机器人逆时针转180度、逆时针转180度、转到yaw值为270度的位置。

    Info
    Rotation类的yaw属性为弧度制,所以此示例代码中使用setPI方法将角度转为弧度
    rotate(Rotation var1)



    Code Block
    languagejava
    themeMidnight
    title旋转指定角度/旋转到指定角度
    linenumberstrue
        /* 与底盘连接 */
        AbstractSlamwarePlatform robotPlatform = DeviceManager.connect("10.0.130.71", 1445);
    
        private float setPI(int i) {
            return (float)(i*Math.PI/180);
        }
    
        @Override
        public void onClick(View view) {
    
            try {
                /* 如果当前正在运动,先停止 */
                if(action != null) {
                    action.cancel();
                }
    
                switch (view.getId()) {
                    /* Anticlockwise Rotate 180 */
                    case R.id.button_anticlockwise:
                        action = robotPlatform.rotate(new Rotation(setPI(-180), 0, 0));
                        Log.d(TAG, "");
                        break;
    
                    /* Clockwise Rotate 180 */
                    case R.id.button_clockwise:
                        action = robotPlatform.rotate(new Rotation(setPI(180), 0, 0));
                        break;
    
                    /* Rotate to 270 */
                    case R.id.button_rotate_to:
                        action = robotPlatform.rotateTo(new Rotation(setPI(270), 0, 0));
                        break;
    
                    default:
                        break;
                }
        	} catch (ConnectionFailException e) {
            	/* Exception Handle code*/
    			...
        	}
    	}