Skip to content

Commit 83c8152

Browse files
authored
docs: modernize README with updated contribution guide and local setup (#238)
Modernize README with updated contribution guide and local setup.
1 parent 5188cf5 commit 83c8152

File tree

1 file changed

+102
-106
lines changed

1 file changed

+102
-106
lines changed

README.md

Lines changed: 102 additions & 106 deletions
Original file line numberDiff line numberDiff line change
@@ -1,106 +1,102 @@
1-
## Overview
2-
The **Robotics Knowledgebase** is the Wiki for Robot Builders. It exists to advance knowledge in the robotics discipline. We document and share application details left out of textbooks and academic papers.
3-
4-
This Knowledgebase holds knowledge essential to building working robots. We believe robots should be built to solve specific problems. We take a systems-based approach to creating them. We include Project Management practices to ensure project completion.
5-
6-
## Contribution Quickstart Guide
7-
### New Entries
8-
To submit an original article follow these steps:
9-
1. Fork this repository.
10-
2. Locate the appropriate directory for your submission in `/wiki`.
11-
3. Copy `_templates/template.md` into the directory.
12-
4. Write your article. We recommend the following options:
13-
- Connect [Prose.io](http://prose.io/) to your Github account and write from your browser.
14-
- Clone the repository to your device. We recommend using the [Atom editor](https://atom.io/) with the [Markdown-Writer](https://atom.io/packages/markdown-writer) and [Markdown-Image-Helper](https://atom.io/packages/markdown-image-helper) packages.
15-
5. Rename `template.md` to the subject of your article. The new name should be lowercase, have hyphens for spaces, and end with `.md` (`this-is-an-example.md`)
16-
6. Add a link to your article to `_data/navigation.yml` under the `wiki` heading.
17-
- Do not modify the `main` or `docs` lists.
18-
7. Submit a pull request to the Robotics Knowledgebase.
19-
- If you're working from your device, don't forget to add, commit, and push your changes first.
20-
8. Editors may request changes before they accept your pull request. Use their feedback to improve your entry and resubmit.
21-
22-
### Improving Articles
23-
If you spot a mistake (or think that you have an improvement to an article), [create an issue](https://github.com/RoboticsKnowledgebase/roboticsknowledgebase.github.io/issues) to discuss your recommended changes.
24-
25-
### Keeping your Fork Updated
26-
Syncing a fork is accomplished through git on your local device. You should already have Git installed and cloned your fork to your computer.
27-
1. Navigate to the working directory of your local project.
28-
2. Configure a remote that points to the upstream repository. On your Linux device, use:
29-
- `git remote add upstream https://github.com/RoboticsKnowledgebase/roboticsknowledgebase.github.io`.
30-
- This only needs to be done once.
31-
3. Use `git remote -v` to verify that the upstream repository is listed.
32-
4. Fetch the latest commits from the upstream repository. These will be stored in a local branch `upstream/master`:
33-
- `git fetch upstream`
34-
5. Check out your fork's local `master` branch:
35-
- `git checkout master`
36-
6. This brings your fork's master branch into sync with the upstream repository, **without losing your local changes**:
37-
- `git merge upstream/master`
38-
39-
### Clear Changes and Update your Fork
40-
This method is used specifically to erase all changes to your fork and replace it with the most updated copy of the Wiki.
41-
1. Follow steps 1-5 from **Keeping your Fork Updated** above.
42-
2. Reset your local repository:
43-
- `git reset --hard upstream/master `
44-
3. Force the new repository to overwrite your remote fork:
45-
- `git push origin master --force`
46-
47-
## Site Structure
48-
### Supporting technology
49-
The Robotics Knowledgebase makes use of the following:
50-
- [Github Pages](https://help.github.com/categories/20/articles)
51-
- [Jekyll](https://jekyllrb.com/)
52-
- [Minimal Mistakes Theme](https://mmistakes.github.io/minimal-mistakes/) by [Michael Rose](https://mademistakes.com/)
53-
- [MathJax](http://docs.mathjax.org/en/latest/)
54-
55-
### Directories
56-
The wiki itself is contained in the `/wiki` folder. The `/docs` folder exists to contain future documentation on contributing and supporting the wiki. The wiki contains the following categories:
57-
- **Controls & Actuation**
58-
- Topics related to the moving components including motors and controls.
59-
- **Common Platforms**
60-
- Covers common hardware and software frameworks used in robotics. ROS is included here.
61-
- **Computing**
62-
- Topics related to hardware brains for robotics including on-board computers and cluster computing.
63-
- **Fabrication**
64-
- Topics related to techniques and tools for fabricating a robot.
65-
- **Interfacing**
66-
- Covers means of interfacing with a robot outside of networking.
67-
- **Networking**
68-
- Topics related to communications infrastructure for robotics including programming and wireless technologies.
69-
- **Programming**
70-
- General programming topics including languages and practices.
71-
- **Project Management**
72-
- Topics related to project management practices.
73-
- **Sensing**
74-
- Covers topics related to sensors including computer vision and cameras.
75-
- **State Estimation**
76-
- Topics related to the position and orientation of a robot including navigation, localization, and mapping.
77-
- **System Design and Development**
78-
- Covers topics related to Systems Engineering.
79-
- **Tools**
80-
- Useful hardware and software for robotics not used directly in the robot itself.
81-
82-
## Directory Structure
83-
Individual subfolders should contain both an `/assets` folder (for supporting files including images) and an `index.md` file.
84-
## Future Work
85-
This Knowledgebase is an evolving project. There are numerous areas for improvement in both content and site features.
86-
87-
### Needed topics
88-
- Introduction to planning your robotics project
89-
- Updated overview of single-board computers (`/wiki/computing/single-board-computers.md`)
90-
- Mobility Overview (put in `/actuation`)
91-
- Manipulation Overview (put in `/actuation`)
92-
- State Estimation Overview
93-
- System Engineering Overview
94-
- Using GPUs for Computer Vision
95-
- Using GPUs for Machine Learning
96-
- V-model
97-
98-
### Todo
99-
- Logo for Robotics Knowledgebase
100-
- Writing & style standards
101-
- Link to Github
102-
- Collapsed Navigation for sidebar
103-
- Separate repositories for content and technical files
104-
- Dynamic Navigation Generation
105-
- ~~Default template~~
106-
- ~~Implement Math Support~~
1+
# Robotics Knowledgebase 🤖
2+
3+
[![Jekyll Build](https://github.com/RoboticsKnowledgebase/roboticsknowledgebase.github.io/actions/workflows/jekyll-github-pages-deploy.yml/badge.svg)](https://github.com/RoboticsKnowledgebase/roboticsknowledgebase.github.io/actions/workflows/jekyll-github-pages-deploy.yml)
4+
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
5+
6+
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.
7+
8+
We take a **systems-based approach**, integrating engineering best practices with hands-on implementation guides for modern robotics frameworks.
9+
10+
---
11+
12+
## 🚀 Quickstart for Contributors
13+
14+
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.
15+
16+
### Adding New Articles
17+
1. **Fork** the repository and clone it locally.
18+
2. **Choose a category** in the `/wiki` directory (e.g., `sensing`, `actuation`, `programming`).
19+
3. **Template**: Copy `/_templates/template.md` to your chosen directory.
20+
4. **Name**: Rename it using `kebab-case.md` (e.g., `my-new-sensor-guide.md`).
21+
5. **Write**: Author your article using Markdown.
22+
- Use absolute paths for images: `![Alt Text](/assets/images/my_image.png)`.
23+
- Use absolute paths for internal links: `[Other Page](/wiki/category/other-page/)`.
24+
6. **Navigation**: Add your entry to `/_data/navigation.yml` and the parent category's `index.md`.
25+
7. **Build & Test**: See 'Local Development' below on instructions to build and deploylocally. Open all modified pages and verify your changes visually.
26+
7. **PR**: Submit a Pull Request. Our editors will review and provide feedback. Follow through with changes until merge.
27+
28+
---
29+
30+
## 🛠 Local Development
31+
32+
To build and preview the site locally, we recommend using a Ruby virtual environment for dependency isolation.
33+
34+
### Prerequisites
35+
- **Ruby version manager**: We recommend [rbenv](https://github.com/rbenv/rbenv) to manage Ruby versions.
36+
- **macOS**: `brew install rbenv`
37+
- **Linux**: See the [rbenv installer](https://github.com/rbenv/rbenv-installer) or use your package manager.
38+
39+
### Setup and Build
40+
1. **Install Ruby**:
41+
From root of the project, run:
42+
```bash
43+
rbenv install $(cat .ruby-version)
44+
```
45+
2. **Install Bundler**:
46+
```bash
47+
gem install bundler
48+
```
49+
3. **Configure local path**:
50+
```bash
51+
bundle config set --local path 'vendor/bundle'
52+
```
53+
4. **Install dependencies**:
54+
```bash
55+
bundle install
56+
```
57+
5. **Local Preview**:
58+
```bash
59+
bundle exec jekyll serve
60+
```
61+
The site will be available at `http://localhost:4000`.
62+
63+
---
64+
65+
## 📂 Project Structure
66+
67+
### Supporting Technology
68+
- **Engine**: [Jekyll](https://jekyllrb.com/) (Static Site Generator)
69+
- **Theme**: [Minimal Mistakes](https://mmistakes.github.io/minimal-mistakes/)
70+
- **Hosting**: [GitHub Pages](https://pages.github.com/)
71+
- **Math**: [MathJax](https://www.mathjax.org/) (LaTeX rendering)
72+
73+
### Key Directories
74+
- `/wiki/`: The core content, organized by robotic subsystem.
75+
- `/_data/`: Navigation and UI configuration.
76+
- `/assets/images/`: Central store for all diagrams and photos.
77+
- `/_templates/`: Base templates for new wiki entries.
78+
79+
---
80+
81+
## 🗺 Wiki Categories
82+
83+
- **[Controls & Actuation](/wiki/actuation/)**: Motors, PID, and motion control.
84+
- **[Common Platforms](/wiki/common-platforms/)**: ROS, UAVs, and mobile bases.
85+
- **[Computing](/wiki/computing/)**: SBCs, GPUs, and embedded controllers.
86+
- **[Fabrication](/wiki/fabrication/)**: 3D printing, machining, and prototyping.
87+
- **[Interfacing](/wiki/interfacing/)**: Microcontrollers and low-level protocols.
88+
- **[Networking](/wiki/networking/)**: Communications and distributed systems.
89+
- **[Programming](/wiki/programming/)**: Languages, libraries (Eigen, Boost), and practices.
90+
- **[Project Management](/wiki/project-management/)**: Workflows for robotics teams.
91+
- **[Sensing](/wiki/sensing/)**: Computer vision, LiDAR, and IMUs.
92+
- **[State Estimation](/wiki/state-estimation/)**: SLAM, localization, and navigation.
93+
- **[System Design](/wiki/system-design-development/)**: Systems engineering for robotics.
94+
- **[Tools](/wiki/tools/)**: External software, editors, and utilities.
95+
96+
---
97+
98+
## 🤝 Community & Support
99+
If you find a bug or have a suggestion, please [open an issue](https://github.com/RoboticsKnowledgebase/roboticsknowledgebase.github.io/issues) or join the discussion in our Pull Requests.
100+
101+
---
102+
*Maintained by the Robotics Knowledgebase Team. Built for the community, by the community.*

0 commit comments

Comments
 (0)