Control for RenBuggy
Dependencies: PID PinDetect mbed
Diff: RenBuggy_PID.cpp
- Revision:
- 2:cd7543fdcb8c
- Parent:
- 1:8a2a7adb3c5d
--- a/RenBuggy_PID.cpp Wed Mar 05 13:37:10 2014 +0000 +++ b/RenBuggy_PID.cpp Thu Mar 06 09:56:11 2014 +0000 @@ -143,6 +143,7 @@ int halfAxleLength = (m_axleLength + 1)/2; RadiusLeft = RadiusLeft < halfAxleLength ? halfAxleLength : RadiusLeft; + AngleLeft = AngleLeft > 90 ? 90 : AngleLeft; float m_fDistanceL = (2*pi*(RadiusLeft - halfAxleLength))*(m_countsPerRev/m_wheelCircumference)/(360/AngleLeft); float m_fDistanceR = (2*pi*(RadiusLeft + halfAxleLength))*(m_countsPerRev/m_wheelCircumference)/(360/AngleLeft); //gives the length of the arc over which the wheel will travel, and translates that into a number of wheel stripes @@ -190,6 +191,7 @@ int halfAxleLength = (m_axleLength + 1)/2; RadiusRight = RadiusRight < halfAxleLength ? halfAxleLength : RadiusRight; + AngleRight = AngleRight > 90 ? 90 : AngleRight; float m_fDistanceL = (2*pi*(RadiusRight + halfAxleLength))*(m_countsPerRev/m_wheelCircumference)/(360/AngleRight); //Forcing it to an int beforehand didn't work. It twitches instead of going argh no, but it still doesn't really work. float m_fDistanceR = (2*pi*(RadiusRight - halfAxleLength))*(m_countsPerRev/m_wheelCircumference)/(360/AngleRight); @@ -327,4 +329,4 @@ m_controllerR.setTunings(p, i, d); } -#endif +#endif \ No newline at end of file