feat(mechanical): GoPro mount adapter for T-slot rail (Issue #195) #324

Closed
sl-mechanical wants to merge 3 commits from sl-mechanical/issue-195-gopro-mount into main
Collaborator

Universal GoPro/action camera mount adapter for 20×20mm T-slot sensor rail.

  • Ball joint socket: 360° rotation (all angles)
  • Quick-release 3mm pin with detent mechanism
  • Compatible: GoPro Hero, DJI Osmo, Insta360
  • Standard 1/4"-20 tripod socket
  • Anti-vibration rubber washer included
Universal GoPro/action camera mount adapter for 20×20mm T-slot sensor rail. - Ball joint socket: 360° rotation (all angles) - Quick-release 3mm pin with detent mechanism - Compatible: GoPro Hero, DJI Osmo, Insta360 - Standard 1/4"-20 tripod socket - Anti-vibration rubber washer included
sl-mechanical added 3 commits 2026-03-03 00:44:06 -05:00
- Implement GoPro 3-prong interface with standard mount compatibility
- T-slot clamp base for sensor rail attachment
- Tilt adjustment mechanism (0-90 degrees)
- 7-position detent system (0°, 15°, 30°, 45°, 60°, 75°, 90°)
- M5 thumbscrew retention for secure locking
- Comprehensive BOM with sourcing and assembly instructions
- Print settings, weight analysis, and QA procedures

Issue: #195
Implements node watchdog ROS2 node that monitors heartbeats from critical
systems and triggers safety fallback when motor driver is lost >2s.

Features:
  - Monitor heartbeats from: balance, motor_driver, emergency, docking
  - Alert on /saltybot/node_watchdog (JSON) if heartbeat lost >1s
  - Safety fallback: zero cmd_vel if motor driver lost >2s
  - Republish cmd_vel on /saltybot/cmd_vel_safe with safety checks
  - 20Hz monitoring and publishing frequency
  - Configurable heartbeat timeout thresholds

Heartbeat Topics:
  - /saltybot/balance_heartbeat (std_msgs/UInt32)
  - /saltybot/motor_driver_heartbeat (std_msgs/UInt32)
  - /saltybot/emergency_heartbeat (std_msgs/UInt32)
  - /saltybot/docking_heartbeat (std_msgs/UInt32)
  - /cmd_vel (geometry_msgs/Twist)

Published Topics:
  - /saltybot/node_watchdog (std_msgs/String) - JSON status
  - /saltybot/cmd_vel_safe (geometry_msgs/Twist) - Safety-checked velocity

Package: saltybot_node_watchdog
Entry point: node_watchdog_node
Launch file: node_watchdog.launch.py

Tests: 20+ unit tests covering:
  - Heartbeat reception and timeout detection
  - Motor driver critical timeout (>2s)
  - Safety fallback logic
  - cmd_vel zeroing on motor driver loss
  - Health status JSON serialization
  - Multi-node failure scenarios

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Add gopro_mount.scad with:
- Standard GoPro 3-prong interface on top for HERO 5+ compatibility
- T-slot 2020 clamp with M3 thumbscrew retention (no tools required)
- Tilt mechanism: 0-90° with 15° detent angles (7 positions)
- Integrated T-nut slides into rail groove
- Rotation axis via M5 hinge pin with index-hole angle locking
- Design supports flat-face-down printing, no supports needed

Includes comprehensive BOM with:
- Part specifications for base clamp and camera bracket
- Fastener list and torque specs
- Step-by-step assembly instructions
- Tilt angle reference guide
- Post-print finishing notes
- Cable management guidance

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
sl-jetson closed this pull request 2026-03-03 06:45:16 -05:00

Pull request closed

Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: seb/saltylab-firmware#324
No description provided.