OCULUS COMMANDS
The following listing is of text commands used by clients (javascript, Android, iOS and telnet clients) to communicate with the Oculus Java server application. They can be grouped into the following categories:
Movement
Periscope Mirror Tilt
Video/Audio
Users/Accounts
Dock/Charging
System
Other
MOVEMENT
move left | right | forward | backward | stop
Wheel motors, continuous movement
nudge left | right | forward | backward
Move for amount of milliseconds (specified by ‘nudgedelay’ setting)
slide left | right
Rearward triangular movement macro, that positions robot slightly to the left or right of starting spot
speedset slow | med | fast
Set drive motor speed
clicksteer {INT} {INT}
Camera tilt and drive motor movement macro to re-position center of screen by x,y pixels
motionenabletoggle (no arguments)
Enable/disable robot drive motors
getdrivingsettings (no arguments)
Returns drive motor calibration settings
drivingsettingsupdate {INT} {INT} {INT} {INT} {DOUBLE} {INT}
Set drive motor calibration settings: slow speed, medium speed, nudge delay, maxclicknudgedelay (time in ms for robot to turn 1/2 of screen width), momentum factor, steering compensation
PERISCOPE MIRROR TILT
cameracommand stop | up | down | horiz | downabit | upabit
Camera periscope tilt servo movement
tilttest {INT}
Move persicope tilt servo to specified position
holdservo true | false
Set/unset use of power break for persicope servo
gettiltsettings (no arguments)
Returns camera calibration settings
tiltsettingsupdate {INT} {INT} {INT} {INT} {INT}
Set camera calibration settins: horiz tilt, max tilt, min tilt, maxclickcam (time in ms for tilt to move 1/2 screen height), video scale %
VIDEO/AUDIO
publish camera | camadnmic | mic | stop
Robot video/audio control
speech {STRING}
Voice synthesizer
streamsettingsset low | med | high | full | custom
Set robot camera resolution and quality
streamsettingscustom {STRING}
Set values for ‘custom’ stream: resolutionX_resolutionY_fps_quality
videosoundmode low | high
Set robot video compression codec_
playerbroadcast camera | camadnmic | mic | stop
Client video/audio control (to be broadcast thru robot screen/speakers)
pushtotalktoggle true | false
When broadcasting client mic through robot speakers, always on or mute until keypress
setstreamactivitythreshold {INT} {INT}
Set flash video motion, audio volume detection threshold, 0-100 (0=off)
motiondetectgo {INT}
Starts Java vision motion detection routine, and sets ‘motiondetectwatching’ STATE variable to TRUE. Specify sensititivy value, higher than 5 to overcome noise, even higher in dark environments. Camera must be already running. Exits if motion detected, and sets STATE variable ‘motiondetected’ to motion value
motiondetectcancel (no arguments)
Cancels motion detection routine while running, and deletes ‘motiondetectwatching’ STATE variable
getlightlevel (no arguments)
Returns average pixel greyscale value (0-255) of frame from current stream
setsystemvolume {INT}
Set robot operating system audio volume 0-100
muterovmiconmovetoggle (no arguments)
Set/unset mute-rov-mic-on-move’ setting
framegrabtofile (optional) {INT}
Saves a frame from video stream to JPG in folder Oculus/webapps/oculus/framegrabs (creating folder if not already present). Folder is publicly view-able via web url: http://ip-address-or-domain-name:port/oculus/framegrabs. Eg.:
http://69.163.206.138:5080/oculus/framegrabs
If optional trailing integer is included with command, {INT} successive frames are saved sequentially.
NOTE: You can also access single frames without saving to disk, by going to ‘MENU > advanced menu > frame grab’ from within the web-client. Or, just point your browser to the frame grab url:
http://ip-address-or-domain-name:port/oculus/frameGrabHTTP
USERS/ACCOUNTS
password_update {STRING}
Set new password for currently connected user
new_user_add {STRING} {STRING}
Add new user with ‘username’ ‘password’
user_list (no arguments)
Returns list of user accounts
delete_user {STRING}
Delete user ‘username’
extrauser_password_update {STRING} {STRING}
Set new password for user with ‘username’ ‘password’
username_update {STRING} {STRING}
Change non-connected username with ‘oldname’ ‘newname’
beapassenger {STRING}
Be passenger of current driver, specify passenger ‘username’
playerexit (no arguments)
End rtmp connection with robot
disconnectotherconnections (no arguments)
Close rtmp connection with all user connections other than current connection
assumecontrol {STRING}
Assume control from current driver, specify new driver ‘username’
who (no arguments)
Returns information on current driver connected via RTMP (eg., flash/web/mobile clients), and number of users connected via telnet
loginrecords (no arguments)
Returns list of RTMP driver (eg., flash/web/mobile clients) login history for current server session
DOCK/CHARGING
dock dock | undock
Start manual dock routine
autodock cancel | go | dockgrabbed | dockgrabbed {STRING} | calibrate | getdocktarget
Autodocking system control. Camera must be running
dockgrab (no arguments)
Find dock target within robots camera view, writes target data to corresponding STATE variables (if found, will be non-zero values). Robot camera must be running
docklineposupdate {INT}
Set manual dock line position within camera FOV in +/- pixels offset from center
autodockcalibrate {INT} {INT}
Start autodock calibration, by sending xy pixel position of a white area within the dock target
battstats (no arguments)
Gets battery charging state and charge remaining, writes to corresponding STATE variables and client status
SYSTEM
systemcall {STRING}
Execute OS system command, with ‘Oculus/’ as the current working directory
showlog (no arguments)
Returns partial Oculus/logs/jvm.stdout
monitor on | off
Robot display sleep/wake control
softwareupdate check | download | versiononly
Robot server software update control
restart (no arguments)
Restart server application on robot
shutdown (no arguments)
Quit server application on robot
memory (no arguments)
Returns percent used, total memory, and free memory in use by the Java Virtual Machine. NOTE: JVM memory is not to be confused with system memory totals.
uptime (no arguments)
Returns time in milliseconds since the server application started
OTHER
relaunchgrabber (no arguments)
Launch new server.html browser page on robot
reloadserverhtml (no arguments)
Tell server.html server.js javascript to reload page (useful to force refresh flash plugin as it’s unstable otherwise). Server.js already does this every 10 min, when video/audio stream stopped)
chat {STRING}
Send text chat to all other connected users
statuscheck _(optional) battstats _
Request current statuses for various settings/modes. Call with ‘battstats’ to also get battery status. NOTE: mainly used by rtmp clients only for initial status populating, and frequent ‘PING’ status updates. Output to telnet clients is suppressed
arduinoecho true | false
Set ArduinOculus microcontroller to echo all commands
arduinoreset (no arguments)
Reset ArduinOculus microcontroller
spotlight 0 | 10 | 20 | 30 | 40 | 50 | 60 | 70 | 80 | 90 | 100
Set main spotlight brightness. (0=off)
floodlight on | off
Controls wide angle light
writesetting {STRING} {STRING}
Uses format: key value
Write setting to oculus_settings.txt
opennisensor on | off
Kinect/Xtion Primesense sensor control. NOTE: developer mode has to be enabled by setting ‘developer’ to ‘true’ in oculus_settings.txt
email {STRING}
Uses format: email-address [subject] body
Send email to email-address, with subject [subject] and body text body
Example:
email bob@example.com [Test email] This is an email test
Uses mail server settings specified in oculus_settings.txt configuration file values for ‘email_smtp_server, email_smtp_port,’ (and ‘email_username, email_password’ if required)
To use Gmail to send mail: set the server to ‘smtp.gmail.com,’ port to 587, and use Gmail username and password
state (optional) {STRING} (optional) {STRING}
Uses format: key, or key value
If called with no arguments: returns list of all non-null robot STATE variables
If called with one argument: returns value for single key
If called with two arguments: sets key to value
quit (no arguments)
Quit telnet session (telnet connection only)
help (optional) {STRING}
If called with no arguments: returns list of all commands
If called with argument command, returns quick help for single command
settings (no arguments)
Returns list of all settings from oculus_settings.txt
analogwrite {INT} {INT}
Sends command ‘a’ followed by two bytes (pin #, value) to ArduinOculus microcontroller. (Requires firmware version 0.5.5 or higher)
digitalread {INT}
Sends command ‘d’ followed by byte (pin #) to ArduinOculus microcontroller, requesting status of digital pin. (Requires firmware version 0.5.5 or higher.) Returns 1 or 0 within output string. Example output, reading HIGH value on pin 12:
<digitalread 12: 1>
messageclients {STRING}
Send text to all other connected users. Similar to ‘chat,’ but without preceding user info
rssadd {STRING}
Uses format: [title] description
Adds item to Oculus RSS feed file: Oculus/webapps/oculus/rss.xml (creating it if not already present). Feed is publicly view-able via web url:
http://ip-address-or-domain-name:port/oculus/rss.xml Example:
http://69.163.206.138:5080/oculus/rss.xml