Results
The system is shown to operate as intended with new gestures being performed and a prediction label being sent to MQTT topic subscribers and perform a specific task. Testing this system is fairly simple and can be broken up into simpler task verifications. For brevity, multiple screen captures of the verification process is abstained as verification can be inferred by the demo video.
|
Key Accomplishments
- Read and process raw data from sensors through I2C and MUX
- Send data either as a .csv file to AWS S3 or to AWS SageMaker Endpoint for predictions
- Train data from AWS S3 using AWS SageMaker instance and create/update endpoint
- RaspberryPi hosts local MQTT server/broker and publishes predictions to topic
- IntelEdison hosts Django webpage to track predictions, gestures, and expectations
- IntelEdison and laptop are subscribed to MQTT topic and performs different actions based off predictions from RaspberryPi
Verification
The first main task is the confirmation of data collection into S3 which was quickly verified by running the system’s training script, obtaining the correct length vector, and refreshing the S3 bucket for verification.
The second task was for AWS SageMaker verification which involved properly pointing to the S3 bucket, and ensuring that the training jobs and endpoint creations were successful. Since SageMaker console has separate sections to show these jobs running and their status, verification is, again, as trivial as a page refresh.
The final task was to verify that the MQTT model works as expected. Again, this is fairly simple to verify since a response just needs to be seen when a publish event occurred. Once all of these tasks were verified, the smaller task of performing certain actions is trivial to describe verification.
One important note is that the hardware connections in the prototype were with jumper wires and a breadboard which frequently lead to I/O and I2C errors for the sensors. This is due to the weak connections of such a prototype and is expected to be mitigated by direct soldering.
The second task was for AWS SageMaker verification which involved properly pointing to the S3 bucket, and ensuring that the training jobs and endpoint creations were successful. Since SageMaker console has separate sections to show these jobs running and their status, verification is, again, as trivial as a page refresh.
The final task was to verify that the MQTT model works as expected. Again, this is fairly simple to verify since a response just needs to be seen when a publish event occurred. Once all of these tasks were verified, the smaller task of performing certain actions is trivial to describe verification.
One important note is that the hardware connections in the prototype were with jumper wires and a breadboard which frequently lead to I/O and I2C errors for the sensors. This is due to the weak connections of such a prototype and is expected to be mitigated by direct soldering.
- Performance
The performance overall is fairly accurate (~70% gesture recognition) given that the I2C connections are stable. The latency of invoking the SageMaker endpoint and the reception of the published MQTT message is on the order of hundreds of milliseconds (under 300ms) with little human-perceivable lag from the end of the gesture and the final action.