flask_ask_ros
A locally hosted web service + ROS node for custom Alexa skills based on Flask-Ask.
Table of Contents
Description
This package combines a Flask server and ROS node into a script that serves as an endpoint for a custom Alexa Skill. This enables information sent by voice to the Amazon Alexa to be processed by other ROS nodes and services.
In this package we provide a simple Alexa skill that parses a single slot (word/argument) from an utterance (spoken function call) and publishes it to a ROS topic.
Requirements
-
Ubuntu 18.04 or 16.04
-
ROS Melodic or Kinetic
-
Flask-ask (Python): follow installation from source here.
Maintainers
- SEUGIL HAN robotics@kaist.ac.kr
Installation
-
Navigate to source directory of your ROS catkin workspace (e.g.
catkin_ws
):cd catkin_ws/src git clone https://github.com/3SpheresRoboticsProject/flask_ask_ros
-
Build catkin workspace:
cd catkin_ws catkin_make
-
If necessary, set script file permissions to executable:
chmod +x catkin_ws/src/flask_ask_ros/src/*
-
Source workspace:
source catkin_ws/devel/setup.bash
Usage
- Using ngrok as a tunnel
ngrok tunnel configuration
-
Set the
ROS_IP
environment variable to be the local machine IP -
Download ngrok for Linux and unzip
-
Start an ngrok server:
./ngrok http $ROS_IP:5000
-
Open the Amazon Developer Console and navigate to your custom skill:
-
Under Configuration, select HTTPS and paste the URL shown on the ngrok terminal (see below).
![alt text][ngrok_url]
-
Under SSL Certificate select My development endpoint is a sub-domain of a domain that has a wildcard certificate from a certificate authority.
-
-
Run the skill server with the ngrok argument set to
true
:roslaunch flask_ask_ros start_skill_server.launch ngrok:=true
Testing
In order to test the provided skill server, open your Amazon Developer Console, create a custom skill, and follow the steps above to configure your endpoint.
Inside the skill builder, navigate to the JSON Editor and paste the contents of src/test_skill.json
. Save and build the model.
Run the skill server to test your skill.
TODO
- Sample code for ROS services
This app was not created or endorsed by Amazon.