Esempio n. 1
0
 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)
Esempio n. 2
0
 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
Esempio n. 3
0
 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)
Esempio n. 4
0
 def test_lcm(self):
     dut = DrakeLcm()
     self.assertIsInstance(dut, DrakeLcmInterface)
     # Quickly start and stop the receiving thread.
     dut.StartReceiveThread()
     dut.StopReceiveThread()
Esempio n. 5
0
    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()