|Full Name: Wilson Holmes|
|Position: MOST Lab Assistant, MTU Computer Engineering Undergraduate|
|Background: Computer Engineering|
|Current School: Michigan Technological University|
|Interests: Robotics, 3D Printing, Programming, Linux and Robot Operating System (ROS), CAD, Open Source Technology|
|Skills: Programming (Java, Matlab, Mathematica), 3D Printing and Design, CNC Lathe Operation, Mechanical Design- CAD (Autodesk Inventor, NX, OpenSCAD), Creative Thinking and Problem Solving, Soldering (TH, SMD)|
|This user is a member of the Michigan Tech Open Sustainability Technology (MOST) Research Group.|
|This user is a member with an interest and knowledge of 3-D printing.|
Introduction[edit | edit source]
Hello! My name is Wilson Holmes and I am a Senior Computer Engineering Undergraduate student at Michigan Technological University. I am love the snow/winter and am also very passionate about Linux, robotics, computers, and programming. Currently I am working with Dr. Joshua M. Pearce in the MTU MOST lab.
Brief Biography[edit | edit source]
I am from the Grand Traverse area in lower Michigan. I currently go to school at Michigan Technological University and am working on my undergraduate degree in Computer Engineering. I am planning on continuing to get my masters as well. I previously worked at Verified Path Machining where I used CAD and operated CNC lathes. I love the Keweenaw, skiing and snowboarding, robotics, and programming.
Current Projects[edit | edit source]
- Building a 3D printer with a core-xy motion platform, and a direct drive extruder (E3D Hemera). Runs on 8-bit electronics based on an Arduino Mega 2560 and a RAMPS 1.4 board.
OSHE (Enterprise Projects)[edit | edit source]
Semester 1 Spring 2020[edit | edit source]
Growbot WebUI (Front-End)[edit | edit source]
This semester I worked on the front and back end of a web app for the Growbot project. Here is a link to the OSHE GitHub V1 branch. The main goal for the semester (for the website) was to get sensor data from the robot to be graphed on a page of the website. This was accomplished using python3, the Flask framework for python, Flask-Admin, Bootstrap 4 classes, graph.js, a SQLite3 database, the peewee object relation mapper for SQLite, and many other software tools. By the end of the semester, the website was capable of dynamically graphing all data stored in the database, as well as displaying a webcam stream from the robot. There are also conveniently placed links on the website that will take the user to the Appropedia Standard Operating Procedures (SOP) page with a tutorial on how to add new sensors to the Growbot, as well as how to start up the web server correctly. This included mini tutorials of all of the software tools I had used throughout the semester so that hopefully this project can easily be taken over/understood by future teams/people. In addition to the SOP page, I also provided a full installation guide on the Firmware Installation page. Because of the use of Bootstrap classes, I was able to make the website have full functionality and correct styling for both mobile and desktop devices.
- Growbot WebUI Screenshots
Growbot WebUI (Database Management/Backend)[edit | edit source]
I also implemented a data management system for the Growbot's database, that everyday (1 am) saves the database tables to .csv files, and clears the database, and sends an email with those CSV files to the user. Using Flask-Admin allowed me to give the users an option to view the database (Individual tables and specific contents) right on the website. Eliminating the need for copying the database file over sshfs to the users main computer.
- Growbot CSV Export
Semester 2 Fall 2020[edit | edit source]
Growbot ODrive (Configuration)[edit | edit source]
During my Fall 2020 semester on the Growbot project I was software lead of the team and worked on configuring and programming the open source motor controller, ODrive v3.6. The main goal for the semester was to get the robot physically moving and autonomous functions developed. By the end of the semester, the robot was able to be controlled through a python curses Terminal User Interface (TUI), the ODrive configuration procedure/parameters were recorded in
odriveCommands.txtfor future students to reference, and rudimentary wire following was implemented. This was accomplished with the use of an Adafruit Analog to Digital Converter (ADC) and an inductor-circuit combo that can be found here at robotshop.com. To see a snapshot of this semester's software progress I will refer you to the OSHE GitHub V2 branch for the "OSHE_Growbot" repository.
- Growbot ODrive Configuration and Sensor Setup
Growbot ODrive (Control and Testing)[edit | edit source]
So far, all of the programming that I have done in the enterprise has been in python. This includes the Terminal User Interface to a remote control program for the Growbot, the test files for the Adafruit ADC, and the rudimentary wire following code. Even
odrivetool, a terminal shell for the ODrive is remarkably similar to the python shell. As for wire following, for the current set-up there is no feedback control loop in place for the robot (no PID) so it is directly driven by the values coming from the inductor circuit and to the ADC. This is something that can be worked on in future semesters when hopefully in-person collaboration is available again.
- Growbot Remote and Wire Following Control (Click thumbnails to see animations)
Work Experience[edit | edit source]
Past Employment[edit | edit source]
- Verified Path Machining
- Beginning of Summer 2016 - End of Summer 2018
- Reverse engineered a grout swivel and other related drilling parts with Fusion 360, then operated the CNC machines that the parts were produced.
- FANUC America Corporation
- Beginning of Summer 2020 - End of Summer 2020
- Tested iRVision accuracy with different robot calibration techniques on two 6-axis robot models, a R-2000 and an LR-Mate. Wrote technical documentation and scripts for making data collection and other parts of the testing process easier for the vision system testing.
- Edited .HTML and other files to update the built in beginner iRvision tutorials that are stored/run on the robot controllers that are equipped with vision capabilities.
Hobbies[edit | edit source]
I love playing acoustic guitar and singing. Photography, video editing, PC gaming, and programming also interest me. I also ski, iceskate, skateboard, and snowboard... I love the winter!