Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Major update overhaul #303

Merged
merged 38 commits into from
May 21, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
bbb2ff5
launcher (#296)
AgustinBRodriguez Apr 24, 2024
6b85f6a
spelling
AgustinBRodriguez Apr 26, 2024
5d97f66
Fix bug
guilhermedemouraa Apr 29, 2024
1df3076
setext
AgustinBRodriguez Apr 29, 2024
b116b4e
Merge branch 'main-v2.3' of github.com:farm-ng/amiga-dev-kit into mai…
AgustinBRodriguez Apr 29, 2024
03ac789
Update
AgustinBRodriguez Apr 30, 2024
6565a7c
Update PoE
AgustinBRodriguez Apr 30, 2024
b03eaa2
Fix pre-commit errors
guilhermedemouraa May 1, 2024
f046017
Update events recorder (#304)
guilhermedemouraa May 1, 2024
7d22d4a
images.md
AgustinBRodriguez May 1, 2024
f6db092
record.md
AgustinBRodriguez May 1, 2024
f826723
images.md
AgustinBRodriguez May 1, 2024
f6b8677
update.md
AgustinBRodriguez May 1, 2024
fc4da26
launcher images.md
AgustinBRodriguez May 2, 2024
874f88c
Updated images.md
AgustinBRodriguez May 2, 2024
b74b833
Updatee images.md
AgustinBRodriguez May 2, 2024
b1f1cad
Updated images.md
AgustinBRodriguez May 2, 2024
0ee9cf7
Updated images.md
AgustinBRodriguez May 3, 2024
c63c2d9
Update.md
AgustinBRodriguez May 3, 2024
625b89b
save.md
AgustinBRodriguez May 3, 2024
04e1140
updates
AgustinBRodriguez May 3, 2024
1fbd7db
up
AgustinBRodriguez May 3, 2024
c6a2a7c
poe
AgustinBRodriguez May 4, 2024
b8b6f6d
Update poe.md
AgustinBRodriguez May 4, 2024
7de2bf1
launch
AgustinBRodriguez May 6, 2024
cbf00fe
changes (#305)
AgustinBRodriguez May 8, 2024
faccb23
Fix autoplot stuff
guilhermedemouraa May 8, 2024
2a76aa6
Fix pre-commit issues
guilhermedemouraa May 8, 2024
2b958a6
Fix camera app stuff
guilhermedemouraa May 8, 2024
383d442
Fix file manager app stuff
guilhermedemouraa May 8, 2024
b38a265
Fix launcher stuff
guilhermedemouraa May 8, 2024
2b0570e
Bump released version
guilhermedemouraa May 8, 2024
83e0973
Update services descriptions/API (#308)
guilhermedemouraa May 9, 2024
221bf8b
Release Notes OS 2.3 (#306)
guilhermedemouraa May 9, 2024
c9091ab
Add USB requirements for File Manager app (#310)
Hackerman342 May 16, 2024
c4d312e
Update farm-ng-amiga to v2.3.0 (#311)
Hackerman342 May 17, 2024
b6563a9
Rm pre-release warning for tool control
guilhermedemouraa May 20, 2024
2154b89
Alert users about manifest changes
guilhermedemouraa May 21, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion farm-ng-amiga
Submodule farm-ng-amiga updated 76 files
+1 −1 .flake8
+1 −0 protos/CMakeLists.txt
+89 −0 protos/farm_ng/canbus/amiga_v6.proto
+127 −0 protos/farm_ng/canbus/tool_control.proto
+5 −0 protos/farm_ng/filter/filter.proto
+33 −17 protos/farm_ng/gps/gps.proto
+57 −0 protos/farm_ng/oak/oak.proto
+2 −0 protos/farm_ng/track/track.proto
+2 −2 py/examples/camera_aruco_detector/main.py
+1 −1 py/examples/camera_calibration/main.py
+1 −1 py/examples/camera_client/main.py
+2 −2 py/examples/camera_pointcloud/main.py
+1 −1 py/examples/camera_pointcloud/requirements.txt
+2 −2 py/examples/camera_pointcloud/service_config.json
+1 −1 py/examples/camera_settings/main.py
+3 −0 py/examples/dashboard_settings/README.md
+95 −0 py/examples/dashboard_settings/main.py
+1 −0 py/examples/dashboard_settings/requirements.txt
+6 −0 py/examples/dashboard_settings/service_config.json
+5 −6 py/examples/event_recorder/main.py
+21 −25 py/examples/event_recorder/record_camera_config.json
+31 −33 py/examples/event_recorder/record_filter_config.json
+3 −7 py/examples/event_recorder/service_config.json
+1 −1 py/examples/file_converter/main.py
+2 −2 py/examples/file_reader/main.py
+6 −5 py/examples/file_reader_can/main.py
+36 −4 py/examples/file_reader_gps/main.py
+3 −1 py/examples/file_reader_headers/main.py
+1 −1 py/examples/file_splitter/main.py
+1 −1 py/examples/filter_client/main.py
+29 −1 py/examples/gps_client/main.py
+1 −1 py/examples/gps_client/service_config.json
+7 −12 py/examples/monitor_app/config.json
+75 −41 py/examples/monitor_app/main.py
+0 −1 py/examples/monitor_app/ts/src/components/App.tsx
+3 −3 py/examples/monitor_app/ts/src/components/TopicMonitor.tsx
+15 −5 py/examples/monitor_app/ts/vite.config.ts
+1 −1 py/examples/motor_states_stream/main.py
+3 −3 py/examples/multi_client_geoimage/config.json
+1 −3 py/examples/multi_client_geoimage/main.py
+1 −1 py/examples/multi_client_subscriber/main.py
+3 −0 py/examples/pendant_state/README.md
+54 −0 py/examples/pendant_state/main.py
+1 −0 py/examples/pendant_state/requirements.txt
+15 −0 py/examples/pendant_state/service_config.json
+1 −1 py/examples/service_client/client.py
+16 −0 py/examples/service_client/genprotos.py
+1 −1 py/examples/service_client/service.py
+26 −0 py/examples/service_client/two_ints.proto
+42 −0 py/examples/service_client/two_ints_pb2.py
+19 −0 py/examples/service_client/two_ints_pb2.pyi
+16 −0 py/examples/service_client/two_ints_pb2_grpc.py
+3 −1 py/examples/service_counter/client.py
+1 −1 py/examples/service_counter/counter.py
+3 −3 py/examples/service_propagation/agent.py
+0 −0 py/examples/service_propagation/service_config.json
+5 −3 py/examples/service_propagation/storage.py
+5 −3 py/examples/service_propagation/supervisor.py
+1 −1 py/examples/square_track/main.py
+3 −0 py/examples/tool_control/README.md
+155 −0 py/examples/tool_control/main.py
+2 −0 py/examples/tool_control/requirements.txt
+15 −0 py/examples/tool_control/service_config.json
+1 −1 py/examples/track_follower/main.py
+3 −0 py/examples/track_planner/README.md
+209 −0 py/examples/track_planner/main.py
+4 −0 py/examples/track_planner/requirements.txt
+5 −0 py/examples/track_planner/service_config.json
+191 −0 py/examples/track_planner/track_planner.py
+1 −1 py/examples/track_plotter/main.py
+1 −1 py/examples/track_recorder/main.py
+7 −5 py/examples/vehicle_twist/main.py
+148 −16 py/farm_ng/canbus/packet.py
+115 −0 py/tests/test_packet.py
+1 −1 pyproject.toml
+1 −1 setup.cfg
194 changes: 110 additions & 84 deletions website/docs/apps/autoplot_app/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ title: Autoplot App

# Autoplot App Guide

The Autoplot app is an advanced control interface for your Amiga, offering multiple modes of
operation:
The Autoplot app is an advanced control interface for your Amiga,
offering multiple modes of operation:

- **Direct control**: Manually drive the robot with simple controls for straight, turn, and backwards.
- **Teach-and-repeat**: Manually drive the robot along a desired path, save it, and then command the
Expand All @@ -15,90 +15,111 @@ robot to repeat the path autonomously.
Sn30](https://shop.8bitdo.com/products/8bitdo-sn30-pro-bluetooth-gamepad) joystick.

:::caution Resource Intensive Operation
The Autoplot app requires significant computational resources when run directly on the robot's screen.
To ensure optimal performance, it is recommended not to use the Autoplot app in conjunction with the
recorder or other custom user applications on the brain's display itself.
However, running the Autoplot app and the recorder app through a web browser on a separate device is
acceptable and should not impact performance.
Running the Autoplot app directly on the robot's screen demands considerable computational resources.
For optimal performance, avoid using the Autoplot app alongside other custom applications on the brain.
It is recommended to use the Autoplot app and
any custom applications through a web browser
on a separate device, as this should not impact performance.
:::

## Autonomy Requirements

Before starting any operation, make sure to check the following:
Before engaging autonomy, ensure to verify:

- [ ] The robot is calibrated through the [**Filter App**](/docs/apps/filter_app).
- [ ] The GPS antenna offsets are correctly set in the [**Filter App**](/docs/apps/filter_app).
- [ ] Ensure the robot is connected to an RTK base station for enhanced GPS accuracy.
- [ ] Set your Amiga to `automode`.
This is done through the dashboard in the [**automation screen**](https://www.youtube.com/watch?v=PKOhI4hbGUs&t=258s).
- [ ] Accurate [**IMU Calibration**](/docs/apps/launcher/#imu-calibration).
- [ ] The correct offsets are set in [**Robot Geometry**](/docs/apps/launcher/#robot-geometry).
- [ ] [**GPS NTRIP**](/docs/apps/launcher/#gps-ntrip) requirements have been met.
- [ ] Robot is connected to [**WiFi**](/docs/apps/launcher/#wifi).
- [ ] Amiga Dashboard is set to [**Auto Control**](/docs/dashboard/dashboard-user-guide#auto-control).

:::tip RTK-GPS Configuration
For precision in autonomous operations, configuring the RTK-GPS is essential.
This high-accuracy GPS configuration is critical for tasks that require precise geolocation capabilities.

For detailed information on setting up and configuring RTK-GPS with your Amiga, please refer
to the [**farm-ng GPS Service Overview**](/docs/concepts/gps_service#Requirements).
This is critical for tasks that require precise geo-location capabilities.
Detailed RTK-GPS information can be found on the
[**GPS Service**](/docs/concepts/gps_service/) overview page.
:::

## How to Use the Autoplot App

### Teach-and-Repeat

The teach-and-repeat functionality allows you to manually drive the robot along a desired path
and then have the robot repeat the path autonomously.
The Amiga's teach-and-repeat functionality allows you to drive the robot along a desired path
and then repeat the path autonomously.
The process for doing so is as follows:

#### 1. Click "Record" to start mapping your path
#### 1. New Path

![Screenshot from 2023-11-08 16-15-51](https://github.com/farm-ng/amiga-dev-kit/assets/39603677/a23646f6-26e3-49c9-b70f-d8faab3ae159)
Click the **New Path** icon to initiate recording.

#### 2. Drive the robot as desired, blue dots will pop up on the screen indicating the robot's trace
![new path](https://github.com/farm-ng/amiga-dev-kit/assets/133177230/4e338205-6f07-42a7-8131-5ee6522d597b)

![Screenshot from 2023-11-08 16-20-21](https://github.com/farm-ng/amiga-dev-kit/assets/39603677/13bbbec5-f66f-47a4-b064-8e98be59e43f)
#### 2. Map your Path

#### 3. Click "Save" and name your track to use it later
Drive the robot through the desired path and note the blue dots popping up on the screen indicating
the robot's trace.

![image](https://github.com/farm-ng/amiga-dev-kit/assets/39603677/7be15197-ced2-4f07-aa23-453dff7a0835)
![recording](https://github.com/farm-ng/amiga-dev-kit/assets/133177230/65c208c2-0685-48b6-ba51-8124747c5e85)

#### 4. Load the track when needed and click "Start Track" to initiate autonomous follow
If you need to remove points along your recorded track, click the **Pause Path** button followed by
the **Remove Point** button.

![image](https://github.com/farm-ng/amiga-dev-kit/assets/39603677/72fcf1e5-5152-419b-a74a-78c0ef66b062)
![remove points](https://github.com/farm-ng/amiga-dev-kit/assets/133177230/22cb8ddf-87c7-4d13-b9d6-6d976b1d120f)
Each press of the **Remove Point** button will delete a single dot. Deleted points will appear in green.
Once you have removed the desired points, click on **Resume Recording** to continue mapping your path.

:::info
After starting to follow the track, the `Start Track` button will switch to `Stop`,
which can be used to interrupt the autonomous task.
Additionally, users can press the `○` button on the pendant to disengage `automode`,
which will automatically cancel the autonomous operation.
:::tip Removing Points
Use this feature when you have deviated slightly from the desired course and need to make some corrections.
:::

### Remote Access via Web Browser
#### 3. Saving a Path

The Autoplot app is designed as a web-app, enabling seamless access from any standard web browser
like Google Chrome, Firefox, or Safari.
To open the Autoplot interface in your browser, simply enter the following address:
Clicking the **Save** button will prompt you to name your recently recorded track for later use.

```bash
<your-robot-name>:8008
```
![name it](https://github.com/farm-ng/amiga-dev-kit/assets/133177230/e31b3e77-4b94-4119-a0cc-2efd260c0fff)

:::note Remote Control Requirements
To remotely control your Amiga:
#### 4. Load Path

- Ensure you are connected to the same network as your Amiga robot.
- For access across different networks, configure [**cross-network access**](/docs/ssh#recommended-configure-cross-network-access)
by adding your Amiga to your Tailscale network.
Clicking the **Load Path** icon enables you to
select from any of your previously recorded tracks.

For Tailscale users, access the app using your Amiga's Fully Qualified Domain Name (FQDN):
![load it](https://github.com/farm-ng/amiga-dev-kit/assets/133177230/deb2daaf-37bf-4a51-9537-1ffcda67464c)

:::tip Auto Control
In order to repeat a pre-recorded path, you must manually set the Dashboard to
[**Auto Control**](/docs/dashboard/dashboard-user-guide#auto-control),
and be sure that all other
[**Autonomy Requirements**](/docs/apps/autoplot_app/#autonomy-requirements) have been met.
:::

```bash
<element-fruit>.<tailnet-name>.ts.net:8008
```
![start](https://github.com/farm-ng/amiga-dev-kit/assets/133177230/621eb211-1e2d-4553-a202-fb9e8eac962d)

Replace `<element-fruit>` and `<tailnet-name>` with the respective names configured in your
Tailscale network.
Once you have loaded a track the **Start Path** icon will turn black and you will be ready to deploy
autonomous navigation on your Amiga.

:::info
After starting to follow the track, the `Start Track` button will switch to `Stop`,
which can be used to interrupt the autonomous task.
Additionally, users can press the `○` button on the pendant to disengage `automode`,
which will automatically cancel the autonomous operation.
:::

You can control your Amiga from a web browser at any time, even when the Autoplot app is not active
on the Brain display.
### Tool Control

This feature allows you to control your connected hardware devices through a browser window.
The control panel is accessed by clicking on the gear icon located in the upper
right corner.
![gearing](https://github.com/farm-ng/amiga-dev-kit/assets/133177230/f09d117f-1026-4036-b2f0-20a557f83c9a)

Our current Firmware release
[**amiga-dash-v0.5.0**](https://github.com/farm-ng/amiga-dev-kit/releases/tag/amiga-dash-v0.5.0) supports
up to four H-Bridge devices that can be latched or momentarily controlled.
They can also be coupled for synchronous operation.

![Screenshot from 2024-05-02 18-05-04](https://github.com/farm-ng/amiga-dev-kit/assets/133177230/ffb45918-ed86-497d-a72b-5892d75053ab)

Up to four PTO Devices are supported and can be remotely selected for operation.
The control panel gives you directional controls for both H-Bridge and PTO connected devices.
As an added safety measure you may remotely stop all actively engaged tools.

## How to Control your Amiga

Expand All @@ -107,58 +128,45 @@ You can control your Amiga robot in two ways:
**Manual Control**: Use the [pendant](/docs/pendant),
the [kartech](https://kar-tech.com/single-axis-joystick-universal-mega-system.html)
or [dashboard](/docs/dashboard/dashboard-user-guide)
while physically present with the robot, ideal for teaching the robot new tracks.
while physically present with the robot,
ideal for teaching the robot new tracks.

Here are instructions for using the pendant and the kartech as of dashboard firmware
release [**`v0.0.5`**](https://github.com/farm-ng/amiga-dev-kit/releases):
Here are instructions for using the pendant
and the kartech as of dashboard firmware
release [**amiga-dash-v0.5.0**](https://github.com/farm-ng/amiga-dev-kit/releases/tag/amiga-dash-v0.5.0)

![pendant](https://github.com/farm-ng/amiga-dev-kit/assets/39603677/4a8fbe60-7780-4f32-b92f-6ce895a706e0)
![kartech](https://github.com/farm-ng/amiga-dev-kit/assets/39603677/99aee18e-e7d2-41c5-888b-6d38365c699e)

**Remote Control**: From your web browser, you can remotely operate the robot without needing
**Remote Control**: From your web browser,
you can remotely operate the robot without needing
to be in the same physical location.
For that, you can use a keyboard for driving your Amiga, or use an
For that, you can use a keyboard for
driving your Amiga, or use an
[8Bitdo Sn30](https://shop.8bitdo.com/products/8bitdo-sn30-pro-bluetooth-gamepad) joystick.

Here are instructions for using both options:

![keyboard](https://github.com/farm-ng/amiga-dev-kit/assets/39603677/6d81ee6c-6f9b-4395-ab4b-aaaa01b17565)
![joystick](https://github.com/farm-ng/amiga-dev-kit/assets/39603677/6bf57701-f241-4855-a675-d174084637b4)

:::info Autonomy Required for Remote Control
Remote Control requires the robot to be in `automode`.
:::info Auto Mode Required for Remote Control
The remote Control operation requires the robot's
Dashboard be set to [**Auto Control**](/docs/dashboard/dashboard-user-guide#auto-control).
This mode ensures that all movements are managed safely by the robot's autonomous systems.
:::

Both methods allow for track recording; however, remote control enables you to operate the
robot from any location with internet access.

:::tip Teaching Tracks Remotely or On-Site
Tracks can be taught to the robot whether you're using the on-site pendant or the Remote Keyboard
Control feature via a web browser.
Tracks can be taught to the robot by driving it manually with the pendant or the Kar-Tech controller.
Alternatively, you may use the Keyboard controls or the Game Pad controller via a web browser.
:::

## Status Bar Icons

The Autoplot app features a status bar with icons that provide critical
information for autonomous operation:

- **Automode**: This icon confirms if the robot is in automode, a prerequisite for autonomous tasks.
- **Filter**: This indicates the status of the UKF filter.
Autonomy will not engage if the filter has not converged.
- **GPS**: A visual indicator showing if the GPS service is active and functional.
- **WiFi**: This shows if the robot is connected to Wifi, which is necessary for autonomous operations.
- **Battery**: Displays the current battery level.
Always monitor this, especially before starting long tasks.

<div align="center">
<img src="https://github.com/farm-ng/amiga-dev-kit/assets/39603677/044304e6-1ae5-4724-845f-da4a9ebe4def"
alt="image" />
</div>

## Tips for Optimal Autonomy

- Before engaging in autonomous operations, always perform a safety check of the environment.
- Always perform a safety check of the surrounding environment before engaging in autonomous operations.
- When operating the robot via remote keyboard control in the web app, ensure a stable and
responsive network connection.
- Monitor the robot's battery status via the Autoplot app to avoid interruptions in longer operations.
Expand All @@ -167,10 +175,28 @@ responsive network connection.

If you encounter issues with autonomy or control:

![icon bar](https://github.com/farm-ng/amiga-dev-kit/assets/133177230/d69c2611-a3ad-4bb5-9db2-23a77c6a73ec)

- Verify all status indicators in the Autoplot app's top bar are active and showing the expected states.
- Check the [**Filter App**](/docs/apps/filter_app)
to confirm that calibration and GPS settings are up-to-date.
- If the robot does not respond to WAD keyboard commands, ensure that no other tasks are running and
that the robot is in automode.
- Confirm that [**IMU Calibration**](/docs/apps/launcher/#imu-calibration) and
[**GPS NTRIP**](/docs/apps/launcher/#gps-ntrip) settings are set correctly and up-to-date.
- If the robot does not respond to WASD keyboard commands, ensure that no other tasks are running and
the robot's Dashboard is set to [**Auto Control**](/docs/dashboard/dashboard-user-guide#auto-control).

![filter error](https://github.com/farm-ng/amiga-dev-kit/assets/133177230/9e6ab78d-dd52-4d86-9688-53b7ee9bff66)

If the filter is not converged, the icon on the navigation bar will be crossed out.
Click on the icon to visualize error's details.

![gps error](https://github.com/farm-ng/amiga-dev-kit/assets/133177230/c026d6fb-c86e-43d9-b8ca-928bd2ed5515)

If the robot is not receiving GPS messages the icon on the navigation bar will be crossed out.
Click on the icon to visualize error's details.

![fail](https://github.com/farm-ng/amiga-dev-kit/assets/133177230/9bd8b212-3286-4bac-9e40-2ec86b9ff11d)

Occasionally, track following might fail.
An error message will appear and the **Start Path** button will switch to **Error-Check status**.
If you encounter this error message, make sure you Robot meets all the [**Autonomy Requirements**](/docs/apps/autoplot_app/#autonomy-requirements).

For further assistance, reach out to the [support team](mailto:[email protected]).
41 changes: 25 additions & 16 deletions website/docs/apps/camera_app/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,8 @@ The app provides a live feed from each connected oak camera, allowing users to s
camera sees.
This real-time visualization aids in making informed adjustments to camera settings for optimal
recording quality.
![Screenshot from 2023-12-08 11-38-03](https://github.com/farm-ng/amiga-dev-kit/assets/39603677/7c630193-68fb-4916-ae3c-fbfb16c33992)

![main](https://github.com/farm-ng/amiga-dev-kit/assets/133177230/1a146c44-e9f7-40de-ad75-df26a6c2bba7)

### Camera Configuration

Expand All @@ -30,33 +31,41 @@ The following settings can be adjusted directly within the app:
- **Exposure Time (ms)**: Control the duration of each frame's exposure to light.
- **ISO Value**: Adjust the camera's sensitivity to light.
- **Lens Position**: Fine-tune the focus of the camera lens to capture sharp images.
- **Settings Adjustment**: Quick access to camera settings, with sliders for manual adjustments and
checkboxes for automatic configurations.
- **Camera Selection**: Tabs for each oak device enable users to switch between different cameras effortlessly.

![settings](https://github.com/farm-ng/amiga-dev-kit/assets/133177230/3da3b23d-8c59-45b8-bbb4-c86b388edd64)

![Screenshot from 2023-12-08 11-43-07](https://github.com/farm-ng/amiga-dev-kit/assets/39603677/e50a1425-9274-4c3b-ba95-e8c18e1a6c4e)
For convenience, users may also opt for:

- **Auto Exposure**: The camera automatically adjusts the exposure settings for the best image quality.
- **Auto Focus**: The camera will manage its focus settings to ensure clarity and detail in recorded
imagery.

### Direct Recording
:::tip
Double click anyone of the auto controls to open up their manual configuration settings.
**Single Log File** allows you to set a maximum file size for log recording.
:::

Initiate data recording directly from the Camera App with the same efficacy as using the Recorder App.
This feature is particularly useful for capturing imagery data streams, like RGB, left, right, and
disparity views, without the need for additional configuration.
### Direct Recording

:::note
Recording from the Camera App is equivalent to recording from the Recorder App, however, the Recorder
App provides additional data streams such as GPS and canbus.
:::
**Start/Stop Recording**: Simple controls to begin or end the recording session.

## Streamlined Interface
![start rec](https://github.com/farm-ng/amiga-dev-kit/assets/133177230/cb1d2d19-aaf5-4091-9d65-b2bf7b6e7499)

The Camera App interface is designed for ease of use:
To initiate data recording through the Camera App, simply press the **Start Recording** button at
the upper right corner. The button will switch from green to red and start flashing,
signaling that the recording is underway.
This functionality is especially handy for capturing various imagery data
streams such as RGB, left, right, and disparity views, all without requiring extra configuration.

- **Start/Stop Recording**: Simple controls to begin or end the recording session.
- **Settings Adjustment**: Quick access to camera settings, with sliders for manual adjustments and
checkboxes for automatic configurations.
- **Camera Selection**: Tabs for each oak device enable users to switch between different cameras effortlessly.
:::tip
By default, all the topic streams in the [**Recorder**](/docs/apps/launcher/#recorder)
are captured when you press the **RECORD** button on the navigation bar, or the **Start Recording** button
on the camera app. You may select individual topics to record from the
[**Recorder**](/docs/apps/launcher/#recorder) tab.
:::

With its user-friendly design and comprehensive feature set, the Camera App is an indispensable tool
for anyone looking to maximize the capabilities of their Amiga robot's camera system.
Loading
Loading