MELODEE

MELODEE is the second excavation rover I worked on for the NASA Lunabotics competition. As the electrical technical lead, I worked primarily on the overall electrical system architecture, while focusing on a new networked IO system for the robot, Roobot over IP.

We made significant improvements to the mechanical design, making the rover lighter and faster and migrated to Robot Operating System (ROS) for the software stack. MELODEE was a much more competitive rover, and we placed 2nd overall at the first leg of competition, at UCF. Then we came in 3rd place for autonomy overall at the finals at Kennedy Space Center.

Roobot over IP PCBs

"Roobot" over IP was a success, and we are continuing to develop it for future rovers. Its primary feature is the bus like ability for all modules and master servers to communicate with each other over a regular network stack. This allows for failover redundancy, state or stored truth synchronization, and an easy to expand interface for adding new modules. It's also tolerant of high latency and low bandwidth, making it ideal for space applications via a custom reliable connection over UDP system.

R.O.I. modules were built with AVR microcontrollers and Wiznet Ethernet chips as the main core. However, the system is built to be hardware-agnostic, and we are working towards implementing more powerful and affordable module compute.

Read more about ROI on the repository.

Loading...

An actuator board for Roobot over IP.

Loading...

Some of the Roobot over IP boards made for MELODEE.

I was particularly proud of the implementation of IEEE 802.3at Power over Ethernet (PoE)+ to power each module over it's data cable. This will be removed in the future for most of our modules, since we have to run power cables anyway for motors and servos, but it was a fun challenge to implement.

Additionally, I designed the quadrature encoder hardware actuator board. This captured and stored the position of the quadrature encoders on the linear actuators in 16 bit counters, and then serialized the data to send to the microcontroller. It had hardware to ensure race conditions were avoided, as changes propagated through the 4x 4bit counters, the serialization shift register would be disabled until the counters were stable again.