Skip to content

The controller and its environment

The command line

parol6-server, from the source at v0.9.1:

Option Default Meaning
--host 0.0.0.0 UDP host address
--port 5001 UDP port
--serial — Serial port (e.g., /dev/ttyUSB0 or COM3)
--baudrate 3000000 Serial baudrate
-v, --verbose 0 Increase verbosity; -v=INFO, -vv=DEBUG, -vvv=TRACE
-q, --quiet flag Enable quiet logging (WARNING level)
--log-level — Set specific log level (one of TRACE, DEBUG, INFO, WARNING, ERROR, CRITICAL)

Without --serial the controller starts in simulator mode. The port can also come from PAROL6_COM_PORT or from the file the last successful port was saved to.

Environment variables

Read at the controller's start:

Variable Default
PAROL6_BLEND_HOLD_S 0.1
PAROL6_BUSY_THRESHOLD_MS 1.0
PAROL6_COLLISION_CHECK 1
PAROL6_COLLISION_CLEARANCE_M 0.005
PAROL6_COLLISION_JOG_LOOKAHEAD_S 0.15
PAROL6_COLLISION_PATH_SAMPLES 16
PAROL6_COLLISION_SRDF computed
PAROL6_COM_FILE computed
PAROL6_COM_PORT —
PAROL6_CONTROL_RATE_HZ 100
PAROL6_EXECUTION_OVERRIDE_TRANSITION_S 1.0
PAROL6_MAX_BACKLOG_COUNT 500
PAROL6_MAX_BLEND_LOOKAHEAD 100
PAROL6_MCAST_GROUP 239.255.0.101
PAROL6_MCAST_IF 127.0.0.1
PAROL6_MCAST_PORT 50510
PAROL6_MCAST_TTL 1
PAROL6_PATH_SAMPLES 200
PAROL6_SERIAL —
PAROL6_SETTLE_MAX_TICKS 20
PAROL6_STATUS_RATE_HZ 50
PAROL6_STATUS_STALE_S 0.5
PAROL6_STATUS_TRANSPORT MULTICAST
PAROL6_STATUS_UNICAST_HOST 127.0.0.1
PAROL_TRACE 0

A default marked computed is a path or an expression; see parol6/config.py. The controller in the guide says which ones matter.

The wire protocol

Clients and the controller exchange msgpack messages over UDP: a command or query with a request ID, and an OK, an error, a response or a status. The protocol version is checked in every status broadcast, and a client that speaks another version raises ProtocolVersionError. The command and query types of this version:

Commands: CmdType.PING and the others, 54 in all, the queries among them; queries: PING, STATUS, ANGLES, POSE, IO, SPEEDS, TOOL, QUEUE, CURRENT_ACTION, LOOP_STATS, PROFILE, TOOL_STATUS, ENABLEMENT, ERROR, TCP_SPEED, IS_SIMULATOR, TCP_OFFSET, SHAPES, STATUS_RATE, TCP_TRANSFORM, EXECUTION_SPEED, COMMAND_COMPLETION. The definitions are parol6/protocol/wire.py; a program in another language can speak the protocol from them, though the Python client is the supported path.

Python

The package needs Python >=3.11.

Comments


Found a mistake on this page? Edit it on GitHub · Report it · Get help · This page as Markdown · llms.txt · The whole manual as PDF