예제 #1
0
if __name__ == "__main__":
    from itertools import count
    from pyrobolearn.simulators import Bullet
    from pyrobolearn.worlds import BasicWorld

    # Create simulator
    sim = Bullet()

    # create world
    world = BasicWorld(sim)

    # create robot
    robots = []
    for _ in range(30):
        x, y = np.random.uniform(low=-1, high=1, size=2)
        robot = world.load_robot(Kilobot, position=(x, y, 0))
        robots.append(robot)

    # print information about the robot
    robots[0].print_info()

    # Position control using sliders
    # robots[0].add_joint_slider()

    # run simulator
    for _ in count():
        # robots[0].update_joint_slider()
        for robot in robots:
            robot.drive(5)
        world.step(sleep_dt=1. / 240)
예제 #2
0
    def __getattr__(self, item):
        """The Gym Env have the same methods and attributes as the PRL Env."""
        return getattr(self.env, item)


# Tests
if __name__ == '__main__':
    from pyrobolearn.simulators import Bullet
    import time

    # create simulator
    sim = Bullet()

    # create world
    world = BasicWorld(sim)
    robot = world.load_robot('coman', fixed_base=True)

    # create states
    states = State()

    # create rewards
    reward = Reward()

    # create Env
    env = Env(world, states, reward)

    # dummy action
    action = Action()

    # run the environment for n steps
    for _ in range(10000):
from itertools import count

from pyrobolearn.simulators import Bullet
from pyrobolearn.worlds import BasicWorld
from pyrobolearn.robots import KukaIIWA, Body

# Create simulator
sim = Bullet()

# create world
world = BasicWorld(sim)

# create robot
robot = KukaIIWA(sim)
robot.print_info()
world.load_robot(robot)

# define useful variables for IK
dt = 1. / 240
link_id = robot.get_end_effector_ids(end_effector=0)
joint_ids = robot.joints  # actuated joint
damping = 0.01  # for damped-least-squares IK
wrt_link_id = -1  # robot.get_link_ids('iiwa_link_1')
qIdx = robot.get_q_indices(joint_ids)

# define gains
kp = 50  # 5 if velocity control, 50 if position control
kd = 0  # 2*np.sqrt(kp)

# create sphere to follow
sphere = world.load_visual_sphere(position=np.array([0.5, 0., 1.]),
from itertools import count
from pyrobolearn.simulators import Bullet
from pyrobolearn.worlds import BasicWorld
from pyrobolearn.robots import Epuck

# Create simulator
sim = Bullet()

# create world
world = BasicWorld(sim)

# create robot
robots = []
for _ in range(5):
    x, y = np.random.uniform(low=-2, high=2, size=2)
    robot = world.load_robot(Epuck, position=(x, y, 0))
    robots.append(robot)

# print information about the robot
robots[0].print_info()

# Position control using sliders
# robots[0].add_joint_slider()

# run simulator
for _ in count():
    # robots[0].update_joint_slider()
    for robot in robots:
        robot.drive(5)
    world.step(sleep_dt=1. / 240)
from pyrobolearn.tasks import ILTask


# variables
joint_ids = None  # None for all the actuated joints, or you can select which joint you want to move; e.g. [0, 1, 2]
num_basis = 20
rate = 30

# Create simulator
sim = Bullet()

# create world
world = BasicWorld(sim)

# load robot in the world
robot = world.load_robot(KukaIIWA)
print("Robot's actuated joint ids: {}".format(robot.joints))

# create state/action
state = ExponentialPhaseState(ticks=rate)
action = JointPositionAction(robot, joint_ids=joint_ids)
print("State: {}".format(state))
print("Action: {}".format(action))

# create environment
env = Env(world, state)

# create DMP policy
policy = BioDiscreteDMPPolicy(action, state, num_basis=num_basis, rate=rate)

# create interface/bridge
print("CoMr: {}".format(CoMr))

if robot.name == 'centauro':
    xref_l1f = robot.get_link_world_frame_positions(left_foot1_id)  # Desired position for left foot
    xref_r1f = robot.get_link_world_frame_positions(right_foot1_id)  # Desired position for right foot
    xref_l2f = robot.get_link_world_frame_positions(left_foot2_id)  # Desired position for left foot
    xref_r2f = robot.get_link_world_frame_positions(right_foot2_id)  # Desired position for right foot
else:
    xref_lf = robot.get_link_world_frame_positions(left_foot_id)  # Desired position for left foot
    # Qref_lf = robot.get_link_world_frame_orientations(leftFootId)
    xref_rf = robot.get_link_world_frame_positions(right_foot_id)  # Desired position for right foot
    # Qref_rf = robot.get_link_world_frame_orientations(rightFootId)


# Display initial and desired manipulability ellipsoid
robot = world.load_robot(robot)
world.step()
q0 = robot.get_joint_positions()
print("q0: {}".format(q0))
Jcom0 = robot.get_center_of_mass_jacobian(q0)
if not robot.has_fixed_base():
    vel_manip = robot.compute_velocity_manipulability_ellipsoid(Jcom0[:, 6:])
else:
    vel_manip = robot.compute_velocity_manipulability_ellipsoid(Jcom0)
print("Mv0: {}".format(vel_manip[0:3, 0:3]))

base_pos = robot.get_base_position()
robot.draw_velocity_manipulability_ellipsoid(link_id=-1, JJT=10 * des_vel_manip, color=(0.1, 0.75, 0.1, 0.6))
ellipsoid_id = robot.draw_velocity_manipulability_ellipsoid(link_id=-1, JJT=10 * vel_manip[0:3, 0:3],
                                                            color=(0.75, 0.1, 0.1, 0.6))
    from pyrobolearn.simulators import Bullet
    from pyrobolearn.worlds import BasicWorld
    import time
    from itertools import count

    # create simulator
    sim = Bullet()

    # sim.configure_debug_visualizer(p.COV_ENABLE_GUI, 0)
    # sim.configure_debug_visualizer(p.COV_ENABLE_RENDERING, 0)
    # sim.configure_debug_visualizer(p.COV_ENABLE_TINY_RENDERER, 1)
    # sim.configure_debug_visualizer(p.COV_ENABLE_WIREFRAME, 1)
    # sim.configure_debug_visualizer(p.COV_ENABLE_Y_AXIS_UP, 0)
    # sim.configure_debug_visualizer(p.COV_ENABLE_RGB_BUFFER_PREVIEW, 0)
    # sim.configure_debug_visualizer(p.COV_ENABLE_DEPTH_BUFFER_PREVIEW, 0)
    # sim.configure_debug_visualizer(p.COV_ENABLE_SEGMENTATION_MARK_PREVIEW, 0)

    # create World
    world = BasicWorld(sim)

    # load robot
    robot = world.load_robot('baxter', fixed_base=True)

    # create bridge/interface
    bridge = BridgeMouseKeyboardWorld(world, verbose=True)

    for _ in count():
        bridge.step(update_interface=True)
        # world.step()
        time.sleep(1. / 100)