def test_subscriber_wait_for_message_with_timeout(self): """Confirms that the subscriber times out.""" lcm = DrakeLcm("memq://") with catch_drake_warnings(expected_count=1): lcm.StartReceiveThread() sub = mut.LcmSubscriberSystem.Make("TEST_LOOP", header_t, lcm) sub.WaitForMessage(0, timeout=0.02)
def test_lcm(self): dut = DrakeLcm() self.assertIsInstance(dut, DrakeLcmInterface) # Quickly start and stop the receiving thread. dut.StartReceiveThread() dut.StopReceiveThread() # Test virtual function names. dut.Publish dut.HandleSubscriptions
def test_subscriber_wait_for_message(self): """Ensures that `WaitForMessage` threading works in a Python workflow that is not threaded.""" # N.B. This will fail with `threading`. See below for using # `multithreading`. lcm = DrakeLcm("memq://") lcm.StartReceiveThread() sub = mut.LcmSubscriberSystem.Make("TEST_LOOP", header_t, lcm) value = AbstractValue.Make(header_t()) for i in range(3): message = header_t() message.utime = i lcm.Publish("TEST_LOOP", message.encode()) sub.WaitForMessage(i, value) self.assertEqual(value.get_value().utime, i)
def test_lcm(self): dut = DrakeLcm() self.assertIsInstance(dut, DrakeLcmInterface) # Quickly start and stop the receiving thread. dut.StartReceiveThread() dut.StopReceiveThread()
LcmPublisherSystem.Make('EST_ROBOT_STATE', robot_state_t, lcm)) robot_state_publisher.set_name('robot_state_publisher') robot_state_publisher.set_publish_period(1e-3) # Robot State Encoder robot_state_output = builder.AddSystem(RobotStateOutput()) # force_sensor_info robot_state_output.set_name('robot_state_output') builder.Connect(robot_state_output.lcm_message_output_port(), robot_state_publisher.get_input_port(0)) diagram = builder.Build() # while(True): # pub_context = diagram.GetMutableSubsystemContext(robot_state_publisher, diagram_context) # robot_state_publisher.Publish(pub_context) # simulation setting diagram_context = diagram.CreateDefaultContext() simulator = Simulator(diagram, diagram_context) simulator.set_publish_every_time_step(False) simulator.set_target_realtime_rate(1) simulator.Initialize() simulation_time = 10 lcm.StartReceiveThread() simulator.StepTo(100) lcm.StopReceiveThread()