public ValkyrieFingerTrajectoryMessagePublisher(Ros2Node ros2Node, MessageTopicNameGenerator subscriberTopicNameGenerator) { publisher = ROS2Tools.createPublisher(ros2Node, ValkyrieHandFingerTrajectoryMessage.class, subscriberTopicNameGenerator); }
public <T> IHMCROS2Publisher<T> createPublisher(Class<T> messageType, MessageTopicNameGenerator generator) { return ROS2Tools.createPublisher(ros2Node, messageType, generator); }
public PelvisPoseCorrectionCommunicator(RealtimeRos2Node realtimeRos2Node, MessageTopicNameGenerator topicNameGenerator) { if (realtimeRos2Node != null && topicNameGenerator != null) { poseErrorPublisher = ROS2Tools.createPublisher(realtimeRos2Node, PelvisPoseErrorPacket.class, topicNameGenerator); localizationPublisher = ROS2Tools.createPublisher(realtimeRos2Node, LocalizationPacket.class, topicNameGenerator); } else { poseErrorPublisher = null; localizationPublisher = null; } }
public <T> IHMCROS2Publisher<T> createPublisher(Class<T> messageType, String topicName) { return ROS2Tools.createPublisher(ros2Node, messageType, topicName); }
public ValkyriePunchMessenger(String robotName, Ros2Node ros2Node) { MessageTopicNameGenerator subscriberTopicNameGenerator = ControllerAPIDefinition.getSubscriberTopicNameGenerator(robotName); armTrajectoryPublisher = ROS2Tools.createPublisher(ros2Node, ArmTrajectoryMessage.class, subscriberTopicNameGenerator); highLevelStatePublisher = ROS2Tools.createPublisher(ros2Node, HighLevelStateMessage.class, subscriberTopicNameGenerator); }
@SuppressWarnings("unchecked") public <T> IHMCROS2Publisher<T> createPublisher(Class<T> messageType, String topicName) { MessageTopicPair<T> key = new MessageTopicPair<>(messageType, topicName); IHMCROS2Publisher<T> publisher = (IHMCROS2Publisher<T>) publishers.get(key); if (publisher != null) return publisher; publisher = ROS2Tools.createPublisher(ros2Node, messageType, topicName); publishers.put(key, publisher); return publisher; }
@SuppressWarnings("unchecked") public <T> IHMCROS2Publisher<T> createPublisher(Class<T> messageType, String topicName) { MessageTopicPair<T> key = new MessageTopicPair<>(messageType, topicName); IHMCROS2Publisher<T> publisher = (IHMCROS2Publisher<T>) publishers.get(key); if (publisher != null) return publisher; publisher = ROS2Tools.createPublisher(ros2Node, messageType, topicName); publishers.put(key, publisher); return publisher; }
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 VideoPacketHandler(Ros2Node ros2Node) { publisher = ROS2Tools.createPublisher(ros2Node, VideoPacket.class, ROS2Tools.getDefaultTopicNameGenerator()); }
public CompressedFisheyeHandler(Ros2Node ros2Node) { publisher = ROS2Tools.createPublisher(ros2Node, FisheyePacket.class, ROS2Tools.getDefaultTopicNameGenerator()); }
public ZeroPoseMockRobotConfigurationDataPublisherModule(final DRCRobotModel robotModel) { fullRobotModel = robotModel.createFullRobotModel(); forceSensorDefinitions = fullRobotModel.getForceSensorDefinitions(); publisher = ROS2Tools.createPublisher(ros2Node, RobotConfigurationData.class, ControllerAPIDefinition.getPublisherTopicNameGenerator(robotModel.getSimpleRobotName())); Thread t = new Thread(this); t.start(); }
public MultisensePointCloud2WithSourceReceiver() throws URISyntaxException, IOException { super(PointCloud2WithSource._TYPE); URI masterURI = new URI("http://10.6.192.14:11311"); RosMainNode rosMainNode = new RosMainNode(masterURI, "LidarScanPublisher", true); rosMainNode.attachSubscriber("/singleScanAsCloudWithSource", this); rosMainNode.execute(); lidarScanPublisher = ROS2Tools.createPublisher(ros2Node, LidarScanMessage.class, ROS2Tools.getDefaultTopicNameGenerator()); }
public void startServer(NetworkPorts portToOpen) throws IOException { if (ros2Node != null) { LogTools.error("There is already a log server running."); } else { ros2Node = ROS2Tools.createRealtimeRos2Node(PubSubImplementation.FAST_RTPS, "lidar_log"); lidarScanPublisher = ROS2Tools.createPublisher(ros2Node, LidarScanMessage.class, ROS2Tools.getDefaultTopicNameGenerator()); ros2Node.spin(); } if (currentLoggingTask == null) currentLoggingTask = executorService.scheduleAtFixedRate(this::readData, 0L, 10L, TimeUnit.MILLISECONDS); }
public ValkyrieHandStateCommunicator(String robotName, FullHumanoidRobotModel fullRobotModel, ValkyrieHandModel handModel, RealtimeRos2Node realtimeRos2Node) { publisher = ROS2Tools.createPublisher(realtimeRos2Node, HandJointAnglePacket.class, ControllerAPIDefinition.getPublisherTopicNameGenerator(robotName)); for (RobotSide robotside : RobotSide.values) { for (ValkyrieHandJointName jointEnum : ValkyrieHandJointName.values) { OneDoFJointBasics joint = fullRobotModel.getOneDoFJointByName(jointEnum.getJointName(robotside)); handJoints.get(robotside).put(jointEnum, joint); } } packet = HumanoidMessageTools.createHandJointAnglePacket(null, false, false, new double[ValkyrieHandJointName.values.length]); }
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"); }
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)); }
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()); }
public RobotiqControlThread(String robotName, RobotSide robotSide, CloseableAndDisposableRegistry closeableAndDisposableRegistry) { super(robotSide); this.robotSide = robotSide; robotiqHand = new RobotiqHandCommunicator(robotSide); handDesiredConfigurationMessageSubscriber = new HandDesiredConfigurationMessageSubscriber(robotSide); manualHandControlProvider = new ManualHandControlProvider(robotSide); MessageTopicNameGenerator publisherTopicNameGenerator = ControllerAPIDefinition.getPublisherTopicNameGenerator(robotName); MessageTopicNameGenerator subscriberTopicNameGenerator = ControllerAPIDefinition.getSubscriberTopicNameGenerator(robotName); IHMCRealtimeROS2Publisher<HandJointAnglePacket> handJointAnglePublisher = ROS2Tools.createPublisher(realtimeRos2Node, HandJointAnglePacket.class, publisherTopicNameGenerator); jointAngleCommunicator = new HandJointAngleCommunicator(robotSide, handJointAnglePublisher, closeableAndDisposableRegistry); ROS2Tools.createCallbackSubscription(realtimeRos2Node, HandDesiredConfigurationMessage.class, subscriberTopicNameGenerator, handDesiredConfigurationMessageSubscriber); ROS2Tools.createCallbackSubscription(realtimeRos2Node, ManualHandControlPacket.class, subscriberTopicNameGenerator, manualHandControlProvider); realtimeRos2Node.spin(); }
private void registerPubSubs(RealtimeRos2Node ros2Node) { /* subscribers */ // we want to listen to the incoming request ROS2Tools.createCallbackSubscription(ros2Node, FootstepPlanningRequestPacket.class, FootstepPlannerCommunicationProperties.subscriberTopicNameGenerator(robotName), s -> processFootstepPlanningRequestPacket(s.takeNextData())); // we want to also listen to incoming REA planar region data. ROS2Tools.createCallbackSubscription(ros2Node, PlanarRegionsListMessage.class, REACommunicationProperties.publisherTopicNameGenerator, s -> processIncomingPlanarRegionMessage(s.takeNextData())); // publishers outputStatusPublisher = ROS2Tools.createPublisher(ros2Node, FootstepPlanningToolboxOutputStatus.class, FootstepPlannerCommunicationProperties.publisherTopicNameGenerator(robotName)); messager.registerTopicListener(FootstepPlannerMessagerAPI.PlanningResultTopic, request -> checkAndPublishIfInvalidResult()); messager.registerTopicListener(FootstepPlannerMessagerAPI.FootstepPlanTopic, request -> publishResultingPlan()); }
@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); }