From c917f394babf0ee1c2463188bc590e9e32597449 Mon Sep 17 00:00:00 2001 From: ParkerTenBroeck <51721964+ParkerTenBroeck@users.noreply.github.com> Date: Sat, 26 Apr 2025 23:06:00 -0400 Subject: [PATCH] added to docs, removed unused code --- doc/doc.pdf | Bin 101225 -> 102347 bytes doc/doc.tex | 14 +++++++++----- jdbg/src/Gui.java | 2 +- robot/distance.cpp | 3 --- robot/headers.h | 6 ------ robot/robot.ino | 2 -- robot/webserver.cpp | 2 -- 7 files changed, 10 insertions(+), 19 deletions(-) diff --git a/doc/doc.pdf b/doc/doc.pdf index 6511a1d855586f3253560c628ebf5060be6a471e..5ef54d51e82d351ace3a381fc97a7e1d856200a0 100644 GIT binary patch delta 37116 zcmZsCLwGJ+&}3}ewr$(Sjcwa`W81cEJGn7$Y}&9)c}1gPfWzMM;(lemjhX6Q1pL91q) zw?=N$d?z?{RVknuHbYB}hQdRM*rjlFO@8j<9^v#uqs&rB8i16( zgw!gL_$Avbh3R5NQc(wE@vb=6MQk5-P9FW9_ttunB4pV`<3*o#YG%r*>C)KcDn=mod?wR(CCzFLupvL%B4G?SsKFX3Sj3Y03tK5;5%)o{8!t-IhC_0;TZ z_DAn9{^*u0`nb$12f8MP`z-QEyY&5`(-bik|JtBiC2{Z7tJ~|x$1SfF)~SP6EMD%C z;lLGsK=e5mB4ae^{rgKJK!1-;+deB%vXdB9G|RFB#MMM#S^W* ziX6ULF6GYX^vIW7S>y;DoQzXU3e1}

c&~k*r-zhy2-Vu2P;0tJ2MU7Q#ZF`T?7q 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
?*fwES!nAmeDc-xT#7T8C?Hir1K1d7Yp< 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¨Ezd<2tbd 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 bk{G2XWL~;jEGZA2%=JGVt*|h{NQ?GAaN-_# delta 35991 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 Xa&&ldWo8O7FfcVSISM5uMNdWw-@qOx diff --git a/doc/doc.tex b/doc/doc.tex index e4c35b6..7e3f560 100644 --- a/doc/doc.tex +++ b/doc/doc.tex @@ -103,7 +103,7 @@ With only two wheels its purely dynamically stable, will fall over due to its ow \subsection{Balancing} We have a vertical two wheeled robot I hope its fairly obvious when I say that it is only dynamically stable. This presents a challance because we need some system which keeps the system upright in a variaty of situations and responds dynamically to changes it cannot predict. \subsection{Odometry} -Knowing that our system is very dynamic and having the forsight to know that we will need to keep in constant motion to keep upright the odometry system will need to handle that. +Because we intend to map an area with the robot we need to know where we are. This issue is made slightly more challanging due to the fact we are in nearly constant motion keeping ourself upright. \subsection{Target Positions} The problem of target positions like odometry is made more challenging due to the fact we are almost constantly in motion. We simply cannot "not move" when we are in the location we want to be as we'd fall over. This means the target position will need to be a "best effort" battle to keep in the same place as best as we can. \subsection{Communication} @@ -121,14 +121,18 @@ The target position \section{Challanages} \subsection{Balancing} -Obviously a robot which stays upright and only has two wheels +Balancing took the longest out every task combined. It required research on not only PID control loops but also on different libraries and calibration requirements for our \texttt{MPU6050} gyroscope. These difficulties were compounded by the fact that we did not know which part/section would cause the robot to "randomly flail about and violently crash into the wall/floor". + \subsection{Odometry} -Keeping track of our position and angle was another challange that required careful consideration. Because the system is so dynamic and in constant motion we needed a system which could account for the constant movement to maintain a stable state. +We origionally didn't have encoders to keep track of our position and instead attempted to use the accelerometer to calculate displacement to save money on parts. This however, did not pan out. The first problem we ran into was our heading drifting. We knew it was going to be an issue after reading docs but tried a good old fassion "how bad could it possibly be" and oh boy did it drift fast. The second issue was "double integration over a noisy inaccurate signal" lead to our calculated position quickly exiting the stratosphere. These issues very quickly lead us to just get encoders. + \subsection{Target Positions} -Because the robot is in constant motion keeping itself balanced without a "push" towards a single position it will drift around. To solve this we use the odometry system as a input to the movement system. By setting the desired heading of the robot to the vector from its position to the target position, and by biasing the direction the robot will travel to be the direction to the target position we get a crude way of staying in a single position. +Using the bias towards a direction by setting the target angle was not the first approach we used. We originally directly added a movement speed to the motors like we do for turning. This however caused the robot to become unstable in certain situations. We eventually abandoned the approach in favor of the one used currently. \subsection{Communication} -Since we have limited processing power and time per loop iteration we need to be smart in how we receive and transmit data to our mapping software. For this reason we designed a stateless UDP based network protocol overtop the esp8266 Wifi \& UDP libraries. \cite{wifi_lib} +Since we have limited processing power/time per loop iteration we need to be smart in how we receive and transmit data to our mapping software. For this reason we designed a stateless UDP based network protocol overtop the esp8266 Wifi \& UDP libraries. \cite{wifi_lib}\\ + +We originally used a TCP+Webserver based library for this as it allowed us to use HTML+JS to display information but it continually had processing requirements the controller could not meet. \section{Resources Used} \begin{itemize} diff --git a/jdbg/src/Gui.java b/jdbg/src/Gui.java index deff08e..7d5d6b5 100644 --- a/jdbg/src/Gui.java +++ b/jdbg/src/Gui.java @@ -66,7 +66,7 @@ public class Gui extends JFrame implements KeyListener, MouseWheelListener { int number = 500; for(int i = 0; i < number; i ++){ try { - sum += robot.getEverything().await()[19-1]; + sum += robot.getEverything().await()[17-1]; } catch (Exception ex) { throw new RuntimeException(ex); } diff --git a/robot/distance.cpp b/robot/distance.cpp index 923fe2f..23e01cc 100644 --- a/robot/distance.cpp +++ b/robot/distance.cpp @@ -16,9 +16,6 @@ void initDistance(){ void updateDistance(){ if (lox.isRangeComplete()) { distanceReading = (float)lox.readRange(); -// if(distanceReading>2000){ -// distanceReading = (float)NAN; -// } }else{ distanceReading = 8000; } diff --git a/robot/headers.h b/robot/headers.h index 1707192..1eb9875 100644 --- a/robot/headers.h +++ b/robot/headers.h @@ -32,12 +32,6 @@ extern float angleOffset; extern float desiredYaw; extern float currentYaw; -struct DebugState{ - int motorTargetAngle; -}; - -extern DebugState dbgState; - //-------- wire #include #define Wire1 Wire diff --git a/robot/robot.ino b/robot/robot.ino index 5ae7c8c..7c7965e 100644 --- a/robot/robot.ino +++ b/robot/robot.ino @@ -17,8 +17,6 @@ float currentYaw = 0.0; FVec2 desiredPos; -DebugState dbgState; - void initSerial(){ Serial.begin(115200); while (!Serial); diff --git a/robot/webserver.cpp b/robot/webserver.cpp index 59721e6..837b191 100644 --- a/robot/webserver.cpp +++ b/robot/webserver.cpp @@ -70,9 +70,7 @@ struct EverythingPacket{ Udp.write((const char*)&ID, sizeof(ID)); float everything[] = { - (float)dbgState.motorTargetAngle, (float)distanceReading, - 0.0, //encoder.position(), angleSetpoint, angleInput, angleOutput, posSetpoint, posInput, posOutput, turnSetpoint, turnInput, turnOutput,