public RosSCSLidarPublisher(ObjectCommunicator localObjectCommunicator, RosMainNode rosMainNode, PPSTimestampOffsetProvider ppsTimestampOffsetProvider, FullRobotModel fullRobotModel, DRCRobotLidarParameters[] lidarParameters) { nSensors = lidarParameters.length; this.rosMainNode = rosMainNode; this.ppsTimestampOffsetProvider = ppsTimestampOffsetProvider; this.lidarParameters = lidarParameters; lidarPublisher = new RosLidarPublisher[nSensors]; for (int sensorId = 0; sensorId < nSensors; sensorId++) { lidarPublisher[sensorId] = new RosLidarPublisher(false); String rosTopic = lidarParameters[sensorId].getRosTopic(); rosMainNode.attachPublisher(rosTopic, lidarPublisher[sensorId]); } localObjectCommunicator.attachListener(SimulatedLidarScanPacket.class, this); }
public void publish(SimulatedLidarScanPacket lidarScan, String frameId, Time timestamp) sensor_msgs.LaserScan message = getMessage(); publish(message);
@Override public void consumeObject(SimulatedLidarScanPacket simLidarScan) { if(rosMainNode.isStarted()){ int sensorId = simLidarScan.getSensorId(); long timestamp = ppsTimestampOffsetProvider.adjustRobotTimeStampToRosClock(simLidarScan.getLidarScanParameters().getTimestamp()); Time time = Time.fromNano(timestamp); String frameId = lidarParameters[sensorId].getEndFrameForRosTransform(); lidarPublisher[sensorId].publish(simLidarScan, frameId, time); } }
public void publish(SimulatedLidarScanPacket lidarScan, String frameId, Time timestamp) sensor_msgs.LaserScan message = getMessage(); publish(message);
@Override public void consumeObject(SimulatedLidarScanPacket simLidarScan) { if(rosMainNode.isStarted()){ int sensorId = simLidarScan.getSensorId(); long timestamp = ppsTimestampOffsetProvider.adjustRobotTimeStampToRosClock(simLidarScan.getLidarScanParameters().getTimestamp()); Time time = Time.fromNano(timestamp); String frameId = lidarParameters[sensorId].getEndFrameForRosTransform(); lidarPublisher[sensorId].publish(simLidarScan, frameId, time); } }
@Override public void consumeObject(SimulatedLidarScanPacket simLidarScan) { if(rosMainNode.isStarted()){ int sensorId = simLidarScan.getSensorId(); long timestamp = ppsTimestampOffsetProvider.adjustRobotTimeStampToRosClock(simLidarScan.getLidarScanParameters().getTimestamp()); Time time = Time.fromNano(timestamp); String frameId = lidarParameters[sensorId].getEndFrameForRosTransform(); lidarPublisher[sensorId].publish(simLidarScan, frameId, time); } }
public RosSCSLidarPublisher(ObjectCommunicator localObjectCommunicator, RosMainNode rosMainNode, PPSTimestampOffsetProvider ppsTimestampOffsetProvider, FullRobotModel fullRobotModel, DRCRobotLidarParameters[] lidarParameters) { nSensors = lidarParameters.length; this.rosMainNode = rosMainNode; this.ppsTimestampOffsetProvider = ppsTimestampOffsetProvider; this.lidarParameters = lidarParameters; lidarPublisher = new RosLidarPublisher[nSensors]; for (int sensorId = 0; sensorId < nSensors; sensorId++) { lidarPublisher[sensorId] = new RosLidarPublisher(false); String rosTopic = lidarParameters[sensorId].getRosTopic(); rosMainNode.attachPublisher(rosTopic, lidarPublisher[sensorId]); } localObjectCommunicator.attachListener(SimulatedLidarScanPacket.class, this); }
public RosSCSLidarPublisher(ObjectCommunicator localObjectCommunicator, RosMainNode rosMainNode, PPSTimestampOffsetProvider ppsTimestampOffsetProvider, FullRobotModel fullRobotModel, DRCRobotLidarParameters[] lidarParameters) { nSensors = lidarParameters.length; this.rosMainNode = rosMainNode; this.ppsTimestampOffsetProvider = ppsTimestampOffsetProvider; this.lidarParameters = lidarParameters; lidarPublisher = new RosLidarPublisher[nSensors]; for (int sensorId = 0; sensorId < nSensors; sensorId++) { lidarPublisher[sensorId] = new RosLidarPublisher(false); String rosTopic = lidarParameters[sensorId].getRosTopic(); rosMainNode.attachPublisher(rosTopic, lidarPublisher[sensorId]); } localObjectCommunicator.attachListener(SimulatedLidarScanPacket.class, this); }