- Turn Misty on by turning the switch located on the bottom
- Connect Misty to the same Wifi as your computer using these instructions. Note the IP of Misty.
- Note: The phone app for Misty sometimes malfunctions and doesn't detect Wifi networks or the robot. Restart the app and try again if this occurs.
- Clone this repository into
~/catkin_ws/src
- cd into the Catkin workspace:
cd ~/catkin_ws
- Build the package with
catkin_make
source devel/setup.bash
- Launch the core backend:
roslaunch misty_ros misty_ros.launch ip:=<robot ip>
-
Publish to ROS topics to control Misty. This can be done in a new command line window or using Python.
- Example in the command line:
rostopic pub /led misty_ros/Color 255 0 255
rostopic pub /tts/speak std_msgs/String "Hello! I am Misty!"
- Note: run
source devel/setup.bash
in the command line first - To see a list of all the topics, run
rostopic list
- To see the type of a topic, run
rostopic type </topic/path>
- Example in the command line:
-
roslaunch misty_ros misty_ros_demo.launch
- Note: May need to enable executable permission of Python file with
chmod +x demo.py
- Note: May need to enable executable permission of Python file with
- ROS topic paths are mostly the same as the endpoints in the REST API. See the REST API Documentation for functionality.
- There are some exceptions:
/layer
sets the layer on the screen to display things in the Expression class- Getting data from the robot involves publishing a request in one topic and receiving the data in a separate topic
- The files
src/asset.py
,src/expression.py
,src/movement.py
, andsrc/perception.py
contain classes which initialize ROS topics - The core launch file is located in
launch/misty_ros.launch
. Launching this runssrc/core.py
which calls the classes in the other Python files - ROS messages are stored in
msg
. Make sure to include them in CMakeLists.txt
- There is an online interface to control Misty that is useful for testing functionality
- There may be a bug where the camera or audio do not work and the API call to enable camera service does not fix it. This will require the robot to be returned to the manufacturer.
- Misty has a REST API. To use the REST API, send POST and GET requests to Misty to control her.
- Usage examples in
examples/rest_demo.py
- REST API command documentation
- Usage examples in
- Misty also has a Websocket server that allows you to receive continuous data
- We took inspiration from this wrapper that converts Python functions to REST calls
- Everything in
src/expression.py
andsrc/movement.py
have been tested except for topics involving audio and camera src/perception.py
, andsrc/asset.py
have not been tested- Plan on figuring out how to store string arrays to get lists of file names in
src/asset.py
src/websocket.py
is a work in progress