47 #ifndef _MIRA_IMOTORCONTROLLER_H_ 48 #define _MIRA_IMOTORCONTROLLER_H_ 52 namespace mira {
namespace robot {
63 template<
typename Reflector>
68 r.interface(
"IMotorController");
70 "Enables/disable the motors.",
71 "enable",
"whether to enable",
true);
73 "Reset the motor stop flags (bumper, emergency stop flags, etc).");
75 "Temporarily suspend bumper detection.");
77 "Returns true if suspending the bumper is supported by the motor controller.");
79 "Reset the odometry to zero.");
81 "Performs an emergency stop and sets the motor emergency stop flag.");
virtual void emergencyStop()=0
Performs an emergency stop and sets the motor emergency stop flag.
virtual void enableMotors(bool enable)=0
Enables/disable the motors.
virtual void resetMotorStop()=0
Reset the motor stop flags (bumper, emergency stop flags, etc).
#define MIRA_REFLECT_BASE(reflector, BaseClass)
virtual void resetOdometry()=0
Reset the odometry to zero.
virtual ~IMotorController()
Definition: IMotorController.h:84
virtual bool suspendBumperSupported()
Whether the motor controller can suspend (temporarily) the bumper detection.
Definition: IMotorController.h:108
An interface class for objects, which provide a "drive" capability.
Definition: IDrive.h:57
An interface class for objects, which provide a "drive" capability.
virtual void suspendBumper()
Temporarily disable Bumper.
Definition: IMotorController.h:105
An interface class for objects, which provide a motor controller.
Definition: IMotorController.h:57
void reflect(Reflector &r)
Definition: IMotorController.h:64