Difference between revisions of "Virtual Robot Interface & Environment"

From Engineered Arts Wiki
Jump to navigation Jump to search
(Created page with "Category:Virtual Robot Virtual Robot > Interface and Environment =='''Introduction'''== Virtual RoboThespian provides an integrated environment in which to program R...")
 
(Menu Bar)
 
(138 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 
[[Category:Virtual Robot]]
 
[[Category:Virtual Robot]]
[[Virtual Robot]] > Interface and Environment
+
[[Virtual Robot]] > Interface & Environment
 +
{{headerthumb|File:VRScreen_layout.jpg|The Virtual Robot Interface|link=http://virtual.robothespian.co.uk}}
 +
==Introduction==
 +
[[Virtual Robot]] provides a simple to use web based tool for content creation on EA robots like RoboThespian and Socibot.
  
=='''Introduction'''==
+
This page introduces the Virtual Robot interface and working environment and the terminology used. 
  
Virtual RoboThespian provides an integrated environment in which to program RoboThespian for content delivery. Choose from preinstalled poses and routines, or build your own using our poseable and dynamically integrated robot model, sophisticated text-to-speech software, and intuitive timeline editing.
+
If you are new to Virtual Robot please start with the [[Virtual Robot Quickstart]] - a jargon free quickstart guide to creating and transferring an animation to your robot.  Then return here to get a deeper understanding of the interface and the terminology used.
  
Log in to Virtual RoboThespian with your username and password here - http://virtual.robothespian.co.uk If you do not have a username and password and would like access to Virtual RoboThespian please contact Engineered Arts.
+
Explore the links at the bottom of the page to create more complex animations, animate multiple robots in sync and learn about Virtual Robot in more depth.
  
[[File:VRScreen_layout.jpg | 900px]]
+
All EA robots are shipped with a basic Virtual Robot account enabled you can access it [http://virtual.robothespian.co.uk here], login required. 
  
 +
You may want to open your Virtual Robot in another window while you read these pages.
  
# Menu Bar - file controls, QR Code generator and login details.
+
If you don't know your Virtual Robot login details [mailto:info@engineeredarts.co.uk contact Engineered Arts Ltd]
# Staging area - control and pose RoboThespian using your mouse.
 
# Library - comes packed with pre-installed content for you to drag and drop into the timeline.
 
# Timeline - arrange poses, audio components and speech to create your own robot performance.
 
# Inspector - real-time readouts of actuator data and view key frame data.
 
  
== Technical requirements ==
+
== Interface and Environment ==
 +
The Virtual Robot interface is divided into several sub areas:
  
Virtual RoboThespian is designed to be used on any platform. That said, there are some hardware configurations which can affect performance; if you are having problems please check this list and try to ensure whenever possible that your system meets specifications.
+
<div><ul>
 +
<li style="display: inline-block;">[[File:1920-VRScreen-layout.png|thumb|none|800px|link=|The Virtual Robot Interface]]</li>
 +
</ul></div>
  
'''Devices:''' Virtual RoboThespian runs best in a personal PC or laptop. Many mobile devices do not support HTML5, and therefore will not correctly render the virtual environment, nor will all the pose editing tools be available on a phone or tablet. If using a laptop, we recommend connecting a mouse, as it is difficult to position the robot with precision on a touchpad, and some touchpads do not have scrolling functionality (which is required to zoom the display).
+
# '''Menu Bar''' - file controls, login details and a lot more functionalities which are detailed below.
 +
# '''Staging area''' - control and pose RoboThespian using your mouse.
 +
# '''Library''' - comes packed with pre-installed content for you to drag and drop into the timeline.
 +
# '''Timeline''' - arrange poses, audio components and speech to create your own robot performance.
 +
# '''Inspector''' - real-time readouts of actuator data and view key frame data.
  
''' Browser:''' Virtual RoboThespian will only work in HTML5-enabled browsers. For best results, we recommend using Chrome, with FireFox as second choice. Internet Explorer does not fully support WebGL and requires 3rd party plugins; we do not endorse the use of Virtual RoboThespian with IE at this time.
+
Here we provide a detailed guide to how these various elements combine to create an intuitive interface for animating a robot.
  
''' Hardware/Drivers: ''' Any 3D Graphics card should be sufficient to run Virtual RoboThespian seamlessly on your computer, however WebGL performance will depend on the integration of your browser with the chosen OS. If you find you are having problems with the display (a list of known issues is included in the Troubleshooting section), we recommend checking the following link to see if your combination of OS, browser and device driver fully supports WebGL: https://www.khronos.org/webgl/wiki/BlacklistsAndWhitelists
+
==Menu Bar==
 +
The menu bar is designed to be similar to most desktop applications.  
  
 +
It sits at the top of the page, usually just under your browser's bookmarks or address bar. Throughout the documentation it will be referred to like so: Help > Documentation, that means click on the menu item Help and then the sub-item Documentation, which is probably how you got here.
  
== Interface and Environment ==
+
<div><ul>
 +
<li style="display: inline-block;">[[File:800x200-VR-menu-bar.png|thumb|none|800px|link=|Menu Bar]]</li>
 +
</ul></div>
  
The Virtual Robot interface is divided into several sub areas, as shown in the screenshot in the introduction. Here we provide a detailed guide to how these various elements combine to create an intuitive interface for sequencing a robot.
+
* '''File'''
 +
** New - start a new performance
 +
** Open File... open a previous performance (keyboard shortcut: L Crtl + O)
 +
** Save File - save the current performance (keyboard shortcut: L Crtl + S)
 +
** Save As... - save current performance with a different name (i.e. rename)
 +
** Save Copy As... - Save a copy of the current performance
 +
** Get Perma-link - get a link to this performance which you can bookmark for quick access.
 +
** Convert To - Switch to a different robot model, keeping existing animation for compatible inputs.
 +
** Transfer - [[Virtual_Robot_-_Transferring_Content| transfer performances to real robots]]
 +
* '''Edit''' - Undo, Redo, Copy, Paste
 +
** Generate - generates lipsync, blinking and eyelids
 +
** Preferences - opens the Preferences window
 +
* '''Robots''' - [[Virtual_Robot_Quickstart#Select_your_robot_model|Select the robot model]] to animate
 +
* '''View''' - Tick / Untick view options:
 +
** Follow Focused Item - as the item in focus moves, the camera moves with it
 +
** Lock Camera - locks current view
 +
** Show Animation Toolbox - opens the [[#Animation Toolbox| Animation Toolbox]]
 +
* '''Control''' - Lock Unselected Inputs - when this option is ticked only the parts of the robot selected in the Animation Toolbox will move
 +
* '''Select''' - Select All, Deselect All, Invert Selection
 +
* '''Help'''
 +
** Check session - Checks that your session is active
 +
** Documentation - Links to the wiki for help and advice
  
 +
== Staging area ==
 +
This is the main area where you can view the robot, watch a performance play, or create new poses.
  
===Menu Bar===
+
<div><ul>
 +
<li style="display: inline-block;">[[File:VRScreen_staging.jpg|thumb|none|800px|link=|The Staging Area]]</li>
 +
</ul></div>
  
File & Login options are located in a menu bar, at the top of the browser window.
+
# '''Mirror Eyes Button''' - Toggle this on/off to control eyes individually or with mirroring function.
 +
# '''Eye Graphics Drop Down Menu''' - Select animatable or static eye graphics from the list.
 +
# '''Light Colour Selector''' - Click on the robots Head, Torso, Arms and Legs (they will highlight blue), then click the drop down button.
 +
# '''Lights selector / Colour Cursor''' -  Move this point around to select you desired colour for the selected body part.
 +
# '''Slider''' - Adjusts the light brightness for the selected body part.
 +
# '''Robot''' - Click and drag on limbs to move.  Click on areas to set colour.
  
[[File:VRScreen_fileOptions.jpg | 900px]]
+
===Camera===
 +
* Click and drag anywhere in the staging area except on the robot to change the camera angle.
 +
* Double-click on any part of the robot to focus on that part, (double-click on the background to reset).
 +
* Use the mouse scroll wheel (or equivalent laptop function) to zoom in and out of your focused item.
  
 +
===Robot===
 +
* Click and drag on any part of the robot (limbs, fingers, head, etc) in order to position the robot how you like.
 +
* Alternative movements are accessible by middle clicking ''(or holding shift/ctrl whilst clicking)'' and dragging.
  
# File buttons - New blank timeline, Save the current performance, Copy the current performance, Delete the current performance.
+
===Creating Poses - introduction===
# File List drop down menu - Type in here to give a name to new performances, or use your mouse to select an existing performance from the drop-down menu
+
* You can create poses by moving the robot parts (limbs, fingers, head, etc) to the desired position and by adding a new keyframe you can save that position in the timeline (make sure that the parts you have moved are selected in the Animation Toolbox).
# File History drop down menu - This will list all previous saves to the current file selection.
+
* The top menu contains some useful options for changing  eye animations and body LED colours. For a detailed guide to pose editing, see [[#Posing_the_robot| posing the robot]].
# QR code button - Click to generate a QR code for your specific performance. If you store the image, you can use it to trigger your performance by holding it in the visual field of a real robot.
+
* Shortcuts: Double clicking on the head will bring up the Head sequences tab, on an arm will bring up the Pose tab, and on the jaw will open the Speech tab.
  
 +
== Library ==
 +
<div><ul>
 +
<li style="display: inline-block;">[[File:800-VR-the-libraray.png|thumb|none|800px|link=|The Library]]</li>
 +
</ul></div>
  
=== Staging area ===
+
The Library section of Virtual Robot is a place for any clips which a Project requires, or has available. To add ANY type of Library item, to the timeline, you can simply drag and drop from the list in the Library to any time in the timeline.
  
This is the main arena where you can view the robot, watch a sequence play out, or create new poses. Click and drag anywhere in the staging area except on the robot to change the camera angle. Use the mouse scroll wheel (or equivalent laptop function) to zoom in and out. You can create poses by moving the robot parts (limbs, fingers, head, etc) to the desired position and pressing 'add pose'. The top menu contains some useful options for changing the eye animations and body LED colours. For a detailed guide to pose editing, see [[#Posing_the_robot| posing the robot]], below. Double clicking on the robot torso or legs will open the Routines tab in the library. Double clicking on the head will bring up the Head sequences tab, on an arm will bring up the Pose tab, and on the jaw will open the Speech tab.
+
=== Pose ===
  
[[File:VRScreen_staging.jpg | 900px]]
+
Short pre-created animation content which you can drag onto the timeline to view. Includes useful gestrures like "point left", "point right", "Wave right" etc.  This will likely be changing in the future.
  
 +
=== Head ===
  
# Mirror Eyes Button - Toggle this on/off to control eyes individually or with mirroring function.
+
Head gestures e.g. "Head Nod" and movements e.g. "Head Left"
# Eye Graphics Drop Down Menu - Select animatable or static eye graphics from the list.
 
# Light Colour Selector - Click on the robots Head, Torso, Arms and Legs (they will highlight blue), then click the drop down button.
 
# Colour Cursor -  Move this point around to select you desired colour for the selected body part.
 
# Slider - Adjusts the light brightness for the selected body part.
 
# Robot - Click on him to move and select for light colours.
 
  
 +
=== Eyes ===
  
=== Library ===
+
Eye expressions e.g. "Angry Eyes", movements e.g. "Eyes Right" and "Blink"
  
 +
=== Cheeks ===
  
[[File:VRScreen_library_header.jpg | 900px]]
+
Basic cheek colours for the face e.g. "Cheeks Red".  
  
 +
Note that any colour can also be selected from the Lights selector / Colour Cursor (item 4. in [[#Staging area| Staging area section above]])
  
The library window allows you to access stored data to use in timeline sequences. When dropped into the timeline, the length of the audio or motion clip will be reflected in the component length as displayed in the timeline. Currently grouped into the following sublibraries:
+
=== Audio ===
  
==== Pose ====
+
Library of any sound files you have uploaded.
  
Useful static poses and short gestures (eg beckon).
+
Drag sound files from your desktop or file-browser onto the list to upload.
  
==== Head ====
+
Almost all audio file types should be supported. If you have the file available in a 'lossless' format (e.g. flac/alac) we recommend using that for best results. Otherwise upload whatever file you have access to. Encode the file as few times as possible! Virtual Robot encodes the file to .ogg format when it's uploaded.
  
Head poses and movements.
+
To remove an audio file from the library click the red X next to the audio file. Pressing the delete key when it's highlighted  will remove that sequence from the timeline if it exists.
  
==== Eyes ====
+
Note removing audio from the library removes it from Virtual Robot completely - it removes it from sequences as well.
  
Eye positions and expressions, and a blink function.
+
=== Speech ===
 +
The 'Speech' section contains any text-to-speech content used (or available) to the current Project.
  
==== Colour ====
+
From this pane you can create new text-to-speech clips, by typing in the large box.
  
As with the cheeks, some useful colours to be used in the body/arms/pelvis LEDs.
+
You can add this speech to the end of your timeline by pressing the 'Append' button.
  
==== Cheeks ====
+
You can also add the speech at the location of the Timeline marker using the 'Add at Marker' button.
  
Some useful precomposed cheek colours for the LEDs in the face.
+
There are various options for adjusting the sound of the speech, '''Language, Voice, and 'Mood'''' are all available as drop-downs above the textbox.
  
==== Routines ====
+
'''Volume, Speed, and Shaping''' can be fine-tuned by you however you like, the Speed option is especially useful for tweaking speech to music or existing animation (but don't forget that the normal setting is in the middle of the bar).
  
Longer routines created for real RoboThespian installations, which are entertaining or useful in a general setting.
+
In the list you can organise your Speech into folders. Use the Delete key to delete anything you no longer want to use.
  
==== Audio ====
+
'''Deselect any Speech items to reset the form to it's default values.'''
  
Stored audio segments. These can be sound snippets, music, a recorded speech segment - anything you like.
+
Text to speech input. Key below:
  
To upload a new audio file.  Open folder containing sound file, drag and drop into timeline.
+
<div><ul>
 +
<li style="display: inline-block;">[[File:VRScreen_speech_tab.jpg|thumb|none|800px|link=|The Speech Tab]]</li>
 +
</ul></div>
  
==== Speech ====
+
# '''Language'''
 +
# '''Voice selection''' (number of voices available depends upon language).
 +
# '''Voice style''' - some voices (especially US English) have optional speech modulations, eg mood, age, character.
 +
# '''Text input''' - enter your desired speech here, and press 'Add Speech' at the bottom right to insert into the timeline.
 +
# '''Volume''' - adjust the volume of the tts component.
 +
# '''Speed''' - adjust the speed.
 +
# '''Shaping''' - how much inflection is given to the tts component.
 +
# '''Lypsync Gain''' - Control the range of motion for the jaw
 +
# '''Append''' & '''Add at Marker'''  - Add tts component to the speech track.
 +
# '''Hide or Expand the Library Area''' - click on the white section to Hide or Expand the Library Area
  
Text to speech input. Key below:
 
  
[[File:VRScreen_speech_tab.jpg | 900px]]
+
Like the pre-composed elements, tts segments will reflect their true length when dropped into the timeline, however it may take a few moments for the engine to calculate the length.
  
 +
== Timeline ==
  
# Language
+
The timeline lets you view, play and edit complete performances.
# Voice selection (number of voices available depends upon language).
 
# Voice style - some voices (especially US English) have optional speech modulations, eg mood, age, character.
 
# Text input - enter your desired speech here, and press 'Add Speech' at the bottom right to insert into the timeline.
 
# Volume - adjust the volume of the tts component.
 
# Speed - adjust the speed.
 
# Shaping - how much inflection is given to the tts component.
 
# Lypsync Gain - Control the range of motion for the jaw
 
# Append & Add at Marker  - Add tts component to the speech track.
 
# Expand & Contract the Library Area.
 
  
 +
<div><ul>
 +
<li style="display: inline-block;">[[File:Timeline_menu_annotated.png|thumb|none|800px|link=|The timeline - annotated]]</li>
 +
</ul></div>
  
Like the pre-composed elements, tts segments will reflect their true length when dropped into the timeline, however it may take a few moments for the engine to calculate the length.
+
# '''Animation Toolbox''' - Open/Close the floating [[#Animation_Toolbox| Animation Toolbox ]] ''(detailed description in later section)''.
 +
# '''Item / Frames / Graph View''' (Current mode highlighted in orange. Each mode offers different ways to edit. See: [[#Interpolation Iypes | interpolation types]])
 +
# '''Restart''' your performance. Restart plays from the beginning.
 +
# '''Current time''' - in seconds of green marker position, can be edited from here.
 +
# '''Play/Pause''' your performance.
 +
# '''Toggle Repeat''' when enabled your performance will loop after it's finished playing.
 +
# '''Reset''' - Resets the virtual robot to it's default start pose.
 +
# '''New Track''' - Allows you to add a new track (motion, audio, speech or lipsync).
 +
# '''Green Timeline Marker''' - move the timeline marker by dragging the rectangle at the top.
 +
# '''Motion Item''' - this is a sequence timeline item which contains robot animation.
 +
# '''Audio Item''' - this is an audio clip.
 +
# '''Speech Item''' - this is an text to speech clip.
 +
# '''Lipsync Item''' - this is a sequence timeline item which only contains lip movement.
 +
# '''Track Type & Names''' - click the checkbox to disable a track, the names can be edited also by clicking on them.
 +
# '''Track Drop-down''' - clicking this brings up more buttons related to the track:
 +
## '''Show Details''' - shows more information about audio tracks.
 +
## '''Shift Up''' - shifts track upwards.
 +
## '''Shift Down''' - shifts track downwards.
 +
## '''Delete''' - deletes the track
  
=== Timeline ===
+
===Adding Pre-Made Content===
 +
Drag Library elements into the timeline area where you wish to insert them. You can drag elements to reorder them.
  
The timeline lets you view, play and edit complete routines for the Virtual (and real!) RoboThespian.  
+
Audio files such as your own mp3 files can be dragged directly into the timeline from your computer's desktop or file system.  
  
[[File:VRScreen_timeline_menu.jpg | 900px ]]
+
Audio files can also be added from the audio tab in the library.  
  
 +
Text to Speech (tts) items are created at the markers current position or appended to the last one in the timeline if it exists.
  
[[File:VRScreen_timeline_tracks.jpg | 900px ]]
+
A lipsync data item is automatically created and is linked to the tts items.  
  
 +
'''NOTE''': If a tts item is deleted, the linked '''lipsync data item will remain''' and will also need to be deleted '''if''' not required.
  
[[File:VRScreen_animation_toolbox.jpg | 900px ]]
+
====Making Pre-Made Content Editable (and Playable) on Real Robot====
  
 +
Currently library elements are a reference to a sequence on the real robot. However not all robots will have the sequence installed on the robot.
  
# Animation Toolbox - Open/Close the floating animation toolbox
+
To ensure Library elements play on all real robots they must be made editable. This converts them from a reference to a sequence of actual outputs that will play on any robot.
# Copy and Paste - Select an item to copy, and paste at current marker position
 
# Green Timeline Marker & Marker Time display
 
# Undo / Redo (Unlimited - currently only works for toolbox actions)
 
# Item Mode / Frames Mode (Current mode highlighted in orange. Each mode offers different ways to edit)
 
# Play/Pause & Restart your performance. Restart plays from the beginning
 
# Reset - Resets the virtual robot to a default start pose
 
# Minimise Timeline area
 
# Scrollbar - Drag to navigate the timeline (Dragging the ends will compress or extend the timeline)
 
# Current time in seconds of green marker position
 
# Track Type Names
 
# Individual Track Show/Hide Toggles
 
# Motion, Audio, Speech, and Lipsync Tracks (Item edit mode with keys toggled to SHOW, audio and TTS showing file names)
 
# Motion, Audio, Speech, and Lipsync Tracks (Item edit mode with keys toggled to HIDE, audio and TTS showing wave forms and linear interpolation between keys)
 
# Motion Track (with Keyframe Edit Mode #5 toggled on)
 
# The Animation Toolbox (individual buttons described in [[#Animation_Toolbox| Animation Toolbox ]])
 
  
 +
If an item in the timeline is pink it is not editable and might not work on your robot. Press the E key to make them editable.
  
Drag Library elements into the timeline area where you wish to insert them. You can drag elements to reorder them (although note that routines containing both sound and movement have these inextricably linked). Audio files such as your own mp3 files can be dragged directly into the timeline area. Audio files can also be added from the audio tab in the library. Text to Speech (tts) items are created at the markers current position or appended to the last one in the timeline if it exists. A lipsync data item is automatically created and is linked to the tts items. If a tts item is deleted, the linked lipsync data item will remain and will also need to be deleted if not required.
+
<div><ul>
 +
<li style="display: inline-block;">[[File:Reference_sequences_pink-wont-play-on-robot.png|thumb|none|800px|link=|Library elements pink = references (might not play on real robot)]]</li>
 +
</ul></div>
  
The VR interface should not allow placing of any elements (b) before zero seconds in the timeline (a). If this were to happen it will stop the sequence playing on a real RoboThespian.
+
<div><ul>
 +
<li style="display: inline-block;">[[File:library-elements-blue-editable.png|thumb|none|801px|link=|Library elements blue = editable (will play on real robot)]]</li>
 +
</ul></div>
  
[[File:Element_before_zero_seconds_annotated.png]]
 
  
==== Animation Toolbox ====
+
Step by step:
 +
# Click on any timeline clip to enter clip selection mode.
 +
# Press Ctrl + A or go to Select > Select All.
 +
# Press the E key.
 +
# All pink items should turn blue to show they are editable.
 +
# Be sure to save the performance.
  
 +
=== Animation Toolbox ===
  
 
The animation toolbox provides a selection of tools (upper row) and body part filters (lower row). its a floating toolbox, so can be moved around the browser and placed anywhere you like.
 
The animation toolbox provides a selection of tools (upper row) and body part filters (lower row). its a floating toolbox, so can be moved around the browser and placed anywhere you like.
Tools are ordered from Left to Right. Keyboard short cuts for each button display when hovering the mouse over the button.
 
  
 +
Tools are ordered from Left to Right.
 +
 +
Keyboard short cuts for each button display when hovering the mouse over the button.
 +
 +
Top row buttons are general animation controls.
 +
 +
The bottom row buttons select or deselect hardware outputs specific to each robot. They are toggle buttons. If you wish to only add or remove keys for the body, then only toggle the body selection, and so on.  This is useful for creating animation in passes or for isolating problems with movement.
  
[[File:VRScreen_animation_toolbox_sml.jpg | 900px ]]
+
Click on a bottom row button to select - it will be highlighted with background colour (see last image below).
  
===== Upper Row Buttons =====
+
The toolbox features are robot specific, but similar:
* Add Key Pose  -  Adds current robot pose at current marker position based on filter selection.
 
* Interpolation Type  -  Chose between Stepped/Linear/Spline interpolation types.
 
* Apply Interpolation  -  Apply the selected interpolation to the currently selected timeline item.
 
* Remove Key Pose  -  Removes the key pose at current marker position based on filter selection.
 
* Remove All Key Poses  -  Removes all keys poses in selected timeline item based on filter selection.
 
* Add single Input  -  Create an input to trigger external devices, such as a sequence on another robot.
 
* Slice  - Slice selected item at current marker position.
 
* Weld  -  Weld selected item at current marker position.
 
  
 +
<div><ul>
 +
<li style="display: inline-block;">[[File:Animation Toolbox - RoboThespian.png|thumb|none|800px|link=|RoboThespian Animation Toolbox]]</li>
 +
<li style="display: inline-block;">[[File:Animation Toolbox - SociBot.png|thumb|none|800px|link=|SociBot Animation Toolbox]]</li>
 +
<li style="display: inline-block;">[[File:Animation Toolbox - RoboThespian4 with InYaFace - all body parts enabled.png|thumb|none|800px|link=|RoboThespian with InYaFace (projected face), '''all body parts enabled.''']]</li>
 +
</ul></div>
  
===== Lower Row Buttons =====
+
====Controls====
* Select All/None
+
<div><ul>
* Eyes
+
<li style="display: inline-block;">[[File:Toolbox_annotated.png|thumb|none|800px|link=|Animation Toolbox - labelled]]</li>
* Head
+
<li style="display: inline-block;">[[File:Toolbox_interp.png|thumb|none|800px|link=|Toolbox - '''interpolation dropdown'''.]]</li>
* Body
+
</ul></div>
* Right Arm
 
* Left Arm
 
* Hands
 
* Lights
 
* Play Inputs
 
  
  
The body part filters are toggle buttons. If you wish to only add or remove keys for the body, then only toggle the body selection, and so on. The filters are useful for creating animation in passes or for isolating problems with movement.
+
# '''Add Key Frame''' - Adds current robot pose at current marker position based on filter selection.
 +
# '''Interpolation Type''' - Chose between Stepped/Linear/Curve interpolation types.
 +
# '''Remove Key Frame''' - Removes the key pose at current marker position based on body row selection.
 +
# '''Remove All Key Poses''' - Removes all keys poses in selected timeline item based on filter selection.
 +
# '''Add single Input''' - Create an input to trigger external devices, such as a sequence on another robot.
 +
# '''Slice''' - Slice selected item at current marker position.
 +
# '''Weld''' -  Weld selected item at current marker position.
 +
# '''X''' - Close Animation Toolbox
 +
# '''Select All/None''' - toggle all possible inputs listed below (Head, Face, Eyes etc.) on or off
 +
# '''Eyes''' - toggle eye inputs
 +
# '''Head''' - toggle head inputs
 +
# '''Body''' - toggle body (torso) inputs
 +
# '''Right Arm''' - toggle right arm inputs
 +
# '''Left Arm''' - toggle left arm inputs
 +
# '''Hands''' - toggle hand and finger inputs
 +
# '''Lights''' - toggle cheek and body lighting inputs
 +
# '''Add single Input'''  -  Create an input to trigger external devices, such as a sequence on another robot.
  
===== Item Selection =====
+
==== Item Selection ====
  
 
Items on the timeline (motion data, audio & TTS clips) can be selected by LMB clicking on them. Whilst an item is selected, holding LMB and dragging left and right, allows an item to be moved.
 
Items on the timeline (motion data, audio & TTS clips) can be selected by LMB clicking on them. Whilst an item is selected, holding LMB and dragging left and right, allows an item to be moved.
Line 198: Line 285:
  
  
===== Interpolation Types =====
+
=== Interpolation Types ===
 +
 
 +
Individual keyframes are distinguished by a marker within the timeline element. They are not necessarily evenly spaced, as they correspond to times in the animation. Any keyframe can have an '''interpolation'''. Which is one of '''Step''', '''Linear''', or '''Curve'''. This interpolation controls how the robot moves in-between these keyframes.
 +
 
 +
''The default and simplest type of interpolation is Linear.''
 +
 
 +
This is a good time to introduce the '''Frames''' timeline view. You can access this view using the button on the timeline's toolbar, or by pressing '''V''', or by double clicking a sequence (blue) element.
 +
 
 +
<div><ul>
 +
<li style="display: inline-block;">[[File:Timeline_frames.png|thumb|none|800px|link=|The '''Frames''' timeline view]]</li>
 +
</ul></div>
 +
 
 +
In the above screenshot you can see keyframes with '''Step''', '''Linear''', and '''Curve''' interpolation.
 +
 
 +
''Grey keyframes are keyframes that exist, but are for inputs which you've not got selected currently. Use the body parts in the animation toolbox to select different inputs, or double click on a grey keyframe.''
 +
 
 +
* '''Step-Denoted by a square'''
 +
** Interpolation keeps the position the same until another keyframe changes it.
 +
** This results in jumpy movements, but can be very useful for blocking out initial poses.
 +
 
 +
* '''Linear-Denoted by a diamond.'''
 +
** Interpolation smoothly changes the pose from the position of one keyframe, until the next.
 +
** This results in smoother movements, but can still feel a bit ''robotic''.
 +
 
 +
* '''Curve-Denoted by a circle'''
 +
** Interpolation is smooth ''(like Linear)'', but varies the movement speeds depending on the position of it's '''handles'''.
 +
** This provides the most flexibility for animation, but can be a bit complicated.
 +
 
 +
 
 +
''Whilst '''Curve''' interpolation can produce more detailed or life-like animation. It's usage is not always necessary and can result in a complicated workflow.''
 +
 
 +
The way in which these interpolation types control motion can be visualised using the '''Graph''' view. You can access this view using the button on the timeline's toolbar, or by pressing '''V''' several times when a sequence is selected.
 +
 
 +
<div><ul>
 +
<li style="display: inline-block;">[[File:Timeline_curves.png|thumb|none|800px|link=|The '''Graph''' timeline view of the same animation]]</li>
 +
</ul></div>
 +
 
 +
This view is where you can move the curve interpolation's handles. ''These work similarly to pen tools in many drawing applications you may have used before.'' The pose of the robot moves from keyframe-to-keyframe, and the speed at which this occurs can be adjusted using the small white handles. The key to using these effectively is understanding how they affect the robot's '''acceleration''' in your animation. The acceleration and speed of a character's movements convey as much (if not more) of their emotion than the poses which are used.
  
Individual frames are distinguished by a fine coloured grating within the timeline element. They are not necessarily evenly spaced, as they correspond to event times rather than clock cycles or animation frames. The type of interpolation between them is represented by either a blank space for stepped and a faded but constant grating for linear.
+
You can change the interpolation type of existing keyframes, by selecting the keyframes you wish to change, and choosing an interpolation from the [[#Animation_Toolbox| Animation Toolbox ]] drop down list.
  
[[File:VRScreen_interpolation_stepped.jpg | 900px ]]
+
== Inspector ==
 +
The right slideable window gives a list of all hardware outputs. You may want to directly control these outputs for more accurate poses.
  
Stepped interpolation (blank space between key poses) means the key pose value remains unchanged until the marker plays the next value along the timeline. This will result in a jumpy playback effect but serves well when planning out key poses.
+
<div><ul>
 +
<li style="display: inline-block;">[[File:inspector.png|thumb|none|800px|link=|Menu Bar]]</li>
 +
</ul></div>
  
 +
* Click and drag on an output name to change the value.
 +
* Click on the value itself to type a new one.
  
[[File:VRScreen_interpolation_linear.jpg | 900px ]]
+
You will be able to see how changing these values alters the pose of the robot as you do it. And vice-versa you can see how moving the robot changes the values.
  
Linear interpolation (faded grated colours) means the values from one key pose to the next is averaged out over the time between them. The result is an smooth movement between key poses with an equal spacing between each frame.
+
These values are useful for getting exact mirroring with certain movements, two arms moving to the exact same place for example. However this can make the robot feel less natural.
  
Linear interpolation updates automatically when adding key poses between existing keys poses. You can also change the interpolation type, by selecting the element you wish to change, then selecting the interpolation type you require from the animation toolbox drop down list, and clicking the interpolate button next to the drop down list.
+
White outputs are selected and will be saved to the timeline when creating animation keyframes. It is often useful to have a minimal number of these selected when animating, to help you create smoother motions. See the Tips page for more animation help!
 +
 
 +
===Robot Inputs examples - SociBot Kiosk and RoboThespian4 ===
 +
Each of the robots' inputs are split into the following categories/body-parts. These will be visible in the Animation Toolbox. And in the Inspector.
 +
 
 +
Socibot Kiosk
 +
 
 +
* Face
 +
* Eyes
 +
* Head
  
=== Inspector ===
+
RoboThespian4
  
The right slideable window gives a real-time list of all hardware outputs.
+
* Head
 +
* Eyes
 +
* Body
 +
* Left Arm
 +
* Right Arm
 +
* Hands
 +
* Lights
  
== Posing the robot ==
+
== Posing RoboThespian ==
  
 
Most robot elements can be controlled with the mouse alone. The following is a list of parts, their controllable aspects or axes, and how to move each one.  
 
Most robot elements can be controlled with the mouse alone. The following is a list of parts, their controllable aspects or axes, and how to move each one.  
Line 268: Line 412:
 
|}
 
|}
  
 +
===Posing SociBot===
 +
SociBot has 3 axes of movement in the head. To move them:
  
== Tips and Tricks for Creating Performances ==
+
* Head Yaw (Turn) and Pitch (Nod): Left Click and drag on the head shell.
 
+
* Head Roll (Tilt): Alternate Click* and drag on the head shell.
=== Audio ===
 
 
 
Recorded speech is the most natural sounding method of generating a compelling performance, but allows you little editing flexibility. The Acapela TTS engine used by RoboThespian is a strong substitute which with some care and attention can be almost as versatile. Using a natural sounding voice without much speed or shaping distortion will assist in making your performance believable. Experimenting with different spellings and punctuation can help smooth out intonation and timing. As with most animation methods, time spent on small details will have disproportionately rewarding results.
 
 
 
Here are some useful guides and links to help you get the most out if using TTS voices.
 
 
 
[http://www.acapela-group.com/voices/demo/tips-hints-and-tricks/ Tips, Hints & Tricks (Acapela Group)]
 
 
 
[http://www.acapela-group.com/voices/how-does-it-work/ TTS - How does it work (Acapela Group)]
 
 
 
[http://www.acapela-group.com/doc/Vocal%20smileys/excla.html Vocal Smileys (Acapela Group)]
 
 
 
*The use of vocal smileys only works with certain voices. For example: entering '''#cough#''' or '''#laugh#''' will generate the appropriate sound.
 
 
 
=== Voice Overs and Reference Video ===
 
 
 
*When recording VO, make sure you leave enough time between sentences or write in pauses, if there is an important gesture or action to follow.
 
*Recording VO in clips (sentences or small paragraphs) allows for better control of delivery timing. Clips can be spaced in VR.
 
*If creating a video for reference with specific gestures/actions make sure you leave enough time for those to play out.
 
*Keep in mind that RT cannot move quite as fast as a human actor. A head nod or body lean must be allowed enough time to play out.
 
 
 
 
 
=== Animation ===
 
 
 
====Planning====
 
 
 
* Carefully plan out what you intend to do with the robot. Time spent planning will save hours when it is time to animate.
 
* Write a script, draw a thumbnail sheet or storyboard. Detailing how Robothespian should act and move for each piece of dialogue.
 
* Pick out and underline operative words in each piece of dialogue from your script. This will help you make better acting choices.
 
*Think about creating strong poses with the robots body. Consider opposites, silhouettes and negative space around the body and how the pose or gesture reads from a distance.
 
*Act out the script and become familiar with how it should be delivered. Video yourself so you have reference to review if needed.
 
 
 
[[File:AnimatingVR thumbnails.jpg | 900px ]]
 
 
 
 
 
====Animating====
 
 
 
 
 
There are two common methods for how 3D animation is created. The first is called 'Straight Ahead' where the animator will not plan too much,
 
and animate the finished details as they go. This method can produce good results, but can be frustrating if changes are required later in production.
 
The other method is often called 'Pose to Pose' and involves building up your animation with careful planning, adding layers or passes of detail as you go.
 
 
 
The method which we would recommend and seems to work best with the Virtual Robothespian tools is the Pose to Pose method.
 
 
 
Keep in mind the frame rate for the Virtual Robothespian is 10 frames per second. The timeline is divided in 1/10th of second increments.
 
 
 
There are no rules to how you might go about animating. Everyone likes to animate differently.
 
Below is a list of guidelines to keep in mind when starting a project.
 
 
 
 
 
*Plan to animate by building up your work in passes. A finished animation sequence takes time to create and can become complex if you don't have a logical approach.
 
*Start by organizing your audio and sign off on it. Doing this will minimize changes down the road and save time.
 
*Become familiar with Key Poses, Breakdowns and Inbetweens. These are animation terms which describe different types of keys.
 
*Consider making use of the stepped,linear and spline features. These can make all the difference when working out movements.
 
*First pass - Key all the key poses. These are the strongest most important poses which define actions and gestures.
 
*Move key poses around to get the desired timing. At this stage you should be able to see which poses are working well.
 
*Second pass - Add breakdown poses. These are crucial to creating interesting movements and better timing.
 
*Third pass -  Add inbetween poses. These refine the movements in between the key poses and breakdowns.
 
*When animating at 10 frames per second, you may find there is not enough room for breakdowns and inbetweens in the traditional sense.
 
*Consider Robothespian's real world physical limitations, such as head and torso movement speeds and keeping the arms in safe positions.
 
*The real life robot can only move at a certain speed which could be slower than the timing you have specified in placing your key poses.
 
*Leave eye darts (rapid eye movements) and blinks to the very last. Doing so will keep you animation easier to manage until you are happy with the body movement.
 
*Create nice arcs with the arms and head. Breakdown and inbetween poses help define smoother more natural movement arcs.
 
*Try not to twin movements. Twinning is a term used in animation where body parts tend to mirror one another and are synchronized. Your key pose can be a mirror, just try to make the movement to the pose asynchronous. Even the slightest delay will help make the movement nicer if everything has some offset. This is currently hard to achieve with the current VR tools.
 
*Use moving holds. When people move they don't gesture and hold still, they keep moving. Subtle movement in and out of gesture poses helps sell the performance.
 
*KISS "Keep it simple, stupid' is a valuable acronym to keep in mind. Clear poses and simple movements between them will work best on Robothespian.
 
 
 
 
 
 
 
If things are not working and you are spending too much time being frustrated whilst animating. Maybe its time to take a step back. Don't be afraid to go back to the drawing board and start over.
 
Its always better to spend time planning what you intend to do. The end result will always be better and often get produced faster with a solid plan in place.
 
 
 
 
 
====Things to avoid====
 
 
 
*Don't give the Robothespian a case of 'RandomBlinkitus'. Too many blinks, which are not timed to any particular gesture, movement or piece of dialogue will make the performance weaker
 
*Don't make Robothespian move constantly or thrash about. It looks strange, doesn't engage people and will potential cause a mechanical wear and tear.
 
*Don't make Robothespian gesture too much with each piece of dialogue.
 
*Keep in mind that RT cannot touch his own face or body.
 
*Try not to position the arms above the head, whilst twisted back. This will potentially cause the arm to flip backwards and suddenly forwards again.
 
 
 
 
 
====Performance Organisation====
 
 
 
When animating a performance from scratch, its good practice to keep your timeline as clean and simple as possible. This will make future editing and late changes easy to accommodate.
 
Currently the best method for organising your projects in VR, is to use both motion tracks. Keeping all the body keys on one track and the eye and lighting keys on the other.
 
Separating the eye and lighting keys from the body keys, allows you to concentrate on the body first. Using this method should produce faster results, by leaving the small details to last.
 
The eyes are the most time consuming and important part of animating RT. They are dependent on head and body position, which is why its important to animate the body first.
 
 
 
 
 
[[Basic Guide to Animation Pipeline]]
 
 
 
[[Advanced Guide to Animation Pipeline]]
 
 
 
[[Create a Two Robot Performance]]
 
  
[[Projector Face Animation Process]]
+
Alternate click =  Middle click or Shift + Left click or Ctrl + Left click
  
[[Guide to biomimetic behaviour]]
+
As with all robots with projector based faces SociBots have InYaFace support. See the InYaFace page for more information.
  
==Troubleshooting==
+
== Creating a simple animation ==
===403 Forbidden error===
+
If you are completely new to Virtual Robot please start with the [[Virtual Robot Quickstart]] - a jargon free quickstart guide to creating and transferring an animation to your robot.  Then return here to get a deeper understanding of the interface and the terminology used.
If you see the following error either on the Virtaul.Robothespian.co.uk site, or when accessing Virtual RoboThespian via [[Robot Management]] on a robot:
 
  
[[File:Virtual_RoboThespian_403_forbidden_error.jpg]]
+
== Transferring animation to your robot ==
 +
Once you have created a new performance on Virtual Robot, you will want to see it working on a real robot. It's easy to transfer to your robot, even if the robot is in a different part of the world.  Please see [[Virtual Robot - Transferring Content]]
  
Please just hit the Log Out button in the top right and login again.
+
== Further Documentation and Tutorials ==
 +
Now that you are familiar with the Virtual Robot Interface and Environment, and have been through the [[Virtual Robot Quickstart|Quickstart]] learn in more detail:
 +
{{#lst:Virtual_Robot|further_vr_links}}
  
This error can occur if you have logged in from different machines / browsers and is a result of using a single sign in system for Robot Management and Virtual RoboThespian.
+
==Ongoing Development and New Features ==
 +
New features are being added to Virtual Robot all the time to offer increased functionality or improved ease of use.  
  
===Plays in Virtual RoboThespian, but not on real RoboThespian===
+
As Virtual Robot is a web based tool these improvements are made available to you in real time without the need to install any updates.
Please check that there is nothing on the timeline set to start before 0s.  If so, move them to 0s or above.  Otherwise sequence will not play on the real RoboThespian.
 
  
Do not add any elements, e.g. (b) before zero seconds on the timeline (a). This will stop the sequence playing on a real RoboThespian.
+
Please see  [[Virtual Robot - What's New]]
  
[[File:Element_before_zero_seconds_annotated.png]]
+
== Troubleshooting ==
 +
If Virtual Robot is not behaving as expected, or you experience any errors please see [[Virtual Robot Troubleshooting]]

Latest revision as of 08:11, 23 October 2018

Virtual Robot > Interface & Environment

The Virtual Robot Interface

Introduction

Virtual Robot provides a simple to use web based tool for content creation on EA robots like RoboThespian and Socibot.

This page introduces the Virtual Robot interface and working environment and the terminology used.

If you are new to Virtual Robot please start with the Virtual Robot Quickstart - a jargon free quickstart guide to creating and transferring an animation to your robot. Then return here to get a deeper understanding of the interface and the terminology used.

Explore the links at the bottom of the page to create more complex animations, animate multiple robots in sync and learn about Virtual Robot in more depth.

All EA robots are shipped with a basic Virtual Robot account enabled you can access it here, login required.

You may want to open your Virtual Robot in another window while you read these pages.

If you don't know your Virtual Robot login details contact Engineered Arts Ltd

Interface and Environment

The Virtual Robot interface is divided into several sub areas:

  • The Virtual Robot Interface
  1. Menu Bar - file controls, login details and a lot more functionalities which are detailed below.
  2. Staging area - control and pose RoboThespian using your mouse.
  3. Library - comes packed with pre-installed content for you to drag and drop into the timeline.
  4. Timeline - arrange poses, audio components and speech to create your own robot performance.
  5. Inspector - real-time readouts of actuator data and view key frame data.

Here we provide a detailed guide to how these various elements combine to create an intuitive interface for animating a robot.

Menu Bar

The menu bar is designed to be similar to most desktop applications.

It sits at the top of the page, usually just under your browser's bookmarks or address bar. Throughout the documentation it will be referred to like so: Help > Documentation, that means click on the menu item Help and then the sub-item Documentation, which is probably how you got here.

  • Menu Bar
  • File
    • New - start a new performance
    • Open File... open a previous performance (keyboard shortcut: L Crtl + O)
    • Save File - save the current performance (keyboard shortcut: L Crtl + S)
    • Save As... - save current performance with a different name (i.e. rename)
    • Save Copy As... - Save a copy of the current performance
    • Get Perma-link - get a link to this performance which you can bookmark for quick access.
    • Convert To - Switch to a different robot model, keeping existing animation for compatible inputs.
    • Transfer - transfer performances to real robots
  • Edit - Undo, Redo, Copy, Paste
    • Generate - generates lipsync, blinking and eyelids
    • Preferences - opens the Preferences window
  • Robots - Select the robot model to animate
  • View - Tick / Untick view options:
    • Follow Focused Item - as the item in focus moves, the camera moves with it
    • Lock Camera - locks current view
    • Show Animation Toolbox - opens the Animation Toolbox
  • Control - Lock Unselected Inputs - when this option is ticked only the parts of the robot selected in the Animation Toolbox will move
  • Select - Select All, Deselect All, Invert Selection
  • Help
    • Check session - Checks that your session is active
    • Documentation - Links to the wiki for help and advice

Staging area

This is the main area where you can view the robot, watch a performance play, or create new poses.

  • The Staging Area
  1. Mirror Eyes Button - Toggle this on/off to control eyes individually or with mirroring function.
  2. Eye Graphics Drop Down Menu - Select animatable or static eye graphics from the list.
  3. Light Colour Selector - Click on the robots Head, Torso, Arms and Legs (they will highlight blue), then click the drop down button.
  4. Lights selector / Colour Cursor - Move this point around to select you desired colour for the selected body part.
  5. Slider - Adjusts the light brightness for the selected body part.
  6. Robot - Click and drag on limbs to move. Click on areas to set colour.

Camera

  • Click and drag anywhere in the staging area except on the robot to change the camera angle.
  • Double-click on any part of the robot to focus on that part, (double-click on the background to reset).
  • Use the mouse scroll wheel (or equivalent laptop function) to zoom in and out of your focused item.

Robot

  • Click and drag on any part of the robot (limbs, fingers, head, etc) in order to position the robot how you like.
  • Alternative movements are accessible by middle clicking (or holding shift/ctrl whilst clicking) and dragging.

Creating Poses - introduction

  • You can create poses by moving the robot parts (limbs, fingers, head, etc) to the desired position and by adding a new keyframe you can save that position in the timeline (make sure that the parts you have moved are selected in the Animation Toolbox).
  • The top menu contains some useful options for changing eye animations and body LED colours. For a detailed guide to pose editing, see posing the robot.
  • Shortcuts: Double clicking on the head will bring up the Head sequences tab, on an arm will bring up the Pose tab, and on the jaw will open the Speech tab.

Library

  • The Library

The Library section of Virtual Robot is a place for any clips which a Project requires, or has available. To add ANY type of Library item, to the timeline, you can simply drag and drop from the list in the Library to any time in the timeline.

Pose

Short pre-created animation content which you can drag onto the timeline to view. Includes useful gestrures like "point left", "point right", "Wave right" etc. This will likely be changing in the future.

Head

Head gestures e.g. "Head Nod" and movements e.g. "Head Left"

Eyes

Eye expressions e.g. "Angry Eyes", movements e.g. "Eyes Right" and "Blink"

Cheeks

Basic cheek colours for the face e.g. "Cheeks Red".

Note that any colour can also be selected from the Lights selector / Colour Cursor (item 4. in Staging area section above)

Audio

Library of any sound files you have uploaded.

Drag sound files from your desktop or file-browser onto the list to upload.

Almost all audio file types should be supported. If you have the file available in a 'lossless' format (e.g. flac/alac) we recommend using that for best results. Otherwise upload whatever file you have access to. Encode the file as few times as possible! Virtual Robot encodes the file to .ogg format when it's uploaded.

To remove an audio file from the library click the red X next to the audio file. Pressing the delete key when it's highlighted will remove that sequence from the timeline if it exists.

Note removing audio from the library removes it from Virtual Robot completely - it removes it from sequences as well.

Speech

The 'Speech' section contains any text-to-speech content used (or available) to the current Project.

From this pane you can create new text-to-speech clips, by typing in the large box.

You can add this speech to the end of your timeline by pressing the 'Append' button.

You can also add the speech at the location of the Timeline marker using the 'Add at Marker' button.

There are various options for adjusting the sound of the speech, Language, Voice, and 'Mood' are all available as drop-downs above the textbox.

Volume, Speed, and Shaping can be fine-tuned by you however you like, the Speed option is especially useful for tweaking speech to music or existing animation (but don't forget that the normal setting is in the middle of the bar).

In the list you can organise your Speech into folders. Use the Delete key to delete anything you no longer want to use.

Deselect any Speech items to reset the form to it's default values.

Text to speech input. Key below:

  • The Speech Tab
  1. Language
  2. Voice selection (number of voices available depends upon language).
  3. Voice style - some voices (especially US English) have optional speech modulations, eg mood, age, character.
  4. Text input - enter your desired speech here, and press 'Add Speech' at the bottom right to insert into the timeline.
  5. Volume - adjust the volume of the tts component.
  6. Speed - adjust the speed.
  7. Shaping - how much inflection is given to the tts component.
  8. Lypsync Gain - Control the range of motion for the jaw
  9. Append & Add at Marker - Add tts component to the speech track.
  10. Hide or Expand the Library Area - click on the white section to Hide or Expand the Library Area


Like the pre-composed elements, tts segments will reflect their true length when dropped into the timeline, however it may take a few moments for the engine to calculate the length.

Timeline

The timeline lets you view, play and edit complete performances.

  • The timeline - annotated
  1. Animation Toolbox - Open/Close the floating Animation Toolbox (detailed description in later section).
  2. Item / Frames / Graph View (Current mode highlighted in orange. Each mode offers different ways to edit. See: interpolation types)
  3. Restart your performance. Restart plays from the beginning.
  4. Current time - in seconds of green marker position, can be edited from here.
  5. Play/Pause your performance.
  6. Toggle Repeat when enabled your performance will loop after it's finished playing.
  7. Reset - Resets the virtual robot to it's default start pose.
  8. New Track - Allows you to add a new track (motion, audio, speech or lipsync).
  9. Green Timeline Marker - move the timeline marker by dragging the rectangle at the top.
  10. Motion Item - this is a sequence timeline item which contains robot animation.
  11. Audio Item - this is an audio clip.
  12. Speech Item - this is an text to speech clip.
  13. Lipsync Item - this is a sequence timeline item which only contains lip movement.
  14. Track Type & Names - click the checkbox to disable a track, the names can be edited also by clicking on them.
  15. Track Drop-down - clicking this brings up more buttons related to the track:
    1. Show Details - shows more information about audio tracks.
    2. Shift Up - shifts track upwards.
    3. Shift Down - shifts track downwards.
    4. Delete - deletes the track

Adding Pre-Made Content

Drag Library elements into the timeline area where you wish to insert them. You can drag elements to reorder them.

Audio files such as your own mp3 files can be dragged directly into the timeline from your computer's desktop or file system.

Audio files can also be added from the audio tab in the library.

Text to Speech (tts) items are created at the markers current position or appended to the last one in the timeline if it exists.

A lipsync data item is automatically created and is linked to the tts items.

NOTE: If a tts item is deleted, the linked lipsync data item will remain and will also need to be deleted if not required.

Making Pre-Made Content Editable (and Playable) on Real Robot

Currently library elements are a reference to a sequence on the real robot. However not all robots will have the sequence installed on the robot.

To ensure Library elements play on all real robots they must be made editable. This converts them from a reference to a sequence of actual outputs that will play on any robot.

If an item in the timeline is pink it is not editable and might not work on your robot. Press the E key to make them editable.

  • Library elements pink = references (might not play on real robot)
  • Library elements blue = editable (will play on real robot)


Step by step:

  1. Click on any timeline clip to enter clip selection mode.
  2. Press Ctrl + A or go to Select > Select All.
  3. Press the E key.
  4. All pink items should turn blue to show they are editable.
  5. Be sure to save the performance.

Animation Toolbox

The animation toolbox provides a selection of tools (upper row) and body part filters (lower row). its a floating toolbox, so can be moved around the browser and placed anywhere you like.

Tools are ordered from Left to Right.

Keyboard short cuts for each button display when hovering the mouse over the button.

Top row buttons are general animation controls.

The bottom row buttons select or deselect hardware outputs specific to each robot. They are toggle buttons. If you wish to only add or remove keys for the body, then only toggle the body selection, and so on. This is useful for creating animation in passes or for isolating problems with movement.

Click on a bottom row button to select - it will be highlighted with background colour (see last image below).

The toolbox features are robot specific, but similar:

  • RoboThespian Animation Toolbox
  • SociBot Animation Toolbox
  • RoboThespian with InYaFace (projected face), all body parts enabled.

Controls

  • Animation Toolbox - labelled
  • Toolbox - interpolation dropdown.


  1. Add Key Frame - Adds current robot pose at current marker position based on filter selection.
  2. Interpolation Type - Chose between Stepped/Linear/Curve interpolation types.
  3. Remove Key Frame - Removes the key pose at current marker position based on body row selection.
  4. Remove All Key Poses - Removes all keys poses in selected timeline item based on filter selection.
  5. Add single Input - Create an input to trigger external devices, such as a sequence on another robot.
  6. Slice - Slice selected item at current marker position.
  7. Weld - Weld selected item at current marker position.
  8. X - Close Animation Toolbox
  9. Select All/None - toggle all possible inputs listed below (Head, Face, Eyes etc.) on or off
  10. Eyes - toggle eye inputs
  11. Head - toggle head inputs
  12. Body - toggle body (torso) inputs
  13. Right Arm - toggle right arm inputs
  14. Left Arm - toggle left arm inputs
  15. Hands - toggle hand and finger inputs
  16. Lights - toggle cheek and body lighting inputs
  17. Add single Input - Create an input to trigger external devices, such as a sequence on another robot.

Item Selection

Items on the timeline (motion data, audio & TTS clips) can be selected by LMB clicking on them. Whilst an item is selected, holding LMB and dragging left and right, allows an item to be moved. Multiple items can be selected and manipulated by LMB clicking to select, holding CTRL to add to selection, and holding CTRL + SHIFT to add range in a single track.


Interpolation Types

Individual keyframes are distinguished by a marker within the timeline element. They are not necessarily evenly spaced, as they correspond to times in the animation. Any keyframe can have an interpolation. Which is one of Step, Linear, or Curve. This interpolation controls how the robot moves in-between these keyframes.

The default and simplest type of interpolation is Linear.

This is a good time to introduce the Frames timeline view. You can access this view using the button on the timeline's toolbar, or by pressing V, or by double clicking a sequence (blue) element.

  • The Frames timeline view

In the above screenshot you can see keyframes with Step, Linear, and Curve interpolation.

Grey keyframes are keyframes that exist, but are for inputs which you've not got selected currently. Use the body parts in the animation toolbox to select different inputs, or double click on a grey keyframe.

  • Step-Denoted by a square
    • Interpolation keeps the position the same until another keyframe changes it.
    • This results in jumpy movements, but can be very useful for blocking out initial poses.
  • Linear-Denoted by a diamond.
    • Interpolation smoothly changes the pose from the position of one keyframe, until the next.
    • This results in smoother movements, but can still feel a bit robotic.
  • Curve-Denoted by a circle
    • Interpolation is smooth (like Linear), but varies the movement speeds depending on the position of it's handles.
    • This provides the most flexibility for animation, but can be a bit complicated.


Whilst Curve interpolation can produce more detailed or life-like animation. It's usage is not always necessary and can result in a complicated workflow.

The way in which these interpolation types control motion can be visualised using the Graph view. You can access this view using the button on the timeline's toolbar, or by pressing V several times when a sequence is selected.

  • The Graph timeline view of the same animation

This view is where you can move the curve interpolation's handles. These work similarly to pen tools in many drawing applications you may have used before. The pose of the robot moves from keyframe-to-keyframe, and the speed at which this occurs can be adjusted using the small white handles. The key to using these effectively is understanding how they affect the robot's acceleration in your animation. The acceleration and speed of a character's movements convey as much (if not more) of their emotion than the poses which are used.

You can change the interpolation type of existing keyframes, by selecting the keyframes you wish to change, and choosing an interpolation from the Animation Toolbox drop down list.

Inspector

The right slideable window gives a list of all hardware outputs. You may want to directly control these outputs for more accurate poses.

  • Menu Bar
  • Click and drag on an output name to change the value.
  • Click on the value itself to type a new one.

You will be able to see how changing these values alters the pose of the robot as you do it. And vice-versa you can see how moving the robot changes the values.

These values are useful for getting exact mirroring with certain movements, two arms moving to the exact same place for example. However this can make the robot feel less natural.

White outputs are selected and will be saved to the timeline when creating animation keyframes. It is often useful to have a minimal number of these selected when animating, to help you create smoother motions. See the Tips page for more animation help!

Robot Inputs examples - SociBot Kiosk and RoboThespian4

Each of the robots' inputs are split into the following categories/body-parts. These will be visible in the Animation Toolbox. And in the Inspector.

Socibot Kiosk

  • Face
  • Eyes
  • Head

RoboThespian4

  • Head
  • Eyes
  • Body
  • Left Arm
  • Right Arm
  • Hands
  • Lights

Posing RoboThespian

Most robot elements can be controlled with the mouse alone. The following is a list of parts, their controllable aspects or axes, and how to move each one.

Robot Part Controllable feature How to edit
Eyes Iris position Mouse: left click anywhere in the eyeball and hold the button down to drag the eyes to an appropriate position.
Eyes Pupil size Mouse+ctrl: left click on the iris or pupil while holding down the ctrl key on your keyboard. Dragging the mouse will increase or decrease pupil size.
Eyes Graphics A drop-down menu on the upper left of the pose screen lists graphical display options for the eyes. Be warned that not all of these will animate or have editable features.
Eyelids Vertical position Mouse: left click on the upper or lower eyelid and drag to position.
Eyelids Tilt Mouse+ctrl: left click on the upper or lower eyelid while holding down the ctrl key on your keyboard. Dragging the mouse will tilt the robot's eyelids up or down.
Eyes + Eyelids Simultaneous editing To the left of the dropdown graphics menu, there is a 'mirror eyes' toggle. This is on by default, and means that edits to one eye will be reflected in the other. To change an individual eye or eyelid, without affecting the other, toggle this option off.
Head Yaw and pitch position Mouse: left click and drag with the mouse to control yaw and pitch of the head. Lateral (x) mouse position controls yaw, vertical (y) controls the pitch.
Head Roll position Mouse+ctrl: left click on the head while holding down the ctrl key on your keyboard to edit the head rotation about the roll axis only. The other axes will be disabled when ctrl is held.
Head Jaw Mouse: Left click and drag the mouse to open or close the robot's jaw. This is a binary mode (open/closed) without interim positioning.
Head Face LEDs Drop-down colour menu/brightness slider: Click briefly on the head (it should flash blue to indicate it is selected). Using the drop down colour map on the upper menu bar, and the brightness slider tool, you can control the LED output for the robot cheeks.
Upper arm/shoulder Yaw and pitch position Mouse: left click on the upper arm or shoulder joint and drag to rotate the arm yaw or pitch. Lateral (x) mouse position controls the yaw (abduction/adduction of the arm), vertical (y) mouse position controls the pitch (raising or lowering the joint). For best and most precise results, use the shoulder joint for pitch control and the centre of the joint (around the bicep) for yaw control. Note that controlling yaw from the shoulder can cause overlap difficulties with body roll angle.
Upper arm/shoulder Roll position Mouse+ctrl: left click on the upper arm while holding down the ctrl key to control arm roll (pronation/supination).
Upper arm Arm LEDs Drop-down colour menu/brightness slider: Click briefly on the arm (it should flash blue to indicate it is selected). Using the drop down colour map on the upper menu bar, and the brightness slider tool, you can control the LED output for the arms separately.
Elbow Pitch position Mouse: left click on the forearm and drag along the vertical axis to control elbow pitch. Note that the elbow has only one true degree of freedom, however you can control the roll axis of the wrist (see Wrist/Roll) and the yaw axis of the shoulder from the forearm.
Wrist Roll position Mouse+ctrl: left click on the forearm or hand to control the roll axis of the wrist/hand.
Hand Pitch position Mouse: left click on the hand to control wrist pitch. Note that there is no yaw degree of freedom in the wrist on this RoboThespian model - lateral and vertical mouse movement both control wrist pitch only. Depending on the overall body pose, it may be more advantageous to switch between vertical or lateral motion to achieve the full sensitivity and precision.
Hand Finger flexion Mouse: Click on a finger to flex or extend it. Each finger has only one degree of freedom with two possible positions (fully extended or fully curved).
Torso Roll and pitch position Mouse: left clicking on the torso and dragging the mouse will change the pitch and roll of the robot torso. Lateral (x) mouse position controls the roll, vertical (y) mouse position controls the pitch. Note that these controls are sensitive to the yaw position of the upper body and for best results, rotate the camera frame so the robot is facing you.
Torso Yaw position Mouse+ctrl: left click on the torso while holding down the ctrl key to control yaw rotation of the upper body.
Torso Body LEDs Drop-down colour menu/brightness slider: Click briefly on the torso (it should flash blue to indicate it is selected). Using the drop down colour map on the upper menu bar, and the brightness slider tool, you can control the LED output for the torso.
Legs Pelvis LEDs Drop-down colour menu/brightness slider: Click briefly on the legs (they should flash blue to indicate they are selected). Using the drop down colour map on the upper menu bar, and the brightness slider tool, you can control the LED output for the pelvis.

Posing SociBot

SociBot has 3 axes of movement in the head. To move them:

  • Head Yaw (Turn) and Pitch (Nod): Left Click and drag on the head shell.
  • Head Roll (Tilt): Alternate Click* and drag on the head shell.

Alternate click = Middle click or Shift + Left click or Ctrl + Left click

As with all robots with projector based faces SociBots have InYaFace support. See the InYaFace page for more information.

Creating a simple animation

If you are completely new to Virtual Robot please start with the Virtual Robot Quickstart - a jargon free quickstart guide to creating and transferring an animation to your robot. Then return here to get a deeper understanding of the interface and the terminology used.

Transferring animation to your robot

Once you have created a new performance on Virtual Robot, you will want to see it working on a real robot. It's easy to transfer to your robot, even if the robot is in a different part of the world. Please see Virtual Robot - Transferring Content

Further Documentation and Tutorials

Now that you are familiar with the Virtual Robot Interface and Environment, and have been through the Quickstart learn in more detail:


Ongoing Development and New Features

New features are being added to Virtual Robot all the time to offer increased functionality or improved ease of use.

As Virtual Robot is a web based tool these improvements are made available to you in real time without the need to install any updates.

Please see Virtual Robot - What's New

Troubleshooting

If Virtual Robot is not behaving as expected, or you experience any errors please see Virtual Robot Troubleshooting