A PySide6 desktop application for recording and analysing force/torque data from an OnRobot Hex-H sensor over Modbus TCP.
The app has two tabs:
- Offline Analysis — loads a logged
;-separated data file (time;Fx;Fy;Fz;Tx;Ty;Tz), plots forces and torques withpyqtgraph, and lets you drag a selectable time range to compute the min, max, or average of each channel over that range. - Live Monitor — connects to an OnRobot Hex-H sensor (and its gripper) over Modbus TCP, streams force/torque data in real time at 10 Hz, and lets you control the gripper (open/close/clear). Recordings can be saved to a log file and are automatically handed off to the Offline Analysis tab for review.
- Python >= 3.14
- uv for dependency and environment management
-
Install
uvif you don't already have it — see the uv installation guide. -
From the project directory, create the virtual environment and install dependencies:
uv sync
This creates a
.venvfolder and installs all dependencies pinned inuv.lock(PySide6, pyqtgraph, pandas, pymodbus).
Run the application with uv run, which automatically uses the project's virtual environment:
uv run main.pyThe Offline Analysis tab starts empty and is populated by handing off a finished recording from the Live Monitor tab. Use the draggable region on the plots to select a time window, choose Min/Max/Avg, and toggle Absolute/Relative values to see results update live.
Enter the sensor's IP address (default 192.168.1.1) and click Start to connect over Modbus TCP. Force/torque data streams live in a 30-second sliding window. Use the gripper controls to set target width/force and open, close, or clear the gripper. Click Stop to end the session — recorded data is saved via Save Data and automatically loaded into the Offline Analysis tab.