Rest api

From RobotinoWiki

Introduction

Robotino rest icon 64.png With the latest robotino-daemons package Robotino's web-interface is based on a Restful server listening at port 80 on Robotino. The server not only makes data available to Robotino's web interface but can also be used to access Robotino's sensors and actors. Rest Api is part of all images from V4 and later.

GET

/cam0

Get camera image from cam0. The response is image/jpeg.

Matlab example

img=webread('http://192.168.0.1/cam0')
imshow(img)

/sensorimage

Get image showing distance sensors and bumper. The response is image/png.

Matlab example

img=webread('http://192.168.0.1/sensorimage')
imshow(img)

/data/festoolcharger

Get data from Festool Li-Ion batteries.

/data/powermanagement

Get information about voltage and system current.

/data/charger0

Data for build in charger 0

/data/charger1

Data for build in charger 1

/data/controllerinfo

HW and SW version.

/data/services

Data of Robotino specific services.

/data/servicestatus/xxx

Status of service xxx.

/data/analoginputarray

Data of all analog inputs.

  [val0,val1,val2,...,val7]

/data/digitalinputarray

Data of all digital inputs.

  [val0,val1,val2,...,val7]

values being true or false

/data/digitaloutputstatus

Status of all digital outputs.

  [val0,val1,val2,...,val7]

values being true or false

/data/relaystatus

Status of all relays.

  [val0,val1]

values being true or false

/data/bumper

Status of Robotinos bumper

  "value" : value

value being true or false.

/data/distancesensorarray

Readings from Robotinos distance sensors

  [val1,val2,...,val9]

/data/scan0

Data of the first Laser rangefinder.

{
  "seq" : sequence number,
  "stamp" : time stamp,
  "angle_min" : minimum angle,
  "angle_max" : maximum angle,
  "angle_increment" : angle increment,
  "time_increment" : time increment,
  "scan_time" :  scan time,
  "range_min" : minimum range,
  "range_max" : maximum range,
  "ranges" : [],
  "intensities" : []
}

/data/odometry

Robotino's odometry.

  [x,y,rot,vx,vy,omega,seq]

x : x position in m
y : y position in m
rot : rotation in rad
vx : x vel in m/s
vy : y vel in m/s
omega : rot vel in rad/s
seq : sequence number

/data/imageversion

Get version of Robotino's OS image.

{
  "version" : "imagever"
}

/data/poweroutputcurrent

Get current in A from Robotino's power output (motor4)

{
  "current" : value
}

PUT or POST

/data/omnidrive

Set forwward and rotational velocity. You have to send data periodically at least every 200ms. If no data is received for more than 200ms Robotino will stop.

  [vx,vy,omega]

vx : x-vel in m/s"
vy : "y-vel in m/s"
omega : rot-vel in rad/s

Matlab example

webwrite('http://192.168.1.192/data/omnidrive',[vx vy omega])

/data/digitaloutput

{
  "num" : NUM ,
  "val" : VAL
}

NUM in range [0,7] and val being true or false

/data/digitaloutputarray

  [val0,val1,....val7]

value being true or false

/data/relay

{
  "num" : NUM ,
  "val" : VAL
}

NUM in range [0,1] and VAL being true or false

/data/relayarray

  [val0,val1]

val0,val1 being false or true

/data/poweroutput

{
  "value" : value
}

value in the range -100 to 100

/data/uploadProgram

Upload Robotino View program to /home/robotino/programs.

  "name" : "filename with extension",
  "size" : size of raw (unencoded) binary data,
  "data" : file data base64 encoded

Response

  "message" : "message what happend on the server",
  "success" : boolean showing if operation was successfull