-
Notifications
You must be signed in to change notification settings - Fork 7
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
aa3e2b1
commit afc6e08
Showing
4 changed files
with
79 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,6 @@ | ||
--- | ||
id: canbus-overview | ||
title: CANBUS | ||
title: Canbus | ||
--- | ||
|
||
# Canbus Service Overview | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,6 @@ | ||
--- | ||
id: oak-overview | ||
title: OAK | ||
title: Oak | ||
--- | ||
|
||
# Oak Service Overview | ||
|
76 changes: 76 additions & 0 deletions
76
website/docs/concepts/system_overview/amiga_development_101.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,76 @@ | ||
--- | ||
id: amiga-dev | ||
title: Amiga Development 101 | ||
--- | ||
|
||
# Amiga Development 101 | ||
|
||
Welcome to the world of Amiga robot development! | ||
If you're excited about harnessing the power of the Brain and the Amiga platform, | ||
you've come to the right place. | ||
This guide is designed to give you a bird's-eye view of how various services run on the Brain | ||
work in harmony to power the Amiga. | ||
|
||
## What are Services? | ||
|
||
In the realm of robot development, a service can be thought of as a specialized program or | ||
routine that performs a specific function. | ||
For the Amiga robot, each service handles a unique aspect of the robot's operation, from processing | ||
imagery to managing movement. | ||
They're the cogs that make the Amiga machine tick. | ||
|
||
## Why Are Services Necessary? | ||
|
||
Services modularize robot functions. | ||
Instead of having one colossal program trying to manage everything the robot does, | ||
we break down tasks into individual services. | ||
This approach has several advantages: | ||
|
||
1. **Scalability**: As the robot's capabilities grow, new services can be added without | ||
disturbing existing ones. | ||
2. **Maintainability**: If there's a bug or an issue, it's isolated to a particular service, | ||
making troubleshooting easier. | ||
3. **Efficiency**: Services can run concurrently, utilizing the multi-core capabilities of | ||
platforms like the Brain. | ||
|
||
## The Heartbeat of Amiga: Key Services | ||
|
||
- [**Canbus**](../canbus_service/): Manages the robot's motors. | ||
It's like the nervous system, transmitting movement commands and receiving feedback. | ||
- [**Oak**](../oak_service/): The eyes and balance of the robot. | ||
It streams imagery and provides IMU data, crucial for services like Filter and Controller. | ||
- [**GPS**](../gps_service/): The robot's global positioning sense. | ||
It knows where the Amiga is in the world. | ||
- [**Filter (UKF)**](../filter_service/): Acts as the robot's sense of self-awareness. | ||
By using IMU data from the OAK service, wheel odometry from CANBUS, and global positioning from GPS, | ||
it estimates the state of the robot. | ||
- [**Recorder**](../recorder_service/): The memory of the robot. | ||
It logs data, ensuring we can revisit past operations or analyze performance. | ||
- [**Controller**](../controller_service/): The brain of the operation. | ||
It uses algorithms like pure pursuit and PID to guide the Amiga. | ||
It makes decisions based on data from other services. | ||
|
||
## How Do Services Talk to Each Other? | ||
|
||
Imagine a bustling city where everyone has a job. The mail carrier brings letters (data), | ||
the traffic cop (Controller) guides vehicles (services), and everyone communicates to ensure the city | ||
runs smoothly. | ||
Similarly, in the Amiga ecosystem: | ||
|
||
- The **OAK** service streams visual and IMU data. | ||
- The **Filter** service uses IMU data from OAK, wheel odometry from CANBUS, and global positioning | ||
data from GPS to understand how the robot is moving. | ||
- The **Controller** takes this movement data, combines it with its algorithms, and decides | ||
the best way to move the robot. | ||
- This decision is then passed to **CANBUS**, which communicates with the robot's motors to | ||
execute the movement. | ||
|
||
All these services run on the powerful Brain, allowing for efficient and concurrent operations. | ||
|
||
## Architectural Diagram | ||
|
||
Below is the architectural diagram that visually represents how these services interact: | ||
|
||
This introduction is designed to be a primer. | ||
Each service has its depths and intricacies, which you'll uncover as you dive deeper into Amiga development. | ||
Enjoy the journey! |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters