public static void setupDRCRobotLidar(FloatingRootJointRobot robot, Graphics3DAdapter graphics3dAdapter, LocalObjectCommunicator objectCommunicator,
DRCRobotJointMap jointMap, DRCRobotLidarParameters lidarParams, TimestampProvider timestampProvider,
boolean startLidar)
{
if (graphics3dAdapter != null)
{
LidarMount lidarMount = getSensor(robot, lidarParams.getSensorNameInSdf());
LidarSensorDescription desciption = lidarMount.getDescription();
int horizontalRays = desciption.getPointsPerSweep();
int scanHeight = desciption.getScanHeight();
float fov = (float) (desciption.getSweepYawMax() - desciption.getSweepYawMin());
float near = (float) desciption.getMinRange();
float far = (float) desciption.getMaxRange();
LidarScanParameters lidarScanParameters = new LidarScanParameters(desciption.getPointsPerSweep(), desciption.getScanHeight(),
(float) desciption.getSweepYawMin(), (float) desciption.getSweepYawMax(),
(float) desciption.getHeightPitchMin(), (float) desciption.getHeightPitchMax(), 0,
(float) desciption.getMinRange(), (float) desciption.getMaxRange(), 0, 0);
DRCLidarCallback callback = new DRCLidarCallback(objectCommunicator, lidarScanParameters, lidarParams.getSensorId());
GPULidar lidar = graphics3dAdapter.createGPULidar(callback, horizontalRays, scanHeight, fov, near, far);
lidarMount.setLidar(lidar);
}
}