Hey, I’m Conor

Welcome to my portfolio of my projects and passions

About Me

I’m a student at Queen’s University, specializing in Engineering Physics with a focus on Computing. My academic and professional pursuits are rooted in a passion for robotics, machine learning, and computer vision. As the Perception and Automation Lead for the Queen’s Aerospace Design Team, I’ve had the privilege of applying my knowledge to real-world challenges in aerospace design. This role has allowed me to deepen my expertise in developing advanced perception systems and automation strategies, fueling my interest in the practical applications of these innovative technologies. I’m driven by the thrill of solving complex problems and am excited about the potential to contribute to the future of engineering through these dynamic fields.

Projects

Autonomous VTOL Development

Custom Remote Container

  • Docker-Based Remote Container: Led the development of a custom container solution.
  • Reduced Setup Times: Achieved an 80% reduction in environment setup time.
  • Consistency Across Team: Ensured 100% environment consistency for 20 developers.
  • Faster Integration Cycles: Facilitated a 30% acceleration in integration cycles.
  • Enhanced Team Efficiency: Significantly improved team collaboration and workflow efficiency.

Custom Docker File

  • Base Image: Utilizes althack/ros2:humble-full as the base ROS 2 image.
  • Package Updates and Git Installation: Runs apt-get to update packages and install git and python3-pip.
  • PX4-Autopilot Repository: Clones and builds the PX4-Autopilot repository.
  • Python Dependencies: Installs Python dependencies including empy, pyros-genmsg, and setuptools.
  • Micro-XRCE-DDS-Agent: Clones and builds the Micro-XRCE-DDS-Agent from eProsima.
  • PX4 Repositories: Clones px4_msgs and px4_ros_com into a new ROS workspace.
  • Workspace Build: Builds the workspace using colcon and sources the ROS environment.
  • Ownership Adjustment: Changes ownership of the PX4-Autopilot directory to the ros user.
  • Environment Variable Setup: Adds an environment variable for the workspace and updates .bashrc to source workspace setup files.

VTOL Offboard Control

  • Node Setup: Initializes a new ROS2 node for controlling an autonomous VTOL.
  • Publishers and Subscribers: Establishes communication channels for sending commands to the drone and receiving status updates.
  • Data Handling: Implements callback functions to process incoming data on drone position, status, and GPS readings.
  • Drone Control Functions: Includes functions to arm the drone, publish control modes, and send trajectory setpoints.
  • Mode Switching Logic: Contains logic to switch the drone between different operational modes, such as offboard control.
  • Command Execution: Facilitates the execution of various vehicle commands with customizable parameters.
  • Periodic Updates: Uses a timer to periodically send control signals and check the drone’s status.
  • Main Execution Flow: Manages the initialization, operation, and shutdown of the node within the ROS2 framework.
  • Error Handling: Incorporates exception handling for robust and error-free operation.

Future Directions

In the next phase of our Autonomous VTOL Development project, tailored for competition, we are set to create a detailed simulation of real-world landing challenges in Gazebo. This will pave the way for integrating an Intel RealSense D435i camera for advanced 3D mapping and custom object detection, enhancing the drone’s spatial navigation. A significant leap forward will be employing Isaac ROS for Visual Simultaneous Localization and Mapping (VSLAM), aiming to achieve unparalleled precision in VTOL landings. These developments are crucial not just for competitive success but also for setting new standards in autonomous VTOL technology, with a long-term vision of revolutionizing safe and reliable vertical flight operations.

Collaboration and Teamwork

As the Perception and Automation Software Lead for the Queen’s Aerospace Design Team, my role extends beyond technical oversight to fostering a strong sense of collaboration and teamwork. A key aspect of this has been leveraging GitHub as our central platform for code management and collaboration. By using GitHub, we have streamlined our development process, allowing team members to contribute, review, and iterate on code seamlessly. This approach not only facilitates transparent and efficient project management but also encourages peer learning and collective problem-solving. My contributions in creating user-friendly documentation on remote containers, Docker, and ROS nodes have been shared through GitHub, making complex concepts more accessible and promoting an environment of continuous learning. This integration of GitHub into our workflow has been instrumental in enhancing team communication, maintaining consistency in our codebase, and driving the success of our projects.