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.
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.
- 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.
To build and preview the site locally, we recommend using a Ruby virtual environment for dependency isolation.
- 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:
- 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:
The site will be available at
bundle exec jekyll servehttp://localhost:4000.
- Engine: Jekyll (Static Site Generator)
- Theme: Minimal Mistakes
- Hosting: GitHub Pages
- Math: MathJax (LaTeX rendering)
/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.
- 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.
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.