Skip to content
Ks Tan edited this page Mar 27, 2021 · 49 revisions

Welcome to the ar3_robotarm_webservice wiki! This project implemented restful api for all robot movement. You just need to call below api with suitable parameter the motor will move by itself.

Example of execution /info, you can browse to http://localhost:5000/info, (if you changed your environment, the hostname and port may diff)

Fetch info

This section move or read the robot arm in real time

Method Command Description Status
GET/POST /info give some joint and motor info done
GET/POST /getpositionurl get whole arm position url format done

Robot Calibration

Method Command Description Status
GET/POST /calibrate help/guide on how to use this dummy
GET/POST /calibrate/all calibrate all joint in ARCS, it work different with ARCS, use it shall standby your hand for Emergency Stop yes
GET/POST /calibrate/setrest set current joint current position as rest position (useful when first run) yes
GET/POST /calibrate/j1 calibrate all j1-j6 only yes
GET/POST /calibratetrack/t1 calibrate travel track t1, as official ARCS it only set track mm = 0 yes (AR3 only support 1 track)
GET/POST /movetorestposition move arm into rest position yes

Movement Control

Method Command Description Status
GET/POST /servo provide list of available servo in system dummy
GET/POST /servo/servoname?value=value servoname is servo label defined by variable servosetting in include/armparameters.py. value either is integer 0-180, or string base on position name defined in the same file (example: open=90, close =165) yes and tried 1 servo only
GET/POST /move_j provide guide how to use this api dummy
GET/POST /move_j/j1?movetype=type&degree=n j1-j6, depends movetype = 'absolute/move', put J1 into n or rorate n degree yes
GET/POST /move_l provide guidance on how to use linear movement
GET/POST /move_l/?x=x&y=y&z=z linear move end point x,y,z mm relative from current position
GET/POST /movetrack provide guidance move travel track into spefic mm dummy
GET/POST /movetrack/t1?mm=n&movetype=type move t1 to absolute n mm or move n mm depends movetype = absolute/move. t1 can change to others name in arrparameters.py yes
GET/POST /setposition?j1=10&j2=10&t1=20&gripper1=20 put joints (j1-j6), servo and travel tracks position as given argument in one go

Setting Function (Future)

Here allow us store some setting so our program more user friendly. At the moment we don't provide setting in Teensy. We only allow access io pin at Arduino or Raspberry PI (If you use Pi instead of computer)

Method Command Description Status
GET/POST /setspeed?percent=10 movement speed from 1-100

Read/Write Digital IO

Below api allow us read/write digital io from arduino mega in AR3

Method Command Description Status
GET/POST /io give some guidance and list I/O pints done
GET/POST /io/on list output pins done
GET/POST /io/on/10 Send on/high to pin 10 done
GET/POST /io/off list output pins done
GET/POST /io/off/10 send off/low to pin 10 done
GET/POST /io/read list input pins done
GET/POST /io/read/30 read digital signal from pin 30 done

Server Side Routine

Routine is json file store series of I/O instruction to manage robot arm activites, it is useful to let robot arm repeat same task, act differently when the signal vary, Refer routines

Method Command Description Status
POST/GET /routine Display available routine at server side
POST/GET /routine/routine1 get routine1 json content
POST/GET /routine/routine1/run execute routine1
POST/PUT /routine/routine1/add?file=yourfile create new routine routine1 and upload file to match it
POST/PUT /routine/routine1/override?file=yourfile override routine1 with new file
POST/GET /routine/routine1/delete Delete routine1
Clone this wiki locally