def testConnectPlanarSceneGraphVisualizer(self): """Cart-Pole with simple geometry.""" file_name = FindResourceOrThrow( "drake/examples/multibody/cart_pole/cart_pole.sdf") builder = DiagramBuilder() cart_pole, scene_graph = AddMultibodyPlantSceneGraph(builder, 0.0) Parser(plant=cart_pole).AddModelFromFile(file_name) cart_pole.Finalize() # The visualizer will connect to query object and calling draw will not # spawn any deprecation warnings. vis_query_object = ConnectPlanarSceneGraphVisualizer( builder=builder, scene_graph=scene_graph, xlim=[0.3, 1.2]) self.assertIsInstance(vis_query_object, PlanarSceneGraphVisualizer) # Confirm that arguments are passed through. self.assertEqual(vis_query_object.ax.get_xlim(), (0.3, 1.2)) # The visualizer will connect to the provided pose bundle port and # calling draw will generate a warning. vis_pose_bundle = ConnectPlanarSceneGraphVisualizer( builder=builder, scene_graph=scene_graph, output_port=scene_graph.get_pose_bundle_output_port()) vis_pose_bundle.set_name("vis_pose_bundle") self.assertIsInstance(vis_pose_bundle, PlanarSceneGraphVisualizer) diagram = builder.Build() diagram_context = diagram.CreateDefaultContext() vis_query_object_context = diagram.GetMutableSubsystemContext( vis_query_object, diagram_context) vis_pose_bundle_context = diagram.GetMutableSubsystemContext( vis_pose_bundle, diagram_context) # Note: we can't simply call diagram.Publish(diagram_context) because # the visualizer isn't set to be visible; as such, no drawing work # will be done. vis_query_object.draw(vis_query_object_context) with catch_drake_warnings(expected_count=1): vis_pose_bundle.draw(vis_pose_bundle_context)
def testConnectPlanarSceneGraphVisualizer(self): """Cart-Pole with simple geometry.""" file_name = FindResourceOrThrow( "drake/examples/multibody/cart_pole/cart_pole.sdf") builder = DiagramBuilder() cart_pole, scene_graph = AddMultibodyPlantSceneGraph(builder, 0.0) Parser(plant=cart_pole).AddModelFromFile(file_name) cart_pole.Finalize() # The function auto connects to the scene graph query object port. vis_auto_connect = ConnectPlanarSceneGraphVisualizer( builder=builder, scene_graph=scene_graph, xlim=[0.3, 1.2]) self.assertIsInstance(vis_auto_connect, PlanarSceneGraphVisualizer) # Confirm that arguments are passed through. self.assertEqual(vis_auto_connect.ax.get_xlim(), (0.3, 1.2)) # The function connects visualizer to provided query object port. vis_port_connect = ConnectPlanarSceneGraphVisualizer( builder=builder, scene_graph=scene_graph, output_port=scene_graph.get_query_output_port()) vis_port_connect.set_name("vis_port_connect") self.assertIsInstance(vis_port_connect, PlanarSceneGraphVisualizer) diagram = builder.Build() diagram_context = diagram.CreateDefaultContext() vis_auto_connect_context = diagram.GetMutableSubsystemContext( vis_auto_connect, diagram_context) vis_port_connect_context = diagram.GetMutableSubsystemContext( vis_port_connect, diagram_context) # Note: we can't simply call diagram.Publish(diagram_context) because # the visualizer isn't set to be visible; as such, no drawing work # will be done. vis_auto_connect.draw(vis_auto_connect_context) vis_port_connect.draw(vis_port_connect_context)