fix swapped feedback speed_measured left and right
This commit is contained in:
parent
fb961e3da7
commit
70a17af3f2
|
@ -23,7 +23,7 @@ unsigned long last_log_send=0;
|
||||||
#define LOGMININTERVAL 20 //minimum interval (ms) to send logs
|
#define LOGMININTERVAL 20 //minimum interval (ms) to send logs
|
||||||
#define LOGMAXINTERVAL 10000 //maximum time (ms) after which data is send
|
#define LOGMAXINTERVAL 10000 //maximum time (ms) after which data is send
|
||||||
|
|
||||||
#define WRITE_HEADER_TIME 1000
|
#define WRITE_HEADER_TIME 400 //just before FEEDBACKRECEIVETIMEOUT, so header gets written before error comments
|
||||||
bool log_header_written = false;
|
bool log_header_written = false;
|
||||||
|
|
||||||
|
|
||||||
|
@ -112,12 +112,12 @@ SerialCommand CommandFront;
|
||||||
SerialCommand CommandRear;
|
SerialCommand CommandRear;
|
||||||
|
|
||||||
|
|
||||||
typedef struct{
|
typedef struct{ //match this struct to hoverboard-firmware SerialFeedback struct in main.c
|
||||||
uint16_t start;
|
uint16_t start;
|
||||||
int16_t cmd1;
|
int16_t cmd1;
|
||||||
int16_t cmd2;
|
int16_t cmd2;
|
||||||
int16_t speedL_meas; //left speed is negative when driving forward
|
int16_t speedR_meas; //right speed is negatie when driving forward
|
||||||
int16_t speedR_meas; //right speed is positive when driving forward
|
int16_t speedL_meas; //left speed is positive when driving forward
|
||||||
int16_t batVoltage;
|
int16_t batVoltage;
|
||||||
int16_t boardTemp;
|
int16_t boardTemp;
|
||||||
int16_t curL_DC; //negative values are current consumed. positive values mean generated current
|
int16_t curL_DC; //negative values are current consumed. positive values mean generated current
|
||||||
|
@ -130,8 +130,8 @@ SerialFeedback NewFeedbackFront;
|
||||||
SerialFeedback FeedbackRear;
|
SerialFeedback FeedbackRear;
|
||||||
SerialFeedback NewFeedbackRear;
|
SerialFeedback NewFeedbackRear;
|
||||||
|
|
||||||
#define CURRENT_FILTER_SIZE 20 //latency is about CURRENT_FILTER_SIZE/2*MEASURE_INTERVAL (measure interval is defined by hoverboard controller)
|
#define CURRENT_FILTER_SIZE 40 //latency is about CURRENT_FILTER_SIZE/2*MEASURE_INTERVAL (measure interval is defined by hoverboard controller)
|
||||||
#define CURRENT_MEANVALUECOUNT 4 //0<= meanvaluecount < CURRENT_FILTER_SIZE/2. how many values will be used from sorted weight array from the center region. abour double this values reading are used
|
#define CURRENT_MEANVALUECOUNT 10 //0<= meanvaluecount < CURRENT_FILTER_SIZE/2. how many values will be used from sorted weight array from the center region. abour double this values reading are used
|
||||||
typedef struct{
|
typedef struct{
|
||||||
int16_t curL_DC[CURRENT_FILTER_SIZE] = {0}; //current will be inverted for this so positive value means consumed current
|
int16_t curL_DC[CURRENT_FILTER_SIZE] = {0}; //current will be inverted for this so positive value means consumed current
|
||||||
int16_t curR_DC[CURRENT_FILTER_SIZE] = {0};
|
int16_t curR_DC[CURRENT_FILTER_SIZE] = {0};
|
||||||
|
@ -359,10 +359,10 @@ void writeLog(HardwareSerial &SerialRef, unsigned long time, MotorParameter &mpf
|
||||||
SerialRef.print(mprear.filtered_curL,3); SerialRef.print(",");
|
SerialRef.print(mprear.filtered_curL,3); SerialRef.print(",");
|
||||||
SerialRef.print(mprear.filtered_curR,3); SerialRef.print(",");
|
SerialRef.print(mprear.filtered_curR,3); SerialRef.print(",");
|
||||||
|
|
||||||
SerialRef.print(-fbfront.speedL_meas); SerialRef.print(","); //invert speed, because left wheels are negated
|
SerialRef.print(fbfront.speedL_meas); SerialRef.print(","); //invert speed, because left wheels are negated
|
||||||
SerialRef.print(fbfront.speedR_meas); SerialRef.print(",");
|
SerialRef.print(-fbfront.speedR_meas); SerialRef.print(",");
|
||||||
SerialRef.print(-fbrear.speedL_meas); SerialRef.print(","); //invert speed, because left wheels are negated
|
SerialRef.print(fbrear.speedL_meas); SerialRef.print(","); //invert speed, because left wheels are negated
|
||||||
SerialRef.print(fbrear.speedR_meas); SerialRef.print(",");
|
SerialRef.print(-fbrear.speedR_meas); SerialRef.print(",");
|
||||||
|
|
||||||
SerialRef.print(fbfront.boardTemp/10.0); SerialRef.print(","); //in degC
|
SerialRef.print(fbfront.boardTemp/10.0); SerialRef.print(","); //in degC
|
||||||
SerialRef.print(fbrear.boardTemp/10.0); SerialRef.print(","); //in degC
|
SerialRef.print(fbrear.boardTemp/10.0); SerialRef.print(","); //in degC
|
||||||
|
@ -569,7 +569,7 @@ void readButtons() {
|
||||||
|
|
||||||
if (button_start_state) { //pressed
|
if (button_start_state) { //pressed
|
||||||
if ( (loopmillis> button_start_lastchange + LONG_PRESS_ARMING_TIME)) { //pressed long
|
if ( (loopmillis> button_start_lastchange + LONG_PRESS_ARMING_TIME)) { //pressed long
|
||||||
if (throttle_pos<=0 && brake_pos<=0 && !armed) { //brake or thottle not pressed
|
if (throttle_pos<=0 && brake_pos<=0 && controllers_connected && !armed) { //brake or thottle not pressed, controllers connected
|
||||||
armed=true; //arm if button pressed long enough
|
armed=true; //arm if button pressed long enough
|
||||||
writeLogComment(Serial1,loopmillis, "Armed by button");
|
writeLogComment(Serial1,loopmillis, "Armed by button");
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue