Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Turret

A modular autonomous ground robot: one mobile base, interchangeable tool modules — named for a lathe turret, one machine with indexed tooling.

Status (2026-08-23): simulation phase. No hardware has been purchased or assembled yet. Strategy is to simulate everything — kinematics, sensing, navigation, coverage — before buying a single part.

Modules

Module Status
1 — Lawn mowing In development (current focus)
2 — Pressure washing (tethered, pump at base) Planned
3 — Snow blowing Planned

Why simulate first

Sim is treated as a falsification tool, not a validation tool — it's used to catch design mistakes cheaply (bad kinematics, TF errors, unstable inertias, coverage-planner bugs), not to certify real-world performance. Things sim structurally cannot validate (RTK fix quality, grass as a sensing/traction surface, ESC electrical noise on GNSS) are called out explicitly in the design log rather than assumed away.

Architecture at a glance

  • Drive: 2WD differential drive + 2 heavy-duty swivel casters (not skid-steer) — lower turf scrub, less tether/hose drag.
  • Sensing: Livox Mid-360-class LiDAR mounted inverted to shrink the near-field blind zone; forward parallel stereo camera pair for depth and visual odometry.
  • Obstacle detection: geometry-first (RANSAC ground-plane fit), semantics second (DNN classifier for stop/wait/proceed decisions) — the classifier is never the only thing between the blade and a foot.
  • Localization: REP-105 map → odom → base_link chain — an EKF (wheel odom + IMU + stereo VO) for smooth local motion, RTAB-Map for event-driven loop closure and relocalization.
  • Safety: three layers, hardware at the bottom — a wireless/latching e-stop that works with the compute board unplugged, a microcontroller watchdog independent of ROS, then the autonomy stack.

Full reasoning, physics derivations, and open questions live in docs/design-log.md.

Stack

ROS 2 Jazzy Jalisco · Gazebo Harmonic · Jetson Orin Nano Super (target compute) · Nav2 + opennav_coverage · RTAB-Map · robot_localization

Build order

Incremental: add one thing, prove one property, move on.

Stage Adds Proves
S0 URDF/xacro, RViz only TF topology, frame conventions
S1 Spawn in empty world Physics stability, sane inertias
S2 Diff drive + teleop Kinematics, odom signs
S3 IMU Noise model, use_sim_time
S4 LiDAR Mount pose, self-occlusion
S5 Stereo pair Rectification, measured vs. predicted depth error
S6 RTAB-Map Map quality, relocalization after restart
S7 GNSS fault injection EKF / geofence survivability
S8 Nav2 + coverage Boustrophedon path over a polygon
S9 Behaviour tree Low battery, rain, e-stop recovery

Current stage: see docs/design-log.md for up-to-date status.

Repository layout

turret_description/   # URDF/xacro, meshes (not yet created)
turret_bringup/        # launch files (not yet created)
turret_control/        # controllers, behaviour trees (not yet created)
docs/design-log.md      # running design/debugging/decision log
CLAUDE.md               # dev environment + conventions reference

License

MIT — see LICENSE.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors