本页介绍了get_sensor_value的用法, 包含当前所有传感器的类型,安装位置,触发状态等。
本页内容
需要
软件平台
- Visual Studio 2010
- Slamware Windows SDK:Slamware Windows SDK
- RoboStudio:Robostudio installer
- Sample Code:
硬件平台
(以下任选其一)
- Slamware SDP mini
- Slamware SDP
- Slamware 套装 (基于Slamware导航方案的用户机器人系统)
- Zeus/Apollo等底盘系统
编译运行
- 打开samples工程
- 右键get_sensor_value, 打开属性选项,将Slamware SDK 的include目录和lib目录添加到工程
- 右键get_sensor_value, 将此工程设置成StartUp project
- 右键get_sensor_value, 在Debugging页面中command Arguments处输入 192.168.11.1
格式说明:get_sensor_value <IP address> - 点击F5运行
- Console输出为(下图中0, 1两个bumper是触发状态,为0)
代码描述
代码功能说明: 获取传感器数据
获取传感器数据SlamwareCorePlatform sdp = SlamwareCorePlatform::connect(argv[1], 1445); std::cout <<"SDK Version: " << sdp.getSDKVersion() << std::endl; std::cout <<"SDP Version: " << sdp.getSDPVersion() << std::endl; std::vector<ImpactSensorInfo> sensors; bool result = sdp.getSensors(sensors); if (result) { for (std::vector<ImpactSensorInfo>::iterator it = sensors.begin(); it != sensors.end(); ++it) { std::cout << "Sensor id : " << it->id << std::endl; if (it->kind == ImpactSensorKindBumper) std::cout << "Sensor Kind: Bumper" << std::endl; else if (it->kind == ImpactSensorKindCliff) std::cout << "Sensor Kind: Cliff" << std::endl; else if (it->kind == ImpactSensorKindSonar) std::cout << "Sensor Kind: Sonar" << std::endl; else return 1; if (it->type == ImpactSensorTypeAnalog) std::cout << "Sensor Type: Analog" << std::endl; else if (it->type == ImpactSensorTypeDigital) std::cout << "Sensor Type: Digital" << std::endl; else return 1; std::cout << "Sensor Position: ( " << it->pose.x() << " , " << it->pose.y() << " , " << \ it->pose.z() << " ) ; Yaw = " << it->pose.yaw() << std::endl; ImpactSensorValue value; sdp.getSensorValue(it->id, value); std::cout << "Sensor Value : " << value.value<< std::endl; } }