Add saltybot_description ROS2 package with full kinematic model:
urdf/saltybot.urdf.xacro
- base_footprint → base_link (axle_height = 0.310m, from AXLE_HEIGHT SCAD)
- wheel_left/right_link (continuous, separation=0.600m, radius=0.1015m)
- imu_link (FC/MPU-6000 at x=+50mm forward, z=+12mm)
- stem_link (visual: 38.1mm EMT, 1.050m — from stem_battery_clamp.scad)
- sensor_head_link at top of stem
- laser (RPLIDAR A1M8, z=COL_H=36mm — frame matches slam_toolbox config)
- camera_link (RealSense D435i, ARM_R=50mm — matches realsense2_camera)
- camera_{front,left,rear,right}_link (IMX219, 10° down tilt, ARM_R=50mm
— positions match camera_tf.launch.py; that file superseded when live)
config/saltybot_properties.yaml
All dimensions from chassis/chassis_frame.scad + ASSEMBLY.md Rev A.
launch/robot_description.launch.py
Compiles xacro at launch time, runs robot_state_publisher.
Publishes /robot_description + /tf_static for all fixed joints.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Merge pull request 'feat: CRSF/ELRS RC integration (Phase 2)' (#35) from sl-firmware/crsf-elrs into main
Merge pull request 'feat: CRSF/ELRS RC integration (Phase 2)' (#35) from sl-firmware/crsf-elrs into main
Description
SaltyLab self-balancing bot firmware (STM32F722)
Languages
Python
67.1%
C
11.4%
JavaScript
9.2%
OpenSCAD
7.8%
HTML
1.5%
Other
2.9%