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>
49 lines
3.3 KiB
YAML
49 lines
3.3 KiB
YAML
# 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
|