Interfacing with Myo

Myo provides a C++ SDK for MS Windows and MAC OS X, sadly no linux ;(

The Myo SDK allows access to thalamic gestures:

Additionally we have access to the IMU data from the band, such as yaw, pitch and roll.

These inputs were mapped to the following outputs:

Base Side Implementation Stack :

Lua script running on the ESP that parses the GET request and outputs the command on its serial.

Since the spark core was not working, we ending up deploying a web server on a ESP8626

The python script is launched as a child process by the C++ Program whenever it needs to post a command ( Yes we know it’s very hacky!) with the command as an argument to the script that it needs to do a post of.

The ESP receives the GET command and parses the url to get the command which it writes to its serial port.

Challenges and Operation Details :

void sendCommandtoEsp(std::string command_input) {

std::string arg = command_input;

std::string command = "python send2esp.py ";

std::string systemcommnad = command + arg;

system(systemcommnad.c_str()); // launch python script

}

Autonomous path was left unimplimented, due to integration issues with esp and the raspi, line feeds are being appended propoerly

CAD & 3D Printing

In order to support the hardware of our robot and give it a nice visual aspect, we created a CAD model for a base to place on top of the robot.

A first iteration was sent for 3D printing, unfortunately it failed as the printing head was hitting on the sides of the machine because our piece was too close to the allowed limits for the printer.

Therefore, it was split up in two parts which we would glue together. The first half worked, the second did not. The 3D printer could not properly print it.

We tried that last piece another time, still didn’t work. We tried a third time with more support, still did not work.

Thus we ran out of time, so another more viable solution was chosen:

We created a base out of wood and styrofoam, which we screwed to the platform, plus a support tower for the blinky matrix made out of popsicle sticks.

Each piece of hardware is enclosed is a “fence” of styrofoam to hold it into place and organize.

CAD Model bottom

CAD Model top

Blinky Matrix

The blinky matrix is meant to be an indicator of the state of the robot, whether it’s going forward, right, left, stopped, etc.

The blinky matrix pre included an arduino, which had to be desoldered to connect the blinky to the arduino we are using on the robot, in order to synchronize the states.

Programming the arduino to run patterns on the blinky natrix was more challenging than expected, because each animation, according to tutorials and examples, was initialized as an object from class Animation, which took around 40% of the space allocated to global variables. Having around 10 different animations, that seriously impaired our original idea.

We ended up using a pointer dynamically reallocating the Animation with a new set of data, using only the space of one object.