Revision ff7ad65b
| components/MotorControl.cpp | ||
|---|---|---|
| 434 | 434 |
chprintf((BaseSequentialStream*)&SD1, "dGain %f\n", this->dGain ); |
| 435 | 435 |
} |
| 436 | 436 |
|
| 437 |
void MotorControl::resetGains() |
|
| 438 |
{
|
|
| 439 |
// reset factors |
|
| 440 |
chSysLock(); |
|
| 441 |
this->motorCalibrationFactor = 1.0f; |
|
| 442 |
this->pGain = 1000; |
|
| 443 |
this->iGain = 0.08f; |
|
| 444 |
this->dGain = 0.01f; |
|
| 445 |
chSysUnlock(); |
|
| 446 |
|
|
| 447 |
// write reset factors to memory |
|
| 448 |
this->memory->setwheelfactor(this->motorCalibrationFactor); |
|
| 449 |
this->memory->setpGain(this->pGain); |
|
| 450 |
this->memory->setiGain(this->iGain); |
|
| 451 |
this->memory->setdGain(this->dGain); |
|
| 452 |
|
|
| 453 |
return; |
|
| 454 |
} |
|
| 455 |
|
|
| 437 | 456 |
|
| 438 | 457 |
|
| 439 | 458 |
void MotorControl::calcVelocity() {
|
| devices/DiWheelDrive/main.cpp | ||
|---|---|---|
| 670 | 670 |
} |
| 671 | 671 |
|
| 672 | 672 |
void shellRequestMotorCalibrate(BaseSequentialStream *chp, int argc, char *argv[]) {
|
| 673 |
global.motorcontrol.resetGains(); |
|
| 674 |
chprintf((BaseSequentialStream*)&global.sercanmux1, "motor calibration starts in five seconds...\n"); |
|
| 675 |
BaseThread::sleep(MS2ST(5000)); |
|
| 673 | 676 |
global.motorcontrol.isCalibrating = true; |
| 674 | 677 |
|
| 675 | 678 |
return; |
| ... | ... | |
| 681 | 684 |
return; |
| 682 | 685 |
} |
| 683 | 686 |
|
| 687 |
void shellRequestMotorResetGains(BaseSequentialStream *chp, int argc, char *argv[]) {
|
|
| 688 |
global.motorcontrol.resetGains();; |
|
| 689 |
|
|
| 690 |
return; |
|
| 691 |
} |
|
| 692 |
|
|
| 684 | 693 |
static const ShellCommand commands[] = {
|
| 685 | 694 |
{"shutdown", shellRequestShutdown},
|
| 686 | 695 |
{"wakeup", shellRequestWakeup},
|
| ... | ... | |
| 706 | 715 |
{"motor_stop", shellRequestMotorStop},
|
| 707 | 716 |
{"motor_calibrate", shellRequestMotorCalibrate},
|
| 708 | 717 |
{"motor_getGains", shellRequestMotorGetGains},
|
| 718 |
{"motor_resetGains", shellRequestMotorResetGains},
|
|
| 709 | 719 |
{NULL, NULL}
|
| 710 | 720 |
}; |
| 711 | 721 |
|
| include/amiro/MotorControl.h | ||
|---|---|---|
| 130 | 130 |
*/ |
| 131 | 131 |
void printGains(); |
| 132 | 132 |
|
| 133 |
/** |
|
| 134 |
* @brief Resets control gains. |
|
| 135 |
*/ |
|
| 136 |
void resetGains(); |
|
| 137 |
|
|
| 133 | 138 |
protected: |
| 134 | 139 |
virtual msg_t main(void); |
| 135 | 140 |
|
Also available in: Unified diff