Skip to content

Instantly share code, notes, and snippets.

Call chain: framesystem.NewFromService → proto: invalid type: *float64

vmodutils

rdk

xArm exposing upstream bug that shows up as: proto: invalid type: *float64

Summary

Any resource that depends on the frame system service (e.g. multi-arm-position-switch) fails to construct with:

rpc error: code = Unknown desc = unable to construct structpb.Struct from map ...: proto: invalid type: *float64
# xArm exposing upstream bug that shows up as: `proto: invalid type: *float64`
## Summary
Any resource that depends on the frame system service (e.g. `multi-arm-position-switch`) fails to construct with:
```
rpc error: code = Unknown desc = unable to construct structpb.Struct from map ...: proto: invalid type: *float64
```
Here's the full call chain, each step pinned to the exact commit so the line numbers won't drift.
1. The xArm module builds a kinematics document with non-nil speed/accel limits
Repo: viam-modules/viam-ufactory-xarm, commit a8745a4 (first shipped in v1.1.34-rc10).
NewXArm constructs the model, passing the arm's effective speed and acceleration: arm/xarm.go#L594
Config.speed() / Config.acceleration() fall back to non-zero module defaults whenever unconfigured — never actually 0: arm/xarm.go#L274, #L281
MakeModelFrame builds a JointLimits entry per joint with both fields set as pointers: arm/xarm.go#L393
and hands that map to RDK: arm/xarm.go#L412 → referenceframe.SetJointLimits(cfg, limits)
@EshaMaharishi
EshaMaharishi / plot_time_for.py
Created April 20, 2026 21:44
plot_time_for.py
#!/usr/bin/env python3
"""Plot safetyMonitored* call durations from viam-server log."""
import re
import sys
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
import numpy as np
@EshaMaharishi
EshaMaharishi / plot_step_times.py
Created April 20, 2026 21:36
plot_step_times.py
#!/usr/bin/env python3
"""Plot per-step MoveThroughJointPositions call durations.
Usage: python3 plot_step_times.py [step_times.csv] [output.png]
"""
import csv
import sys
import matplotlib
matplotlib.use("Agg")
@EshaMaharishi
EshaMaharishi / move_through_joint_positions_loop.go
Last active April 20, 2026 21:41
move_through_joint_positions_loop.go
package main
import (
"context"
"crypto/tls"
"flag"
"fmt"
"os"
"time"
diff --git a/robot/session_web.go b/robot/session_web.go
index 8d6a3f919..ea0ef4f90 100644
--- a/robot/session_web.go
+++ b/robot/session_web.go
@@ -2,8 +2,10 @@ package robot
import (
"context"
+ "fmt"
"strings"
diff --git a/robot/session_web.go b/robot/session_web.go
index 8d6a3f919..ea0ef4f90 100644
--- a/robot/session_web.go
+++ b/robot/session_web.go
@@ -2,8 +2,10 @@ package robot
import (
"context"
+ "fmt"
"strings"
diff --git a/etc/evergreen.yml b/etc/evergreen.yml
index ec8835979cc..aa83986c473 100644
--- a/etc/evergreen.yml
+++ b/etc/evergreen.yml
@@ -419,9 +419,10 @@ buildvariants:
- name: .stitch
- name: secondary_reads_passthrough_gen
- name: server_discovery_and_monitoring_json_test_TG
- - name: .serverless !.multiversion
- distros: