forked from madhephaestus/KineticSystemsCourseware
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathkinetic.tex
More file actions
241 lines (212 loc) · 7.97 KB
/
Copy pathkinetic.tex
File metadata and controls
241 lines (212 loc) · 7.97 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
\documentclass{article}
\usepackage{enumitem,amssymb}
\newlist{todolist}{itemize}{2}
\setlist[todolist]{label=$\square$}
\usepackage{hyperref}
\hypersetup{
colorlinks=true,
linkcolor=blue,
filecolor=magenta,
urlcolor=cyan,
pdftitle={Kinetic Systems Class},
pdfpagemode=FullScreen,
}
\usepackage{graphicx}
\usepackage[margin=0.75in,headsep=.2in]{geometry}
\usepackage[svgnames,table]{xcolor}
\usepackage[tableposition=above]{caption}
\usepackage{pifont}
\newcommand*\CHECK{\ding{51}}
\begin{document}
{\huge \textbf{Kinetic Systems Class VERSIONNUMBER}}
\vspace{1cm}
{\huge \textbf{Vocabulary Sheet}}
\begin{itemize}
\item \textbf{Git} - A Version Control System for managing text files
\item \textbf{GitHub} - A website where git repositories are shared
\item \textbf{Repository} - A collection of files and their save-points
\item \textbf{Github Project} - A collection of repositories
\item \textbf{Repository Fork} - A copy of a repository that you can edit
\item \textbf{Pull Request} - A request to bring changes from a forked repository into the origin
\item \textbf{Github Issue} - A task in the TODO list within Github
\item \textbf{Linux } - An operating system for most computers in the world
\item \textbf{Arduino } - A tool chain for programming micro-controllers
\end{itemize}
\newpage
\section{Introduction And Software Tools:}
\begin{todolist}
\item Create Github Account
\item Install Arduino
\item Introduce Arduino Uno Board
\item Introduce Examples
\item Run Blink
\end{todolist}
\section{Circuits, Servos and Github:}
\begin{todolist}
\item Breadboard an LED circuit
\item Change LED circuit to connect to Arduino
\item Breadboard a Servo circuit
\item Run Servo Sweep example
\end{todolist}
\section{Potentiometers and Resistors:}
\begin{todolist}
\item Breadboard a pot circuit
\item Run the pot read example
\item Open Serial Monitor and see print statements
\item Read Arduino map() reference
\item Use pot to control servo
\end{todolist}
\section{Github and Issues:}
\begin{todolist}
\item Install Github Desktop
\item Introduce Github Issues
\item Add students to Github Project
\item Create a .ino file with blink and sweep
\item Commit with issue number linking
\item Push changes to close issue
\item Make issue to control servo with potentiometer
\item Commit to close issue and push
\end{todolist}
\newpage
\section{CAD, Tinkercad and STL's:}
\begin{todolist}
\item Install Cura 5.4+
\item Go to Tinkercad.com and make an account with your Bancroft Gmail
\item Follow the Make a Nametag worksheet
\item Open Nametag STL in Cura
\item Slice and view layers in Cura
\item Submit STL to Google Drive for printing
\end{todolist}
\section{BowlerStudio Intro:}
\begin{todolist}
\item Install BowlerStudio
\item Discuss What is Programmatic CAD
\item Discuss Programmatic CAD vs Sketch->extrude paradigm
\item Run Text to Speech Example
\item Make a copy and modify example
\item Run modified example
\item Publish with commit message
\item Make a new project in BowlerStudio called "ScriptTest"
\item Make a file called ScriptTest and select groovy as type
\item Print "Hello world" to the terminal
\item Commit and push
\item Go to GitHub.com to verify
\end{todolist}
\newpage
\section{CAD, BowlerStudio and Releases}
\begin{todolist}
\item Make an Issue to add a Nametag script
\item Add a file to git repo in BowlerStudio
\item Use Text extrude to add name
\item Use getTotalX() and getTotalY() to add a backing plate with 2mm boarder
\item Commit to close Issue
\item Make a Release and watch the STL creation in CI
\item Make issue to add servo and wave name
\item Add a Servo and Servo Horn vitamin from menu
\item Cut horn from nametag
\item Make a block and cut servo from it
\item Give all parts names and layout a print bed
\item Commit to close issue
\item Make Second release with servo assembly
\item Make an Issue to add assembly steps
\item Add an assembly step for each part
\item Commit to close the issue and push
\item Make a Third release
\end{todolist}
\newpage
\section{Debugger and IDE's}
\begin{todolist}
\item IDE's
\item Discuss Debugging
\item Demonstrate step-through debuggers
\item Set up Eclipse + BowlerStudio debugging
\item Debug a Groovy script
\end{todolist}
\section{Kinematics To CAD linking}
\begin{todolist}
\item Discuss a 1 DOF "arm"
\item Add a Second link to the arm
\item Attach CAD to kinematics
\item Pass the link length to the cad script
\item Move cad elements based on kinematic configuration [simple]
\item Introduce Transform Objects
\item Move cad elements based on kinematic configuration [Transform]
\item Convert CAD script into an object
\item Convert CAD script to take Transform to generate links
\item Convert CAD script to take Transform and next Link Motor names
\item Add a pencil holder to the tip of the arm
\item Prepare a 2 link arm for printing
\item Make a release with the 2 link arm
\item Comment each line of code to solidify understanding
\end{todolist}
\section{Kinematics Solving}
\begin{todolist}
\item Inverse kinematics of a 2 dof
\item Law of Cosines
\item Atan2 method
\item Introduce the KinematicsTest.groovy
\item Introduce the InverseSolver in BowlerStudio
\item Build IK for a 2 link arm
\item Validate IK using KinematicsTest.groovy
\end{todolist}
\section{Connect BowlerStudio robot to Arduino}
\begin{todolist}
\item Intro ESP32 and Arduino
\item Into WiFi on microcontrollers
\item Intro SimplePacketComs data structure
\item Install ESP32 toolchains (both of them)
\item Install Libraries: SimplePacketComs Esp32SimplePacketComs Preferences.h Esp32WifiManager ESP32Servo EasyBNO055\_ESP Adafrui\_Unified\_Sensor Adafruit\_BNO055
\item Program Marcos firmware \url{https://github.com/OperationSmallKat/MarcosFirmware}
\item Check the serial monitor for the AP (each robot will be different)
\item for each link: Change the "type" to "hidfast"
\item for each link: Change the "device name" to "midnight"
\item Change link 0 device index to 0
\item Plug the link 0 servo into ESp32 pin 23
\item Change link 1 device index to 1
\item Plug the link 1 servo into ESp32 pin 32
\item Publish changes and disconnect the robot in device manager
\item Open BowlerStudio
\item Connect Wifi of laptop to the ESP32's AP
\item Connect to the robot using the device manager
\item Observe that BowlerStudio found the ESP32 at 192.168.4.1
\item Observe that when you move a link in BowlerStudio, the link in reality moves the same way
\end{todolist}
\section{Calibrate Your robot}
\begin{todolist}
\item Use the angle sensor the measure the range of the servo
\item Record the range of the control signal
\item Calculate the real scale factor for the servo
\item Disconnect your robot, connect to Bancroft wifi
\item connect using the simulator and enter the scale changes
\item Publish the scale changes and disconnect
\item Connect to your esp32 AP and connect the new configuration
\item Use angle sensor to verify range is correct to the control signal
\item Put a pencil in the tip of the robot and clamp the base with a paper underneath
\item Run TestKinematics.groovy and observe the robot draws a straight line
\end{todolist}
\newpage
\section{Bonus Month, BowlerStudio Design Challenge:}
\begin{todolist}
\item Make a Copy of SmallKat Marcos
\item Load the STL of the head and modify it
\item Design a head based on Spike
\item attach Spike head to neck base
\item Print and verify new head works with SmallKat
\end{todolist}
\newpage
\leftline{\includegraphics[scale=0.5]{robotarm.jpeg} }
\begin{table}
\caption{Write the D-H parameters for this robot}
\rowcolors{1}{}{gray!7}
\begin{tabular}[t]{lccccccc}
Link & Theta & D & Radius & Alpha \\
S & & & & \\
L & & & & \\
U & & & & \\
R & & & & \\
B & & & & \\
T & & & & \\
\end{tabular}
\end{table}
\newpage
\end{document}