Fuzzy RTOS API
Fuzzy RTOS (1.0)
Download OpenAPI specification:Download
Interface to FuzzyLogic's RTOS runtime
Add or replace a user-defined controller
Request Body schema: application/jsonrequired
id | integer [ 0 .. 4294967295 ] Robot controller id |
brand | string Robot controller brand |
model | string Robot controller model |
custom_name | string Custom robot controller name (for user-defined controllers) |
path | string Robot controller config path on disk |
config | string Robot controller configuration |
Responses
Request samples
- Payload
{- "id": 4294967295,
- "brand": "string",
- "model": "string",
- "custom_name": "string",
- "path": "string",
- "config": "string"
}
Response samples
- 200
- 500
{- "status": "string",
- "code": -2147483648,
- "message": "string"
}
Delete a user-defined controller
Request Body schema: application/jsonrequired
id | integer [ 0 .. 4294967295 ] Robot controller id |
Responses
Request samples
- Payload
{- "id": 4294967295
}
Response samples
- 200
- 500
{- "status": "string",
- "code": -2147483648,
- "message": "string"
}
Start MQTT connection
Request Body schema: application/jsonrequired
ca_cert | string Default: "" Certificate |
hostname required | string Default: "localhost" MQTT broker address |
input_prefix | string Default: "/fuzzy_studio/" Prefix for all inbound topics |
output_prefix | string Default: "" Prefix for all outbound topics |
port required | integer [ 0 .. 4294967295 ] Default: 1885 MQTT broker port |
bridge_hostname | string Default: "" MQTT bridge address |
bridge_port | integer [ 0 .. 4294967295 ] Default: 8883 MQTT bridge port |
Responses
Request samples
- Payload
{- "ca_cert": "",
- "hostname": "localhost",
- "input_prefix": "/fuzzy_studio/",
- "output_prefix": "",
- "port": 1885,
- "bridge_hostname": "",
- "bridge_port": 8883
}
Response samples
- 200
- 500
{- "status": "string",
- "code": -2147483648,
- "message": "string"
}
Start drivers
Configure and start the real-time drivers.
Request Body schema: application/jsonrequired
controller_id required | integer [ 0 .. 4294967295 ] The robot controller id to use |
robot_id required | integer [ 0 .. 4294967295 ] The robot id to use |
dummy_driver required | boolean Use a simulation instead of a real driver |
object (DriverLoadOptions) |
Responses
Request samples
- Payload
{- "controller_id": 4294967295,
- "robot_id": 4294967295,
- "dummy_driver": true,
- "options": {
- "local_address": "string",
- "local_port": 65535,
- "remote_address": "string",
- "remote_port": 65535
}
}
Response samples
- 400
- 403
- 409
- 500
{- "status": "string",
- "code": -2147483648,
- "message": "string"
}
Set the control mode
Switch between the control modes of Fuzzy RTOS (Idle/Jogging/Trajectory).
Request Body schema: application/jsonrequired
Responses
Request samples
- Payload
{- "header": {
- "timestamp": {
- "seconds": 0,
- "nanos": 0
}
}, - "controlModeRequest": "RTOS_CONTROL_MODE_UNSPECIFIED"
}
Response samples
- 400
- 500
- 503
{- "status": "string",
- "code": -2147483648,
- "message": "string"
}
Joint position jogging command
Send a joint position jogging command (in radians) to the robot. The jogging control mode must have been selected prior to this request.
See POST /driver/control_mode
to change the control mode.
Request Body schema: application/jsonrequired
Responses
Request samples
- Payload
{- "header": {
- "timestamp": {
- "seconds": 0,
- "nanos": 0
}
}, - "jointPositions": {
- "value": [
- 0
]
}
}
Response samples
- 400
- 500
- 503
{- "status": "string",
- "code": -2147483648,
- "message": "string"
}
Joint velocity jogging command
Send a joint velocity jogging command (in radians) to the robot. The jogging control mode must have been selected prior to this request.
See POST /driver/control_mode
to change the control mode.
Request Body schema: application/jsonrequired
Responses
Request samples
- Payload
{- "header": {
- "timestamp": {
- "seconds": 0,
- "nanos": 0
}
}, - "jointVelocities": {
- "value": [
- 0
]
}
}
Response samples
- 400
- 500
- 503
{- "status": "string",
- "code": -2147483648,
- "message": "string"
}
Cartesian velocity jogging command
Send a cartesian pose jogging command (in meters) to the robot. The jogging control mode must have been selected prior to this request.
See POST /driver/control_mode
to change the control mode.
Request Body schema: application/jsonrequired
Responses
Request samples
- Payload
{- "header": {
- "timestamp": {
- "seconds": 0,
- "nanos": 0
}
}, - "desiredPose": {
- "translation": {
- "x": 0,
- "y": 0,
- "z": 0
}, - "rotation": {
- "qx": 0,
- "qy": 0,
- "qz": 0,
- "qw": 0
}
}
}
Response samples
- 400
- 500
- 503
{- "status": "string",
- "code": -2147483648,
- "message": "string"
}
Cartesian velocity jogging command
Send a cartesian velocity jogging command (in m/s & rad/s) to the robot. The jogging control mode must have been selected prior to this request.
See POST /driver/control_mode
to change the control mode.
Request Body schema: application/jsonrequired
Responses
Request samples
- Payload
{- "header": {
- "timestamp": {
- "seconds": 0,
- "nanos": 0
}
}, - "desiredVelocity": {
- "linear": {
- "x": 0,
- "y": 0,
- "z": 0
}, - "angular": {
- "x": 0,
- "y": 0,
- "z": 0
}
}
}
Response samples
- 400
- 500
- 503
{- "status": "string",
- "code": -2147483648,
- "message": "string"
}
Set the robot tool
It is not always possible to change the tool (especially if the robot is moving). Make sure the control mode is Idle prior to calling this.
See POST /driver/control_mode
to change the control mode.
Request Body schema: application/jsonrequired
Responses
Request samples
- Payload
{- "header": {
- "timestamp": {
- "seconds": 0,
- "nanos": 0
}
}, - "tool": {
- "name": "",
- "flangeToTcp": {
- "translation": {
- "x": 0,
- "y": 0,
- "z": 0
}, - "rotation": {
- "qx": 0,
- "qy": 0,
- "qz": 0,
- "qw": 0
}
}
}
}
Response samples
- 400
- 500
- 503
{- "status": "string",
- "code": -2147483648,
- "message": "string"
}
Load waypoints
A trajectory will be generated from these waypoints and, if the generation is successful and the current system state allows it, will be loaded as the current operating trajectory.
See GET /driver/trajectory/generator
to check generation results.
Request Body schema: application/jsonrequired
Responses
Request samples
- Payload
{- "inputs": {
- "waypoints": [
- {
- "motionType": "MOTION_TYPE_UNSPECIFIED",
- "name": "",
- "robotPose": {
- "pose": {
- "translation": {
- "x": 0,
- "y": 0,
- "z": 0
}, - "rotation": {
- "qx": 0,
- "qy": 0,
- "qz": 0,
- "qw": 0
}
}, - "jointSeeds": {
- "value": [
- 0
]
}
}, - "jointPositions": {
- "value": [
- 0
]
}, - "uuid": "",
- "velocityScalingPercent": 0,
- "blendingPercent": 0,
- "blendingSpeedType": "BLENDING_SPEED_TYPE_UNSPECIFIED",
- "pauseDuration": 0
}
], - "robot": {
- "brand": "",
- "model": "",
- "flangeToTcp": {
- "translation": {
- "x": 0,
- "y": 0,
- "z": 0
}, - "rotation": {
- "qx": 0,
- "qy": 0,
- "qz": 0,
- "qw": 0
}
}
}, - "options": {
- "forceConstantSpeed": false,
- "desiredUuid": ""
}, - "motionProfileConstaints": [
- {
- "initialPosition": 0,
- "finalVelocity": 0,
- "maxSpeed": 0,
- "finalPosition": 0,
- "initialVelocity": 0,
- "initialAcceleration": 0,
- "finalAcceleration": 0,
- "maxAcceleration": 0,
- "maxDeceleration": 0,
- "maxJerk": 0,
- "duration": 0
}
]
}, - "header": {
- "timestamp": {
- "seconds": 0,
- "nanos": 0
}
}
}
Response samples
- 400
- 500
- 503
{- "status": "string",
- "code": -2147483648,
- "message": "string"
}
Trajectory player action
Request a trajectory action (play, pause, etc...).
Request Body schema: application/jsonrequired
Responses
Request samples
- Payload
{- "header": {
- "timestamp": {
- "seconds": 0,
- "nanos": 0
}
}, - "action": "TRAJECTORY_PLAYER_ACTION_UNSPECIFIED"
}
Response samples
- 400
- 500
- 503
{- "status": "string",
- "code": -2147483648,
- "message": "string"
}
Request samples
- Payload
{- "translation": {
- "x": 0,
- "y": 0,
- "z": 0
}, - "rotation": {
- "qx": 0,
- "qy": 0,
- "qz": 0,
- "qw": 0
}
}
Response samples
- 500
- 503
{- "status": "string",
- "code": -2147483648,
- "message": "string"
}