File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -5,6 +5,11 @@ All notable changes to this project will be documented in this file.
55The format is based on [ Keep a Changelog] ( https://keepachangelog.com/en/1.1.0/ ) ,
66and this project adheres to [ Semantic Versioning] ( https://semver.org/spec/v2.0.0.html ) .
77
8+ ## [ 0.3.10] — 2026-07-10
9+
10+ ### Fixed
11+ - RTDE connection retries once after boot (5s delay) — Secondary Interface may not be ready immediately after power-on + brake release
12+
813## [ 0.3.9] — 2026-07-10
914
1015### Fixed
Original file line number Diff line number Diff line change @@ -4,11 +4,11 @@ build-backend = "setuptools.build_meta"
44
55[project ]
66name = " urkit"
7- version = " 0.3.9 "
7+ version = " 0.3.10 "
88description = " Universal Robots e-Series control toolkit built on ur_rtde"
99readme = " README.md"
1010license = {text = " MIT" }
11- requires-python = " >=3.8 "
11+ requires-python = " >=3.10 "
1212authors = [
1313 {name = " URKit Contributors" },
1414]
@@ -44,10 +44,10 @@ classifiers = [
4444 " Topic :: Scientific/Engineering :: Human Machine Interfaces" ,
4545]
4646dependencies = [
47- " ur_rtde>=1.4.0 " ,
47+ " ur_rtde>=1.6 " ,
4848 " pyyaml>=6.0" ,
49- " colorama>=0.4.6 " ,
50- " rich>=13.0.0 " ,
49+ " colorama>=0.4" ,
50+ " rich>=15 " ,
5151]
5252
5353[project .urls ]
Original file line number Diff line number Diff line change 2424
2525from __future__ import annotations
2626
27- __version__ = "0.3.9 "
27+ __version__ = "0.3.10 "
2828
2929from urkit .config import load_config , resolve_config
3030from urkit .exceptions import (
Original file line number Diff line number Diff line change @@ -188,11 +188,27 @@ def __init__(
188188 "Continuing — RTDE connection may fail if a program is running."
189189 )
190190
191- # Connect RTDE
192- self ._rtde_c , self ._rtde_r , self ._rtde_io = _connect_rtde (
193- ip ,
194- frequency = self ._rtde_frequency ,
195- )
191+ # Connect RTDE — retry after boot, the Secondary Interface may need
192+ # extra time to accept connections even after the robot is IDLE.
193+ rtde_attempts = 2 if boot_needed else 1
194+ for attempt in range (1 , rtde_attempts + 1 ):
195+ try :
196+ self ._rtde_c , self ._rtde_r , self ._rtde_io = _connect_rtde (
197+ ip ,
198+ frequency = self ._rtde_frequency ,
199+ )
200+ break
201+ except Exception as e :
202+ if attempt < rtde_attempts :
203+ logger .warning (
204+ "[URRobot] RTDE connection attempt %d failed: %s. "
205+ "Retrying in 5s..." ,
206+ attempt ,
207+ e ,
208+ )
209+ time .sleep (5 )
210+ else :
211+ raise
196212
197213 # Initialize subsystems
198214 self ._telemetry = Telemetry (self ._rtde_r )
You can’t perform that action at this time.
0 commit comments