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); } }