Georg commited on
Commit
51b2fc6
·
1 Parent(s): eaf03f4

Update mujoco_server.py to replace jogging commands with homing commands and enhance action handling

Browse files

- Removed `start_jog` and `stop_jog` commands, replacing them with `home` and `stop_home` for improved homing functionality.
- Updated WebSocket message handling to support continuous homing commands and refined the logic for sending action messages.
- Adjusted the `index` function to streamline the homing process, ensuring smoother joint movements and better user experience.
- Enhanced the .gitignore file to exclude server logs, maintaining a cleaner repository.

Files changed (3) hide show
  1. .gitignore +1 -0
  2. mujoco_server.py +32 -225
  3. server.log +1045 -675
.gitignore CHANGED
@@ -57,3 +57,4 @@ mujoco_server.py.backup
57
  # Makefile development artifacts
58
  .pid-*
59
  .dev-*.log
 
 
57
  # Makefile development artifacts
58
  .pid-*
59
  .dev-*.log
60
+ server.log
mujoco_server.py CHANGED
@@ -223,8 +223,8 @@ AVAILABLE_ACTIONS = [
223
  "camera",
224
  "camera_follow",
225
  "teleop_action",
226
- "start_jog",
227
- "stop_jog",
228
  "arm_target",
229
  "gripper",
230
  "control_mode",
@@ -1396,97 +1396,6 @@ def handle_ws_message(ws, data):
1396
  env.set_nova_enabled(enabled)
1397
 
1398
  # Nova jogging commands
1399
- elif msg_type == 'start_jog':
1400
- payload = data.get('data', {})
1401
- jog_type = payload.get('jog_type')
1402
- jog_params = payload.get('params', {})
1403
- print(f"[Server] Received start_jog: jog_type={jog_type}, params={jog_params}")
1404
- with mujoco_lock:
1405
- if env is not None and current_robot in ("ur5", "ur5_t_push"):
1406
- success = env.start_jog(jog_type, **jog_params)
1407
- if not success:
1408
- print(f"[Server] Failed to start jog: {jog_type}, {jog_params}")
1409
-
1410
- # Update teleop_action to reflect jogging state
1411
- with teleop_lock:
1412
- if jog_type == 'joint':
1413
- # Joint jogging: {"j1": vel, "j2": vel, ...}
1414
- joint = jog_params.get('joint', 1) # 1-6
1415
- direction = jog_params.get('direction', '+')
1416
- velocity = jog_params.get('velocity', 0.5)
1417
- vel_value = velocity if direction == '+' else -velocity
1418
-
1419
- print(f"[Server] Joint jog: j{joint}={vel_value}")
1420
-
1421
- # Reset all joint velocities to 0
1422
- for j in range(1, 7):
1423
- last_teleop_action[f"j{j}"] = 0.0
1424
- # Set active joint velocity
1425
- last_teleop_action[f"j{joint}"] = float(vel_value)
1426
- # Clear Cartesian velocities
1427
- last_teleop_action["vx"] = 0.0
1428
- last_teleop_action["vy"] = 0.0
1429
- last_teleop_action["vz"] = 0.0
1430
- last_teleop_action["vrx"] = 0.0
1431
- last_teleop_action["vry"] = 0.0
1432
- last_teleop_action["vrz"] = 0.0
1433
-
1434
- elif jog_type == 'cartesian_translation':
1435
- # Cartesian translation: {"vx": vel, "vy": vel, "vz": vel}
1436
- axis = jog_params.get('axis', 'x') # x, y, or z
1437
- direction = jog_params.get('direction', '+')
1438
- velocity = jog_params.get('velocity', 50.0) / 1000.0 # Convert mm/s to m/s
1439
- vel_value = velocity if direction == '+' else -velocity
1440
-
1441
- # Reset Cartesian velocities
1442
- last_teleop_action["vx"] = 0.0
1443
- last_teleop_action["vy"] = 0.0
1444
- last_teleop_action["vz"] = 0.0
1445
- last_teleop_action["vrx"] = 0.0
1446
- last_teleop_action["vry"] = 0.0
1447
- last_teleop_action["vrz"] = 0.0
1448
- # Set active axis velocity
1449
- last_teleop_action[f"v{axis}"] = float(vel_value)
1450
- # Clear joint velocities
1451
- for j in range(1, 7):
1452
- last_teleop_action[f"j{j}"] = 0.0
1453
-
1454
- elif jog_type == 'cartesian_rotation':
1455
- # Cartesian rotation: {"vrx": vel, "vry": vel, "vrz": vel}
1456
- axis = jog_params.get('axis', 'x') # x, y, or z
1457
- direction = jog_params.get('direction', '+')
1458
- velocity = jog_params.get('velocity', 0.3) # rad/s
1459
- vel_value = velocity if direction == '+' else -velocity
1460
-
1461
- # Reset Cartesian velocities
1462
- last_teleop_action["vx"] = 0.0
1463
- last_teleop_action["vy"] = 0.0
1464
- last_teleop_action["vz"] = 0.0
1465
- last_teleop_action["vrx"] = 0.0
1466
- last_teleop_action["vry"] = 0.0
1467
- last_teleop_action["vrz"] = 0.0
1468
- # Set active rotation velocity
1469
- last_teleop_action[f"vr{axis}"] = float(vel_value)
1470
- # Clear joint velocities
1471
- for j in range(1, 7):
1472
- last_teleop_action[f"j{j}"] = 0.0
1473
-
1474
- elif msg_type == 'stop_jog':
1475
- with mujoco_lock:
1476
- if env is not None and current_robot in ("ur5", "ur5_t_push"):
1477
- env.stop_jog()
1478
-
1479
- # Clear all jogging velocities in teleop_action
1480
- with teleop_lock:
1481
- last_teleop_action["vx"] = 0.0
1482
- last_teleop_action["vy"] = 0.0
1483
- last_teleop_action["vz"] = 0.0
1484
- last_teleop_action["vrx"] = 0.0
1485
- last_teleop_action["vry"] = 0.0
1486
- last_teleop_action["vrz"] = 0.0
1487
- for j in range(1, 7):
1488
- last_teleop_action[f"j{j}"] = 0.0
1489
-
1490
  elif msg_type == 'homing':
1491
  with mujoco_lock:
1492
  if env is not None:
@@ -3229,7 +3138,6 @@ def index():
3229
  console.log('startHoming called:', {
3230
  currentRobot,
3231
  hasHomePose: !!currentHomePose,
3232
- novaStateStreaming,
3233
  wsState: ws ? ws.readyState : 'no ws'
3234
  });
3235
 
@@ -3244,112 +3152,26 @@ def index():
3244
  return;
3245
  }
3246
 
3247
- if (novaStateStreaming) {
3248
- // Nova mode: use joint jogging to move to home
3249
- console.log('Starting Nova jogging homing...');
3250
- startNovaJoggingHome();
3251
- } else {
3252
- // Local mode: send home messages continuously while button is pressed
3253
- console.log('Starting local homing...');
3254
- send('home');
3255
 
3256
- // Send home message every 100ms while button is pressed
3257
- if (homingInterval) clearInterval(homingInterval);
3258
- homingInterval = setInterval(() => {
3259
- send('home');
3260
- }, 100);
3261
- }
3262
  }
3263
 
3264
  function stopHoming() {
3265
- if (novaStateStreaming) {
3266
- // Stop all jogging
3267
- for (const joint of homingJoints) {
3268
- send('stop_jog');
3269
- }
3270
- homingJoints = [];
3271
- if (homingInterval) {
3272
- clearInterval(homingInterval);
3273
- homingInterval = null;
3274
- }
3275
- } else {
3276
- // Stop the home message interval
3277
- if (homingInterval) {
3278
- clearInterval(homingInterval);
3279
- homingInterval = null;
3280
- }
3281
- // Send stop_home message to backend
3282
- send('stop_home');
3283
- console.log('Sent stop_home message');
3284
  }
3285
- }
3286
-
3287
- function startNovaJoggingHome() {
3288
- if (!currentHomePose || !currentJointPositions) {
3289
- console.warn('Cannot jog home: missing home_pose or joint_positions');
3290
- return;
3291
- }
3292
-
3293
- const tolerance = 0.01; // 0.01 rad ~= 0.57 degrees
3294
-
3295
- // Check each joint and start jogging for those not at home
3296
- homingJoints = [];
3297
- for (let i = 0; i < Math.min(currentHomePose.length, currentJointPositions.length); i++) {
3298
- const target = currentHomePose[i];
3299
- const current = currentJointPositions[i];
3300
- const error = target - current;
3301
-
3302
- if (Math.abs(error) > tolerance) {
3303
- const joint = i + 1; // Nova uses 1-based indexing
3304
- const direction = error > 0 ? '+' : '-';
3305
- const velocity = 0.5; // rad/s
3306
-
3307
- console.log(`Jogging joint ${joint} ${direction} (error: ${error.toFixed(3)} rad)`);
3308
-
3309
- send('start_jog', {
3310
- jog_type: 'joint',
3311
- params: {
3312
- joint: joint,
3313
- direction: direction,
3314
- velocity: velocity
3315
- }
3316
- });
3317
-
3318
- homingJoints.push(joint);
3319
- }
3320
- }
3321
-
3322
- if (homingJoints.length === 0) {
3323
- console.log('Already at home position');
3324
- return;
3325
- }
3326
-
3327
- // Monitor progress and stop when home is reached
3328
- if (homingInterval) clearInterval(homingInterval);
3329
- homingInterval = setInterval(() => {
3330
- if (!currentHomePose || !currentJointPositions) {
3331
- stopHoming();
3332
- return;
3333
- }
3334
-
3335
- // Check if we're at home
3336
- let allAtHome = true;
3337
- for (let i = 0; i < Math.min(currentHomePose.length, currentJointPositions.length); i++) {
3338
- const target = currentHomePose[i];
3339
- const current = currentJointPositions[i];
3340
- const error = Math.abs(target - current);
3341
-
3342
- if (error > tolerance) {
3343
- allAtHome = false;
3344
- break;
3345
- }
3346
- }
3347
-
3348
- if (allAtHome) {
3349
- console.log('Home position reached');
3350
- stopHoming();
3351
- }
3352
- }, 100); // Check every 100ms
3353
  }
3354
 
3355
  function setCmd(vx, vy, vyaw) {
@@ -3397,43 +3219,28 @@ def index():
3397
  }
3398
 
3399
  function startJog(jogType, axisOrJoint, direction) {
 
 
3400
  if (jogType === 'cartesian_translation') {
3401
- send('start_jog', {
3402
- jog_type: 'cartesian_translation',
3403
- params: {
3404
- axis: axisOrJoint,
3405
- direction: direction,
3406
- velocity: transVelocity,
3407
- tcp_id: 'Flange',
3408
- coord_system_id: 'world'
3409
- }
3410
- });
3411
  } else if (jogType === 'cartesian_rotation') {
3412
- send('start_jog', {
3413
- jog_type: 'cartesian_rotation',
3414
- params: {
3415
- axis: axisOrJoint,
3416
- direction: direction,
3417
- velocity: rotVelocity,
3418
- tcp_id: 'Flange',
3419
- coord_system_id: 'world'
3420
- }
3421
- });
3422
  } else if (jogType === 'joint') {
3423
- // Nova jogger uses 1-based joint indexing
3424
- send('start_jog', {
3425
- jog_type: 'joint',
3426
- params: {
3427
- joint: axisOrJoint, // 1-6
3428
- direction: direction,
3429
- velocity: jointVelocity
3430
- }
3431
- });
3432
  }
 
 
3433
  }
3434
 
3435
  function stopJog() {
3436
- send('stop_jog', {});
3437
  }
3438
 
3439
  function setGripper(action) {
 
223
  "camera",
224
  "camera_follow",
225
  "teleop_action",
226
+ "home",
227
+ "stop_home",
228
  "arm_target",
229
  "gripper",
230
  "control_mode",
 
1396
  env.set_nova_enabled(enabled)
1397
 
1398
  # Nova jogging commands
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1399
  elif msg_type == 'homing':
1400
  with mujoco_lock:
1401
  if env is not None:
 
3138
  console.log('startHoming called:', {
3139
  currentRobot,
3140
  hasHomePose: !!currentHomePose,
 
3141
  wsState: ws ? ws.readyState : 'no ws'
3142
  });
3143
 
 
3152
  return;
3153
  }
3154
 
3155
+ // Send home messages continuously while button is pressed
3156
+ console.log('Starting homing...');
3157
+ send('home', {});
 
 
 
 
 
3158
 
3159
+ // Send home message every 100ms while button is pressed
3160
+ if (homingInterval) clearInterval(homingInterval);
3161
+ homingInterval = setInterval(() => {
3162
+ send('home', {});
3163
+ }, 100);
 
3164
  }
3165
 
3166
  function stopHoming() {
3167
+ // Stop the home message interval
3168
+ if (homingInterval) {
3169
+ clearInterval(homingInterval);
3170
+ homingInterval = null;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3171
  }
3172
+ // Send stop_home message to backend
3173
+ send('stop_home', {});
3174
+ console.log('Sent stop_home message');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3175
  }
3176
 
3177
  function setCmd(vx, vy, vyaw) {
 
3219
  }
3220
 
3221
  function startJog(jogType, axisOrJoint, direction) {
3222
+ const actionData = {};
3223
+
3224
  if (jogType === 'cartesian_translation') {
3225
+ const velocity = (direction === '+' ? 1 : -1) * (transVelocity / 1000.0); // Convert mm/s to m/s
3226
+ if (axisOrJoint === 'x') actionData.vx = velocity;
3227
+ else if (axisOrJoint === 'y') actionData.vy = velocity;
3228
+ else if (axisOrJoint === 'z') actionData.vz = velocity;
 
 
 
 
 
 
3229
  } else if (jogType === 'cartesian_rotation') {
3230
+ const velocity = (direction === '+' ? 1 : -1) * rotVelocity;
3231
+ if (axisOrJoint === 'x') actionData.vrx = velocity;
3232
+ else if (axisOrJoint === 'y') actionData.vry = velocity;
3233
+ else if (axisOrJoint === 'z') actionData.vrz = velocity;
 
 
 
 
 
 
3234
  } else if (jogType === 'joint') {
3235
+ const velocity = (direction === '+' ? 1 : -1) * jointVelocity;
3236
+ actionData['j' + axisOrJoint] = velocity; // j1-j6
 
 
 
 
 
 
 
3237
  }
3238
+
3239
+ send('action', actionData);
3240
  }
3241
 
3242
  function stopJog() {
3243
+ send('action', {}); // Send zero velocities
3244
  }
3245
 
