Background: I wanted to build a robot. A real robot. I spent some time my sophomore year of college doing autonomous robotics research with one my professors and I felt I had a good platfor+m of knowledge to leap from. But I didn’t want to do something that had already been done, or at least done alot. That meant tank drive, quadcopter, airplane… all the fantastic and refined vehicles- were off the table. I really liked the idea of a snake, mainly their maneuverability. They may not be the fastest at getting from point A to B, but they can get from pretty much any point A to B. While an autonomous wheeled vehicle waited for the elevator, the snake took the stairs. I love a mechanical system that begs to be used in multiple ways, rather than being designed just for one task. This brings us to my follow up thought: robotic arms. If you took a robotic snake and stapled one end of it to a table you get a pseudo robotic arm. Given the right end effector and motor torque, it can manipulate objects in its environment without the need for a secondary system. So that was my final vision really, a mobile robotic arm that can navigate most terrain on its own. It is a lofty goal, but I am also in it for the learning experience. I am still learning ROS, honing my 3D design skills, and wrapping my head around reverse kinematics. Each step is a little triumph for me that will help with future projects both personal and from employers. I will continue to post my progress and give my thoughts in hopes that it will be helpful to others. As always you can email me with any questions, suggestions, or otherwise.
TL;DR : I am making a snake robot because it can potentially act as both an agile mobile ground robot and a robotic arm.
Robot Operating System (ROS) – The entire robot is being developed in ROS, including 3D simulation and kinematics
Creating a ROS project and managing nodes
Creating custom messages for publishers and subscribers to understand
Working with description XML files to parameterize the robot
Simulation in Gazebo to develop a proper control algorithm
SOLIDWORKS – The 3D printed interconnecting pieces were designed and assembled in SOLIDWORKS
Switching over from Fusion 360 to SOLIDWORKS to be part of the industry standard
Using assemblies connect objects with movable joints for visualization and error checking
Export physical properties to an XML document readable by ROS for accurate simulation
Optimizing design for printability and minimal waste (minimal or no support plastic)
Exercising C++ skills in a practical setting
Structuring XML documents for ROS
Using sensors for mapping, although the form factor makes it relatively unconventional
Search and rescue robot
Equipment inspection (small spaces like pipes)
Education – can be built cheaply for experimentation
Entry Video Featured Image: SIUe Cougar Rockets 2020 Competition Team
Argonia is a quiet little town in the middle of the desolate Kansas plains. But every year, university teams travel from all across the country to make a little noise. The Argonia Cup is a “moon shot” style competition. The teams must launch a rocket to an apogee of at least 8000 ft and then deploy and land a payload on a predefined ground target. The payload takes the form of a golf ball and may be navigated to the target however the teams see fit. This could be through a cleverly controlled parachute, deployable aircraft (i.e. quadcopter), vectoring dart, or just plain luck. The criteria for winning is based on your rocket apogee and the distance your payload landed from the target.
Our team members consist of many different disciplines ranging from electrical, mechanical, and robotics to computer science and business. This competition is a great way to bring all of those together into one project. As a robotics engineering major I was very drawn to the payload return system. With my experience in autonomous UAVs (see my undergraduate research) I was very excited at the prospect of building a deployable aerial vehicle.
After some research and prototyping, our team decided to build an autonomous UAV in the form of a plane. The wings would be folded and packed lengthwise into the rocket body, then deployed via springs when released from the tube. On board would be a flight computer, wind speed sensor, altimeter, GPS, servos, and the required regulators and battery to power it all. It would be quite a feat for our small and inexperienced team, but with the limitless power of internet research and problem solving we dove in head first.
We took inspiration from various aerospace companies that had designed similar “tube launched” UAVs. From there we began 3D modelling and prototyping the deployment and flight mechanisms. This took the most time by far, but we learned a lot about 3D CAD software and creating functional assemblies. In particular I worked on the deployable rear v-wing and motor mount. For more details you can check out the progress posts above.
Unfortunately due to the COVID-19 pandemic the March 2020 competition was cancelled.. We have high hopes for a 2021 competition and are using the time to improve our design. Through more field testing we can identify the shortcomings and issues that require redesign or tuning. By next March we plan to be ready with a battle tested system.
Learning to collaborate with others on design and making decisions
Working with and managing a team with a lot of outside obligations (school work)
The importance of good sketches for conveying ideas to others
Creating deadlines and making lists
Designing micro mechanisms, limited by space and weight
Entry Video Featured Image: (Left to Right) Carlos Dulcamara, Brayton Larson (me!), Ben Kaschke
You might have done this experiment before:
Put 5 mL of water in a film canister
Drop in half a tablet of Alka Seltzer
Secure the cap
Place it cap side down on a table, wait.
3D Printed Polypropylene/Carbon Fiber Composite shell (painted red)
Static Ports for Equalizing Pressure
3D Printed Tube Fin
Electronic Parachute Release System
After 8-10 seconds there’s a pop and the canister body flies into the air. Now take that and multiply the number of tablets by 200 and you have the Bayer Alka-Rocket challenge. Now we didn’t pack 100 tablets into a film canister, nor did we make a giant replica of a film canister and pack it full. Instead we built a PVC pressure launcher, akin to a potato gun, that launches a completely student designed and 3D printed rocket with an electronic (altitude based) chute release.
The launcher featured a detachable water chamber that could be released after being reattached. This is to conserve as much generated CO2 as possible by having the reaction take place entirely in a closed system. The resulting gas and remaining aspirin water (dissolved from the tablets) are then released via a sprinkler diaphragm valve. The mixture rushes out of the system via the launch tube and pushes the rocket along with it.
I found this competition exactly 32 days before the due date. Thirty one days from the deadline my two roommates and I became an official competing team. To date it was one of the most difficult design challenges, mostly due to the time crunch, that I have taken on. I give the utmost of credit to my roommate and friend Ben Kaschke. Without his vision, dedication, and fantastic 3D modelling work we would not have finished the project. The other large part of the challenge is creating a submission video. To that I owe all the credit to Carlos Dulcamara, our other team member, who is a fantastic videographer, filmmaker, and communications student. There we are, up above, on the day of the first test launch. Alka Rockets 2020 has been cancelled for the COVID-19 pandemic but we had a great experience working together and continue to collaborate on projects.
Working on a small team and making design decisions
Greatly improved sketching for communicating designs
A better understanding of aerodynamics and rocket design
Running rocket simulations
Running fluid (air) flow simulations
Designing compact electronic systems
Designing pressure vessels and fluid systems
3D printing with more exotic and specialized materials
Calculating the yield strength of pressure vessels
Modelling dynamic pressure systems
Aerodynamic analysis with software
Flight analysis with software
Programming and packaging electronics
Autonomous Indoor Quadcopters
SIUe Undergrad Research Project on indoor navigation methods for aerial vehicles
Final custom quadcopter design from the research project (once it loads you can spin it around with your mouse!)
I remember the first interview I had with a professor at SIUe. It was sophomore year; I had applied to be a part of his research through the URCA program (Undergraduate Research and Creative Activities). I showed up at his office in a full suit and tie, resume and reference material in hand- nervous, but confident of my demeanor. The first thing he said to me as I walked into his office: “Didn’t you read the email I sent? I said to dress casual.” I stood silent for a moment, “No, I must have missed that…”, my confidence crushed. We then proceeded to get coffee and browse the local ceramics art show, all the while discussing his work and my experience (or the lack thereof).
I did not get the position.
I did learn something that day though: business suits don’t impress, your knowledge, experience, and drive does. My subsequent interviews with other professors went much better after taking this into account. The head of the Mechatronics Engineering department ended up extending me an offer and that’s where this project begins.
Dr. Nima Lotfi is a robotics fanatic, researcher, but above all- an educator. He really has a real passion for introducing robotics to middle and high school students. His research interests are extremely diverse, so I’ll only be diving into what I worked on him with. The project was initially pitched as developing a quadcopter that could safely navigate itself in an indoor, GPS starved environment. I was in deep and I truthfully had no idea what I was doing. So, I started with the basics. I learned quadcopter kinematics in an effort to position estimate based on the IMU data. Then I used Parrot’s Python API to test these equations on a small, off the shelf quadcopter. Somewhere in there I took some online Python courses. Shortly after I dove into LIDAR, Kalman filters, PID, ultrasonic sensors, stereoscopic cameras, etc… I realized if the research was going to go anywhere, we needed a stable platform to build it on.
Note: We later collaborated to create an instructive document for programming the Parrot drones with Python based on my research. He wanted to use this for an interactive summer class that taught high school students about programming.
Introducing ROS, the Robot Operating System for all your autonomous needs. Since this time, I have worked a lot with ROS, but this was my first interaction with it. Building a ROS capable quadcopter became the final goal of my participation in the project. I started with a Raspberry Pi which could be connected over Wi-Fi to a more capable computer, added a compatible “HAT” for motor control and IMU data, and then incorporated the RPi camera for vision capabilities. With the basic electronics defined I set out to design the most compact frame possible, a requirement of Dr. Lotfi due to its indoor nature. This is where I learned a lot about lift calculations and the trade-offs of different propeller and motor designs. In fact, that’s why the final design has 3 bladed props.
The progress posts for this project are the write-ups I created for my intermittent meetings with Dr. Lotfi. Although they’re not particularly interesting it may give you an idea of what my job involved.
TL;DR : During my sophomore year I worked under a robotics professor developing an indoor autonomous quadcopter. The progress posts are the write-ups I created for my meetings with the professor. Also, we collaborated to create some educational write-ups on programming quadcopters with Python that he could later use in some of his introductory programming classes.
Develop a quadcopter for autonomous indoor navigation
Understand quadcopter kinematics and position estimation using IMU data
Estimate position using computer vision for reverse kinematics
Run ROS on a Raspberry Pi
Control quadcopter using MavLINK command
Design an affordable quadcopter platform for further research and education on the above