Quadruped Robots [omni.isaac.quadruped]

Quadruped Controller

class A1QPController(name: str, _simulate_dt: float, waypoint_pose=None)

[summary]

A1 QP controller as a layer.

An implementation of the QP controller[1]

References

[1] Bledt, Gerardo, et al. “MIT Cheetah 3: Design and control of a robust, dynamic quadruped robot.”

2018 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS). IEEE, 2018.

advance(dt: float, measurement: omni.isaac.quadruped.utils.a1_classes.A1Measurement, path_follow=False, auto_start=True) numpy.array

[summary]

Perform torque command generation.

Parameters
  • world. (dt {float} -- Timestep update in the) –

  • robot. (measurement {A1Measurement} -- Current measurement from) –

  • in (path_follow {bool} -- True if a waypoint is pathed) –

  • not (false if) –

  • automatically (auto_start {bool} -- True to start trotting after 1 second) –

  • pressed (False for start trotting after "Enter" is) –

Returns

np.ndarray – The desired joint torques for the robot.

ctrl_state_reset() None

[summary]

reset _ctrl_states and _ctrl_params to non-default values

reset() numpy.ndarray

[summary]

Reset the ctrl states.

set_target_command(base_command: Union[List[float], numpy.ndarray]) None

[summary]

Set target base velocity command from joystick

Parameters
  • base_command{Union[List[float]

  • robot (np.ndarray} -- velocity commands for the) –

setup() None

[summary]

Reset the ctrl states.

switch_mode()

[summary]

toggle between stationary/moving mode

update(dt: float, measurement: omni.isaac.quadruped.utils.a1_classes.A1Measurement)

[summary]

Fill measurement into _ctrl_states :param dt {float} – Timestep update in the world.: :param measurement {A1Measurement} – Current measurement from robot.:

class A1RobotControl

[summary]

The A1 robot controller This class uses A1CtrlStates to save data. The control joint torque is generated using a QP controller

generate_ctrl(desired_states: omni.isaac.quadruped.utils.a1_desired_states.A1DesiredStates, input_states: omni.isaac.quadruped.utils.a1_ctrl_states.A1CtrlStates, input_params: omni.isaac.quadruped.utils.a1_ctrl_params.A1CtrlParams) None

[summary]

main function, generate foot ground reaction force using QP and calculate joint torques

Parameters
  • states (input_states {A1CtrlStates} -- the control) –

  • states

  • parameters (input_params {A1CtrlParams} -- the control) –

update_plan(desired_states: omni.isaac.quadruped.utils.a1_desired_states.A1DesiredStates, input_states: omni.isaac.quadruped.utils.a1_ctrl_states.A1CtrlStates, input_params: omni.isaac.quadruped.utils.a1_ctrl_params.A1CtrlParams, dt: float) None

[summary]

update swing leg trajectory and several counters

Parameters
  • states (input_states {A1CtrlStates} -- the control) –

  • states

  • parameters (input_params {A1CtrlParams} -- the control) –

  • time-step. (dt {float} -- The simulation) –

Quadruped Robots

Quadruped Utilities