Julius Status Report 04/25

This week, I designed, constructed, and launched a moored weather balloon. I scavenged necessary parts and 3D-printed the gondola, and conducted the flight test at Schenley Park after filing a NOTAM and in accordance with Part 101. The balloon flew successfully, though unfortunately there were issues with power delivery onboard and the Raspberry Pi continued to reboot. More problematic was the weather – though the forecast had forecasted <10% cloud cover, the cloud cover above the test site was above 50%. Useful data was collected, and results demonstrated that feature extraction breaks in the presence of clouds. The balloon ascended to a maximum of 500FT AGL and 1km away. I am working to address this by blurring and thresholding the image to mask out clouds. I will re-evaluate results after this is completed.

Julius Status Report 04/18

This week, I focused on collecting more data and tuning the estimation pipeline. I mounted the setup atop a vehicle and drove it while collecting data over the course of a 942m long trajectory. I was able to achieve low-frequency attitude rate estimation by cross-matching celestial features found across adjacent camera frames, akin to VIO, which improved trajectory accuracy against GPS ground truth over IMU dead reckoning from >300m to 14m – a large achievement.

I tested celestial global positioning as well and achieved considerable improvements in accuracy, with a median positioning error of 2.1km and p95 at 6.8km.

Julius Status Report 04/04

This week, I developed the CAD the hardware enclosure for our components and began 3D printing it. I also set up sensor streaming from the GNSS module, though we identified that our specific module requires an antenna the unit did not come with; we will order it this week.

Our Raspberry Pi Ubuntu installation appears to have become corrupted over the past week, so I invested time in re-flashing and re-configuring it as well.

The enclosure design is shown here with and without the top cover:

Julius’ Status Report 02/21

This week, I focused on bringing up the Raspberry Pi 4 we’re going to be using as the compute module for the project. I flashed Ubuntu 22.04, installed ROS2, and connected the IMX477 camera sensor via ribbon cable to the board. I then set up a ROS node for the camera where it is now publishing the raw captured frames at a configurable rate. I ran into unexpected challenges with flashing Linux onto the board with the RPi Imager which resulted in it taking more time than expected, but it is now configured.

Julius’ Status Report 2/14

This week, I focused on picking out hardware for the design and thinking through an interesting design problem that has already arose.

On the hardware side, I settled on an integrated IMU, magnetometer, and barometer module and a GNSS module to be connected on an I2C bus to the Raspberry Pi. The Raspberry Pi was chosen to have 8GB memory, which should be sufficient for the software tasks we’re planning to run onboard. I chose an IMX477 camera for the visual perception, as it’s similar to the camera used in the paper we are referencing.

Since our current plan is to have the camera rotating on the module, we need to know the relative angle between the camera and the module in order to fuse IMU data with the visual camera position fixes. In fact, the visual fixes could theoretically produce an accurate heading fix, but it is useless if we do not know the relative angle between the visually perceived heading and the drone. To this effect, I considered mounting the camera on a stepper motor with an encoder, though this is vulnerable to backlash and encoder quantization drift. I am currently exploring the possibility of having small fiducials along the periphery of the camera rotation hardware that the camera could track its angle relative to, and thus know its angle relative to the drone.

Separately, I am working on preparing the design review presentation.

Julius’ Status Report 2/7

This week, I focused on preparing the proposal presentation that we presented on Wednesday. Additionally, I began research on parts to be used for the project and producing the hardware design – as was presented in the proposal. I produced a tentative parts list for the design including:

  1. An H7 flight controller
  2. Arducam IMX477 camera
  3. RPi compute module (though this may be replaced with course inventory for cost)

The Arducam camera has a similar spec as our reference paper, but weighs only 12 grams and is considerably cheaper.