public REAPlanarRegionPublicNetworkProvider(RegionFeaturesProvider regionFeaturesProvider, Ros2Node ros2Node, MessageTopicNameGenerator publisherTopicNameGenerator, MessageTopicNameGenerator subscriberTopicNameGenerator) { this.regionFeaturesProvider = regionFeaturesProvider; publisher = ROS2Tools.createPublisher(ros2Node, PlanarRegionsListMessage.class, publisherTopicNameGenerator); ROS2Tools.createCallbackSubscription(ros2Node, RequestPlanarRegionsListMessage.class, subscriberTopicNameGenerator, this::handlePacket); }
public <T> void createSubscriber(Class<T> messageType, MessageTopicNameGenerator generator, ObjectConsumer<T> consumer) { ROS2Tools.createCallbackSubscription(ros2Node, messageType, generator, s -> consumer.consumeObject(s.takeNextData())); }
public <T> void createSubscriber(Class<T> messageType, String topicName, ObjectConsumer<T> consumer) { ROS2Tools.createCallbackSubscription(ros2Node, messageType, topicName, s -> consumer.consumeObject(s.takeNextData())); }
public void setupCommunication(String robotName, RealtimeRos2Node realtimeRos2Node) { for (RobotSide robotSide : RobotSide.values) { ROS2Tools.createCallbackSubscription(realtimeRos2Node, HandDesiredConfigurationMessage.class, ControllerAPIDefinition.getSubscriberTopicNameGenerator(robotName), handDesiredConfigurationMessageSubscribers.get(robotSide)); ROS2Tools.createCallbackSubscription(realtimeRos2Node, ValkyrieHandFingerTrajectoryMessage.class, ControllerAPIDefinition.getSubscriberTopicNameGenerator(robotName), valkyrieHandFingerTrajectoryMessageSubscribers.get(robotSide)); } }
public <T> void createSubscriber(Class<T> messageType, MessageTopicNameGenerator topicNameGenerator, ObjectConsumer<T> consumer) { ROS2Tools.createCallbackSubscription(ros2Node, messageType, topicNameGenerator, s -> consumer.consumeObject(s.takeNextData())); }
public <T> void createSubscriber(Class<T> messageType, String topicName, ObjectConsumer<T> consumer) { ROS2Tools.createCallbackSubscription(ros2Node, messageType, topicName, s -> consumer.consumeObject(s.takeNextData())); }
public <T> void createSubscriber(Class<T> messageType, String topicName, ObjectConsumer<T> consumer) { ROS2Tools.createCallbackSubscription(ros2Node, messageType, topicName, s -> consumer.consumeObject(s.takeNextData())); }
@Override public void registerExtraPuSubs(RealtimeRos2Node realtimeRos2Node) { MessageTopicNameGenerator controllerPubGenerator = ControllerAPIDefinition.getPublisherTopicNameGenerator(robotName); ROS2Tools.createCallbackSubscription(realtimeRos2Node, RobotConfigurationData.class, controllerPubGenerator, s -> controller.receivedPacket(s.takeNextData())); ROS2Tools.createCallbackSubscription(realtimeRos2Node, CapturabilityBasedStatus.class, controllerPubGenerator, s -> controller.receivedPacket(s.takeNextData())); }
@Override public void registerExtraPuSubs(RealtimeRos2Node realtimeRos2Node) { MessageTopicNameGenerator controllerPubGenerator = ControllerAPIDefinition.getPublisherTopicNameGenerator(robotName); ROS2Tools.createCallbackSubscription(realtimeRos2Node, RobotConfigurationData.class, controllerPubGenerator, s -> { if (kinematicsToolBoxController != null) kinematicsToolBoxController.updateRobotConfigurationData(s.takeNextData()); }); ROS2Tools.createCallbackSubscription(realtimeRos2Node, CapturabilityBasedStatus.class, controllerPubGenerator, s -> { if (kinematicsToolBoxController != null) kinematicsToolBoxController.updateCapturabilityBasedStatus(s.takeNextData()); }); }
@Override public void registerExtraPuSubs(RealtimeRos2Node realtimeRos2Node) { MessageTopicNameGenerator controllerPubGenerator = ControllerAPIDefinition.getPublisherTopicNameGenerator(robotName); ROS2Tools.createCallbackSubscription(realtimeRos2Node, RobotConfigurationData.class, controllerPubGenerator, s -> { if (kinematicsPlanningToolboxController != null) kinematicsPlanningToolboxController.updateRobotConfigurationData(s.takeNextData()); }); ROS2Tools.createCallbackSubscription(realtimeRos2Node, CapturabilityBasedStatus.class, controllerPubGenerator, s -> { if (kinematicsPlanningToolboxController != null) kinematicsPlanningToolboxController.updateCapturabilityBasedStatus(s.takeNextData()); }); }
@Override public void registerExtraPuSubs(RealtimeRos2Node realtimeRos2Node) { MessageTopicNameGenerator controllerPubGenerator = ControllerAPIDefinition.getPublisherTopicNameGenerator(robotName); ROS2Tools.createCallbackSubscription(realtimeRos2Node, RobotConfigurationData.class, controllerPubGenerator, s -> { if (wholeBodyTrajectoryToolboxController != null) wholeBodyTrajectoryToolboxController.updateRobotConfigurationData(s.takeNextData()); }); } }
public TextToSpeechNetworkModule() { ROS2Tools.createCallbackSubscription(ros2Node, TextToSpeechPacket.class, ROS2Tools.getDefaultTopicNameGenerator(), s -> receivedPacket(s.takeNextData())); }
@Override public void registerExtraPuSubs(RealtimeRos2Node realtimeRos2Node) { ROS2Tools.createCallbackSubscription(realtimeRos2Node, FootstepPlanningRequestPacket.class, getSubscriberTopicNameGenerator(), s -> footstepPlanningToolboxController.processRequest(s.takeNextData())); ROS2Tools.createCallbackSubscription(realtimeRos2Node, FootstepPlannerParametersPacket.class, getSubscriberTopicNameGenerator(), s -> footstepPlanningToolboxController.processFootstepPlannerParameters(s.takeNextData())); ROS2Tools.createCallbackSubscription(realtimeRos2Node, VisibilityGraphsParametersPacket.class, getSubscriberTopicNameGenerator(), s -> footstepPlanningToolboxController.processVisibilityGraphsParameters(s.takeNextData())); ROS2Tools.createCallbackSubscription(realtimeRos2Node, PlanningStatisticsRequestMessage.class, getSubscriberTopicNameGenerator(), s -> footstepPlanningToolboxController.processPlanningStatisticsRequest()); textToSpeechPublisher = ROS2Tools.createPublisher(realtimeRos2Node, TextToSpeechPacket.class, ROS2Tools::generateDefaultTopicName); }
private CapturePointUpdatable createCapturePointUpdateable(YoGraphicsListRegistry yoGraphicsListRegistry) { CapturabilityBasedStatusSubscriber capturabilityBasedStatusSubsrciber = new CapturabilityBasedStatusSubscriber(); ROS2Tools.createCallbackSubscription(ros2Node, CapturabilityBasedStatus.class, ControllerAPIDefinition.getPublisherTopicNameGenerator(robotName), s -> capturabilityBasedStatusSubsrciber.receivedPacket(s.takeNextData())); CapturePointUpdatable ret = new CapturePointUpdatable(capturabilityBasedStatusSubsrciber, yoGraphicsListRegistry, registry); return ret; }
public MultiSenseParamaterSetter(RosMainNode rosMainNode, Ros2Node ros2Node) { this.rosMainNode = rosMainNode; multiSenseClient = new RosServiceClient<ReconfigureRequest, ReconfigureResponse>(Reconfigure._TYPE); rosMainNode.attachServiceClient("multisense/set_parameters", multiSenseClient); ROS2Tools.createCallbackSubscription(ros2Node, MultisenseParameterPacket.class, ROS2Tools.IHMC_ROS_TOPIC_PREFIX + "/multisense_parameter", s -> receivedPacket(s.takeNextData())); publisher = ROS2Tools.createPublisher(ros2Node, MultisenseParameterPacket.class, ROS2Tools.IHMC_ROS_TOPIC_PREFIX + "/initial_multisense_parameter"); }
private void setupRosLocalization() { new IHMCETHRosLocalizationUpdateSubscriber(robotName, rosMainNode, ros2Node, ppsTimestampOffsetProvider); RosLocalizationServiceClient rosLocalizationServiceClient = new RosLocalizationServiceClient(rosMainNode); ROS2Tools.createCallbackSubscription(ros2Node, LocalizationPacket.class, ROS2Tools.getDefaultTopicNameGenerator(), s -> rosLocalizationServiceClient.receivedPacket(s.takeNextData())); }
public StereoVisionPointCloudPublisher(FullHumanoidRobotModelFactory modelFactory, Ros2Node ros2Node, String robotConfigurationDataTopicName) { robotName = modelFactory.getRobotDescription().getName(); fullRobotModel = modelFactory.createFullRobotModel(); ROS2Tools.createCallbackSubscription(ros2Node, RobotConfigurationData.class, robotConfigurationDataTopicName, s -> robotConfigurationDataBuffer.receivedPacket(s.takeNextData())); pointcloudPublisher = ROS2Tools.createPublisher(ros2Node, StereoVisionPointCloudMessage.class, ROS2Tools.getDefaultTopicNameGenerator(robotName)); }
private void setupMocapModule(DRCRobotModel robotModel, DRCNetworkModuleParameters params) throws IOException { if (params.isMocapModuleEnabled()) { MocapPlanarRegionsListManager planarRegionsListManager = new MocapPlanarRegionsListManager(); Ros2Node ros2Node = ROS2Tools.createRos2Node(PubSubImplementation.FAST_RTPS, "ihmc_mocap_localization_node"); ROS2Tools.createCallbackSubscription(ros2Node, PlanarRegionsListMessage.class, REACommunicationProperties.publisherTopicNameGenerator, s -> planarRegionsListManager.receivedPacket(s.takeNextData())); new IHMCMOCAPLocalizationModule(robotModel, planarRegionsListManager); String methodName = "setupMocapModule"; printModuleConnectedDebugStatement(PacketDestination.MOCAP_MODULE, methodName); } }
public LidarScanPublisher(String lidarName, FullHumanoidRobotModelFactory modelFactory, Ros2Node ros2Node, String robotConfigurationDataTopicName) { robotName = modelFactory.getRobotDescription().getName(); PrintTools.info(robotName); fullRobotModel = modelFactory.createFullRobotModel(); lidarBaseFrame = fullRobotModel.getLidarBaseFrame(lidarName); RigidBodyTransform transformToLidarBaseFrame = fullRobotModel.getLidarBaseToSensorTransform(lidarName); lidarSensorFrame = ReferenceFrame.constructFrameWithUnchangingTransformToParent("lidarSensorFrame", lidarBaseFrame, transformToLidarBaseFrame); ROS2Tools.createCallbackSubscription(ros2Node, RobotConfigurationData.class, robotConfigurationDataTopicName, s -> robotConfigurationDataBuffer.receivedPacket(s.takeNextData())); lidarScanPublisher = ROS2Tools.createPublisher(ros2Node, LidarScanMessage.class, ROS2Tools.getDefaultTopicNameGenerator()); }
@Override public void initializeSimulatedSensors(ObjectCommunicator scsSensorsCommunicator) { ROS2Tools.createCallbackSubscription(ros2Node, RobotConfigurationData.class, ControllerAPIDefinition.getPublisherTopicNameGenerator(robotName), s -> robotConfigurationDataBuffer.receivedPacket(s.takeNextData())); DRCRobotCameraParameters multisenseLeftEyeCameraParameters = sensorInformation.getCameraParameters(ValkyrieSensorInformation.MULTISENSE_SL_LEFT_CAMERA_ID); CameraDataReceiver cameraDataReceiver = new SCSCameraDataReceiver(multisenseLeftEyeCameraParameters.getRobotSide(), fullRobotModelFactory, multisenseLeftEyeCameraParameters.getSensorNameInSdf(), robotConfigurationDataBuffer, scsSensorsCommunicator, ros2Node, ppsTimestampOffsetProvider); cameraDataReceiver.start(); lidarScanPublisher.receiveLidarFromSCS(scsSensorsCommunicator); lidarScanPublisher.setScanFrameToLidarSensorFrame(); lidarScanPublisher.start(); }