robotics-software-principles

Solid

Foundational software design principles applied specifically to robotics module development. Use this skill when designing robot software modules, structuring codebases, making architecture decisions, reviewing robotics code, or building reusable robotics libraries. Trigger whenever the user mentions SOLID principles for robots, modular robotics software, clean architecture for robots, dependency injection in robotics, interface design for hardware, real-time design constraints, error handling strategies for robots, configuration management, separation of concerns in perception-planning- control, composability of robot behaviors, or any discussion of software craftsmanship in a robotics context. Also trigger for code reviews of robotics code, refactoring robot software, or designing APIs for robotics libraries.

AI & Automation 251 stars 37 forks Updated 6 days ago Apache-2.0

Install

View on GitHub

Quality Score: 89/100

Stars 20%
80
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
50
License 10%
100
Description 5%
100

Skill Content

# Robotics Software Design Principles ## Why Robotics Software Is Different Robotics code operates under constraints that most software never faces: 1. **Physical consequences** — A bug doesn't just crash a process, it crashes a robot into a wall 2. **Real-time deadlines** — Missing a 1ms control loop deadline can cause oscillation or damage 3. **Sensor uncertainty** — All inputs are noisy, delayed, and occasionally wrong 4. **Hardware diversity** — Same algorithm must work on 10 different grippers from 5 vendors 5. **Sim-to-real gap** — Code must run identically in simulation and on real hardware 6. **Long-running operation** — Robots run for hours/days; memory leaks and drift matter 7. **Safety criticality** — Some failures must NEVER happen, regardless of software state These constraints demand disciplined design. Below are principles that account for them. --- ## Principle 1: Single Responsibility — One Module, One Job Every module (node, class, function) should have exactly ONE reason to change. **Why it matters in robotics**: A perception module that also does control means a camera driver update can break your arm controller. In safety-critical systems, this coupling is unacceptable. ```python # ❌ BAD: God module — perception + planning + control + logging class RobotController: def __init__(self): self.camera = RealSenseCamera() self.detector = YOLODetector() self.planner = RRTPlanner() self.arm = UR5Driver() self.l...

Details

Author
arpitg1304
Repository
arpitg1304/robotics-agent-skills
Created
3 months ago
Last Updated
6 days ago
Language
Python
License
Apache-2.0

Similar Skills

Semantically similar based on skill content — not just same category

AI & Automation Listed

robotics-software-principles

Foundational software design principles applied specifically to robotics module development. Use this skill when designing robot software modules, structuring codebases, making architecture decisions, reviewing robotics code, or building reusable robotics libraries. Trigger whenever the user mentions SOLID principles for robots, modular robotics software, clean architecture for robots, dependency injection in robotics, interface design for hardware, real-time design constraints, error handling strategies for robots, configuration management, separation of concerns in perception-planning- control, composability of robot behaviors, or any discussion of software craftsmanship in a robotics context. Also trigger for code reviews of robotics code, refactoring robot software, or designing APIs for robotics libraries.

5 Updated today
vicky23383
AI & Automation Solid

robotics-design-patterns

Architecture patterns, design principles, and proven recipes for building robust robotics software. Use this skill when designing robot software architectures, choosing between behavioral frameworks, structuring perception-planning-control pipelines, implementing state machines, designing safety systems, or architecting multi-robot systems. Trigger whenever the user mentions behavior trees, finite state machines, subsumption architecture, sensor fusion, robot safety, watchdogs, heartbeats, graceful degradation, hardware abstraction layers, real-time constraints, or software architecture for robots. Also applies to sim-to-real transfer, digital twins, and robot fleet management.

251 Updated 6 days ago
arpitg1304
AI & Automation Listed

robotics-design-patterns

Architecture patterns, design principles, and proven recipes for building robust robotics software. Use this skill when designing robot software architectures, choosing between behavioral frameworks, structuring perception-planning-control pipelines, implementing state machines, designing safety systems, or architecting multi-robot systems. Trigger whenever the user mentions behavior trees, finite state machines, subsumption architecture, sensor fusion, robot safety, watchdogs, heartbeats, graceful degradation, hardware abstraction layers, real-time constraints, or software architecture for robots. Also applies to sim-to-real transfer, digital twins, and robot fleet management.

5 Updated today
vicky23383
AI & Automation Listed

software-design

Software design principles, patterns, and architecture from SOLID through distributed systems. Covers the five SOLID principles with violations and fixes, DRY/KISS/YAGNI heuristics, separation of concerns, 12 GoF design patterns organized by intent (creational, structural, behavioral), architectural patterns (MVC, MVP, MVVM, layered, hexagonal, microservices, event-driven), coupling and cohesion metrics, dependency injection, and the design decision framework for choosing between competing approaches. Use when making design decisions, reviewing architecture, refactoring code, or teaching software engineering principles.

62 Updated today
Tibsfox
AI & Automation Listed

software-engineer

Core software engineering philosophy and design principles based on Structure and Interpretation of Computer Programs (SICP). Use for all software development tasks including writing code, designing systems, refactoring, or making architectural decisions. MUST ALWAYS be loaded when working on any kind of software development or design task!

5 Updated today
Pyroxin