-
Notifications
You must be signed in to change notification settings - Fork 1
architecture
This file ensures the interface of different modules can match each other.
When assembly an agent with multiple modules, each module has some prerequisites which must be met by some other modules. For example, a controller may require the model module to provide the dynamics of a robot. This file visualizes the dependencies of modules.
To use this file, you should specify which module you want to use and clarify the semantic meaning of ambiguous input variables of all modules. For example,
specified = {
"controller":{"PID":{"x":"cartesian_x", "goal_x":"cartesian_goal_x"}},
"planner":{"OptimizationBasedPlanner":{"x":"state_x", "goal_x":"cartesian_goal_x"}},
"model":{"ModelBase":{}},
"estimator":{"NaiveEstimator":{}},
"sensor":{"StateSensor":{}, "CartesianSensor":{}}
}
The above code defines a model-based agent. The state of the robot that sent into the PID controller must be a cartesian state, and the goal must be a cartesian goal.
Sometimes, there are some dependencies between two inputs of a module, no matter where they come from. For example, some controller doesn't care which space the robot state is in, as long as the state is in the same space as the reference goal. In such a case, a cartesian state and a cartesian goal have mutual dependencies. Such dependencies are also visualized by running this file.