Misty II

Welcome! Your Misty II robot has been designed and built by the Misty Robotics team. Start here for a quick guide to setting up your robot.

Note: To avoid the risk of driving Misty off a high surface, we recommend either working with your robot on the floor, or temporarily elevating the treads so the robot cannot drive. To do this, you can place Misty on the the foam block stand that arrived in the box.

What's in the Box?

Misty II arrives with her magnetic headpiece and "backpack" attached. In addition to Misty, your package arrives with the following items:

  • charging station
  • charging station AC power supply
  • Misty II AC power supply
  • foam block stand for Misty II
  • printed User Guide

Note: Misty's packaging has been specially designed to protect your robot during shipping. If your robot is a Misty II field trial prototype, you will need to return your robot. Please keep all original packaging for use in shipment.

Powering Up & Powering Down

We recommend powering up Misty on the floor, if possible, to avoid the risk of driving your robot off the edge of a table or other high surface. If you are experimenting with Misty on a table top, place her foam block stand between her treads to elevate them above the surface of the table.

Turning Misty On

  1. Toggle the power switch on Misty's base (located between the treads beneath the rear time-of-flight sensor).Misty II power switch
  2. The Misty Robotics logo first appears on the screen. Then Misty’s eyes appear, beginning in a closed state. The eyes gradually open as Misty boots up.Misty II eyes closed
  3. When the eyes appear fully open, Misty is done booting up. This should take a little more than a minute. Important! If after a few minutes, Misty's eyes still do not appear fully open, contact technical support for assistance.Misty II eyes open

Note: Your Misty II arrives with her battery charged and should not require additional charging before first use. When her battery is low, Misty may fail to respond to some API commands. If this happens you can restore functionality by connecting your robot to a power source and performing a manual reboot.

Restarting Misty

If you need to restart Misty:

  1. Turn off the power switch on Misty's base.
  2. Wait 10 seconds.
  3. Turn on the power switch on Misty's base again. Misty has rebooted when her eyes are fully open.

Turning Misty Off

To turn off your robot, turn off the power switch on Misty’s base.

Note: There is no graceful shutdown at this time. When Misty’s battery gets below about 7 volts, she abruptly powers down.

Connecting to Wi-Fi

You send REST commands to Misty and install skills on her system over your local Wi-Fi connection. Now that you've turned on your robot, you can set up Misty's internet connection with the Misty App.

Charging Misty II

There are two ways to charge Misty II. You can use the wireless charging pad that comes with your robot, or you can plug the power supply directly into the power port on Misty's base. Misty does not need to be turned on to charge.

Wireless Charging

To use Misty's wireless charging pad, follow these steps:

  1. Connect the power supply to the power port on the back of the charging pad. Charging pad and power jack
  2. To prevent tripping hazards, place the power brick inside the charging pad and wrap any extra length of the power cable around the nodes inside the rear compartment, as seen in the photo below. Charging pad cable storage
  3. Place the charging pad on the floor.
  4. Plug the power cable into the wall.
  5. Place Misty on the center of the charging pad. Position her to be facing out, with her back against the rear compartment of the charging pad. Misty II on her charging pad

Wired Charging

You can also charge Misty by plugging the power supply directly into the power port. Misty's power port is on the bottom of Misty, next to her power switch.

Misty II Specs

Misty is packed with sophisticated hardware and software features that contribute to her ruggedness and extensibility as a platform.

Size

  • Height: 35.56 cm / 14 in
  • Depth: 25.4 cm / 10 in
  • Width: 20.32 cm / 8 in
  • Weight: 2.7 kg / 6 lbs

Processors

  • Qualcomm® Snapdragon 820™ mobile processor
  • Qualcomm® Snapdragon 410™ processor

Computer Vision

  • Occipital Structure Core depth sensor for 3D maps
  • 166° diagonal field of view wide-angle Structure Core camera (106° horizontal x 60° vertical)
  • 4K camera
  • Facial recognition
  • Deep-learning AI using Qualcomm® Snapdragon™ Neural Processing

Sound

  • 3 far-field microphones using Qualcomm® FluenceTM PRO
  • 2 high-fidelity speakers with engineered sound box and bass port

Touch

  • 6 capacitive touch sensors on head and chin

Distance and Obstacle Detection

  • 8 IR-based time-of-flight sensors (3 forward, 1 rear, 4 edge/downward)
  • 10 bump sensors (3 tied in parallel on each front corner, 2 tied in parallel on each rear corner)

Movement

  • Patent-pending 3-degree of freedom neck
  • Easily customizable moving arms
  • Sturdy track-driving tread system
  • Trailer hitch to pull a payload

Display & Light

  • 4” LCD image display/screen
  • Bright LED flashlight
  • Multi-color LED chest light

Connectivity

  • 2.4 and 5 Ghz WiFi connection
  • Bluetooth and Bluetooth Low Energy capabilities

Extensibility

  • USB/Serial-connected backpack for hardware extension
  • Arduino-compatible Backpack (optional)
  • Magnetic helmet connection point

Operating Systems

  • Windows IoT Core™ (Main)
  • Android™ 8 (navigation/computer vision)

Misty II Specs

System Updates

