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
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,
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())
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()
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()
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()
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'])