High-level APIs for end-user programming of the PR2 and the Turtlebot. Based on Justin Huang's rapid_robot.
robot_eup
contains the library itself.robot_eup_samples
contains examples of how the interface can be used.
- Install meteor.
- Install pocketsphinx
sudo apt-get install ros-hydro-pocketsphinx
For navigation the robot needs:
- A map of the environment (see tutorial)
- A database of locations on the map
A location database is a Python shelve file mapping strings to PoseStamped messages. You can generate one with save_locations.py
in robot_eup_samples.
Run save_locations.py with the name of a database file. If it doesn't exist, it will be created:
python save_locations.py ~/data/locations.db
Type set Home
to save the current position as "Home". Drive the robot around using teleop, and save as many locations as you like.
The robot has a database of sounds it can play. Currently it has 10 sounds stored in the robot_eup/sounds
The robot has a database of commands it can recognize. To change this list of commands, open robot_eup/speech/commands.corpus
and add your own list. Then upload this file to the Sphinx language model generator tool. Download the .dic and .lm files generated by the tool, rename them as commands.lm
and commands.dic
, and replace the old ones in robot_eup/speech/
.
Terminal 1: Run the simulated robot
roslaunch turtlebot_gazebo turtlebot_empty_world.launch
Terminal 2: Run the pre-requisites
roslaunch robot_eup turtlebot_prereqs.launch
Terminal 3: Run meteor
roscd robot_eup/web/robot_eup_web_interface/
meteor
Terminal 4: Run your script
rosrun robot_eup_samples example.py
Web interface:
Point a browser to http://localhost:3000/
Terminal 1:
roslaunch turtlebot_bringup minimal.launch
Terminal 2: Run the back-end and pre-requisites
roslaunch robot_eup turtlebot_backend.launch
Terminal 3, 4 and web interface are same as above.
In addition you can visualize the robot on a different machine with:
setrobot(chester)
roslaunch robot_eup turtlebot_frontend.launch
TODO