sl-webui f71dad5344 feat(arch): migrate all STM32/Mamba/BlackPill refs to ESP32 BALANCE/IO + fix roslib@1.4.0
Architecture change (2026-04-03): Mamba F722S (STM32F722) and BlackPill
replaced by ESP32 BALANCE (PID loop) and ESP32 IO (motors/sensors/comms).

- Update CLAUDE.md, docs, chassis BOM/ASSEMBLY, pinout, power-budget,
  wiring-diagram, TEAM.md, AUTONOMOUS_ARMING.md, docker-compose
- Update all ROS2 package comments, config labels, launch args
  (stm32_port→esp32_port, /dev/stm32-bridge→/dev/esp32-bridge)
- Update WebUI: stm32Mode→esp32Mode, stm32Version→esp32Version,
  "STM32 State/Mode" labels → "ESP32 State/Mode" (ControlMode, SettingsPanel)
- Add TODO(esp32-migration) markers on stm32_protocol.py and mamba_protocol.py
  binary frame layouts — pending ESP32 protocol spec from max
- Fix roslib CDN 1.3.0→1.4.0 in all 11 HTML panels (fixes ROS2 Humble
  rosbridge "Received a message without an op" incompatibility)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-04 08:25:24 -04:00

49 lines
3.3 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# saltybot_properties.yaml — SaltyBot robot dimensions
# Sourced from chassis/chassis_frame.scad and chassis/ASSEMBLY.md (Rev A 2026-02-28)
# All values in SI units (meters, kilograms, radians).
# Update after physical measurement of the built robot.
robot:
# ── Drivetrain ─────────────────────────────────────────────────────────────
# WHEELBASE = 600mm (chassis_frame.scad)
wheel_separation: 0.600 # m, lateral center-to-center between axles
# 8-inch hoverboard hub motor: 203mm overall wheel+tire diameter / 2
wheel_radius: 0.1015 # m
# Hub motor housing width (measured, approx)
wheel_width: 0.065 # m
# ── Ground clearance / body height ─────────────────────────────────────────
# AXLE_HEIGHT = 310mm (chassis_frame.scad) — axle CL above flat ground
axle_height: 0.310 # m (= base_footprint → base_link z-offset)
# ── Main deck ──────────────────────────────────────────────────────────────
# Deck: 640×220×6mm aluminum plate (chassis_frame.scad)
deck_length: 0.640 # m (x-axis, fore-aft)
deck_width: 0.220 # m (y-axis, lateral)
deck_thickness: 0.006 # m DECK_THICKNESS = 6mm
# ── Stem ───────────────────────────────────────────────────────────────────
# 38.1mm (1.5") EMT conduit, cut ~1050mm (stem_battery_clamp.scad)
stem_od: 0.0381 # m STEM_OD = 38.1mm
stem_height: 1.050 # m nominal cut length
# ── FC / IMU (ESP32 BALANCE) ──────────────────────────────────────────────────
# fc_x = -50mm in SCAD (front = -X SCAD = +X ROS REP-105)
# z = deck_thickness/2 + mounting_pad(3mm) + standoff(6mm) = 12mm
imu_x: 0.050 # m forward of base_link center
imu_y: 0.000 # m
imu_z: 0.012 # m above base_link (pad + standoff)
# ── Sensor head (top of stem) ───────────────────────────────────────────────
# sensor_head.scad: ARM_R = 50mm, COL_H = 36mm
sensor_head_arm_radius: 0.050 # m ARM_R — radial arm length from stem CL
sensor_head_collar_h: 0.036 # m COL_H — collar height (RPLIDAR above ring)
# IMX219 and RealSense tilt 10° nose-down (from sensor_head.scad note)
camera_tilt_down_deg: 10 # degrees downward from horizontal
# ── Mass estimates (for inertials / Gazebo) ─────────────────────────────────
# TODO: update with scale measurements before simulation
chassis_mass: 3.0 # kg deck + frame + forks
wheel_mass: 1.5 # kg per wheel (hub motor)
payload_mass: 2.5 # kg Jetson + battery + electronics