-
Notifications
You must be signed in to change notification settings - Fork 4
Home
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)
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 |
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 |
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°ree=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 |
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 |
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 |
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 |