Hey, I'm Garrett.
Broadly speaking, I am interested in software, hardware, math, and art. I enjoy extending the capabilities of open-source projects, developing algorithms to obtain a certain goal, and scripting repetitious tasks. I am interested in a wide range of different areas such as artificial intelligence, machine learning, robotics, computer vision, embedded systems, automobile safety systems, acoustics and fluids, and computer graphics.
Right now I'm working on a PhD in Computer Science and have been primarily focused on artificial intelligence and machine learning — in particular "adversarial transfer learning," drawing on work in the areas of generative adversarial networks (GANs) and domain adaptation.
Washington State University
PhD in Computer Science
Focus in Artificial Intelligence & Machine Learning
Walla Walla University
B.S. in Engineering: Concentration in Computer Engineering
Minor in Mathematics
- Tools - TensorFlow, ROS, Jupyter, Numpy, Yocto, GStreamer, Scikit-learn, PyMC, Tornado, Boost, OpenCL, OpenCV, CppCMS, Eigen, Qt, PoDoFo, git
- Embedded systems - NVidia Jetson, Raspberry Pi, Arduino, Wandboard, Mbed, Gumstix
- Robotic Activity Support (RAS) project to help older adults retain functional independence longer
- Created object detection datasets for use with YOLO and Tensorflow (TF)
- Trained CNNs on a high performance computing cluster with Slurm
- By writing Python ROS nodes, integrated object detection, finding 3D coordinates of objects from bounding boxes and point clouds, saving/querying locations to/from database, and controlling the Turtlebot 2 and 3
- Set up and included the Arduino camera pan-tilt in the robot model
- Wrote webpage for human interface on a tablet using roslibjs
- Helped with debugging navigation issues, creation of state machines with SMACH, and integrating all components together
- Helped drive robot during user experiments since complete autonomy was not functional at that point
- Developed and tested a UAV vision landing system prototype with Piccolo and Pixhawk autopilots
- Accelerate algorithms with Arm Neon and OpenCL allowing a PID controller to run in real time
- Corrected Raspberry Pi camera driver stride length calculation and Qt Gstreamer YUV to RGB color conversion
- Developed Gstreamer workaround for unreleased buffers in camera driver and integrated Qt GStreamer into a Qt QML app
- Created Yocto Project layer for embedded Linux setup with Gumstix camera
- Developed in-house Windows Phone app for balancing UAV motors
- Rewrote Matlab code for Kalman filter in C++ with unit tests
- Taught game programming with Unity, Boolean and fuzzy logic with Lego Mindstorms, and RF propagation with a "fox" hunt
- Led students building a hydraulic claw, surface-mount Softrock SDR kit, and through-hole soldering a Velleman Microbug kit
- Built an inexpensive 2-axis hanging CNC drawing machine using an Arduino
High School Math & Computer Teacher
- Taught 8th grade math, Algebra 1, Geometry, Algebra 2, Precalculus, and 1 semester of 12th grade computers
- Configured / managed a lab with 18 Windows computers using WDS and batch script unattended software installs
- iTALC for monitoring, mandatory user profiles on server and software restriction policies for student accounts
- Wilson, G., Cook, D. (2018). Adversarial Transfer Learning. Manuscript submitted for publication.
- Wilson, G., Pereyda, C., Raghunath, N., de la Cruz, G., Goel, S., Nesaei, S., Minor, B., Schmitter-Edgecombe, M., Taylor, M.E., Cook, D.J., Robot-Enabled Support of Daily Activities in Smart Home Environments, Cognitive Systems Research (2018), doi: https://doi.org/10.1016/j.cogsys.2018.10.032
- Thermal Soaring UAV - Bayesian methods vs. GP regression,
2 autopilot C++/Python network interfaces
2014 - 2016
- Bubble Form Grading - load PDF, image processing, C++
threading, AJAX web UI, CppCMS backend
2012 - 2014
- DHCP Spoofing Prevention - ebtables attack prevention in
Mininet, Linux per-process filesystem mounts
- Collaborative Quiz Website - peak of 1800 monthly visitors,
4 rewrites, used PHP, AJAX, and SQL
2007 - 2013
- School Bell System - C++ on Raspberry Pi monitors XML file
enabling by serial or GPIO, web frontend
2011 - 2012
- Directed Study in Computer Science: Deep Learning CptS 595
- Artificial Intelligence CptS 540
- Structured Prediction CptS 580
- Computational Genomics CptS 571
- Machine Learning CptS 570
- Advanced Algorithms CptS 515
- Gerontechnology I & II CptS 485, 486
- Intro to Artificial Intelligence CPTR 445
- Intro to Database Systems CPTR 414
- Intro to Networking & Computer I/O CPTR 425
- Digital Control Systems ENGR 454
- Digital Design ENGR 433
- Software Engineering CPTR 435
- Engineering Finite Element Methods ENGR 468
- Deep Learning Specialization by deeplearning.ai on Coursera.
- Sequence Models by deeplearning.ai on Coursera.
- Convolutional Neural Networks by deeplearning.ai on Coursera.
- Structuring Machine Learning Projects by deeplearning.ai on Coursera.
- Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization by deeplearning.ai on Coursera.
- Neural Networks and Deep Learning by deeplearning.ai on Coursera.
- Moahmoud M. Dillsi Family Graduate Fellowship 2018-2019
- EECS Harold P. Curtis Scholarship 2017-2019
- Walla Walla University Achievement Scholarship 2012-2016
- Jensen Math Scholarship 2013
- Walla Walla University Leadership Award 2012
- ACM Transactions on Intelligent Systems and Technology