System Implementation

Full System Progress

The figure below shows the current system status as of the end of the Fall Semester:

1_Status

The figure below shows the final status of the project:

Copy of Copy of Cyberphysical Arch

Infrastructure

The progress of the infrastructure subsystem is shown below:

Selection_293

During the Fall semester, the dock had been fully designed and manufactured, the tag system has been researched, but the wellhead manufacturing has been moved to the Spring semester.

During the Fall semester, we designed our dock based on a cone system which was based on the original design shown below.

max_cone_opening_area

By the end of the Spring semester, the dock was painted in order to contain enough features for optical flow, and the April Tag system was fully implemented. We also decided that the wellhead infrastructure would not add anything to features of the system. We decided to drop it from the scope.

Sensors

The progress of the sensor subsystem is shown below:

3_Sensors

During the Fall semester, the sensor hardware and software communication have been completed on the Iris+. During the Spring semester, a second set of sensors will be mounted to a second Iris+ that will be used for backup.

World Modeling

The current status of the world modeling subsystem is shown below:

Selection_294

During the Fall semester, world modeling was implemented on the AR.Drone2.0. In the Spring semester, we will be working on implementing world modeling on the Iris+.

During the Spring semester, we implemented code to be able to estimate the pose of the robot from April Tags.

We calculated the inverse of the transformation matrix so that we could find the quadrotor with respect to the april tag’s frame. The source code for this can be found: https://github.com/ColumnRobotics/column/blob/master/src/rectified_april_tag.cpp.

We found that these measurements were quite noisy, so we filtered the estimates using RANSAC. Our source code for this can be found: https://github.com/ColumnRobotics/column/blob/master/src/BodyPoseFilter.cpp.

The main function of the world modelling source code can be found here: https://github.com/ColumnRobotics/column/blob/master/src/world_modeling.cpp.

Planning

The progress of the planning subsystem is shown below:

Selection_295

During the Fall semester, the planning subsystem was implemented on the AR.Drone2.0.

During the Spring Semester we worked a considerable amount on getting a base framework for planning.

The global planner was handled by a bash script that called all of the nodes, launch files, and other global frameworks. It also determined the overall behavior. This bash script is found here: https://github.com/ColumnRobotics/column/blob/master/launch/global_planner.bash.

The tactical planner was implemented as a python script that handled the way-point generation. This script talked with the bits of functionality that we implemented in C++. This script generates way-points in a common frame and then sends these to the  local planner. The tactical planner source code can be found here: https://github.com/ColumnRobotics/column/blob/master/src/search_hover_land.py.

The local planner is C++ code that takes a way-point from the tactical planner and runs a PID controller. The local planner source code can be found here: https://github.com/ColumnRobotics/column/blob/master/src/local_planner.cpp.

Drone

The progress of the drone subsystem is shown below:

6_Hardware

During the Fall semester, the low-level drone hardware was implemented and tested for both the AR.Drone and the Iris+.

During the Spring semester, the second set of hardware for the Iris+ was completed. This was used as a backup when there were breakages.

Power Distribution Board

The power distribution board was designed in order to be able to power an on board computer that takes 5V and 3A. The on board computer will be mounted to the Iris+ in order to be able to communicate with the Pixhawk flight controller. There is also power protection on the PCB in order to protect the on board computer from overcurrent, reverse current, and overvoltage. In order to facilitate hot swapping multiple batteries, multiple connections from the battery are supported.

The full specifications for the power distribution board are contained here: Power Distribution Conceptual Design

A general design chart for the power distribution board  is shown below:

PDB Design

The schematic of the power distribution board is shown below:

PDB Schematic

The board design of the power distribution board is shown below:

PDB

An image of the printed board is shown below:

Selection_070