This commit adds software reset of the brainstem modules. First, the Moto
is reset, then the GP (it seems that the GP acts as the I2C router... so moto has to be reset first -- this may not be true, not sure yet). Reset can be toggled in pilot by sending a USR2 to the pilot process. If reset is sent while robot is executing any sort of move, the only way to recover is to kill pilot. Reset can be toggled whenever the robot is not moving without consequence (obviously, brainstem state (including wheel odometry) is lost). There is also a separate reset command (brainstem-reset) that works independently. This command is now called in the pilot-wrapper.sh script before pilot is (re)started. * GNUmakefile.in: new target `brainstem-reset'. * garcia-pilot.cc: not much. * garciaUtil.cc: the brainstem_reset function. * garciaUtil.hh: prototypes... * pilot-wrapper.sh: call brainstem-reset (NOTE: this always fails the first time, and I'm not sure why. It always succeeds subsequently... so it makes no difference at the moment). * brainstem-reset.cc: new command to reset the brainstem modules.
Showing with 415 additions and 3 deletions