![]() |
NASA Astrobee Robot Software
Astrobee Version:
Flight software for the Astrobee robots operating inside the International Space Station.
|
The control subsystem takes the pose from the EKF, as well as control commands, to determine the forces and torques that should be applied to the robot for smooth control. If executes the given segment based on a trajectory given by the choreographer, the fault checking on the execution is done in the choreographer based on the feedback.
The layout of this module is a bit complicated for historical reasons— the ctl_nodelet is a thin wrapper to the Ctl class in ctl_ros.h which interfaces between different modules via ROS. The Control class in ctl.h then implements the main underlying functionality.
gnc/ekf
: EKF State from EKFgnc/ctl/control
Action. See the Control action specification for details.gnc/ctl/command
: The force and torque commanded by control.gnc/ctl/shaper
: The output from the GNC command shaper, which smooths the control.gnc/ctl/traj
: The trajectory that the control subsystem is being commanded to follow.gnc/ctl/segment
: The current segment the control subsystem is traversing.gnc/ctl/progress
: The progress in executing the current segment.The controller internally has four modes:
In the case a new controller is to be tested, it is possible to enable/disble the current controller using the service gnc/ctl/enable
. true
will enable the control and false
will disable it. If the requested state is the one already active, then the service does not return success.