Background:
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.
Project Objectives:
- 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