3246
  function setGripper(action) {
server.log CHANGED
@@ -7,40 +7,495 @@ Starting simulation loop...
7
  * Running on http://127.0.0.1:3004
8
  * Running on http://172.31.10.66:3004
9
  Press CTRL+C to quit
10
- 127.0.0.1 - - [21/Jan/2026 12:31:13] "GET /nova-sim/api/v1 HTTP/1.1" 200 -
11
- 127.0.0.1 - - [21/Jan/2026 12:31:13] "GET /nova-sim/api/v1/video_feed HTTP/1.1" 200 -
12
- 127.0.0.1 - - [21/Jan/2026 12:31:13] "GET /nova-sim/api/v1/metadata HTTP/1.1" 200 -
13
- 127.0.0.1 - - [21/Jan/2026 12:31:13] "GET /nova-sim/api/v1/env HTTP/1.1" 200 -
14
- 127.0.0.1 - - [21/Jan/2026 12:31:13] "GET /nova-sim/api/v1/video_feed?ts=1768995073211 HTTP/1.1" 200 -
15
- 127.0.0.1 - - [21/Jan/2026 12:31:13] "GET /nova-sim/api/v1/env HTTP/1.1" 200 -
16
- 127.0.0.1 - - [21/Jan/2026 12:31:13] "GET /nova-sim/api/v1/env HTTP/1.1" 200 -
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17
  WebSocket client connected
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
18
  [WS] Received message type: camera
19
- [WS] Received message type: start_jog
20
- [Server] Received start_jog: jog_type=cartesian_translation, params={'axis': 'x', 'direction': '+', 'velocity': 50, 'tcp_id': 'Flange', 'coord_system_id': 'world'}
21
- [Broadcast] Non-zero teleop values: {'vx': 0.05}
22
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': 0.05}
23
- [Broadcast] Actual JSON teleop_action j3 = 0.0
24
- [Broadcast] Non-zero teleop values: {'vx': 0.05}
25
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': 0.05}
26
- [Broadcast] Actual JSON teleop_action j3 = 0.0
27
- [Broadcast] Non-zero teleop values: {'vx': 0.05}
28
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': 0.05}
29
- [Broadcast] Actual JSON teleop_action j3 = 0.0
30
- [Broadcast] Non-zero teleop values: {'vx': 0.05}
31
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': 0.05}
32
- [Broadcast] Actual JSON teleop_action j3 = 0.0
33
- [Broadcast] Non-zero teleop values: {'vx': 0.05}
34
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': 0.05}
35
- [Broadcast] Actual JSON teleop_action j3 = 0.0
36
- [Broadcast] Non-zero teleop values: {'vx': 0.05}
37
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': 0.05}
38
- [Broadcast] Actual JSON teleop_action j3 = 0.0
39
  [WS] Received message type: camera
40
- [Broadcast] Non-zero teleop values: {'vx': 0.05}
41
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': 0.05}
42
- [Broadcast] Actual JSON teleop_action j3 = 0.0
43
- [WS] Received message type: stop_jog
44
  [WS] Received message type: camera
45
  [WS] Received message type: camera
46
  [WS] Received message type: camera
@@ -71,510 +526,162 @@ WebSocket client connected
71
  [WS] Received message type: camera
72
  [WS] Received message type: camera
73
  [WS] Received message type: camera
74
- [WS] Received message type: start_jog
75
- [Server] Received start_jog: jog_type=cartesian_translation, params={'axis': 'x', 'direction': '+', 'velocity': 50, 'tcp_id': 'Flange', 'coord_system_id': 'world'}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
76
  [Broadcast] Non-zero teleop values: {'vx': 0.05}
77
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': 0.05}
78
  [Broadcast] Actual JSON teleop_action j3 = 0.0
79
  [Broadcast] Non-zero teleop values: {'vx': 0.05}
80
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': 0.05}
81
  [Broadcast] Actual JSON teleop_action j3 = 0.0
82
  [Broadcast] Non-zero teleop values: {'vx': 0.05}
83
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': 0.05}
84
  [Broadcast] Actual JSON teleop_action j3 = 0.0
85
  [Broadcast] Non-zero teleop values: {'vx': 0.05}
86
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': 0.05}
87
  [Broadcast] Actual JSON teleop_action j3 = 0.0
88
- [WS] Received message type: stop_jog
89
- [WS] Received message type: start_jog
90
- [Server] Received start_jog: jog_type=cartesian_translation, params={'axis': 'x', 'direction': '+', 'velocity': 50, 'tcp_id': 'Flange', 'coord_system_id': 'world'}
91
  [Broadcast] Non-zero teleop values: {'vx': 0.05}
92
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': 0.05}
93
  [Broadcast] Actual JSON teleop_action j3 = 0.0
94
- [Broadcast] Non-zero teleop values: {'vx': 0.05}
95
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': 0.05}
 
 
 
 
 
96
  [Broadcast] Actual JSON teleop_action j3 = 0.0
97
- [Broadcast] Non-zero teleop values: {'vx': 0.05}
98
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': 0.05}
99
  [Broadcast] Actual JSON teleop_action j3 = 0.0
100
- [Broadcast] Non-zero teleop values: {'vx': 0.05}
101
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': 0.05}
102
  [Broadcast] Actual JSON teleop_action j3 = 0.0
103
- [Broadcast] Non-zero teleop values: {'vx': 0.05}
104
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': 0.05}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
105
  [Broadcast] Actual JSON teleop_action j3 = 0.0
106
- [WS] Received message type: stop_jog
107
- [WS] Received message type: start_jog
108
- [Server] Received start_jog: jog_type=cartesian_translation, params={'axis': 'y', 'direction': '-', 'velocity': 50, 'tcp_id': 'Flange', 'coord_system_id': 'world'}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
109
  [Broadcast] Non-zero teleop values: {'vy': -0.05}
110
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vy': -0.05}
111
  [Broadcast] Actual JSON teleop_action j3 = 0.0
112
  [Broadcast] Non-zero teleop values: {'vy': -0.05}
113
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vy': -0.05}
114
  [Broadcast] Actual JSON teleop_action j3 = 0.0
115
  [Broadcast] Non-zero teleop values: {'vy': -0.05}
116
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vy': -0.05}
117
  [Broadcast] Actual JSON teleop_action j3 = 0.0
118
  [Broadcast] Non-zero teleop values: {'vy': -0.05}
119
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vy': -0.05}
120
  [Broadcast] Actual JSON teleop_action j3 = 0.0
121
- [WS] Received message type: stop_jog
122
- [WS] Received message type: start_jog
123
- [Server] Received start_jog: jog_type=cartesian_translation, params={'axis': 'y', 'direction': '+', 'velocity': 50, 'tcp_id': 'Flange', 'coord_system_id': 'world'}
124
- [Broadcast] Non-zero teleop values: {'vy': 0.05}
125
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vy': 0.05}
 
 
 
 
126
  [Broadcast] Actual JSON teleop_action j3 = 0.0
127
- [WS] Received message type: stop_jog
128
- [WS] Received message type: start_jog
129
- [Server] Received start_jog: jog_type=cartesian_translation, params={'axis': 'x', 'direction': '-', 'velocity': 50, 'tcp_id': 'Flange', 'coord_system_id': 'world'}
130
  [Broadcast] Non-zero teleop values: {'vx': -0.05}
131
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': -0.05}
132
  [Broadcast] Actual JSON teleop_action j3 = 0.0
133
- [WS] Received message type: stop_jog
134
- [WS] Received message type: switch_robot
135
- Robot switch requested: ur5 / scene: scene_with_gripper
136
- Switching to robot: ur5
137
- Nova API credentials detected - attempting bidirectional control
138
- [Nova] Configuring Nova API with config: {'use_state_stream': True, 'use_ik': False, 'use_jogging': True}
139
- [Nova] use_state_stream=True, use_ik=False, use_jogging=True
140
- [Nova] Attempting to load config from environment variables...
141
- [Nova] Config loaded from env: https://vaxtlucd.instance.wandelbots.io, controller=ur5e, motion_group=0@ur5e
142
- [Nova] Creating NovaApiClient...
143
- [Nova] Client created successfully. State streaming: True, IK: False, Jogging: True
144
- [Nova] Starting state stream...
145
- [Nova] Starting state stream thread...
146
- [Nova] Connecting to state stream: wss://vaxtlucd.instance.wandelbots.io/api/v2/cells/cell/controllers/ur5e/motion-groups/0@ur5e/state-stream?response_rate=100
147
- [Nova] State stream started successfully
148
- [Nova] WARNING: State streaming enabled - simulation is now a digital twin.
149
- [Nova] Robot state comes from Nova API, local targets/IK are ignored.
150
- [Nova] Creating NovaJogger...
151
- [Nova Jogger] Ready to connect (will connect on first jog command)
152
- [Nova] Jogger connected successfully
153
- [Nova] Jogging enabled - UI can send directional jog commands
154
- [Nova] Configuring Nova API with config: {'use_state_stream': True, 'use_ik': False, 'use_jogging': True}
155
- [Nova] State stream connected successfully
156
- [Nova] use_state_stream=True, use_ik=False, use_jogging=True
157
- [Nova] Attempting to load config from environment variables...
158
- [Nova] Config loaded from env: https://vaxtlucd.instance.wandelbots.io, controller=ur5e, motion_group=0@ur5e
159
- [Nova] Creating NovaApiClient...
160
- [Nova] Client created successfully. State streaming: True, IK: False, Jogging: True
161
- [Nova] Starting state stream...
162
- [Nova] Starting state stream thread...
163
- [Nova] Connecting to state stream: wss://vaxtlucd.instance.wandelbots.io/api/v2/cells/cell/controllers/ur5e/motion-groups/0@ur5e/state-stream?response_rate=100127.0.0.1 - - [21/Jan/2026 12:31:31] "GET /nova-sim/api/v1/env HTTP/1.1" 200 -
164
- [Nova] State stream started successfully
165
- [Nova] WARNING: State streaming enabled - simulation is now a digital twin.
166
- [Nova] Robot state comes from Nova API, local targets/IK are ignored.
167
- [Nova] Creating NovaJogger...
168
- [Nova Jogger] Ready to connect (will connect on first jog command)
169
- [Nova] Jogger connected successfully
170
- [Nova] Jogging enabled - UI can send directional jog commands
171
-
172
- Switched to ur5
173
- [Nova] State stream connected successfully
174
- [Nova] State stream update (seq=20357380, 6 joints) payload={"seq": 20357380, "joint_position": [-3.7937827110290527, -1.5640392303466797, 1.8428640365600586, -1.4148643016815186, -1.725486397743225, -0.5821775794029236], "timestamp": "2026-01-21T11:31:31.701604829Z"}
175
- [WS] Received message type: camera
176
- [WS] Received message type: camera
177
- [WS] Received message type: start_jog
178
- [Server] Received start_jog: jog_type=cartesian_translation, params={'axis': 'x', 'direction': '+', 'velocity': 50, 'tcp_id': 'Flange', 'coord_system_id': 'world'}
179
- [Nova Jogger] Connecting to cartesian endpoint: wss://vaxtlucd.instance.wandelbots.io/api/v1/cells/cell/motion-groups/move-tcp
180
- [Nova Jogger] Connected to cartesian endpoint
181
- [Nova Jogger] Cartesian X translation at 50 mm/s (dir: 1)
182
- [Broadcast] Non-zero teleop values: {'vx': 0.05}
183
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': 0.05}
184
  [Broadcast] Actual JSON teleop_action j3 = 0.0
185
- [Broadcast] Non-zero teleop values: {'vx': 0.05}
186
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': 0.05}
187
  [Broadcast] Actual JSON teleop_action j3 = 0.0
188
- [Broadcast] Non-zero teleop values: {'vx': 0.05}
189
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': 0.05}
190
  [Broadcast] Actual JSON teleop_action j3 = 0.0
191
- [Broadcast] Non-zero teleop values: {'vx': 0.05}
192
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': 0.05}
193
  [Broadcast] Actual JSON teleop_action j3 = 0.0
194
- [Broadcast] Non-zero teleop values: {'vx': 0.05}
195
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': 0.05}
196
  [Broadcast] Actual JSON teleop_action j3 = 0.0
197
- [Broadcast] Non-zero teleop values: {'vx': 0.05}
198
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': 0.05}
199
  [Broadcast] Actual JSON teleop_action j3 = 0.0
200
- [Broadcast] Non-zero teleop values: {'vx': 0.05}
201
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': 0.05}
202
  [Broadcast] Actual JSON teleop_action j3 = 0.0
 
 
 
 
 
 
 
 
 
 
203
  [Broadcast] Non-zero teleop values: {'vx': 0.05}
204
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': 0.05}
205
  [Broadcast] Actual JSON teleop_action j3 = 0.0
206
  [Broadcast] Non-zero teleop values: {'vx': 0.05}
207
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': 0.05}
208
  [Broadcast] Actual JSON teleop_action j3 = 0.0
209
  [Broadcast] Non-zero teleop values: {'vx': 0.05}
210
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': 0.05}
211
  [Broadcast] Actual JSON teleop_action j3 = 0.0
212
  [Broadcast] Non-zero teleop values: {'vx': 0.05}
213
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': 0.05}
214
  [Broadcast] Actual JSON teleop_action j3 = 0.0
215
- [WS] Received message type: stop_jog
216
  [Nova Jogger] Stopped (zero velocities sent)
217
- [WS] Received message type: switch_robot
218
- Robot switch requested: spot / scene: scene
219
- Switching to robot: spot
220
- Quadruped-PyMPC components loaded from local standalone implementation
221
- PyMPC gait generator initialized
222
- Switched to spot
223
- [WS] Received message type: command
224
- [Broadcast] Non-zero teleop values: {'vx': 0.8}
225
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': 0.8}
226
- [Broadcast] Actual JSON teleop_action j3 = 0.0
227
- [WS] Received message type: teleop_action
228
- [Broadcast] Non-zero teleop values: {'vx': 0.005}
229
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': 0.005}
230
- [Broadcast] Actual JSON teleop_action j3 = 0.0
231
- [WS] Received message type: teleop_action
232
- [WS] Received message type: teleop_action
233
- [Broadcast] Non-zero teleop values: {'vx': 0.005}
234
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': 0.005}
235
- [Broadcast] Actual JSON teleop_action j3 = 0.0
236
- [WS] Received message type: teleop_action
237
- [Broadcast] Non-zero teleop values: {'vx': 0.005}
238
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': 0.005}
239
- [Broadcast] Actual JSON teleop_action j3 = 0.0
240
- [WS] Received message type: teleop_action
241
- [Broadcast] Non-zero teleop values: {'vx': 0.005}
242
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': 0.005}
243
- [Broadcast] Actual JSON teleop_action j3 = 0.0
244
- [WS] Received message type: teleop_action
245
- [WS] Received message type: command
246
- [Broadcast] Non-zero teleop values: {'vx': 0.8}
247
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': 0.8}
248
- [Broadcast] Actual JSON teleop_action j3 = 0.0
249
- [WS] Received message type: teleop_action
250
- [WS] Received message type: command
251
- [WS] Received message type: teleop_action
252
- [Broadcast] Non-zero teleop values: {'vx': 0.005}
253
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': 0.005}
254
- [Broadcast] Actual JSON teleop_action j3 = 0.0
255
- [WS] Received message type: command
256
- [WS] Received message type: teleop_action
257
- [WS] Received message type: command
258
- [Broadcast] Non-zero teleop values: {'vx': 0.8}
259
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': 0.8}
260
- [Broadcast] Actual JSON teleop_action j3 = 0.0
261
- [WS] Received message type: teleop_action
262
- [WS] Received message type: command
263
- [Broadcast] Non-zero teleop values: {'vx': 0.8}
264
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': 0.8}
265
- [Broadcast] Actual JSON teleop_action j3 = 0.0
266
- [WS] Received message type: teleop_action
267
- [WS] Received message type: command
268
- [WS] Received message type: teleop_action
269
- [Broadcast] Non-zero teleop values: {'vx': 0.005}
270
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': 0.005}
271
- [Broadcast] Actual JSON teleop_action j3 = 0.0
272
- [WS] Received message type: command
273
- [WS] Received message type: teleop_action
274
- [WS] Received message type: command
275
- [WS] Received message type: command
276
- [WS] Received message type: teleop_action
277
- [Broadcast] Non-zero teleop values: {'vy': -0.005}
278
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vy': -0.005}
279
- [Broadcast] Actual JSON teleop_action j3 = 0.0
280
- [WS] Received message type: teleop_action
281
- [Broadcast] Non-zero teleop values: {'vy': -0.005}
282
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vy': -0.005}
283
- [Broadcast] Actual JSON teleop_action j3 = 0.0
284
- [WS] Received message type: teleop_action
285
- [Broadcast] Non-zero teleop values: {'vy': -0.005}
286
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vy': -0.005}
287
- [Broadcast] Actual JSON teleop_action j3 = 0.0
288
- [WS] Received message type: teleop_action
289
- [Broadcast] Non-zero teleop values: {'vy': -0.005}
290
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vy': -0.005}
291
- [Broadcast] Actual JSON teleop_action j3 = 0.0
292
- [WS] Received message type: teleop_action
293
- [WS] Received message type: teleop_action
294
- [WS] Received message type: command
295
- [Broadcast] Non-zero teleop values: {'vyaw': -1.2}
296
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vyaw': -1.2}
297
- [Broadcast] Actual JSON teleop_action j3 = 0.0
298
- [WS] Received message type: teleop_action
299
- [WS] Received message type: command
300
- [Broadcast] Non-zero teleop values: {'vyaw': -1.2}
301
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vyaw': -1.2}
302
- [Broadcast] Actual JSON teleop_action j3 = 0.0
303
- [WS] Received message type: teleop_action
304
- [WS] Received message type: command
305
- [Broadcast] Non-zero teleop values: {'vyaw': -1.2}
306
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vyaw': -1.2}
307
- [Broadcast] Actual JSON teleop_action j3 = 0.0
308
- [WS] Received message type: teleop_action
309
- [WS] Received message type: command
310
- [WS] Received message type: teleop_action
311
- [Broadcast] Non-zero teleop values: {'vy': -0.005}
312
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vy': -0.005}
313
- [Broadcast] Actual JSON teleop_action j3 = 0.0
314
- [WS] Received message type: command
315
- [WS] Received message type: teleop_action
316
- [WS] Received message type: command
317
- [WS] Received message type: command
318
- [Broadcast] Non-zero teleop values: {'vyaw': 1.2}
319
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vyaw': 1.2}
320
- [Broadcast] Actual JSON teleop_action j3 = 0.0
321
- [WS] Received message type: teleop_action
322
- [Broadcast] Non-zero teleop values: {'vy': 0.005}
323
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vy': 0.005}
324
- [Broadcast] Actual JSON teleop_action j3 = 0.0
325
- [WS] Received message type: teleop_action
326
- [Broadcast] Non-zero teleop values: {'vy': 0.005}
327
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vy': 0.005}
328
- [Broadcast] Actual JSON teleop_action j3 = 0.0
329
- [WS] Received message type: teleop_action
330
- [Nova] State stream update (seq=20358760, 6 joints) payload={"seq": 20358760, "joint_position": [-3.7214279174804688, -1.4229689836502075, 1.6873574256896973, -1.3912395238876343, -1.6946996450424194, -0.5160554051399231], "timestamp": "2026-01-21T11:31:41.768234831Z"}
331
- [Broadcast] Non-zero teleop values: {'vy': 0.005}
332
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vy': 0.005}
333
- [Broadcast] Actual JSON teleop_action j3 = 0.0
334
- [WS] Received message type: teleop_action
335
- [WS] Received message type: teleop_action
336
- [Broadcast] Non-zero teleop values: {'vy': 0.005}
337
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vy': 0.005}
338
- [Broadcast] Actual JSON teleop_action j3 = 0.0
339
- [WS] Received message type: teleop_action
340
- [WS] Received message type: command
341
- [Broadcast] Non-zero teleop values: {'vyaw': 1.2}
342
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vyaw': 1.2}
343
- [Broadcast] Actual JSON teleop_action j3 = 0.0
344
- [WS] Received message type: teleop_action
345
- [WS] Received message type: command
346
- [Broadcast] Non-zero teleop values: {'vyaw': 1.2}
347
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vyaw': 1.2}
348
- [Broadcast] Actual JSON teleop_action j3 = 0.0
349
- [WS] Received message type: teleop_action
350
- [WS] Received message type: command
351
- [WS] Received message type: teleop_action
352
- [Broadcast] Non-zero teleop values: {'vy': 0.005}
353
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vy': 0.005}
354
- [Broadcast] Actual JSON teleop_action j3 = 0.0
355
- [WS] Received message type: command
356
- [WS] Received message type: teleop_action
357
- [WS] Received message type: command
358
- [WS] Received message type: switch_robot
359
- Robot switch requested: g1 / scene: scene
360
- Switching to robot: g1
361
- Switched to g1
362
- [WS] Received message type: camera
363
- [WS] Received message type: command
364
- [WS] Received message type: teleop_action
365
- [Broadcast] Non-zero teleop values: {'vx': 0.005}
366
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': 0.005}
367
- [Broadcast] Actual JSON teleop_action j3 = 0.0
368
- [WS] Received message type: teleop_action
369
- [WS] Received message type: teleop_action
370
- [Broadcast] Non-zero teleop values: {'vx': 0.005}
371
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': 0.005}
372
- [Broadcast] Actual JSON teleop_action j3 = 0.0
373
- [WS] Received message type: teleop_action
374
- [WS] Received message type: teleop_action
375
- [Broadcast] Non-zero teleop values: {'vx': 0.005}
376
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': 0.005}
377
- [Broadcast] Actual JSON teleop_action j3 = 0.0
378
- [WS] Received message type: teleop_action
379
- [WS] Received message type: command
380
- [Broadcast] Non-zero teleop values: {'vx': 0.8}
381
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': 0.8}
382
- [Broadcast] Actual JSON teleop_action j3 = 0.0
383
- [WS] Received message type: teleop_action
384
- [WS] Received message type: command
385
- [WS] Received message type: teleop_action
386
- [WS] Received message type: command
387
- [Broadcast] Non-zero teleop values: {'vx': 0.8}
388
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': 0.8}
389
- [Broadcast] Actual JSON teleop_action j3 = 0.0
390
- [WS] Received message type: teleop_action
391
- [WS] Received message type: command
392
- [WS] Received message type: teleop_action
393
- [Broadcast] Non-zero teleop values: {'vx': 0.005}
394
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': 0.005}
395
- [Broadcast] Actual JSON teleop_action j3 = 0.0
396
- [WS] Received message type: command
397
- [WS] Received message type: teleop_action
398
- [WS] Received message type: command
399
- [WS] Received message type: teleop_action
400
- [Broadcast] Non-zero teleop values: {'vx': 0.005}
401
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': 0.005}
402
- [Broadcast] Actual JSON teleop_action j3 = 0.0
403
- [WS] Received message type: command
404
- [WS] Received message type: teleop_action
405
- [WS] Received message type: command
406
- [Broadcast] Non-zero teleop values: {'vx': 0.8}
407
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': 0.8}
408
- [Broadcast] Actual JSON teleop_action j3 = 0.0
409
- [WS] Received message type: teleop_action
410
- [WS] Received message type: command
411
- [WS] Received message type: teleop_action
412
- [WS] Received message type: command
413
- [Broadcast] Non-zero teleop values: {'vx': 0.8}
414
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': 0.8}
415
- [Broadcast] Actual JSON teleop_action j3 = 0.0
416
- [WS] Received message type: teleop_action
417
- [WS] Received message type: command
418
- [WS] Received message type: teleop_action
419
- [Broadcast] Non-zero teleop values: {'vx': 0.005}
420
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': 0.005}
421
- [Broadcast] Actual JSON teleop_action j3 = 0.0
422
- [WS] Received message type: command
423
- [WS] Received message type: teleop_action
424
- [WS] Received message type: command
425
- [WS] Received message type: teleop_action
426
- [Broadcast] Non-zero teleop values: {'vx': 0.005}
427
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': 0.005}
428
- [Broadcast] Actual JSON teleop_action j3 = 0.0
429
- [WS] Received message type: command
430
- [WS] Received message type: teleop_action
431
- [Broadcast] Non-zero teleop values: {'vx': 0.005}
432
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': 0.005}
433
- [Broadcast] Actual JSON teleop_action j3 = 0.0
434
- [WS] Received message type: command
435
- [WS] Received message type: teleop_action
436
- [WS] Received message type: command
437
- [WS] Received message type: command
438
- [WS] Received message type: teleop_action
439
- [Broadcast] Non-zero teleop values: {'vx': 0.005}
440
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': 0.005}
441
- [Broadcast] Actual JSON teleop_action j3 = 0.0
442
- [WS] Received message type: teleop_action
443
- [WS] Received message type: teleop_action
444
- [Broadcast] Non-zero teleop values: {'vx': 0.005}
445
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': 0.005}
446
- [Broadcast] Actual JSON teleop_action j3 = 0.0
447
- [WS] Received message type: teleop_action
448
- [Broadcast] Non-zero teleop values: {'vx': 0.005}
449
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': 0.005}
450
- [Broadcast] Actual JSON teleop_action j3 = 0.0
451
- [WS] Received message type: teleop_action
452
- [WS] Received message type: teleop_action
453
- [WS] Received message type: command
454
- [Broadcast] Non-zero teleop values: {'vx': 0.8}
455
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': 0.8}
456
- [Broadcast] Actual JSON teleop_action j3 = 0.0
457
- [WS] Received message type: teleop_action
458
- [WS] Received message type: command
459
- [WS] Received message type: teleop_action
460
- [WS] Received message type: command
461
- [Broadcast] Non-zero teleop values: {'vx': 0.8}
462
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': 0.8}
463
- [Broadcast] Actual JSON teleop_action j3 = 0.0
464
- [WS] Received message type: teleop_action
465
- [WS] Received message type: command
466
- [Broadcast] Non-zero teleop values: {'vx': 0.8}
467
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': 0.8}
468
- [Broadcast] Actual JSON teleop_action j3 = 0.0
469
- [WS] Received message type: teleop_action
470
- [WS] Received message type: command
471
- [WS] Received message type: teleop_action
472
- [WS] Received message type: command
473
- [Broadcast] Non-zero teleop values: {'vx': 0.8}
474
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': 0.8}
475
- [Broadcast] Actual JSON teleop_action j3 = 0.0
476
- [WS] Received message type: teleop_action
477
- [WS] Received message type: command
478
- [WS] Received message type: teleop_action
479
- [Broadcast] Non-zero teleop values: {'vx': 0.005}
480
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': 0.005}
481
- [Broadcast] Actual JSON teleop_action j3 = 0.0
482
- [WS] Received message type: command
483
- [WS] Received message type: teleop_action
484
- [WS] Received message type: command
485
- [WS] Received message type: teleop_action
486
- [Broadcast] Non-zero teleop values: {'vx': 0.005}
487
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': 0.005}
488
- [Broadcast] Actual JSON teleop_action j3 = 0.0127.0.0.1 - - [21/Jan/2026 12:31:51] "GET /nova-sim/api/v1/env HTTP/1.1" 200 -
489
-
490
- [WS] Received message type: command
491
- [WS] Received message type: teleop_action
492
- [WS] Received message type: command
493
- [Broadcast] Non-zero teleop values: {'vx': 0.8}
494
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': 0.8}
495
- [Broadcast] Actual JSON teleop_action j3 = 0.0
496
- [WS] Received message type: teleop_action
497
- [WS] Received message type: command
498
- [WS] Received message type: teleop_action
499
- [Broadcast] Non-zero teleop values: {'vx': 0.005}
500
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': 0.005}
501
- [Broadcast] Actual JSON teleop_action j3 = 0.0
502
- [WS] Received message type: command
503
- [WS] Received message type: teleop_action
504
- [WS] Received message type: command
505
- [WS] Received message type: teleop_action
506
- [Broadcast] Non-zero teleop values: {'vx': 0.005}
507
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': 0.005}
508
- [Broadcast] Actual JSON teleop_action j3 = 0.0
509
- [WS] Received message type: command
510
- [WS] Received message type: teleop_action
511
- [WS] Received message type: command
512
- [WS] Received message type: teleop_action
513
- [Broadcast] Non-zero teleop values: {'vx': 0.005}
514
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': 0.005}
515
- [Broadcast] Actual JSON teleop_action j3 = 0.0
516
- [WS] Received message type: command
517
- [WS] Received message type: switch_robot
518
- Robot switch requested: ur5_t_push / scene: scene_t_push
519
- [WS] Received message type: set_nova_mode
520
- Switching to robot: ur5_t_push
521
- Nova API credentials detected - attempting bidirectional control
522
- [Nova] State stream update (seq=20360140, 6 joints) payload={"seq": 20360140, "joint_position": [-3.7214279174804688, -1.4229689836502075, 1.6873574256896973, -1.3912395238876343, -1.6946996450424194, -0.5160554051399231], "timestamp": "2026-01-21T11:31:51.841308365Z"}
523
- [Nova] Configuring Nova API with config: {'use_state_stream': True, 'use_ik': False, 'use_jogging': True}
524
- [Nova] use_state_stream=True, use_ik=False, use_jogging=True
525
- [Nova] Attempting to load config from environment variables...
526
- [Nova] Config loaded from env: https://vaxtlucd.instance.wandelbots.io, controller=ur5e, motion_group=0@ur5e
527
- [Nova] Creating NovaApiClient...
528
- [Nova] Client created successfully. State streaming: True, IK: False, Jogging: True
529
- [Nova] Starting state stream...
530
- [Nova] Starting state stream thread...
531
- [Nova] Connecting to state stream: wss://vaxtlucd.instance.wandelbots.io/api/v2/cells/cell/controllers/ur5e/motion-groups/0@ur5e/state-stream?response_rate=100
532
- [Nova] State stream started successfully
533
- [Nova] WARNING: State streaming enabled - simulation is now a digital twin.
534
- [Nova] Robot state comes from Nova API, local targets/IK are ignored.
535
- [Nova] Creating NovaJogger...
536
- [Nova Jogger] Ready to connect (will connect on first jog command)
537
- [Nova] Jogger connected successfully
538
- [Nova] Jogging enabled - UI can send directional jog commands
539
- [Nova] Configuring Nova API with config: {'use_state_stream': True, 'use_ik': False, 'use_jogging': True}
540
- [Nova] State stream connected successfully
541
- [Nova] use_state_stream=True, use_ik=False, use_jogging=True
542
- [Nova] Attempting to load config from environment variables...
543
- [Nova] Config loaded from env: https://vaxtlucd.instance.wandelbots.io, controller=ur5e, motion_group=0@ur5e
544
- [Nova] Creating NovaApiClient...
545
- [Nova] Client created successfully. State streaming: True, IK: False, Jogging: True
546
- [Nova] Starting state stream...
547
- [Nova] Starting state stream thread...
548
- [Nova] Connecting to state stream: wss://vaxtlucd.instance.wandelbots.io/api/v2/cells/cell/controllers/ur5e/motion-groups/0@ur5e/state-stream?response_rate=100
549
- [Nova] State stream started successfully
550
- [Nova] WARNING: State streaming enabled - simulation is now a digital twin.
551
- [Nova] Robot state comes from Nova API, local targets/IK are ignored.
552
- [Nova] Creating NovaJogger...
553
- [Nova Jogger] Ready to connect (will connect on first jog command)
554
- [Nova] Jogger connected successfully
555
- [Nova] Jogging enabled - UI can send directional jog commands
556
- Switched to ur5_t_push
557
- [Nova] State stream connected successfully
558
- [Nova] State stream update (seq=20360191, 6 joints) payload={"seq": 20360191, "joint_position": [-3.7214279174804688, -1.4229689836502075, 1.6873574256896973, -1.3912395238876343, -1.6946996450424194, -0.5160554051399231], "timestamp": "2026-01-21T11:31:52.214014194Z"}
559
- [WS] Received message type: set_nova_mode
560
- [Nova] Configuring Nova API with config: {'use_state_stream': True, 'use_ik': False, 'use_jogging': True}
561
- [Nova] use_state_stream=True, use_ik=False, use_jogging=True
562
- [Nova] Attempting to load config from environment variables...
563
- [Nova] Config loaded from env: https://vaxtlucd.instance.wandelbots.io, controller=ur5e, motion_group=0@ur5e
564
- [Nova] Creating NovaApiClient...
565
- [Nova] Client created successfully. State streaming: True, IK: False, Jogging: True
566
- [Nova] Starting state stream...
567
- [Nova] Starting state stream thread...
568
- [Nova] Connecting to state stream: wss://vaxtlucd.instance.wandelbots.io/api/v2/cells/cell/controllers/ur5e/motion-groups/0@ur5e/state-stream?response_rate=100
569
- [Nova] State stream started successfully
570
- [Nova] WARNING: State streaming enabled - simulation is now a digital twin.
571
- [Nova] Robot state comes from Nova API, local targets/IK are ignored.
572
- [Nova] Creating NovaJogger...
573
- [Nova Jogger] Ready to connect (will connect on first jog command)
574
- [Nova] Jogger connected successfully
575
- [Nova] Jogging enabled - UI can send directional jog commands
576
- [Nova] State stream connected successfully
577
- [Nova] State stream update (seq=20360550, 6 joints) payload={"seq": 20360550, "joint_position": [-3.7214279174804688, -1.4229689836502075, 1.6873574256896973, -1.3912395238876343, -1.6946996450424194, -0.5160554051399231], "timestamp": "2026-01-21T11:31:54.840564316Z"}
578
  [WS] Received message type: camera
579
  [WS] Received message type: camera
580
  [WS] Received message type: camera
@@ -656,45 +763,6 @@ Switched to ur5_t_push
656
  [WS] Received message type: camera
657
  [WS] Received message type: camera
658
  [WS] Received message type: camera
659
- [WS] Received message type: start_jog
660
- [Server] Received start_jog: jog_type=cartesian_translation, params={'axis': 'y', 'direction': '-', 'velocity': 50, 'tcp_id': 'Flange', 'coord_system_id': 'world'}
661
- [Nova Jogger] Connecting to cartesian endpoint: wss://vaxtlucd.instance.wandelbots.io/api/v1/cells/cell/motion-groups/move-tcp
662
- [Nova Jogger] Connected to cartesian endpoint
663
- [Nova Jogger] Cartesian Y translation at 50 mm/s (dir: -1)
664
- [Broadcast] Non-zero teleop values: {'vy': -0.05}
665
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vy': -0.05}
666
- [Broadcast] Actual JSON teleop_action j3 = 0.0
667
- [Broadcast] Non-zero teleop values: {'vy': -0.05}
668
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vy': -0.05}
669
- [Broadcast] Actual JSON teleop_action j3 = 0.0
670
- [Broadcast] Non-zero teleop values: {'vy': -0.05}
671
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vy': -0.05}
672
- [Broadcast] Actual JSON teleop_action j3 = 0.0
673
- [Broadcast] Non-zero teleop values: {'vy': -0.05}
674
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vy': -0.05}
675
- [Broadcast] Actual JSON teleop_action j3 = 0.0
676
- [Broadcast] Non-zero teleop values: {'vy': -0.05}
677
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vy': -0.05}
678
- [Broadcast] Actual JSON teleop_action j3 = 0.0
679
- [Broadcast] Non-zero teleop values: {'vy': -0.05}
680
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vy': -0.05}
681
- [Broadcast] Actual JSON teleop_action j3 = 0.0
682
- [Broadcast] Non-zero teleop values: {'vy': -0.05}
683
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vy': -0.05}
684
- [Broadcast] Actual JSON teleop_action j3 = 0.0
685
- [WS] Received message type: stop_jog
686
- [Nova Jogger] Stopped (zero velocities sent)
687
- [WS] Received message type: start_jog
688
- [Server] Received start_jog: jog_type=cartesian_translation, params={'axis': 'x', 'direction': '-', 'velocity': 50, 'tcp_id': 'Flange', 'coord_system_id': 'world'}
689
- [Nova Jogger] Cartesian X translation at 50 mm/s (dir: -1)
690
- [Broadcast] Non-zero teleop values: {'vx': -0.05}
691
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': -0.05}
692
- [Broadcast] Actual JSON teleop_action j3 = 0.0
693
- [Broadcast] Non-zero teleop values: {'vx': -0.05}
694
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': -0.05}
695
- [Broadcast] Actual JSON teleop_action j3 = 0.0
696
- [WS] Received message type: stop_jog
697
- [Nova Jogger] Stopped (zero velocities sent)
698
  [WS] Received message type: camera
699
  [WS] Received message type: camera
700
  [WS] Received message type: camera
@@ -720,154 +788,456 @@ Switched to ur5_t_push
720
  [WS] Received message type: camera
721
  [WS] Received message type: camera
722
  [WS] Received message type: camera
723
- [WS] Received message type: start_jog
724
- [Server] Received start_jog: jog_type=cartesian_translation, params={'axis': 'x', 'direction': '-', 'velocity': 50, 'tcp_id': 'Flange', 'coord_system_id': 'world'}
725
- [Nova Jogger] Cartesian X translation at 50 mm/s (dir: -1)
726
- [Broadcast] Non-zero teleop values: {'vx': -0.05}
727
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': -0.05}
728
- [Broadcast] Actual JSON teleop_action j3 = 0.0
729
- [Broadcast] Non-zero teleop values: {'vx': -0.05}
730
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': -0.05}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
731
  [Broadcast] Actual JSON teleop_action j3 = 0.0
732
- [Nova] State stream update (seq=20361508, 6 joints) payload={"seq": 20361508, "joint_position": [-3.7214279174804688, -1.4229689836502075, 1.6873574256896973, -1.3912395238876343, -1.6946996450424194, -0.5160554051399231], "timestamp": "2026-01-21T11:32:01.860604486Z"}
733
- [Broadcast] Non-zero teleop values: {'vx': -0.05}
734
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': -0.05}
735
  [Broadcast] Actual JSON teleop_action j3 = 0.0
736
- [Broadcast] Non-zero teleop values: {'vx': -0.05}
737
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': -0.05}
738
  [Broadcast] Actual JSON teleop_action j3 = 0.0
739
- [Broadcast] Non-zero teleop values: {'vx': -0.05}
740
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': -0.05}
741
  [Broadcast] Actual JSON teleop_action j3 = 0.0
742
- [Broadcast] Non-zero teleop values: {'vx': -0.05}
743
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': -0.05}
744
  [Broadcast] Actual JSON teleop_action j3 = 0.0
745
- [WS] Received message type: stop_jog
746
  [Nova Jogger] Stopped (zero velocities sent)
747
- [WS] Received message type: start_jog
748
- [Server] Received start_jog: jog_type=cartesian_translation, params={'axis': 'y', 'direction': '-', 'velocity': 50, 'tcp_id': 'Flange', 'coord_system_id': 'world'}
749
- [Nova Jogger] Cartesian Y translation at 50 mm/s (dir: -1)
750
  [Broadcast] Non-zero teleop values: {'vy': -0.05}
751
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vy': -0.05}
752
- [Broadcast] Actual JSON teleop_action j3 = 0.0
753
- [Nova Jogger] Receive error: no close frame received or sent
754
- [WS] Received message type: stop_jog
755
- [Nova Jogger] Failed to stop: no close frame received or sent
756
- [WS] Received message type: start_jog
757
- [Server] Received start_jog: jog_type=cartesian_translation, params={'axis': 'y', 'direction': '+', 'velocity': 50, 'tcp_id': 'Flange', 'coord_system_id': 'world'}
758
- [Nova Jogger] Failed to start cartesian translation: no close frame received or sent
759
- [Server] Failed to start jog: cartesian_translation, {'axis': 'y', 'direction': '+', 'velocity': 50, 'tcp_id': 'Flange', 'coord_system_id': 'world'}
760
- [Broadcast] Non-zero teleop values: {'vy': 0.05}
761
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vy': 0.05}
762
- [Broadcast] Actual JSON teleop_action j3 = 0.0
763
- [WS] Received message type: start_jog
764
- [Server] Received start_jog: jog_type=cartesian_translation, params={'axis': 'y', 'direction': '-', 'velocity': 50, 'tcp_id': 'Flange', 'coord_system_id': 'world'}
765
- [Nova Jogger] Failed to start cartesian translation: no close frame received or sent
766
- [Server] Failed to start jog: cartesian_translation, {'axis': 'y', 'direction': '-', 'velocity': 50, 'tcp_id': 'Flange', 'coord_system_id': 'world'}
767
- [WS] Received message type: stop_jog
768
- [Nova Jogger] Failed to stop: no close frame received or sent
769
- [WS] Received message type: start_jog
770
- [Server] Received start_jog: jog_type=cartesian_translation, params={'axis': 'y', 'direction': '-', 'velocity': 50, 'tcp_id': 'Flange', 'coord_system_id': 'world'}
771
- [Nova Jogger] Failed to start cartesian translation: no close frame received or sent
772
- [Server] Failed to start jog: cartesian_translation, {'axis': 'y', 'direction': '-', 'velocity': 50, 'tcp_id': 'Flange', 'coord_system_id': 'world'}
773
  [Broadcast] Non-zero teleop values: {'vy': -0.05}
774
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vy': -0.05}
775
- [Broadcast] Actual JSON teleop_action j3 = 0.0
776
- [WS] Received message type: start_jog
777
- [Server] Received start_jog: jog_type=cartesian_translation, params={'axis': 'x', 'direction': '-', 'velocity': 50, 'tcp_id': 'Flange', 'coord_system_id': 'world'}
778
- [Nova Jogger] Failed to start cartesian translation: no close frame received or sent
779
- [Server] Failed to start jog: cartesian_translation, {'axis': 'x', 'direction': '-', 'velocity': 50, 'tcp_id': 'Flange', 'coord_system_id': 'world'}
780
- [WS] Received message type: start_jog
781
- [Server] Received start_jog: jog_type=cartesian_translation, params={'axis': 'y', 'direction': '+', 'velocity': 50, 'tcp_id': 'Flange', 'coord_system_id': 'world'}
782
- [Nova Jogger] Failed to start cartesian translation: no close frame received or sent
783
- [Server] Failed to start jog: cartesian_translation, {'axis': 'y', 'direction': '+', 'velocity': 50, 'tcp_id': 'Flange', 'coord_system_id': 'world'}
784
- [WS] Received message type: stop_jog
785
- [Nova Jogger] Failed to stop: no close frame received or sent
786
- [WS] Received message type: start_jog
787
- [Server] Received start_jog: jog_type=cartesian_translation, params={'axis': 'y', 'direction': '+', 'velocity': 50, 'tcp_id': 'Flange', 'coord_system_id': 'world'}
788
- [Nova Jogger] Failed to start cartesian translation: no close frame received or sent
789
- [Server] Failed to start jog: cartesian_translation, {'axis': 'y', 'direction': '+', 'velocity': 50, 'tcp_id': 'Flange', 'coord_system_id': 'world'}
790
- [Broadcast] Non-zero teleop values: {'vy': 0.05}
791
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vy': 0.05}
792
- [Broadcast] Actual JSON teleop_action j3 = 0.0
793
- [WS] Received message type: stop_jog
794
- [Nova Jogger] Failed to stop: no close frame received or sent
795
- [WS] Received message type: start_jog
796
- [Server] Received start_jog: jog_type=cartesian_translation, params={'axis': 'x', 'direction': '-', 'velocity': 50, 'tcp_id': 'Flange', 'coord_system_id': 'world'}
797
- [Nova Jogger] Failed to start cartesian translation: no close frame received or sent
798
- [Server] Failed to start jog: cartesian_translation, {'axis': 'x', 'direction': '-', 'velocity': 50, 'tcp_id': 'Flange', 'coord_system_id': 'world'}
799
- [WS] Received message type: stop_jog
800
- [Nova Jogger] Failed to stop: no close frame received or sent
801
- [WS] Received message type: start_jog
802
- [Server] Received start_jog: jog_type=cartesian_translation, params={'axis': 'y', 'direction': '+', 'velocity': 50, 'tcp_id': 'Flange', 'coord_system_id': 'world'}
803
- [Nova Jogger] Failed to start cartesian translation: no close frame received or sent
804
- [Server] Failed to start jog: cartesian_translation, {'axis': 'y', 'direction': '+', 'velocity': 50, 'tcp_id': 'Flange', 'coord_system_id': 'world'}
805
- [WS] Received message type: start_jog
806
- [Server] Received start_jog: jog_type=cartesian_translation, params={'axis': 'x', 'direction': '-', 'velocity': 50, 'tcp_id': 'Flange', 'coord_system_id': 'world'}
807
- [Nova Jogger] Failed to start cartesian translation: no close frame received or sent
808
- [Server] Failed to start jog: cartesian_translation, {'axis': 'x', 'direction': '-', 'velocity': 50, 'tcp_id': 'Flange', 'coord_system_id': 'world'}
809
- [Broadcast] Non-zero teleop values: {'vx': -0.05}
810
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vx': -0.05}
811
- [Broadcast] Actual JSON teleop_action j3 = 0.0
812
- [WS] Received message type: start_jog
813
- [Server] Received start_jog: jog_type=cartesian_translation, params={'axis': 'y', 'direction': '-', 'velocity': 50, 'tcp_id': 'Flange', 'coord_system_id': 'world'}
814
- [Nova Jogger] Failed to start cartesian translation: no close frame received or sent
815
- [Server] Failed to start jog: cartesian_translation, {'axis': 'y', 'direction': '-', 'velocity': 50, 'tcp_id': 'Flange', 'coord_system_id': 'world'}
816
- [WS] Received message type: stop_jog
817
- [Nova Jogger] Failed to stop: no close frame received or sent
818
- [WS] Received message type: start_jog
819
- [Server] Received start_jog: jog_type=cartesian_translation, params={'axis': 'y', 'direction': '-', 'velocity': 50, 'tcp_id': 'Flange', 'coord_system_id': 'world'}
820
- [Nova Jogger] Failed to start cartesian translation: no close frame received or sent
821
- [Server] Failed to start jog: cartesian_translation, {'axis': 'y', 'direction': '-', 'velocity': 50, 'tcp_id': 'Flange', 'coord_system_id': 'world'}
822
- [WS] Received message type: stop_jog
823
- [Nova Jogger] Failed to stop: no close frame received or sent
824
- [WS] Received message type: start_jog
825
- [Server] Received start_jog: jog_type=cartesian_translation, params={'axis': 'y', 'direction': '-', 'velocity': 50, 'tcp_id': 'Flange', 'coord_system_id': 'world'}
826
- [Nova Jogger] Failed to start cartesian translation: no close frame received or sent
827
- [Server] Failed to start jog: cartesian_translation, {'axis': 'y', 'direction': '-', 'velocity': 50, 'tcp_id': 'Flange', 'coord_system_id': 'world'}
828
- [WS] Received message type: start_jog
829
- [Server] Received start_jog: jog_type=cartesian_translation, params={'axis': 'y', 'direction': '+', 'velocity': 50, 'tcp_id': 'Flange', 'coord_system_id': 'world'}
830
- [Nova Jogger] Failed to start cartesian translation: no close frame received or sent
831
- [Server] Failed to start jog: cartesian_translation, {'axis': 'y', 'direction': '+', 'velocity': 50, 'tcp_id': 'Flange', 'coord_system_id': 'world'}
832
- [WS] Received message type: stop_jog
833
- [Nova Jogger] Failed to stop: no close frame received or sent
834
- [WS] Received message type: start_jog
835
- [Server] Received start_jog: jog_type=cartesian_translation, params={'axis': 'y', 'direction': '+', 'velocity': 50, 'tcp_id': 'Flange', 'coord_system_id': 'world'}
836
- [Nova Jogger] Failed to start cartesian translation: no close frame received or sent
837
- [Server] Failed to start jog: cartesian_translation, {'axis': 'y', 'direction': '+', 'velocity': 50, 'tcp_id': 'Flange', 'coord_system_id': 'world'}
838
- [Broadcast] Non-zero teleop values: {'vy': 0.05}
839
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vy': 0.05}
840
- [Broadcast] Actual JSON teleop_action j3 = 0.0
841
- [WS] Received message type: start_jog
842
- [Server] Received start_jog: jog_type=cartesian_translation, params={'axis': 'x', 'direction': '-', 'velocity': 50, 'tcp_id': 'Flange', 'coord_system_id': 'world'}
843
- [Nova Jogger] Failed to start cartesian translation: no close frame received or sent
844
- [Server] Failed to start jog: cartesian_translation, {'axis': 'x', 'direction': '-', 'velocity': 50, 'tcp_id': 'Flange', 'coord_system_id': 'world'}
845
- [WS] Received message type: start_jog
846
- [Server] Received start_jog: jog_type=cartesian_translation, params={'axis': 'y', 'direction': '-', 'velocity': 50, 'tcp_id': 'Flange', 'coord_system_id': 'world'}
847
- [Nova Jogger] Failed to start cartesian translation: no close frame received or sent
848
- [Server] Failed to start jog: cartesian_translation, {'axis': 'y', 'direction': '-', 'velocity': 50, 'tcp_id': 'Flange', 'coord_system_id': 'world'}
849
- [WS] Received message type: stop_jog
850
- [Nova Jogger] Failed to stop: no close frame received or sent
851
- [WS] Received message type: start_jog
852
- [Server] Received start_jog: jog_type=cartesian_translation, params={'axis': 'y', 'direction': '-', 'velocity': 50, 'tcp_id': 'Flange', 'coord_system_id': 'world'}
853
- [Nova Jogger] Failed to start cartesian translation: no close frame received or sent
854
- [Server] Failed to start jog: cartesian_translation, {'axis': 'y', 'direction': '-', 'velocity': 50, 'tcp_id': 'Flange', 'coord_system_id': 'world'}
855
- [WS] Received message type: stop_jog
856
- [Nova Jogger] Failed to stop: no close frame received or sent
857
- [WS] Received message type: start_jog
858
- [Server] Received start_jog: jog_type=cartesian_translation, params={'axis': 'y', 'direction': '-', 'velocity': 50, 'tcp_id': 'Flange', 'coord_system_id': 'world'}
859
- [Nova Jogger] Failed to start cartesian translation: no close frame received or sent
860
- [Server] Failed to start jog: cartesian_translation, {'axis': 'y', 'direction': '-', 'velocity': 50, 'tcp_id': 'Flange', 'coord_system_id': 'world'}
861
  [Broadcast] Non-zero teleop values: {'vy': -0.05}
862
- [Broadcast] Sending to 1 clients, teleop non-zero values: {'vy': -0.05}
863
- [Broadcast] Actual JSON teleop_action j3 = 0.0
864
- [WS] Received message type: stop_jog
865
- [Nova Jogger] Failed to stop: no close frame received or sent
866
- [WS] Received message type: start_jog
867
- [Server] Received start_jog: jog_type=cartesian_translation, params={'axis': 'y', 'direction': '+', 'velocity': 50, 'tcp_id': 'Flange', 'coord_system_id': 'world'}
868
- [Nova Jogger] Failed to start cartesian translation: no close frame received or sent
869
- [Server] Failed to start jog: cartesian_translation, {'axis': 'y', 'direction': '+', 'velocity': 50, 'tcp_id': 'Flange', 'coord_system_id': 'world'}
870
- [WS] Received message type: start_jog
871
- [Server] Received start_jog: jog_type=cartesian_translation, params={'axis': 'x', 'direction': '-', 'velocity': 50, 'tcp_id': 'Flange', 'coord_system_id': 'world'}
872
- [Nova Jogger] Failed to start cartesian translation: no close frame received or sent
873
- [Server] Failed to start jog: cartesian_translation, {'axis': 'x', 'direction': '-', 'velocity': 50, 'tcp_id': 'Flange', 'coord_system_id': 'world'}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7
  * Running on http://127.0.0.1:3004
8
  * Running on http://172.31.10.66:3004
9
  Press CTRL+C to quit
10
+ 127.0.0.1 - - [21/Jan/2026 12:37:14] "GET /nova-sim/api/v1/metadata HTTP/1.1" 200 -
11
+ 127.0.0.1 - - [21/Jan/2026 12:37:14] "GET /nova-sim/api/v1/env HTTP/1.1" 200 -
12
+ 127.0.0.1 - - [21/Jan/2026 12:37:14] "GET /nova-sim/api/v1/video_feed?ts=1768995434741 HTTP/1.1" 200 -
13
+ 127.0.0.1 - - [21/Jan/2026 12:37:14] "GET /nova-sim/api/v1/camera/aux_top/video_feed?ts=1768995434741 HTTP/1.1" 404 -
14
+ 127.0.0.1 - - [21/Jan/2026 12:37:14] "GET /nova-sim/api/v1/camera/aux_side/video_feed?ts=1768995434741 HTTP/1.1" 404 -
15
+ 127.0.0.1 - - [21/Jan/2026 12:37:14] "GET /nova-sim/api/v1/camera/aux_flange/video_feed?ts=1768995434741 HTTP/1.1" 404 -
16
+ 127.0.0.1 - - [21/Jan/2026 12:37:15] "GET /nova-sim/api/v1/env HTTP/1.1" 200 -
17
+ 127.0.0.1 - - [21/Jan/2026 12:37:30] "GET /nova-sim/api/v1 HTTP/1.1" 200 -
18
+ 127.0.0.1 - - [21/Jan/2026 12:37:30] "GET /nova-sim/api/v1/video_feed HTTP/1.1" 200 -
19
+ 127.0.0.1 - - [21/Jan/2026 12:37:30] "GET /nova-sim/api/v1/env HTTP/1.1" 200 -
20
+ 127.0.0.1 - - [21/Jan/2026 12:37:30] "GET /nova-sim/api/v1/metadata HTTP/1.1" 200 -
21
+ 127.0.0.1 - - [21/Jan/2026 12:37:30] "GET /nova-sim/api/v1/video_feed?ts=1768995450178 HTTP/1.1" 200 -
22
+ 127.0.0.1 - - [21/Jan/2026 12:37:30] "GET /nova-sim/api/v1/env HTTP/1.1" 200 -
23
+ 127.0.0.1 - - [21/Jan/2026 12:37:30] "GET /nova-sim/api/v1/camera/aux_top/video_feed?ts=1768995450179 HTTP/1.1" 200 -
24
+ 127.0.0.1 - - [21/Jan/2026 12:37:30] "GET /nova-sim/api/v1/camera/aux_side/video_feed?ts=1768995450179 HTTP/1.1" 200 -
25
+ 127.0.0.1 - - [21/Jan/2026 12:37:30] "GET /nova-sim/api/v1/camera/aux_flange/video_feed?ts=1768995450179 HTTP/1.1" 200 -
26
+ 127.0.0.1 - - [21/Jan/2026 12:38:28] "GET /nova-sim/api/v1 HTTP/1.1" 200 -
27
+ 127.0.0.1 - - [21/Jan/2026 12:38:28] "GET /nova-sim/api/v1/ws HTTP/1.1" 200 -
28
+ 127.0.0.1 - - [21/Jan/2026 12:38:28] "GET /nova-sim/api/v1/video_feed HTTP/1.1" 200 -
29
+ 127.0.0.1 - - [21/Jan/2026 12:38:28] "GET /nova-sim/api/v1/metadata HTTP/1.1" 200 -
30
+ 127.0.0.1 - - [21/Jan/2026 12:38:28] "GET /nova-sim/api/v1/env HTTP/1.1" 200 -
31
+ 127.0.0.1 - - [21/Jan/2026 12:38:28] "GET /nova-sim/api/v1/video_feed?ts=1768995508174 HTTP/1.1" 200 -
32
+ 127.0.0.1 - - [21/Jan/2026 12:38:28] "GET /nova-sim/api/v1/env HTTP/1.1" 200 -
33
+ 127.0.0.1 - - [21/Jan/2026 12:38:28] "GET /nova-sim/api/v1/camera/aux_top/video_feed?ts=1768995508185 HTTP/1.1" 200 -
34
+ 127.0.0.1 - - [21/Jan/2026 12:38:28] "GET /nova-sim/api/v1/camera/aux_side/video_feed?ts=1768995508185 HTTP/1.1" 200 -
35
+ 127.0.0.1 - - [21/Jan/2026 12:38:28] "GET /nova-sim/api/v1/camera/aux_flange/video_feed?ts=1768995508185 HTTP/1.1" 200 -
36
  WebSocket client connected
37
+ [WS] Received message type: switch_robot
38
+ Robot switch requested: ur5_t_push / scene: scene_t_push
39
+ Switching to robot: ur5_t_push
40
+ [WS] Received message type: switch_robot
41
+ Robot switch requested: ur5_t_push / scene: scene_t_push
42
+ Nova API credentials detected - attempting bidirectional control
43
+ [Nova] Configuring Nova API with config: {'use_state_stream': True, 'use_ik': False, 'use_jogging': True}
44
+ [Nova] use_state_stream=True, use_ik=False, use_jogging=True
45
+ [Nova] Attempting to load config from environment variables...
46
+ [Nova] Config loaded from env: https://vaxtlucd.instance.wandelbots.io, controller=ur5e, motion_group=0@ur5e
47
+ [Nova] Creating NovaApiClient...
48
+ [Nova] Client created successfully. State streaming: True, IK: False, Jogging: True
49
+ [Nova] Starting state stream...
50
+ [Nova] Starting state stream thread...
51
+ [Nova] Connecting to state stream: wss://vaxtlucd.instance.wandelbots.io/api/v2/cells/cell/controllers/ur5e/motion-groups/0@ur5e/state-stream?response_rate=100
52
+ [Nova] State stream started successfully
53
+ [Nova] WARNING: State streaming enabled - simulation is now a digital twin.
54
+ [Nova] Robot state comes from Nova API, local targets/IK are ignored.
55
+ [Nova] Creating NovaJogger...
56
+ [Nova Jogger] Ready to connect (will connect on first jog command)
57
+ [Nova] Jogger connected successfully
58
+ [Nova] Jogging enabled - UI can send directional jog commands
59
+ [Nova] Configuring Nova API with config: {'use_state_stream': True, 'use_ik': False, 'use_jogging': True}
60
+ [Nova] State stream connected successfully
61
+ [Nova] use_state_stream=True, use_ik=False, use_jogging=True
62
+ [Nova] Attempting to load config from environment variables...
63
+ [Nova] Config loaded from env: https://vaxtlucd.instance.wandelbots.io, controller=ur5e, motion_group=0@ur5e
64
+ [Nova] Creating NovaApiClient...
65
+ [Nova] Client created successfully. State streaming: True, IK: False, Jogging: True
66
+ [Nova] Starting state stream...
67
+ [Nova] Starting state stream thread...
68
+ [Nova] Connecting to state stream: wss://vaxtlucd.instance.wandelbots.io/api/v2/cells/cell/controllers/ur5e/motion-groups/0@ur5e/state-stream?response_rate=100
69
+ [Nova] State stream started successfully
70
+ [Nova] WARNING: State streaming enabled - simulation is now a digital twin.
71
+ [Nova] Robot state comes from Nova API, local targets/IK are ignored.
72
+ [Nova] Creating NovaJogger...
73
+ [Nova Jogger] Ready to connect (will connect on first jog command)
74
+ [Nova] Jogger connected successfully
75
+ [Nova] Jogging enabled - UI can send directional jog commands
76
+ Switched to ur5_t_push
77
+ [Nova] State stream connected successfully
78
+ [Nova] State stream update (seq=20404336, 6 joints) payload={"seq": 20404336, "joint_position": [-3.7195518016815186, -1.3023245334625244, 1.538793683052063, -1.36310613155365, -1.693894624710083, -0.5143474340438843], "timestamp": "2026-01-21T11:37:15.457548842Z"}
79
+ [Nova] State stream update (seq=20405716, 6 joints) payload={"seq": 20405716, "joint_position": [-3.7195518016815186, -1.3023245334625244, 1.538793683052063, -1.36310613155365, -1.693894624710083, -0.5143474340438843], "timestamp": "2026-01-21T11:37:25.536884448Z"}
80
+ WebSocket client connected
81
+ [Nova] State stream update (seq=20407084, 6 joints) payload={"seq": 20407084, "joint_position": [-3.7195518016815186, -1.3023245334625244, 1.538793683052063, -1.36310613155365, -1.693894624710083, -0.5143474340438843], "timestamp": "2026-01-21T11:37:35.588231228Z"}
82
+ [Nova] State stream update (seq=20408452, 6 joints) payload={"seq": 20408452, "joint_position": [-3.7195518016815186, -1.3023245334625244, 1.538793683052063, -1.36310613155365, -1.693894624710083, -0.5143474340438843], "timestamp": "2026-01-21T11:37:45.606961688Z"}
83
+ [Nova] State stream update (seq=20409832, 6 joints) payload={"seq": 20409832, "joint_position": [-3.7195518016815186, -1.3023245334625244, 1.538793683052063, -1.36310613155365, -1.693894624710083, -0.5143474340438843], "timestamp": "2026-01-21T11:37:55.677707551Z"}
84
+ [Nova] State stream update (seq=20411200, 6 joints) payload={"seq": 20411200, "joint_position": [-3.7195518016815186, -1.3023245334625244, 1.538793683052063, -1.36310613155365, -1.693894624710083, -0.5143474340438843], "timestamp": "2026-01-21T11:38:05.685475853Z"}
85
+ [Nova] State stream update (seq=20412568, 6 joints) payload={"seq": 20412568, "joint_position": [-3.7195518016815186, -1.3023245334625244, 1.538793683052063, -1.36310613155365, -1.693894624710083, -0.5143474340438843], "timestamp": "2026-01-21T11:38:15.705913152Z"}
86
+ [Nova] State stream update (seq=20413948, 6 joints) payload={"seq": 20413948, "joint_position": [-3.7195518016815186, -1.3023245334625244, 1.538793683052063, -1.36310613155365, -1.693894624710083, -0.5143474340438843], "timestamp": "2026-01-21T11:38:25.785773953Z"}
87
+ WebSocket client disconnected
88
+ WebSocket client connected
89
+ [WS] Received message type: camera
90
+ [WS] Received message type: camera
91
+ [WS] Received message type: camera
92
+ [WS] Received message type: camera
93
+ [WS] Received message type: camera
94
+ [WS] Received message type: camera
95
+ [WS] Received message type: camera
96
+ [WS] Received message type: camera
97
+ [WS] Received message type: camera
98
+ [WS] Received message type: camera
99
+ [WS] Received message type: camera
100
+ [WS] Received message type: camera
101
+ [WS] Received message type: camera
102
+ [WS] Received message type: camera
103
+ [WS] Received message type: camera
104
+ [WS] Received message type: camera
105
+ [WS] Received message type: camera
106
+ [WS] Received message type: camera
107
+ [WS] Received message type: camera
108
+ [WS] Received message type: camera
109
+ [WS] Received message type: camera
110
+ [WS] Received message type: camera
111
+ [WS] Received message type: camera
112
+ [WS] Received message type: camera
113
+ [WS] Received message type: camera
114
+ [WS] Received message type: camera
115
+ [WS] Received message type: camera
116
+ [WS] Received message type: camera
117
+ [WS] Received message type: camera
118
+ [WS] Received message type: camera
119
+ [WS] Received message type: camera
120
+ [WS] Received message type: camera
121
+ [WS] Received message type: camera
122
+ [WS] Received message type: camera
123
+ [WS] Received message type: camera
124
+ [WS] Received message type: camera
125
+ [WS] Received message type: camera
126
+ [WS] Received message type: camera
127
+ [WS] Received message type: camera
128
+ [WS] Received message type: camera
129
+ [WS] Received message type: camera
130
+ [WS] Received message type: camera
131
+ [WS] Received message type: camera
132
+ [WS] Received message type: camera
133
+ [WS] Received message type: camera
134
+ [WS] Received message type: camera
135
+ [WS] Received message type: camera
136
+ [WS] Received message type: camera
137
+ [WS] Received message type: camera
138
+ [WS] Received message type: camera
139
+ [WS] Received message type: camera
140
+ [WS] Received message type: camera
141
+ [WS] Received message type: camera
142
+ [WS] Received message type: camera
143
+ [WS] Received message type: camera
144
+ [WS] Received message type: camera
145
+ [WS] Received message type: camera
146
+ [WS] Received message type: camera
147
+ [WS] Received message type: camera
148
+ [WS] Received message type: camera
149
+ [WS] Received message type: camera
150
+ [WS] Received message type: camera
151
+ [WS] Received message type: camera
152
+ [WS] Received message type: camera
153
+ [WS] Received message type: camera
154
+ [WS] Received message type: camera
155
+ [WS] Received message type: camera
156
+ [WS] Received message type: camera
157
+ [WS] Received message type: camera
158
+ [WS] Received message type: camera
159
+ [WS] Received message type: camera
160
+ [WS] Received message type: camera
161
+ [WS] Received message type: camera
162
+ [WS] Received message type: camera
163
+ [WS] Received message type: camera
164
+ [WS] Received message type: camera
165
+ [WS] Received message type: camera
166
+ [WS] Received message type: camera
167
+ [WS] Received message type: camera
168
+ [WS] Received message type: camera
169
+ [WS] Received message type: camera
170
+ [WS] Received message type: camera
171
+ [WS] Received message type: camera
172
+ [WS] Received message type: camera
173
+ [WS] Received message type: camera
174
+ [WS] Received message type: camera
175
+ [WS] Received message type: camera
176
+ [WS] Received message type: camera
177
+ [WS] Received message type: camera
178
+ [WS] Received message type: camera
179
+ [WS] Received message type: camera
180
+ [WS] Received message type: camera
181
+ [WS] Received message type: camera
182
+ [WS] Received message type: camera
183
+ [WS] Received message type: camera
184
+ [WS] Received message type: camera
185
+ [WS] Received message type: camera
186
+ [WS] Received message type: camera
187
+ [WS] Received message type: camera
188
+ [WS] Received message type: camera
189
+ [WS] Received message type: camera
190
+ [WS] Received message type: camera
191
+ [WS] Received message type: camera
192
+ [WS] Received message type: camera
193
+ [WS] Received message type: camera
194
+ [WS] Received message type: camera
195
+ [WS] Received message type: camera
196
+ [WS] Received message type: camera
197
+ [WS] Received message type: camera
198
+ [WS] Received message type: camera
199
+ [WS] Received message type: camera
200
+ [WS] Received message type: camera
201
+ [WS] Received message type: camera
202
+ [WS] Received message type: camera
203
+ [WS] Received message type: camera
204
+ [WS] Received message type: camera
205
+ [WS] Received message type: camera
206
+ [WS] Received message type: camera
207
+ [WS] Received message type: camera
208
+ [WS] Received message type: camera
209
+ [WS] Received message type: camera
210
+ [WS] Received message type: camera
211
+ [WS] Received message type: camera
212
+ [WS] Received message type: camera
213
+ [WS] Received message type: camera
214
+ [WS] Received message type: camera
215
+ [WS] Received message type: camera
216
+ [WS] Received message type: camera
217
+ [WS] Received message type: camera
218
+ [WS] Received message type: camera
219
+ [WS] Received message type: camera
220
+ [WS] Received message type: camera
221
+ [WS] Received message type: camera
222
+ [WS] Received message type: camera
223
+ [WS] Received message type: camera
224
+ [WS] Received message type: camera
225
+ [WS] Received message type: camera
226
+ [WS] Received message type: camera
227
+ [WS] Received message type: camera
228
+ [WS] Received message type: camera
229
+ [WS] Received message type: camera
230
+ [WS] Received message type: camera
231
+ [WS] Received message type: camera
232
+ [WS] Received message type: camera
233
+ [WS] Received message type: camera
234
+ [WS] Received message type: camera
235
+ [WS] Received message type: camera
236
+ [WS] Received message type: camera
237
+ [WS] Received message type: camera
238
+ [WS] Received message type: camera
239
+ [WS] Received message type: camera
240
+ [WS] Received message type: camera
241
+ [WS] Received message type: camera
242
+ [WS] Received message type: camera
243
+ [WS] Received message type: camera
244
+ [WS] Received message type: camera
245
+ [WS] Received message type: camera
246
+ [WS] Received message type: camera
247
+ [WS] Received message type: camera
248
+ [WS] Received message type: camera
249
+ [WS] Received message type: camera
250
+ [WS] Received message type: camera
251
+ [WS] Received message type: camera
252
+ [WS] Received message type: camera
253
+ [WS] Received message type: camera
254
+ [WS] Received message type: camera
255
+ [WS] Received message type: camera
256
+ [WS] Received message type: camera
257
+ [WS] Received message type: camera
258
+ [WS] Received message type: camera
259
+ [WS] Received message type: camera
260
+ [WS] Received message type: camera
261
+ [WS] Received message type: camera
262
+ [WS] Received message type: camera
263
+ [WS] Received message type: camera
264
+ [WS] Received message type: camera
265
+ [WS] Received message type: camera
266
+ [WS] Received message type: camera
267
+ [WS] Received message type: camera
268
+ [WS] Received message type: camera
269
+ [WS] Received message type: camera
270
+ [WS] Received message type: camera
271
+ [WS] Received message type: camera
272
+ [WS] Received message type: camera
273
+ [WS] Received message type: camera
274
+ [WS] Received message type: camera
275
+ [WS] Received message type: camera
276
+ [WS] Received message type: camera
277
+ [WS] Received message type: camera
278
+ [WS] Received message type: camera
279
+ [WS] Received message type: camera
280
+ [WS] Received message type: camera
281
+ [WS] Received message type: camera
282
+ [WS] Received message type: camera
283
+ [WS] Received message type: camera
284
+ [WS] Received message type: camera
285
+ [WS] Received message type: camera
286
+ [WS] Received message type: camera
287
+ [WS] Received message type: camera
288
+ [WS] Received message type: camera
289
+ [WS] Received message type: camera
290
+ [WS] Received message type: camera
291
+ [WS] Received message type: camera
292
+ [WS] Received message type: camera
293
+ [WS] Received message type: camera
294
+ [WS] Received message type: camera
295
+ [WS] Received message type: camera
296
+ [WS] Received message type: camera
297
+ [WS] Received message type: camera
298
+ [WS] Received message type: camera
299
+ [WS] Received message type: camera
300
+ [WS] Received message type: camera
301
+ [WS] Received message type: camera
302
+ [WS] Received message type: camera
303
+ [WS] Received message type: camera
304
+ [WS] Received message type: camera
305
+ [WS] Received message type: camera
306
+ [WS] Received message type: camera
307
+ [WS] Received message type: camera
308
+ [WS] Received message type: camera
309
+ [WS] Received message type: camera
310
+ [WS] Received message type: camera
311
+ [WS] Received message type: camera
312
+ [WS] Received message type: camera
313
+ [WS] Received message type: camera
314
+ [WS] Received message type: camera
315
+ [WS] Received message type: camera
316
+ [WS] Received message type: camera
317
+ [WS] Received message type: camera
318
+ [WS] Received message type: camera
319
+ [WS] Received message type: camera
320
+ [WS] Received message type: camera
321
+ [WS] Received message type: camera
322
+ [WS] Received message type: camera
323
+ [WS] Received message type: camera
324
+ [WS] Received message type: camera
325
+ [WS] Received message type: camera
326
+ [WS] Received message type: camera
327
+ [WS] Received message type: camera
328
+ [WS] Received message type: camera
329
+ [WS] Received message type: camera
330
+ [WS] Received message type: camera
331
+ [WS] Received message type: camera
332
+ [WS] Received message type: camera
333
+ [WS] Received message type: camera
334
+ [WS] Received message type: camera
335
+ [WS] Received message type: camera
336
+ [WS] Received message type: camera
337
+ [WS] Received message type: camera
338
+ [WS] Received message type: camera
339
+ [WS] Received message type: camera
340
+ [WS] Received message type: camera
341
+ [WS] Received message type: camera
342
+ [WS] Received message type: camera
343
+ [WS] Received message type: camera
344
+ [WS] Received message type: camera
345
+ [WS] Received message type: camera
346
+ [WS] Received message type: camera
347
+ [WS] Received message type: camera
348
+ [WS] Received message type: camera
349
+ [WS] Received message type: camera
350
+ [WS] Received message type: camera
351
+ [WS] Received message type: camera
352
+ [WS] Received message type: camera
353
+ [WS] Received message type: camera
354
+ [WS] Received message type: camera
355
+ [WS] Received message type: camera
356
+ [WS] Received message type: camera
357
+ [WS] Received message type: camera
358
+ [WS] Received message type: camera
359
+ [WS] Received message type: camera
360
+ [WS] Received message type: camera
361
+ [WS] Received message type: camera
362
+ [WS] Received message type: camera
363
+ [WS] Received message type: camera
364
+ [WS] Received message type: camera
365
+ [WS] Received message type: camera
366
+ [WS] Received message type: camera
367
+ [WS] Received message type: camera
368
+ [WS] Received message type: camera
369
+ [WS] Received message type: camera
370
+ [WS] Received message type: camera
371
+ [WS] Received message type: camera
372
+ [WS] Received message type: camera
373
+ [WS] Received message type: camera
374
+ [WS] Received message type: camera
375
+ [WS] Received message type: camera
376
+ [WS] Received message type: camera
377
+ [WS] Received message type: camera
378
+ [WS] Received message type: camera
379
+ [WS] Received message type: camera
380
+ [WS] Received message type: camera
381
+ [WS] Received message type: camera
382
+ [WS] Received message type: camera
383
+ [WS] Received message type: camera
384
+ [WS] Received message type: camera
385
+ [WS] Received message type: camera
386
+ [WS] Received message type: camera
387
+ [WS] Received message type: camera
388
+ [WS] Received message type: camera
389
+ [WS] Received message type: camera
390
+ [WS] Received message type: camera
391
+ [WS] Received message type: camera
392
+ [WS] Received message type: camera
393
+ [WS] Received message type: camera
394
+ [WS] Received message type: camera
395
+ [WS] Received message type: camera
396
+ [WS] Received message type: camera
397
+ [WS] Received message type: camera
398
+ [WS] Received message type: camera
399
+ [WS] Received message type: camera
400
+ [WS] Received message type: camera
401
+ [WS] Received message type: camera
402
+ [WS] Received message type: camera
403
+ [WS] Received message type: camera
404
+ [WS] Received message type: camera
405
+ [WS] Received message type: camera
406
+ [WS] Received message type: camera
407
+ [WS] Received message type: camera
408
+ [WS] Received message type: camera
409
+ [WS] Received message type: camera
410
+ [WS] Received message type: camera
411
+ [WS] Received message type: camera
412
+ [WS] Received message type: camera
413
+ [WS] Received message type: camera
414
+ [WS] Received message type: camera
415
+ [WS] Received message type: camera
416
+ [WS] Received message type: camera
417
+ [WS] Received message type: camera
418
+ [WS] Received message type: camera
419
+ [WS] Received message type: camera
420
+ [WS] Received message type: camera
421
+ [WS] Received message type: camera
422
+ [WS] Received message type: camera
423
+ [WS] Received message type: camera
424
+ [WS] Received message type: camera
425
+ [WS] Received message type: camera
426
+ [WS] Received message type: camera
427
+ [WS] Received message type: camera
428
+ [WS] Received message type: camera
429
+ [WS] Received message type: camera
430
+ [WS] Received message type: camera
431
+ [WS] Received message type: camera
432
+ [WS] Received message type: camera
433
+ [WS] Received message type: camera
434
+ [WS] Received message type: camera
435
+ [WS] Received message type: camera
436
+ [WS] Received message type: camera
437
+ [WS] Received message type: camera
438
+ [WS] Received message type: camera
439
+ [WS] Received message type: camera
440
+ [WS] Received message type: camera
441
+ [WS] Received message type: camera
442
+ [WS] Received message type: camera
443
+ [WS] Received message type: camera
444
+ [WS] Received message type: camera
445
+ [WS] Received message type: camera
446
+ [WS] Received message type: camera
447
+ [WS] Received message type: camera
448
+ [WS] Received message type: camera
449
+ [WS] Received message type: camera
450
+ [WS] Received message type: camera
451
+ [WS] Received message type: camera
452
+ [WS] Received message type: camera
453
+ [WS] Received message type: camera
454
+ [WS] Received message type: camera
455
+ [WS] Received message type: camera
456
+ [WS] Received message type: camera
457
+ [WS] Received message type: camera
458
+ [WS] Received message type: camera
459
+ [WS] Received message type: camera
460
+ [WS] Received message type: camera
461
+ [WS] Received message type: camera
462
+ [WS] Received message type: camera
463
+ [WS] Received message type: camera
464
+ [WS] Received message type: camera
465
+ [WS] Received message type: camera
466
+ [WS] Received message type: camera
467
+ [WS] Received message type: camera
468
+ [WS] Received message type: camera
469
+ [WS] Received message type: camera
470
+ [WS] Received message type: camera
471
+ [WS] Received message type: camera
472
+ [WS] Received message type: camera
473
+ [WS] Received message type: camera
474
+ [WS] Received message type: camera
475
+ [WS] Received message type: camera
476
+ [WS] Received message type: camera
477
+ [WS] Received message type: camera
478
+ [WS] Received message type: camera
479
+ [WS] Received message type: camera
480
+ [WS] Received message type: camera
481
+ [WS] Received message type: camera
482
+ [WS] Received message type: camera
483
+ [WS] Received message type: camera
484
+ [WS] Received message type: camera
485
+ [WS] Received message type: camera
486
+ [WS] Received message type: camera
487
+ [WS] Received message type: camera
488
+ [WS] Received message type: camera
489
+ [WS] Received message type: camera
490
+ [WS] Received message type: camera
491
+ [WS] Received message type: camera
492
+ [WS] Received message type: camera
493
+ [WS] Received message type: camera
494
+ [WS] Received message type: camera
495
+ [WS] Received message type: camera
496
+ [WS] Received message type: camera
497
  [WS] Received message type: camera
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
498
  [WS] Received message type: camera
 
 
 
 
499
  [WS] Received message type: camera
500
  [WS] Received message type: camera
501
  [WS] Received message type: camera
 
526
  [WS] Received message type: camera
527
  [WS] Received message type: camera
528
  [WS] Received message type: camera
529
+ [WS] Received message type: camera
530
+ [WS] Received message type: camera
531
+ [WS] Received message type: camera
532
+ [WS] Received message type: camera
533
+ [WS] Received message type: camera
534
+ [WS] Received message type: camera
535
+ [WS] Received message type: camera
536
+ [WS] Received message type: camera
537
+ [WS] Received message type: camera
538
+ [WS] Received message type: camera
539
+ [WS] Received message type: camera
540
+ [WS] Received message type: camera
541
+ [WS] Received message type: action
542
+ [Nova Jogger] Connecting to cartesian endpoint: wss://vaxtlucd.instance.wandelbots.io/api/v1/cells/cell/motion-groups/move-tcp
543
+ [Nova Jogger] Connected to cartesian endpoint
544
+ [Nova Jogger] Cartesian X translation at 50.0 mm/s (dir: 1)
545
  [Broadcast] Non-zero teleop values: {'vx': 0.05}
546
+ [Broadcast] Sending to 2 clients, teleop non-zero values: {'vx': 0.05}
547
  [Broadcast] Actual JSON teleop_action j3 = 0.0
548
  [Broadcast] Non-zero teleop values: {'vx': 0.05}
549
+ [Broadcast] Sending to 2 clients, teleop non-zero values: {'vx': 0.05}
550
  [Broadcast] Actual JSON teleop_action j3 = 0.0
551
  [Broadcast] Non-zero teleop values: {'vx': 0.05}
552
+ [Broadcast] Sending to 2 clients, teleop non-zero values: {'vx': 0.05}
553
  [Broadcast] Actual JSON teleop_action j3 = 0.0
554
  [Broadcast] Non-zero teleop values: {'vx': 0.05}
555
+ [Broadcast] Sending to 2 clients, teleop non-zero values: {'vx': 0.05}
556
  [Broadcast] Actual JSON teleop_action j3 = 0.0
 
 
 
557
  [Broadcast] Non-zero teleop values: {'vx': 0.05}
558
+ [Broadcast] Sending to 2 clients, teleop non-zero values: {'vx': 0.05}
559
  [Broadcast] Actual JSON teleop_action j3 = 0.0
560
+ [Nova] State stream update (seq=20415316, 6 joints) payload={"seq": 20415316, "joint_position": [-3.68723464012146, -1.2210352420806885, 1.4292374849319458, -1.3314365148544312, -1.679957628250122, -0.4849919080734253], "timestamp": "2026-01-21T11:38:35.851162205Z"}
561
+ [WS] Received message type: action
562
+ [Nova Jogger] Stopped (zero velocities sent)
563
+ [WS] Received message type: action
564
+ [Nova Jogger] Cartesian Y translation at 50.0 mm/s (dir: -1)
565
+ [Broadcast] Non-zero teleop values: {'vy': -0.05}
566
+ [Broadcast] Sending to 2 clients, teleop non-zero values: {'vy': -0.05}
567
  [Broadcast] Actual JSON teleop_action j3 = 0.0
568
+ [Broadcast] Non-zero teleop values: {'vy': -0.05}
569
+ [Broadcast] Sending to 2 clients, teleop non-zero values: {'vy': -0.05}
570
  [Broadcast] Actual JSON teleop_action j3 = 0.0
571
+ [Broadcast] Non-zero teleop values: {'vy': -0.05}
572
+ [Broadcast] Sending to 2 clients, teleop non-zero values: {'vy': -0.05}
573
  [Broadcast] Actual JSON teleop_action j3 = 0.0
574
+ [Broadcast] Non-zero teleop values: {'vy': -0.05}
575
+ [Broadcast] Sending to 2 clients, teleop non-zero values: {'vy': -0.05}
576
+ [Broadcast] Actual JSON teleop_action j3 = 0.0
577
+ [Broadcast] Non-zero teleop values: {'vy': -0.05}
578
+ [Broadcast] Sending to 2 clients, teleop non-zero values: {'vy': -0.05}
579
+ [Broadcast] Actual JSON teleop_action j3 = 0.0
580
+ [WS] Received message type: action
581
+ [Nova Jogger] Stopped (zero velocities sent)
582
+ [WS] Received message type: action
583
+ [Nova Jogger] Cartesian Y translation at 50.0 mm/s (dir: 1)
584
+ [Broadcast] Non-zero teleop values: {'vy': 0.05}
585
+ [Broadcast] Sending to 2 clients, teleop non-zero values: {'vy': 0.05}
586
+ [Broadcast] Actual JSON teleop_action j3 = 0.0
587
+ [Broadcast] Non-zero teleop values: {'vy': 0.05}
588
+ [Broadcast] Sending to 2 clients, teleop non-zero values: {'vy': 0.05}
589
+ [Broadcast] Actual JSON teleop_action j3 = 0.0
590
+ [Broadcast] Non-zero teleop values: {'vy': 0.05}
591
+ [Broadcast] Sending to 2 clients, teleop non-zero values: {'vy': 0.05}
592
  [Broadcast] Actual JSON teleop_action j3 = 0.0
593
+ [Broadcast] Non-zero teleop values: {'vy': 0.05}
594
+ [Broadcast] Sending to 2 clients, teleop non-zero values: {'vy': 0.05}
595
+ [Broadcast] Actual JSON teleop_action j3 = 0.0
596
+ [Broadcast] Non-zero teleop values: {'vy': 0.05}
597
+ [Broadcast] Sending to 2 clients, teleop non-zero values: {'vy': 0.05}
598
+ [Broadcast] Actual JSON teleop_action j3 = 0.0
599
+ [Broadcast] Non-zero teleop values: {'vy': 0.05}
600
+ [Broadcast] Sending to 2 clients, teleop non-zero values: {'vy': 0.05}
601
+ [Broadcast] Actual JSON teleop_action j3 = 0.0
602
+ [Broadcast] Non-zero teleop values: {'vy': 0.05}
603
+ [Broadcast] Sending to 2 clients, teleop non-zero values: {'vy': 0.05}
604
+ [Broadcast] Actual JSON teleop_action j3 = 0.0
605
+ [Broadcast] Non-zero teleop values: {'vy': 0.05}
606
+ [Broadcast] Sending to 2 clients, teleop non-zero values: {'vy': 0.05}
607
+ [Broadcast] Actual JSON teleop_action j3 = 0.0
608
+ [Broadcast] Non-zero teleop values: {'vy': 0.05}
609
+ [Broadcast] Sending to 2 clients, teleop non-zero values: {'vy': 0.05}
610
+ [Broadcast] Actual JSON teleop_action j3 = 0.0
611
+ [WS] Received message type: action
612
+ [Nova Jogger] Stopped (zero velocities sent)
613
+ [WS] Received message type: action
614
+ [Nova Jogger] Cartesian Y translation at 50.0 mm/s (dir: -1)
615
  [Broadcast] Non-zero teleop values: {'vy': -0.05}
616
+ [Broadcast] Sending to 2 clients, teleop non-zero values: {'vy': -0.05}
617
  [Broadcast] Actual JSON teleop_action j3 = 0.0
618
  [Broadcast] Non-zero teleop values: {'vy': -0.05}
619
+ [Broadcast] Sending to 2 clients, teleop non-zero values: {'vy': -0.05}
620
  [Broadcast] Actual JSON teleop_action j3 = 0.0
621
  [Broadcast] Non-zero teleop values: {'vy': -0.05}
622
+ [Broadcast] Sending to 2 clients, teleop non-zero values: {'vy': -0.05}
623
  [Broadcast] Actual JSON teleop_action j3 = 0.0
624
  [Broadcast] Non-zero teleop values: {'vy': -0.05}
625
+ [Broadcast] Sending to 2 clients, teleop non-zero values: {'vy': -0.05}
626
  [Broadcast] Actual JSON teleop_action j3 = 0.0
627
+ [Broadcast] Non-zero teleop values: {'vy': -0.05}
628
+ [Broadcast] Sending to 2 clients, teleop non-zero values: {'vy': -0.05}
629
+ [Broadcast] Actual JSON teleop_action j3 = 0.0
630
+ [WS] Received message type: action
631
+ [Nova Jogger] Stopped (zero velocities sent)
632
+ [WS] Received message type: action
633
+ [Nova Jogger] Cartesian X translation at 50.0 mm/s (dir: -1)
634
+ [Broadcast] Non-zero teleop values: {'vx': -0.05}
635
+ [Broadcast] Sending to 2 clients, teleop non-zero values: {'vx': -0.05}
636
  [Broadcast] Actual JSON teleop_action j3 = 0.0
 
 
 
637
  [Broadcast] Non-zero teleop values: {'vx': -0.05}
638
+ [Broadcast] Sending to 2 clients, teleop non-zero values: {'vx': -0.05}
639
  [Broadcast] Actual JSON teleop_action j3 = 0.0
640
+ [Broadcast] Non-zero teleop values: {'vx': -0.05}
641
+ [Broadcast] Sending to 2 clients, teleop non-zero values: {'vx': -0.05}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
642
  [Broadcast] Actual JSON teleop_action j3 = 0.0
643
+ [Broadcast] Non-zero teleop values: {'vx': -0.05}
644
+ [Broadcast] Sending to 2 clients, teleop non-zero values: {'vx': -0.05}
645
  [Broadcast] Actual JSON teleop_action j3 = 0.0
646
+ [Broadcast] Non-zero teleop values: {'vx': -0.05}
647
+ [Broadcast] Sending to 2 clients, teleop non-zero values: {'vx': -0.05}
648
  [Broadcast] Actual JSON teleop_action j3 = 0.0
649
+ [Broadcast] Non-zero teleop values: {'vx': -0.05}
650
+ [Broadcast] Sending to 2 clients, teleop non-zero values: {'vx': -0.05}
651
  [Broadcast] Actual JSON teleop_action j3 = 0.0
652
+ [Broadcast] Non-zero teleop values: {'vx': -0.05}
653
+ [Broadcast] Sending to 2 clients, teleop non-zero values: {'vx': -0.05}
654
  [Broadcast] Actual JSON teleop_action j3 = 0.0
655
+ [Broadcast] Non-zero teleop values: {'vx': -0.05}
656
+ [Broadcast] Sending to 2 clients, teleop non-zero values: {'vx': -0.05}
657
  [Broadcast] Actual JSON teleop_action j3 = 0.0
658
+ [Broadcast] Non-zero teleop values: {'vx': -0.05}
659
+ [Broadcast] Sending to 2 clients, teleop non-zero values: {'vx': -0.05}
660
  [Broadcast] Actual JSON teleop_action j3 = 0.0
661
+ [Broadcast] Non-zero teleop values: {'vx': -0.05}
662
+ [Broadcast] Sending to 2 clients, teleop non-zero values: {'vx': -0.05}
663
+ [Broadcast] Actual JSON teleop_action j3 = 0.0
664
+ [Broadcast] Non-zero teleop values: {'vx': -0.05}
665
+ [Broadcast] Sending to 2 clients, teleop non-zero values: {'vx': -0.05}
666
+ [Broadcast] Actual JSON teleop_action j3 = 0.0
667
+ [WS] Received message type: action
668
+ [Nova Jogger] Stopped (zero velocities sent)
669
+ [WS] Received message type: action
670
+ [Nova Jogger] Cartesian X translation at 50.0 mm/s (dir: 1)
671
  [Broadcast] Non-zero teleop values: {'vx': 0.05}
672
+ [Broadcast] Sending to 2 clients, teleop non-zero values: {'vx': 0.05}
673
  [Broadcast] Actual JSON teleop_action j3 = 0.0
674
  [Broadcast] Non-zero teleop values: {'vx': 0.05}
675
+ [Broadcast] Sending to 2 clients, teleop non-zero values: {'vx': 0.05}
676
  [Broadcast] Actual JSON teleop_action j3 = 0.0
677
  [Broadcast] Non-zero teleop values: {'vx': 0.05}
678
+ [Broadcast] Sending to 2 clients, teleop non-zero values: {'vx': 0.05}
679
  [Broadcast] Actual JSON teleop_action j3 = 0.0
680
  [Broadcast] Non-zero teleop values: {'vx': 0.05}
681
+ [Broadcast] Sending to 2 clients, teleop non-zero values: {'vx': 0.05}
682
  [Broadcast] Actual JSON teleop_action j3 = 0.0
683
+ [WS] Received message type: action
684
  [Nova Jogger] Stopped (zero velocities sent)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
685
  [WS] Received message type: camera
686
  [WS] Received message type: camera
687
  [WS] Received message type: camera
 
763
  [WS] Received message type: camera
764
  [WS] Received message type: camera
765
  [WS] Received message type: camera
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
766
  [WS] Received message type: camera
767
  [WS] Received message type: camera
768
  [WS] Received message type: camera
 
788
  [WS] Received message type: camera
789
  [WS] Received message type: camera
790
  [WS] Received message type: camera
791
+ [WS] Received message type: camera
792
+ [WS] Received message type: camera
793
+ [WS] Received message type: camera
794
+ [WS] Received message type: camera
795
+ [WS] Received message type: camera
796
+ [WS] Received message type: camera
797
+ [WS] Received message type: camera
798
+ [WS] Received message type: camera
799
+ [WS] Received message type: camera
800
+ [Nova] State stream update (seq=20416684, 6 joints) payload={"seq": 20416684, "joint_position": [-3.7549033164978027, -1.3193519115447998, 1.5616960525512695, -1.373165249824524, -1.7090238332748413, -0.5465713143348694], "timestamp": "2026-01-21T11:38:45.888551092Z"}127.0.0.1 - - [21/Jan/2026 12:38:49] "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 -
801
+ 127.0.0.1 - - [21/Jan/2026 12:38:50] "GET /nova-sim/api/v1 HTTP/1.1" 200 -
802
+ 127.0.0.1 - - [21/Jan/2026 12:38:50] "GET /nova-sim/api/v1/ws HTTP/1.1" 200 -
803
+ 127.0.0.1 - - [21/Jan/2026 12:38:50] "GET /nova-sim/api/v1/video_feed HTTP/1.1" 200 -
804
+ 127.0.0.1 - - [21/Jan/2026 12:38:50] "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 -
805
+ 127.0.0.1 - - [21/Jan/2026 12:38:51] "GET /nova-sim/api/v1/metadata HTTP/1.1" 200 -
806
+ 127.0.0.1 - - [21/Jan/2026 12:38:51] "GET /nova-sim/api/v1/env HTTP/1.1" 200 -
807
+ 127.0.0.1 - - [21/Jan/2026 12:38:51] "GET /nova-sim/api/v1/video_feed?ts=1768995531118 HTTP/1.1" 200 -
808
+ 127.0.0.1 - - [21/Jan/2026 12:38:51] "GET /nova-sim/api/v1/env HTTP/1.1" 200 -
809
+ 127.0.0.1 - - [21/Jan/2026 12:38:51] "GET /nova-sim/api/v1/camera/aux_top/video_feed?ts=1768995531128 HTTP/1.1" 200 -
810
+ 127.0.0.1 - - [21/Jan/2026 12:38:51] "GET /nova-sim/api/v1/camera/aux_side/video_feed?ts=1768995531128 HTTP/1.1" 200 -
811
+ 127.0.0.1 - - [21/Jan/2026 12:38:51] "GET /nova-sim/api/v1/camera/aux_flange/video_feed?ts=1768995531128 HTTP/1.1" 200 -
812
+
813
+ WebSocket client disconnected
814
+ WebSocket client connected
815
+ [WS] Received message type: camera
816
+ [WS] Received message type: action
817
+ [Nova Jogger] Cartesian X translation at 50.0 mm/s (dir: 1)
818
+ [Broadcast] Non-zero teleop values: {'vx': 0.05}
819
+ [Broadcast] Sending to 2 clients, teleop non-zero values: {'vx': 0.05}
820
  [Broadcast] Actual JSON teleop_action j3 = 0.0
821
+ [Broadcast] Non-zero teleop values: {'vx': 0.05}
822
+ [Broadcast] Sending to 2 clients, teleop non-zero values: {'vx': 0.05}
 
823
  [Broadcast] Actual JSON teleop_action j3 = 0.0
824
+ [Broadcast] Non-zero teleop values: {'vx': 0.05}
825
+ [Broadcast] Sending to 2 clients, teleop non-zero values: {'vx': 0.05}
826
  [Broadcast] Actual JSON teleop_action j3 = 0.0
827
+ [Broadcast] Non-zero teleop values: {'vx': 0.05}
828
+ [Broadcast] Sending to 2 clients, teleop non-zero values: {'vx': 0.05}
829
  [Broadcast] Actual JSON teleop_action j3 = 0.0
830
+ [Broadcast] Non-zero teleop values: {'vx': 0.05}
831
+ [Broadcast] Sending to 2 clients, teleop non-zero values: {'vx': 0.05}
832
  [Broadcast] Actual JSON teleop_action j3 = 0.0
833
+ [WS] Received message type: action
834
  [Nova Jogger] Stopped (zero velocities sent)
835
+ [WS] Received message type: action
836
+ [Nova Jogger] Cartesian Y translation at 50.0 mm/s (dir: -1)
 
837
  [Broadcast] Non-zero teleop values: {'vy': -0.05}
838
+ [Broadcast] Sending to 2 clients, teleop non-zero values: {'vy': -0.05}
839
+ [Broadcast] Actual JSON teleop_action j3 = 0.0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
840
  [Broadcast] Non-zero teleop values: {'vy': -0.05}
841
+ [Broadcast] Sending to 2 clients, teleop non-zero values: {'vy': -0.05}
842
+ [Broadcast] Actual JSON teleop_action j3 = 0.0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
843
  [Broadcast] Non-zero teleop values: {'vy': -0.05}
844
+ [Broadcast] Sending to 2 clients, teleop non-zero values: {'vy': -0.05}
845
+ [Broadcast] Actual JSON teleop_action j3 = 0.0
846
+ [WS] Received message type: action
847
+ [Nova Jogger] Stopped (zero velocities sent)
848
+ [Nova] State stream update (seq=20418064, 6 joints) payload={"seq": 20418064, "joint_position": [-3.7563540935516357, -1.2321059703826904, 1.4462759494781494, -1.3451716899871826, -1.7096422910690308, -0.5478959083557129], "timestamp": "2026-01-21T11:38:55.967287738Z"}
849
+ [WS] Received message type: home
850
+ 🏠 Starting homing sequence for 6 joints
851
+ Homing joint 1...
852
+ [Nova Jogger] Stopped (zero velocities sent)
853
+ [Nova Jogger] Receive error: sent 1000 (OK); then received 1000 (OK)
854
+ [Nova Jogger] Connecting to joint endpoint: wss://vaxtlucd.instance.wandelbots.io/api/v1/cells/cell/motion-groups/move-joint
855
+ [Nova Jogger] Connected to joint endpoint
856
+ [Nova Jogger] Joint 0 jogging at 0.15 rad/s
857
+ J1: err=2.1856, dir=+, vel=0.150
858
+ [WS] Received message type: home
859
+ [WS] Received message type: home
860
+ [WS] Received message type: home
861
+ [WS] Received message type: home
862
+ [WS] Received message type: home
863
+ [WS] Received message type: home
864
+ [WS] Received message type: home
865
+ [WS] Received message type: home
866
+ [WS] Received message type: home
867
+ [WS] Received message type: home
868
+ [WS] Received message type: stop_home
869
+ [Nova Jogger] Stopped (zero velocities sent)
870
+ ⏸ Homing stopped by user
871
+ [WS] Received message type: stop_home
872
+ [WS] Received message type: home
873
+ 🏠 Starting homing sequence for 6 joints
874
+ → Homing joint 1...
875
+ [Nova Jogger] Joint 0 jogging at 0.15 rad/s
876
+ J1: err=2.0384, dir=+, vel=0.150
877
+ [WS] Received message type: home
878
+ [WS] Received message type: home
879
+ [WS] Received message type: home
880
+ [WS] Received message type: stop_home
881
+ [Nova Jogger] Stopped (zero velocities sent)
882
+ ⏸ Homing stopped by user
883
+ [WS] Received message type: stop_home
884
+ [WS] Received message type: home
885
+ 🏠 Starting homing sequence for 6 joints
886
+ → Homing joint 1...
887
+ [Nova Jogger] Joint 0 jogging at 0.15 rad/s
888
+ J1: err=1.9932, dir=+, vel=0.150
889
+ [WS] Received message type: home
890
+ [WS] Received message type: home
891
+ [WS] Received message type: home
892
+ [WS] Received message type: home
893
+ [WS] Received message type: home
894
+ [WS] Received message type: home
895
+ [WS] Received message type: home
896
+ [WS] Received message type: home
897
+ [WS] Received message type: home
898
+ [WS] Received message type: home
899
+ [WS] Received message type: home
900
+ [WS] Received message type: home
901
+ [WS] Received message type: home
902
+ [WS] Received message type: home
903
+ [WS] Received message type: home
904
+ [WS] Received message type: home
905
+ [WS] Received message type: home
906
+ [WS] Received message type: home
907
+ [WS] Received message type: home
908
+ [WS] Received message type: home
909
+ [WS] Received message type: home
910
+ [WS] Received message type: home
911
+ [Nova] State stream update (seq=20419432, 6 joints) payload={"seq": 20419432, "joint_position": [-3.212111473083496, -1.2321059703826904, 1.4462759494781494, -1.3451716899871826, -1.7096422910690308, -0.5478959083557129], "timestamp": "2026-01-21T11:39:05.973094016Z"}
912
+ [WS] Received message type: home
913
+ [WS] Received message type: home
914
+ [WS] Received message type: home
915
+ [WS] Received message type: home
916
+ [WS] Received message type: home
917
+ [WS] Received message type: home
918
+ [WS] Received message type: home
919
+ [WS] Received message type: home
920
+ [WS] Received message type: home
921
+ [WS] Received message type: home
922
+ [WS] Received message type: home
923
+ [WS] Received message type: home
924
+ [WS] Received message type: home
925
+ [WS] Received message type: home
926
+ [WS] Received message type: home
927
+ [WS] Received message type: home
928
+ [WS] Received message type: home
929
+ [WS] Received message type: home
930
+ [WS] Received message type: home
931
+ [WS] Received message type: home
932
+ [WS] Received message type: home
933
+ [WS] Received message type: home
934
+ [WS] Received message type: home
935
+ [WS] Received message type: home
936
+ [WS] Received message type: home
937
+ [WS] Received message type: home
938
+ [WS] Received message type: home
939
+ [WS] Received message type: home
940
+ [WS] Received message type: home
941
+ [WS] Received message type: home
942
+ [WS] Received message type: home
943
+ [WS] Received message type: home
944
+ [WS] Received message type: home
945
+ [WS] Received message type: home
946
+ [WS] Received message type: home
947
+ [WS] Received message type: home
948
+ [WS] Received message type: home
949
+ [WS] Received message type: home
950
+ [WS] Received message type: home
951
+ [WS] Received message type: home
952
+ [WS] Received message type: home
953
+ [WS] Received message type: home
954
+ [WS] Received message type: home
955
+ [WS] Received message type: home
956
+ [WS] Received message type: home
957
+ [WS] Received message type: home
958
+ [WS] Received message type: home
959
+ [WS] Received message type: home
960
+ [WS] Received message type: home
961
+ [WS] Received message type: home
962
+ [WS] Received message type: stop_home
963
+ [Nova Jogger] Stopped (zero velocities sent)
964
+ ⏸ Homing stopped by user
965
+ [WS] Received message type: home
966
+ 🏠 Starting homing sequence for 6 joints
967
+ → Homing joint 1...
968
+ [Nova Jogger] Joint 0 jogging at 0.15 rad/s
969
+ J1: err=0.8212, dir=+, vel=0.150
970
+ [WS] Received message type: home
971
+ [WS] Received message type: home
972
+ [WS] Received message type: home
973
+ [WS] Received message type: home
974
+ [WS] Received message type: home
975
+ [WS] Received message type: home
976
+ [WS] Received message type: stop_home
977
+ [Nova Jogger] Stopped (zero velocities sent)
978
+ ⏸ Homing stopped by user
979
+ [WS] Received message type: stop_home
980
+ [WS] Received message type: control_mode
981
+ [WS] Received message type: control_mode
982
+ [WS] Received message type: home
983
+ 🏠 Starting homing sequence for 6 joints
984
+ → Homing joint 1...
985
+ [Nova Jogger] Joint 0 jogging at 0.15 rad/s
986
+ J1: err=0.7257, dir=+, vel=0.150
987
+ [WS] Received message type: home
988
+ [WS] Received message type: home
989
+ [WS] Received message type: home
990
+ [WS] Received message type: home
991
+ [WS] Received message type: home
992
+ [WS] Received message type: home
993
+ [WS] Received message type: home
994
+ [WS] Received message type: home
995
+ [WS] Received message type: home
996
+ [WS] Received message type: home
997
+ [WS] Received message type: home
998
+ [WS] Received message type: home
999
+ [Nova] State stream update (seq=20420800, 6 joints) payload={"seq": 20420800, "joint_position": [-2.1125688552856445, -1.2321059703826904, 1.4462759494781494, -1.3451716899871826, -1.7096422910690308, -0.5478959083557129], "timestamp": "2026-01-21T11:39:16.006326479Z"}
1000
+ [WS] Received message type: home
1001
+ [WS] Received message type: home
1002
+ [WS] Received message type: home
1003
+ [WS] Received message type: stop_home
1004
+ [Nova Jogger] Stopped (zero velocities sent)
1005
+ ⏸ Homing stopped by user
1006
+ [WS] Received message type: home
1007
+ 🏠 Starting homing sequence for 6 joints
1008
+ → Homing joint 6...
1009
+ [Nova Jogger] Joint 5 jogging at 0.15 rad/s
1010
+ J6: err=0.5479, dir=+, vel=0.150
1011
+ [WS] Received message type: home
1012
+ [WS] Received message type: home
1013
+ [WS] Received message type: home
1014
+ [WS] Received message type: home
1015
+ [WS] Received message type: home
1016
+ [WS] Received message type: home
1017
+ [WS] Received message type: home
1018
+ [WS] Received message type: stop_home
1019
+ [Nova Jogger] Stopped (zero velocities sent)
1020
+ ⏸ Homing stopped by user
1021
+ [WS] Received message type: home
1022
+ 🏠 Starting homing sequence for 6 joints
1023
+ → Homing joint 1...
1024
+ [Nova Jogger] Joint 0 jogging at 0.15 rad/s
1025
+ J1: err=0.4753, dir=+, vel=0.150
1026
+ [WS] Received message type: home
1027
+ [WS] Received message type: home
1028
+ [WS] Received message type: home
1029
+ [WS] Received message type: home
1030
+ [WS] Received message type: home
1031
+ [WS] Received message type: home
1032
+ [WS] Received message type: home
1033
+ [WS] Received message type: home
1034
+ [WS] Received message type: home
1035
+ [WS] Received message type: home
1036
+ [WS] Received message type: home
1037
+ [WS] Received message type: home
1038
+ [WS] Received message type: home
1039
+ [WS] Received message type: home
1040
+ [WS] Received message type: home
1041
+ [WS] Received message type: home
1042
+ [WS] Received message type: home
1043
+ [WS] Received message type: home
1044
+ [WS] Received message type: home
1045
+ [WS] Received message type: home
1046
+ [WS] Received message type: home
1047
+ [WS] Received message type: home
1048
+ [WS] Received message type: home
1049
+ [WS] Received message type: home
1050
+ [WS] Received message type: home
1051
+ [WS] Received message type: home
1052
+ [WS] Received message type: home
1053
+ [WS] Received message type: home
1054
+ [WS] Received message type: home
1055
+ [WS] Received message type: home
1056
+ [WS] Received message type: home
1057
+ [Nova Jogger] Stopped (zero velocities sent)
1058
+ ✓ Joint 1 reached target (error: 0.0002 rad)
1059
+ → Homing joint 6...
1060
+ [WS] Received message type: home
1061
+ [Nova Jogger] Joint 5 jogging at 0.15 rad/s
1062
+ J6: err=0.4283, dir=+, vel=0.150
1063
+ [WS] Received message type: home
1064
+ [WS] Received message type: home
1065
+ [WS] Received message type: home
1066
+ [WS] Received message type: home
1067
+ [WS] Received message type: home
1068
+ [WS] Received message type: home
1069
+ [WS] Received message type: home
1070
+ [WS] Received message type: home
1071
+ [WS] Received message type: home
1072
+ [WS] Received message type: home
1073
+ [WS] Received message type: home
1074
+ [WS] Received message type: home
1075
+ [WS] Received message type: home
1076
+ [WS] Received message type: home
1077
+ [WS] Received message type: home
1078
+ [WS] Received message type: home
1079
+ [WS] Received message type: stop_home
1080
+ [Nova Jogger] Stopped (zero velocities sent)
1081
+ ⏸ Homing stopped by user
1082
+ [WS] Received message type: home
1083
+ 🏠 Starting homing sequence for 6 joints
1084
+ → Homing joint 2...
1085
+ [Nova Jogger] Joint 1 jogging at -0.15 rad/s
1086
+ J2: err=-0.3388, dir=-, vel=0.150
1087
+ [WS] Received message type: home
1088
+ [WS] Received message type: home
1089
+ [WS] Received message type: home
1090
+ [WS] Received message type: home
1091
+ [WS] Received message type: home
1092
+ [WS] Received message type: home
1093
+ [WS] Received message type: home
1094
+ [WS] Received message type: home
1095
+ [WS] Received message type: home
1096
+ [WS] Received message type: home
1097
+ [WS] Received message type: home
1098
+ [WS] Received message type: home
1099
+ [WS] Received message type: home
1100
+ [WS] Received message type: home
1101
+ [WS] Received message type: home
1102
+ [WS] Received message type: home
1103
+ [WS] Received message type: home
1104
+ [WS] Received message type: home
1105
+ [WS] Received message type: home
1106
+ [WS] Received message type: home
1107
+ [WS] Received message type: home
1108
+ [WS] Received message type: home
1109
+ [WS] Received message type: home
1110
+ [Nova Jogger] Stopped (zero velocities sent)
1111
+ ✓ Joint 2 reached target (error: 0.0022 rad)
1112
+ → Homing joint 4...
1113
+ [WS] Received message type: home
1114
+ [Nova Jogger] Joint 3 jogging at -0.15 rad/s
1115
+ J4: err=-0.2256, dir=-, vel=0.150
1116
+ [WS] Received message type: home
1117
+ [WS] Received message type: home
1118
+ [WS] Received message type: home
1119
+ [WS] Received message type: home
1120
+ [WS] Received message type: home
1121
+ [WS] Received message type: home
1122
+ [WS] Received message type: home
1123
+ [Nova] State stream update (seq=20422168, 6 joints) payload={"seq": 20422168, "joint_position": [-1.5449260473251343, -1.5976773500442505, 1.4462759494781494, -1.4450716972351074, -1.7096422910690308, -0.1647532433271408], "timestamp": "2026-01-21T11:39:26.010412039Z"}
1124
+ [WS] Received message type: home
1125
+ [WS] Received message type: home
1126
+ [WS] Received message type: home
1127
+ [WS] Received message type: home
1128
+ [WS] Received message type: home
1129
+ [WS] Received message type: home
1130
+ [WS] Received message type: home
1131
+ [WS] Received message type: home
1132
+ [WS] Received message type: home
1133
+ [Nova Jogger] Stopped (zero velocities sent)
1134
+ ✓ Joint 4 reached target (error: 0.0039 rad)
1135
+ → Homing joint 6...
1136
+ [WS] Received message type: home
1137
+ [Nova Jogger] Joint 5 jogging at 0.15 rad/s
1138
+ J6: err=0.1648, dir=+, vel=0.150
1139
+ [WS] Received message type: home
1140
+ [WS] Received message type: home
1141
+ [WS] Received message type: home
1142
+ [WS] Received message type: home
1143
+ [WS] Received message type: home
1144
+ [WS] Received message type: home
1145
+ [WS] Received message type: home
1146
+ [WS] Received message type: home
1147
+ [WS] Received message type: home
1148
+ [WS] Received message type: home
1149
+ [WS] Received message type: home
1150
+ [WS] Received message type: home
1151
+ [Nova Jogger] Stopped (zero velocities sent)
1152
+ ✓ Joint 6 reached target (error: 0.0051 rad)
1153
+ → Homing joint 5...
1154
+ [WS] Received message type: home
1155
+ [Nova Jogger] Joint 4 jogging at 0.14 rad/s
1156
+ J5: err=0.1388, dir=+, vel=0.139
1157
+ [WS] Received message type: home
1158
+ [WS] Received message type: home
1159
+ [WS] Received message type: home
1160
+ [WS] Received message type: home
1161
+ [WS] Received message type: home
1162
+ [WS] Received message type: home
1163
+ [WS] Received message type: home
1164
+ [WS] Received message type: home
1165
+ [WS] Received message type: home
1166
+ [WS] Received message type: home
1167
+ [WS] Received message type: home
1168
+ [Nova Jogger] Stopped (zero velocities sent)
1169
+ ✓ Joint 5 reached target (error: 0.0022 rad)
1170
+ → Homing joint 3...
1171
+ [WS] Received message type: home
1172
+ [Nova Jogger] Joint 2 jogging at 0.12 rad/s
1173
+ J3: err=0.1245, dir=+, vel=0.125
1174
+ [WS] Received message type: home
1175
+ [WS] Received message type: home
1176
+ [WS] Received message type: home
1177
+ [WS] Received message type: home
1178
+ [WS] Received message type: home
1179
+ [WS] Received message type: home
1180
+ [WS] Received message type: home
1181
+ [WS] Received message type: home
1182
+ [WS] Received message type: home
1183
+ [WS] Received message type: home
1184
+ [WS] Received message type: home
1185
+ [Nova Jogger] Stopped (zero velocities sent)
1186
+ ✓ Joint 3 reached target (error: 0.0040 rad)
1187
+ → Homing joint 1...
1188
+ [WS] Received message type: home
1189
+ [Nova Jogger] Joint 0 jogging at -0.03 rad/s
1190
+ J1: err=-0.0259, dir=-, vel=0.026
1191
+ [WS] Received message type: home
1192
+ [WS] Received message type: home
1193
+ [WS] Received message type: home
1194
+ [WS] Received message type: home
1195
+ [WS] Received message type: home
1196
+ [WS] Received message type: home
1197
+ [WS] Received message type: home
1198
+ [WS] Received message type: home
1199
+ [Nova Jogger] Stopped (zero velocities sent)
1200
+ ✓ Joint 1 reached target (error: 0.0088 rad)
1201
+ ✓ Homing sequence complete!
1202
+ [WS] Received message type: home
1203
+ 🏠 Starting homing sequence for 5 joints
1204
+ → Homing joint 2...
1205
+ [Nova Jogger] Joint 1 jogging at 0.03 rad/s
1206
+ J2: err=0.0269, dir=+, vel=0.027
1207
+ [WS] Received message type: home
1208
+ [WS] Received message type: home
1209
+ [WS] Received message type: home
1210
+ [WS] Received message type: home
1211
+ [WS] Received message type: home
1212
+ [WS] Received message type: home
1213
+ [WS] Received message type: home
1214
+ [WS] Received message type: home
1215
+ [Nova Jogger] Stopped (zero velocities sent)
1216
+ ✓ Joint 2 reached target (error: 0.0093 rad)
1217
+ → Homing joint 4...
1218
+ [WS] Received message type: home
1219
+ [Nova Jogger] Joint 3 jogging at 0.02 rad/s
1220
+ J4: err=0.0247, dir=+, vel=0.025
1221
+ [WS] Received message type: home
1222
+ [WS] Received message type: home
1223
+ [WS] Received message type: home
1224
+ [WS] Received message type: home
1225
+ [WS] Received message type: home
1226
+ [WS] Received message type: home
1227
+ [WS] Received message type: home
1228
+ [WS] Received message type: home
1229
+ [Nova Jogger] Stopped (zero velocities sent)
1230
+ ✓ Joint 4 reached target (error: 0.0089 rad)
1231
+ → Homing joint 5...
1232
+ [WS] Received message type: home
1233
+ [Nova Jogger] Joint 4 jogging at -0.02 rad/s
1234
+ J5: err=-0.0196, dir=-, vel=0.020
1235
+ [WS] Received message type: home
1236
+ [WS] Received message type: home
1237
+ [WS] Received message type: home
1238
+ [WS] Received message type: home
1239
+ [WS] Received message type: home
1240
+ [WS] Received message type: home
1241
+ [WS] Received message type: home
1242
+ [Nova Jogger] Stopped (zero velocities sent)
1243
+ ✓ Joint 5 reached target (error: 0.0091 rad)