Drone Delivery

Goal

Build and develop a drone that can be used in the applications of last-mile delivery.

Subteams

  1. Hardware: Build the physical drone, develop the controls algorithm for a flight controller.

  2. Navigation: Develop a robust navigation software stack that can autonomously takeoff, fly to a given GPS waypoint(inputted by user on the app), and then precisely land at that waypoint.

  3. Mobile App: Build a mobile app that enables users to interface with the drone.

Hardware

The Navigation stack is split into two main parts: the PX4 side and the ROS side. PX4 is the software for the pxihawk flight controller and ROS is an open source robotics communication software. The Navigation stack runs through the following process. A gps waypoint is sent from the mobile app to the navigation backend. That GPS waypoint is converted into a point in the local space of the drone(a point in the drones internal map of the enviornment) through a ROS node. Then the PX4 software arms the drone, and changes it into takeoff mode. Then once the drone reaches its flying height, the PX4 software changes the mode of the drone to offboard mode, so it can now be controlled by the offboard computer(jetson orin nano). The drone now will autonomously navigate to the specified goal location using a behavior tree to control its decision making, and with theta* and navFn path planners, MPPI trajectory controllers to determine where to move for the shortest path to its goal(which is all implement through the ROS Nav2 package). Once it reaches its goal position(within some error margin), the PX4 software will switch the drone to landing mode, and it will execute a precision landing algorithm implemented through PX4 to precisely land the drone at its location.

Additionally, the global map of the environment is maintained as a 2D costmap, for efficiency and ease of use, with 3D spatio-temporal voxels making up the local map(~10m square around the current location of the drone) for more accurate obstacle avoidance. Additionally, localization is performed at two levels: globally, and locally as the global localization can create jumps in the location of drone but it is much more accurate, while the local localization is not as accurate but it is continous/there are no jumps in the location of the drone. The global localization is implemented through the LIO-SAM algorithm, which uses a velodyne lidar, and imu and gps. The local localization is performed by a Visual Inertial Odometry implemented through PX4 using an extended kahlman filter.

Mobile App Development

Technology

Drone hardware

  • Motors: T-Motor U7 V2.0

    • 6 total

    • 4.55kg Lift / Motor

    • Over 27kg of Thrust!

    • 47.5A Draw at 100% Throttle

  • Props: Tarot 1855

    • 18'' Diameter

    • 5.5'' Pitch

    • Carbon fiber

  • Frame: Tarot T960

    • Hexacopter Configuration

    • 960mm Diameter

  • Battery: Tattu Plus LiPo Battery Pack

    • 22000mAh

    • 25C Discharge Rate

    • 6S

    • 22.2V

  • Power Delivery (ESC): xRotor 40A

    • 60A Max Current

    • Rated for 6S LiPo (22.2V)

  • Flight Controller: Custom controller.

    • Based on Raspberry PI Pico.

    • 3 axis Gyro, and 3 axis acclereometer.

  • Camera: Intel RealSense D453

    • Stereoscopic Depth Sensing

    • < 2% Error Within 2m

  • Companion Computer: Jetson Nano

    • Quad-core AMD Cortex

    • 4GB Onboard Memory

    • 128 Cuda Cores

  • Infrared sensor: TBD

    • Used to find precise distance from ground to see if landing area is safe.

  • Camera rotator/gimbal

    • Will rotate camera from forward-facing to downwards to ensure safe landing area.

    • Stabilization of camera during flight to minimize noise in optical data

  • Parcel container

    • Structure

      • Minimize impact on aerodynamic performance

      • Safe to access for users

    • Food Preservation

      • Keep food hot, or cold, to ensure minimal loss in quality during delivery

Drone software

  • PX4: PX4 is the firmware that runs on the Pixhawk 6c. It controls and recieves data all of the motors and sensors attached.

  • QGroundControl: QGroundControl is the application used to connect to, configure, and program the drone to fly autonomously.

  • Robot Operating System (ROS): This is a standard middleware software that allows each sensor to robustly communicate with the flight controller(pixhawk) and the onboard computer(Jetson Orin Nano)

Last updated

Autonomous Robotics Club, 2024