systemhas input/output ports that could be connected with other systems. A
systemblock can be a
leafsystemis the minimum build block and a
diagramis composed of multiple
leafsystemfunctions as basic components in robotics systems, like signals, sensors, controllers, planners, etc.
diagramto represent systems that internally have several connected systems that function as a whole.
diagramitself is a system and can be nested. The root diagram contains all the sub-systems and sub-diagrams.
contextis data of system states and parameters cached in a separate place. Each
systemhas its own
diagramare the only two information a
simulatorneeds to simulate. Given the
context, all methods called on a
systemshould be completely deterministic and repeatable (ref. Underactuated Robotics textbook).
diagram->CreateDefaultContext()which creates the context with default values for all the subsystems. Values in the context, such as the initial state and the initial time, can be independently set before the simulation begins.
simulatortakes in the system
diagramtogether with its
context, to simulate by updating parameters such as integral continuous state derivatives, compute discrete state updates, allocates the various outputs of a
diagramthat contains a unique
MultibodyPlantis considered as a robotic system.
MultibodyPlantinternally uses rigid body tree algorithms to compute the robot kinematics, dynamics, jacobian, etc.
system. So it has input/output ports that could be connected to other systems like controllers and visualizers.