The class of action selector is where the specifics of a navigation algorithm are implemented. Basically, the role of the action selector is to determine the appropriate next action for the robot to perform given its current state and information from global and local cost functions.
Through the action selection decoupling from traversability analysis, it is straight forward to do modify the set of trajectories over which navigation algorithm searches. The generic action selector interface provide access or functions to get and set the current waypoint, and a function that returns the next action the robot should take.
To enable a generic algorithms implementation, action selectors are provided with a model of the locomotion capabilities of the rover. At minimum, the model provides kinematic properties, such as the number of wheels and the wheelbase of the robot. Action selectors may use this information to generically integrate terrain costs over the expected path of a robot.
The locomotors classes provide an abstract interface to the underlying the mechanism of robotic locomotion. The locomotion framework is structured in software of double-bridge, allowing independent specialization of the kinematic control interface and configuration. The wheel locomotors class provides the interface used by other components to maneuver the vehicle. The wheel locomotors interface defines functions that descendants must provide to encapsulate the specific of the protocol used to command the mechanism of locomotors.
The wheel locomotors model describes the robot kinematics. This structure allows for maximal code reuse, which is important particularly in a research environment where changes to the robot may occur incrementally, e.g. the control system may be redeveloped while the mechanical robot remains the same or vise versa.
Locomotors interface classes provide an abstraction to the different control interfaces potentially available on a robot, e.g. bank control, high level arc control, and independent motor control. Drive commands are used as a high level interface to the locomotors.
No comments:
Post a Comment