← Back to portfolio

Robotics R&D internships · Summer 2024 & 2025

Overview

During my freshman and sophomore summers I interned at Applied Invention, a robotics research and development company. Although I cannot be too specific about my work, I can say I worked on a small team in automated greenhouse technologies. I was given open-ended projects and largely free reign to solve the problems I was interested in.

My first summer, I worked closely with the mechanical team packaging sensors and motors for a conveyor system. I assisted the software team in programming ROS 2 drivers for these sensors. I learned about DFM for injection molding, sheet metal bending, and various TCP/UDP protocols. Together, my projects ultimately delivered an iteration on a plant conveyor system.

My second summer, I was primarily a software intern. I was responsible for rewriting and simplifying the planning software for the facility's main gantry. I also got assigned many quick ROS 2 sensor wrappers from low-level serial communication to Minio database uploads. Finally, I got to stick my nose into dev-ops with some Kubernetes cluster management and data logging.

More Detailed Work

Here's a more specific list of the projects I worked on over both summers.

  • Rewrote and simplified a facility-wide robotics planner for a multi-room gantry in ROS 2. Specifically added the functionality for:
    • Communication with the large high speed doors separating rooms of facility over OPC-UA.
    • Inspecting arbitrary locations in the greenhouse. To this end, I programmed an interface for taking synced images (<50μs delay) on 6 networked cameras. The cameras communicated over GigEVision and photos were uploaded to MinIO with diagnostic information published over MQTT.
  • Designed an IP65 rated water-tight PCB enclosure for an NFC scanner with Autodesk Inventor. Ensured DFM for inject molding.
  • Created a low-level C++ serial communication driver for an absolute encoder using only Standard Libraries.
  • Iterated on a conveyor system for more consistent package placement:
    • Researched new sensor options. Created testing rig for various magnetic/metal detecting sensors to determine acceptance cone and sensitivity.
    • Programmed a ROS 2 motor driver using the IP/Ethernet protocol over TCP/UDP with dynamic assembly objects for digital IO from sensors.
    • Integrated new sensors with PCB breakout board and wrote ROS package for a final test allowing for consistent conveyor motion.
  • Managed CI/CD and deployment of Kubernetes pods running all ROS 2 nodes for a large-scale greenhouse.
  • Wrote a lightweight CDIST / Fluentbit config allowing journalctl ROS logs on embedded computers to be pushed to Opensearch.
  • Programmed a Modbus wrapper for facility lights in ROS and desinged a modular event system for alerting facility-floor employees of different robotic activites.
  • Generally used shop tools for manufactuing parts including a manaul mill/lathe, CNC bending break, water jet, SLA/FDM printers, and a ton of rivets.