예제 #1
0
 def test_geometry_with_params(self):
     builder = DiagramBuilder()
     plant = builder.AddSystem(CompassGait())
     scene_graph = builder.AddSystem(SceneGraph())
     geom = CompassGaitGeometry.AddToBuilder(
         builder=builder,
         floating_base_state_port=plant.get_floating_base_state_output_port(
         ),  # noqa
         compass_gait_params=CompassGaitParams(),
         scene_graph=scene_graph)
     # Confirming that the resulting diagram builds.
     builder.Build()
     self.assertIsInstance(geom, CompassGaitGeometry)
예제 #2
0
import argparse
import math
import numpy as np

from pydrake.all import (Box, DiagramBuilder, FindResourceOrThrow,
                         FloatingBaseType, Isometry3, RigidBodyTree,
                         SignalLogger, Simulator, VisualElement)
from pydrake.examples.compass_gait import (CompassGait, CompassGaitParams)
from underactuated import (PlanarRigidBodyVisualizer)

tree = RigidBodyTree(
    FindResourceOrThrow("drake/examples/compass_gait/CompassGait.urdf"),
    FloatingBaseType.kRollPitchYaw)
params = CompassGaitParams()
R = np.identity(3)
R[0, 0] = math.cos(params.slope())
R[0, 2] = math.sin(params.slope())
R[2, 0] = -math.sin(params.slope())
R[2, 2] = math.cos(params.slope())
X = Isometry3(rotation=R, translation=[0, 0, -5.])
color = np.array([0.9297, 0.7930, 0.6758, 1])
tree.world().AddVisualElement(VisualElement(Box([100., 1., 10.]), X, color))
tree.compile()

builder = DiagramBuilder()
compass_gait = builder.AddSystem(CompassGait())

parser = argparse.ArgumentParser()
parser.add_argument("-T",
                    "--duration",
                    type=float,
예제 #3
0
 def test_params(self):
     params = CompassGaitParams()
     params.set_mass_hip(1.)
     params.set_mass_leg(2.)
     params.set_length_leg(3.)
     params.set_center_of_mass_leg(4.)
     params.set_gravity(5.)
     params.set_slope(.15)
     self.assertEqual(params.mass_hip(), 1.)
     self.assertEqual(params.mass_leg(), 2.)
     self.assertEqual(params.length_leg(), 3.)
     self.assertEqual(params.center_of_mass_leg(), 4.)
     self.assertEqual(params.gravity(), 5.)
     self.assertEqual(params.slope(), .15)
예제 #4
0
 def test_params(self):
     params = CompassGaitParams()
     params.set_mass_hip(1.)
     params.set_mass_leg(2.)
     params.set_length_leg(3.)
     params.set_center_of_mass_leg(4.)
     params.set_gravity(5.)
     params.set_slope(.15)
     self.assertEqual(params.mass_hip(), 1.)
     self.assertEqual(params.mass_leg(), 2.)
     self.assertEqual(params.length_leg(), 3.)
     self.assertEqual(params.center_of_mass_leg(), 4.)
     self.assertEqual(params.gravity(), 5.)
     self.assertEqual(params.slope(), .15)
예제 #5
0
                         DiagramBuilder,
                         FindResourceOrThrow,
                         FloatingBaseType,
                         Isometry3,
                         RigidBodyTree,
                         SignalLogger,
                         Simulator,
                         VisualElement)
from pydrake.examples.compass_gait import (CompassGait, CompassGaitParams)
from underactuated import (PlanarRigidBodyVisualizer)


tree = RigidBodyTree(FindResourceOrThrow(
                        "drake/examples/compass_gait/CompassGait.urdf"),
                     FloatingBaseType.kRollPitchYaw)
params = CompassGaitParams()
R = np.identity(3)
R[0, 0] = math.cos(params.slope())
R[0, 2] = math.sin(params.slope())
R[2, 0] = -math.sin(params.slope())
R[2, 2] = math.cos(params.slope())
X = Isometry3(rotation=R, translation=[0, 0, -5.])
color = np.array([0.9297, 0.7930, 0.6758, 1])
tree.world().AddVisualElement(VisualElement(Box([100., 1., 10.]), X, color))
tree.compile()

builder = DiagramBuilder()
compass_gait = builder.AddSystem(CompassGait())

hip_torque = builder.AddSystem(ConstantVectorSource([0.0]))
builder.Connect(hip_torque.get_output_port(0), compass_gait.get_input_port(0))