
Materials funded by CMU's SRC-URO program
Summary
To learn ROS and transformation matrices, I developed an autonomous target-search drone under the mentorship of Professor George Kantor this spring 2019 semester. This also was my first real experience with software for robotics! I implemented a Kalman Filter to smooth out noisy position data from April Tag based localization. Robots need to track their pose(position and orientation) to safely interact with their environment. I realized early on that my drone would lose access to GPS indoors, and decided to use April Tags to provide pose for testing.
System Architecture


Experiments with Measurement and Process Noise
At the fundamental level, the Kalman Filter weighs between raw, measured data and data predicted by some linear equations. This noise weight can be thought of as "distrust", so higher noise weight assigned to measurements means we do not trust the measurements.


The experiment above demonstrates the opposite: we assign higher noise weight to measurements, meaning we distrust the measurements. This is the right choice, and overall leads to much more accurate position predictions.
Visualizing Ultrasonic Sensor Data in ROS

In this project, I learned a lot about ROS and how to unify hardware and software into one system. In the above picture, I am visualizing raw ultrasonic sensor data collected by an Arduino on ROS Rviz.
Camera Calibration and Intrinsics

In this project, I also learned about camera calibration as an essential step when images are used for precise calculations. I used the standard checkerboard with OpenCV to perform the intrinsic calibration.