Robotics Knowledgebase 🤖
The Robotics Knowledgebase is an open-source wiki for robot builders, researchers, and hobbyists. It focuses on the practical application details often omitted from textbooks—the "tribal knowledge" required to build, program, and deploy working robotic systems.
We take a systems-based approach, integrating engineering best practices with hands-on implementation guides for modern robotics frameworks.
🚀 Quickstart for Contributors
We welcome contributions from the community! Whether you're fixing a typo or adding a new deep-dive article, here's how to get started.
Adding New Articles
- Fork the repository and clone it locally.
- Choose a category in the
/wikidirectory (e.g.,sensing,actuation,programming). - Template: Copy
/_templates/template.mdto your chosen directory. - Name: Rename it using
kebab-case.md(e.g.,my-new-sensor-guide.md). - Write: Author your article using Markdown.
- Use absolute paths for images:
. - Use absolute paths for internal links:
[Other Page](/wiki/category/other-page/).
- Use absolute paths for images:
- Navigation: Add your entry to
/_data/navigation.ymland the parent category'sindex.md. - Build & Test: See 'Local Development' below on instructions to build and deploylocally. Open all modified pages and verify your changes visually.
- PR: Submit a Pull Request. Our editors will review and provide feedback. Follow through with changes until merge.
đź› Local Development
To build and preview the site locally, we recommend using a Ruby virtual environment for dependency isolation.
Prerequisites
- Ruby version manager: We recommend rbenv to manage Ruby versions.
- macOS:
brew install rbenv - Linux: See the rbenv installer or use your package manager.
- macOS:
Setup and Build
- Install Ruby:
From root of the project, run:
rbenv install $(cat .ruby-version) - Install Bundler:
gem install bundler - Configure local path:
bundle config set --local path 'vendor/bundle' - Install dependencies:
bundle install - Local Preview:
bundle exec jekyll serveThe site will be available at
http://localhost:4000.
đź“‚ Project Structure
Supporting Technology
- Engine: Jekyll (Static Site Generator)
- Theme: Minimal Mistakes
- Hosting: GitHub Pages
- Math: MathJax (LaTeX rendering)
Key Directories
/wiki/: The core content, organized by robotic subsystem./_data/: Navigation and UI configuration./assets/images/: Central store for all diagrams and photos./_templates/: Base templates for new wiki entries.
đź—ş Wiki Categories
- Controls & Actuation: Motors, PID, and motion control.
- Common Platforms: ROS, UAVs, and mobile bases.
- Computing: SBCs, GPUs, and embedded controllers.
- Fabrication: 3D printing, machining, and prototyping.
- Interfacing: Microcontrollers and low-level protocols.
- Networking: Communications and distributed systems.
- Programming: Languages, libraries (Eigen, Boost), and practices.
- Project Management: Workflows for robotics teams.
- Sensing: Computer vision, LiDAR, and IMUs.
- State Estimation: SLAM, localization, and navigation.
- System Design: Systems engineering for robotics.
- Tools: External software, editors, and utilities.
🤝 Community & Support
If you find a bug or have a suggestion, please open an issue or join the discussion in our Pull Requests.
Maintained by the Robotics Knowledgebase Team. Built for the community, by the community.