コード例 #1
0
ファイル: run_simulation.py プロジェクト: braingram/Main
publisher = Publisher(5055)
if controller != None:
    publisher.addToCatalog('yaw_ang_target', controller.getDesiredYawDeg)
    publisher.addToCatalog('pitch_ang_target', controller.getDesiredPitchDeg)
    publisher.addToCatalog('knee_ang_target', controller.getDesiredKneeDeg)
publisher.addToCatalog('yaw_cmd', lambda: commands[0])
publisher.addToCatalog('pitch_cmd', lambda: commands[1])
publisher.addToCatalog('knee_cmd', lambda: commands[2])

d = {'offset': (0, 0, 2.00)}
s = Simulator(dt=5e-3,
              plane=1,
              pave=0,
              graphical=1,
              robot=LegOnColumn,
              robot_kwargs=d,
              start_paused=1,
              render_objs=1,
              draw_contacts=1,
              publish_int=20)

yaw_joint = s.robot.joints['hip_yaw']
pitch_joint = s.robot.joints['hip_pitch']
knee_joint = s.robot.joints['knee_pitch']
yaw_joint_bl = s.robot.joints['hip_yaw_bl']
pitch_joint_bl = s.robot.joints['hip_pitch_bl']
knee_joint_bl = s.robot.joints['knee_pitch_bl']
shock_joint = s.robot.joints['foot_shock']

control_period = 5e-3
last_time = 0.0
コード例 #2
0
ファイル: gimpy.py プロジェクト: braingram/Main
import sys
sys.path.append('..')
from SimulationKit import Simulator
from SimulationKit.Robots import LegOnStand
from SimulationKit.helpers import *
import time

from math import *

d = {'offset': (0, 0, 0.67)}
s = Simulator(dt=1e-3,
              plane=1,
              pave=0,
              graphical=1,
              robot=LegOnStand,
              robot_kwargs=d,
              start_paused=True)

# Put up the goal posts
wickets = []
static_geoms = []
row_n = 2
x_off = .5
y_off = .5
i = 0
# Rack up the pins
for i in range(row_n):
    for j in range(i + 1):
        body, geom = s.createCapsule(mass=1.0e1,
                                     length=1.0,
                                     radius=0.1,
コード例 #3
0
from SimulationKit import Simulator
from SimulationKit.Robots import SpiderWHydraulics
from ControlsKit.filters import LowPassFilter
from ControlsKit.time_sources import global_time
from UI import InputServer
import time

input_server = InputServer()
input_server.startListening()

d = {'offset': (0, 0, 1.5)}
s = Simulator(dt=2e-3,
              plane=1,
              pave=0,
              graphical=1,
              ground_grade=0.,
              robot=SpiderWHydraulics,
              robot_kwargs=d,
              render_objs=1,
              draw_contacts=0)
last_t = 0


def toScale(val):
    return float(val) / 128. - 1


try:
    while True:
        s.step()
        global_time.updateTime(s.getSimTime())
コード例 #4
0
import sys
sys.path.append('..')
from SimulationKit import Simulator
from SimulationKit.Robots import LegOnColumn

d = {'offset': (0, 0, 1.5)}
s = Simulator(dt=2e-3,
              plane=1,
              graphical=1,
              ground_grade=.00,
              robot=LegOnColumn,
              robot_kwargs=d,
              render_objs=1,
              draw_COM=0,
              draw_support=0,
              draw_contacts=0)
while True:
    s.step()
コード例 #5
0
sys.path.append('planners')

from SimulationKit import Simulator
from SimulationKit.Robots import SpiderWHydraulics
from SimulationKit.helpers import *
from ControlsKit.import_planner import importPlanner
from UI import InputServer, logger

# Check command-line arguments to find the planner module
update = importPlanner()

d = {'offset': (0, 0, 1.0)}
s = Simulator(dt=1e-3,
              plane=1,
              pave=0,
              graphical=1,
              robot=SpiderWHydraulics,
              robot_kwargs=d,
              start_paused=True)
input_server = InputServer()
input_server.startListening()

try:
    last_command = None
    while True:
        s.step()
        if not s.getPaused():
            time = s.getSimTime(
            ) + .0001  # FIXME: first time time_delta is called, it returns zero, which means pid commands infinity
            # FIXME: Known bug, getAcceleration returns (0,0,0)
            next_command = input_server.getLastCommand()
コード例 #6
0
ファイル: stompy.py プロジェクト: braingram/Main
import sys
sys.path.append('..')
from SimulationKit import Simulator
from SimulationKit.Robots import SpiderWHydraulics

d = {'offset': (0, 0, 1.5)}

print Simulator

s = Simulator(dt=2e-3,
              plane=1,
              graphical=1,
              ground_grade=.00,
              robot=SpiderWHydraulics,
              robot_kwargs=d,
              render_objs=1,
              draw_COM=1,
              draw_support=1,
              draw_contacts=0,
              height_map=None)

while True:
    s.step()
    s.robot.constantSpeedWalkSmart()
コード例 #7
0
ファイル: hexy_test.py プロジェクト: braingram/Main
import sys
sys.path.append('..')
from SimulationKit import Simulator
from SimulationKit.Robots import Hexy
import time

d = {'offset': (0, 0, 20e-2)}
s = Simulator(dt=0, plane=1, pave=0, graphical=1, robot=Hexy, robot_kwargs=d)

last_t = time.time()

rad2deg = 180. / 3.14159


def updateServo(j):
    j.servo.setPos(degrees=(j.servo_mult * rad2deg * j.getAngleTarget()) +
                   j.servo_offset)


while True:
    s.step()
    s.robot.constantSpeedWalk()
    if time.time() - last_t > 50e-3:
        updateServo(s.robot.legs[0]['hip_yaw'])
        updateServo(s.robot.legs[0]['hip_pitch'])
        updateServo(s.robot.legs[0]['knee_pitch'])
        updateServo(s.robot.legs[1]['hip_yaw'])
        updateServo(s.robot.legs[1]['hip_pitch'])
        updateServo(s.robot.legs[1]['knee_pitch'])
        updateServo(s.robot.legs[2]['hip_yaw'])
        updateServo(s.robot.legs[2]['hip_pitch'])