Skip to content
Suke0811 edited this page Jun 14, 2022 · 4 revisions

System API

System Concept

The main purposes of this system are:

  1. Run the same robot with different implementations simultaneously (hard, simulation, kinematics model)
  2. Open-loop synchronization between robots
  3. Separates robot definitions and implementation
  4. Generalized the implementation so it can be adapted to a different robot

How System Runs

You can add as many robots you like to run simultaneously as you want. For example, you can have two hardware robots, two simulations, and two kinematics models. Each robot has drive(input), sense(), and observe_state() functions and they are called at every timestep. Inputs come from whatever is associated with the system or robot itself, such as files, keyboards, and joysticks. If two or more robots share the same inputs, they'll run synchronously in an open loop.
Each robot can have associated output systems, and the default is to save all timestamps, inputs, states, and outputs to a file. You can reproduce the robot behaviors by using this file as a file input, which is useful if you have recorded the motions of a joystick-controlled robot.

Robot Definitions

Clone this wiki locally