SensorUSS — Ultrasonic Radar (Physical-Level Raw Data Ingestion)¶
Note
Example directory: [SimOne installation directory]\SimOneAPI\SensorRaw\SensorUssRadar
Overview
Demo code for physical-level ultrasonic radar data. Use GetUltrasonicRadars_Pys to retrieve obstacle detection results from all ultrasonic probes, or use GetUltrasonicRadar_Pys to retrieve data from a single probe.
Receiving Ultrasonic Radar Data
#include <SimOneServiceAPI.h>
#include <SimOneSensorAPI.h>
std::string mainVehicleId = "0";
std::string sensorId = "ultrasonic_physical1"; // Sensor configuration name
// Initialize SimOne API
SimOneAPI::InitSimOneAPI(mainVehicleId.c_str(), false, "127.0.0.1");
int lastFrame = 0;
while (true) {
// Method 1: Get data from all ultrasonic probes
std::unique_ptr<SimOne_Data_UltrasonicRadars_Pys> pAll =
std::make_unique<SimOne_Data_UltrasonicRadars_Pys>();
if (SimOneAPI::GetUltrasonicRadars_Pys(mainVehicleId.c_str(), pAll.get()) &&
pAll->frame != lastFrame)
{
for (int ussIndex = 0; ussIndex < pAll->ultrasonicRadarNum; ussIndex++) {
for (int i = 0; i < pAll->ultrasonicRadars[ussIndex].obstacleNum; i++) {
auto& det = pAll->ultrasonicRadars[ussIndex].obstacleDetections[i];
printf("sourceid:%d, dstid:%d, range:%.2f, x:%.2f, y:%.2f, z:%.2f, semantictype:%d\n",
det.sourceid, det.dstid, det.obstacleRanges,
det.x, det.y, det.z, det.semantictype);
}
}
lastFrame = pAll->frame;
}
// Method 2: Get data from a single ultrasonic probe
std::unique_ptr<SimOne_Data_UltrasonicRadar_Pys> pOne =
std::make_unique<SimOne_Data_UltrasonicRadar_Pys>();
if (SimOneAPI::GetUltrasonicRadar_Pys(mainVehicleId.c_str(), sensorId.c_str(), pOne.get())) {
for (int num = 0; num < pOne->obstacleNum; num++) {
auto& det = pOne->obstacleDetections[num];
printf("sourceid:%d, dstid:%d, range:%.2f\n",
det.sourceid, det.dstid, det.obstacleRanges);
}
}
std::this_thread::sleep_for(std::chrono::milliseconds(10));
}
Build Environment
CMakeLists.txt supports generating projects for Windows and Ubuntu.
Usage
Run the use case in SimOne, then run the algorithm in Visual Studio.