本页介绍了 GetLaserScan 的用法, 使用getLaserScan方法实现当前雷达扫描数据的获取。
本页内容
Sample Code:
使用不同版本的Android Studio可能会带来编译异常,请自行下载相关库和修改build.gradle配置文件,本例程基于Slamware Android SDK 2.6.0 进行开发,若想尝试更高的SDK版本,请直接替换工程中的 slamware_sdk_android.jar 和 librpsdk.so 文件。 |
(以下任选其一)
到 Project Structure --> app --> Dependencies 检查Slamware SDK是否添加到工程中。
将以下代码段的"10.0.130.71"修改为底盘的IP地址,默认情况下为192.168.11.1,当WIFI处于Station模式下请将PC与底盘使用Ethenet连接后查看。方法说明:AbstractSlamwarePlatform connect(String host, int port),其中host为底盘IP,port为网络端口号,返回值为底盘的实例对象。
/* 与底盘连接 */ AbstractSlamwarePlatform robotPlatform = DeviceManager.connect("10.0.130.71", 1445); |
Android设备连接底盘发射出的WIFI或连入底盘的同一网络,按下shift + F10 运行
本例程仅仅用作最简单SDK类和方法的演示,故没有设计Android界面 |
获取当前雷达获取到的数据
/* 与底盘连接 */ final AbstractSlamwarePlatform robotPlatform = DeviceManager.connect("10.0.130.71", 1445); LaserScan laserScan; try { laserScan = robotPlatform.getLaserScan(); /* Get Lidar scan data */ Vector<LaserPoint> laserPoints = laserScan.getLaserPoints(); /* print Laser data */ for(int i=0; i<laserPoints.size(); i++) { Log.d(TAG, "Angle: " + laserPoints.get(i).getAngle() + " Distance: " + laserPoints.get(i).getDistance() +" is Valid: " + laserPoints.get(i).isValid()); } } } catch (ConnectionTimeOutException e) { /* Exception Handle code*/ .... } |