Misty checks for available system updates every time you turn her on or restart her. If you've not restarted her recently, you can check for and perform updates for Misty with the Misty App or Command Center.

Note: At this time, critical updates of Misty's underlying operating system platforms (e.g. Windows IoT Core) may occur without warning. If you see an image of gears on Misty's screen, be aware that she is going through a system update.

Updates can include:

  • Image and/or sound assets
  • Motor controller firmware
  • Real-time controller firmware
  • Occipital Structure Core depth sensor firmware
  • Home Robot application (running on Windows IoT Core)
  • Sensory Services application (running on Android)
  • OS updates

We recommend you check for updates on a weekly basis.

Important: Please keep Misty plugged in for the entire duration of the update and do not attempt to send commands to her during this time.

Hazards System

Misty's hazards system is intended to prevent Misty from executing drive commands that would cause her harm, such as driving into obstacles or off of high surfaces. Currently, Misty's hazards system integrates with her bump sensors, and Misty will stop driving when a bump sensor is activated/pressed.

Hardware Extensibility

You can augment Misty's native capabilities by using external microcontrollers, sensors, and other third party hardware in your skills.

External hardware can connect to the Universal Asynchronous Receiver-Transmitter (UART) serial and Universal Serial Bus (USB) ports on Misty's back. Remove the magnetic backpack attachment to access these ports.

The USB port can be used with a USB-to-Ethernet adapter to connect Misty to your local network. Misty’s API/SDK does not currently have access to the USB port’s data interface, but this port can be used to supply power to external devices. The UART serial port enables communication between Misty's skills and an external device. The configuration of the pins on this port simplifies connection between Misty and her Arduino-compatible backpack. You can also connect your own microcontroller, a Raspberry Pi, or other UART serial-enabled hardware.

The UART serial and USB port channels have separate, isolated power controllers that allow Misty to supply power to external hardware. The USB port can provide up to 500 mA, and the pins for the UART serial port are configured as follows:

  • RX (receiver): Receives messages sent to Misty from an external device.
  • GND (ground): The grounding pin for the electrical circuit.
  • TX (transmitter): Transmits messages from Misty to connected hardware.
  • 3V: Supplies up to 1A of power to the connected hardware at 3.3v.

Misty (Arduino-Compatible) Backpack

The Misty (Arduino-Compatible) Backpack is a microcontroller designed to connect to the UART serial port on Misty’s back in a plug-and-play fashion, without any modification.

Note: If you did not purchase the Misty (Arduino-Compatible) Backpack, the "backpack" shipped with your robot does not contain a microcontroller. You can still use Misty's generic backpack to extend her hardware by connecting your own external device to her UART serial port.

Programming the Misty (Arduino-Compatible) Backpack

The Misty (Arduino-Compatible) Backpack uses a microcontroller pre-programmed with a bootloader that allows you to upload code exactly as you would with a normal Arduino, without requiring an external hardware programmer.

Follow these steps to use the Arduino IDE to write programs for the Misty (Arduino-Compatible) Backpack:

  1. Install the Arduino IDE.
  2. Connect the Misty backpack to your computer via the backpack's USB micro port.
  3. Open the IDE and select Tools from the top menu.
    • From the Board sub-menu, select Arduino Pro or Pro Mini.
    • From the Processor sub-menu, select ATmega328P (3.3V, 8MHz). Arduino IDE Tools selection
  4. Write your sketch and upload it to the microcontroller.

For more information about writing a sketch, see the reference materials and tutorials hosted on the Arduino website.

In the code you write for Misty's Arduino-compatible backpack (or any other Arduino microcontroller), you use the Serial library to configure communication between the microcontroller and Misty. In the setup() function of your sketch, use the Serial.begin() function to set the data transfer rate to 9600 baud. Then, in the loop() function, use Serial.println() to send data to Misty.

void setup() {
  Serial.begin(9600);
}

void loop() {
    delay(1000);
    Serial.println("{\"message\":\"Hello!\"}");
}

We recommend formatting data you send as JSON string to make it easier to parse in your skill code.

To read messages sent to Misty, you register for SerialMessage events in your skill code. SerialMessage events occur when Misty receives a message through the RX pin of her UART serial port. By default, the data for SerialMessage events is processed by a _SerialMessage() callback function. You define how this callback handles the message in your skill code.

// Return the value of the "SerialMessage" property in the
// SerialMessage data object
misty.AddReturnProperty("SerialMessage", "SerialMessage");

// Register for SerialMessage events. Set the debounce rate to 0, or
// use the rate defined in the sketch. Set keepAlive to true, so
// the event does not un-register after the first _SerialMessage()
// callback.
misty.RegisterEvent("SerialMessage", "SerialMessage", 0, true);

function _SerialMessage(data) {
    try {
        if(data !== undefined && data !== null) {
            var obj = JSON.parse(data.AdditionalResults[0].Message);
            var message = obj.message;
        }
    }
    catch(exception) {
        misty.Debug("Exception" + JSON.stringify(exception));
    }
}

To send messages from Misty to an external device, you can use the misty.WriteSerial() function. If you are running your skill on a remote device, you can send a request to the REST endpoint for the WriteSerial command.