ServoScope¶
A web app to look at and play with your motors and IMUs. It needs the scope
extra (pip install "servolab[scope]", included in servolab[all]).
servoscope # opens in your browser (in a uv project: uv run servoscope)
servoscope --sim # start connected to simulated motors
servoscope --sim so102 # start connected to the simulated SO102 arm
servoscope --connect /dev/ttyACM0 # connect to this port right away
servoscope --connect tcp://emr-mobile-3.local # the motors of a robot, over WiFi
What you can do¶
- Connect in the sidebar: choose the adapter's port, the simulator, or type
the address of a robot (
tcp://...). The sidebar lists all motors and sensors with a live value and a status dot. - Control a motor: torque on/off, mode, a slider for the goal position, velocity or PWM, and "Set current position as zero".
- Monitor: live plot of position, velocity, current or load (5, 10 or 30 s), with pause and CSV download.
- PID tuning: change the gains of the controller inside the motor and compare them with step tests.
- Settings: every register of the device with its description and unit, "Save to EEPROM" and "Factory reset".
- IMUs: live acceleration and angular velocity, plot, settings.
- Documentation: the guides, the Python API, the register tables and the examples of this website, without internet.
- All torque off: the red button at the bottom of the sidebar switches every motor off.
Good to know¶
- Only one program can use the USB port at a time. Press Disconnect in ServoScope before running your own script, and connect again afterwards.
- ServoScope is only reachable from your own computer.
--host 0.0.0.0opens it to the network: then everybody in the same network can move your motors. - Changes in Settings are active immediately but lost after power-off, unless you press Save to EEPROM.
All options:
servoscope [--sim [ROBOT]] [--connect PORT] [--port 8050] [--host 127.0.0.1] [--no-browser]
--port is the port of the web server (the address in your browser), not the
serial port.