Difference between revisions of "2019WinterTeam1"
Line 20: | Line 20: | ||
=== Structure === | === Structure === | ||
Our skill was divided into several intents, each of which had then at least one slot with two possible values: | Our skill was divided into several intents, each of which had then at least one slot with two possible values: | ||
* | * GPIO (General Purpose Input/Output) Intent: Turns lights on car on or off | ||
** Status slot: on/off | ** Status slot: on/off | ||
* Drive Intent: Starts and stops the car | * Drive Intent: Starts and stops the car | ||
** Drive status slot: go/stop | ** Drive status slot: go/stop | ||
** Time | ** Time slot: Length of action | ||
* Throttle Intent: Controls vehicle velocity while it drives autonomously | |||
** Modifier slot: Set the throttle to higher/lower | |||
** Number slot: Sets the throttle to a specific number | |||
* Orientation Intent: Turns the car around | * Orientation Intent: Turns the car around | ||
** Orientation slot: left/right | ** Orientation slot: left/right | ||
* Mode Intent: Switches between driving modes | |||
** Mode slot: Switches modes between local (completely autonomous), local angle (user-controlled throttle, autonomous steering), and user (completely user-controlled) | |||
* Erase records Intent: Erases a number of records directly from the open tub in the Raspberry Pi | |||
** Number slot: Any integer chosen by user | |||
** "All" records could also be chosen, resulting in the deletion of all records in the current tub | |||
* Recording Intent: Starts and stops taking records | |||
** Status slot: Turns recording on/off | |||
* Model Intent: Switches between trained models | |||
** Model slot: Right now, we only have the indoor and outdoor models that the car has been trained for, but ideally one could upload many more models and be able to drive the vehicle in any track | |||
=== Donkey in Action === | |||
===Lessons Learned=== | ===Lessons Learned=== | ||
Here there's a number of lessons that we learned. | Here there's a number of lessons that we learned. |
Revision as of 22:07, 22 March 2019
Inspired by Spring 2018 Team 6's SoPaRe project, Winter 2019 Team 1 decided to also build a semi-autonomous vehicle that could receive commands via voice recognition, but with the added functionality of Amazon's Alexa Voice Service.
The Team
Team Members
- Michael Cornejo, 5th year Physics student
- Steven Cotton, 4th year Electrical Engineering student
- Jared Pham, Graduate student in Computer Engineering
- Laura Morejón Ramírez, 3rd year Aerospace Engineering student
Objectives
Team 1 set two main goals:
- Train a 1/10 scale vehicle that could reliably drive itself around two different pre-designed tracks:
- Indoor Track at SME
- Outdoor Track at EBU-II
- Create a process by which the car could receive practical commands through a voice recognition service with a complex and comprehensive library, such as Alexa Voice Service
The Project: Voice Recognition Using Alexa Developer Console
Although our project idea was inspired by the Spring 2018 Team 6, we did some research and found an easier way to make our Donkey Car successfully recognize commands: using Amazon's existing voice recognition software, we were able to organize our commands into categories, called intents, and give the program different potential commands, or utterances that a user may call. Additionally, we had to modify the vehicle's code to make it both receive and respond to said commands in a timely manner. We explored and learned about "Flask-ASK", Alexa Skills Development library for python, to program files that would convert voice commands into actions the raspberry pi could identify.
Structure
Our skill was divided into several intents, each of which had then at least one slot with two possible values:
- GPIO (General Purpose Input/Output) Intent: Turns lights on car on or off
- Status slot: on/off
- Drive Intent: Starts and stops the car
- Drive status slot: go/stop
- Time slot: Length of action
- Throttle Intent: Controls vehicle velocity while it drives autonomously
- Modifier slot: Set the throttle to higher/lower
- Number slot: Sets the throttle to a specific number
- Orientation Intent: Turns the car around
- Orientation slot: left/right
- Mode Intent: Switches between driving modes
- Mode slot: Switches modes between local (completely autonomous), local angle (user-controlled throttle, autonomous steering), and user (completely user-controlled)
- Erase records Intent: Erases a number of records directly from the open tub in the Raspberry Pi
- Number slot: Any integer chosen by user
- "All" records could also be chosen, resulting in the deletion of all records in the current tub
- Recording Intent: Starts and stops taking records
- Status slot: Turns recording on/off
- Model Intent: Switches between trained models
- Model slot: Right now, we only have the indoor and outdoor models that the car has been trained for, but ideally one could upload many more models and be able to drive the vehicle in any track
Donkey in Action
Lessons Learned
Here there's a number of lessons that we learned.