1. Choosing your coprocessor and cameras
1.1. Choosing your coprocessor
If you are building a setup from scratch, the recommended system requirements are
Raspberry Pi 5 8GB w/active cooling
Raspberry Pi OS Bookworm Lite (64-bit)
128GB high endurance microSD card
If you have components on hand, the minimum system requirements are
Raspberry Pi 4 4GB (or equivalent)
Raspberry Pi OS (64-bit) (or equivalent)
32GB storage
A high read/write endurance microSD card, adequate cooling (active coolers are preferred), and a high quality power supply are highly recommended.
MAPLE was developed to run on low power ARM single board computers but can also run on x86 machines.
Ensure your system has enough IO for all of your cameras.
1.2. Choosing your cameras
There are many factors to consider when choosing your cameras for MAPLE. You can mix and match your camera models, resolutions, framerates, etc., to fit your use case.
If you are building a setup from scratch, we recommend 3 high framerate global shutter Arducam modules, such as the OV9281 640p 100FPS monochrome global shutter camera.
If you have cameras on hand, all USB 2.0/3.0 and CSI cameras are supported. See the important factors below when choosing your cameras.
1.2.1. Important factors
Resolution
Apriltags can be detected from further away with higher resolution cameras. However, CPU load significantly increases with resolution. Finding the minimum resolution for your desired application is critical to improve performance. Most cameras support a variety of resolutions lower than their advertised resolution.
Framerate
Higher framerate cameras will have less blur during fast movements and will have lower latency during pose estimation.
Number of cameras
Additional cameras will decrease blindspots, increase accuracy, but also increase CPU load. Find a balance between the number of cameras and the desired visibility/accuracy.
Lens
Currently, fisheye lenses are not supported in MAPLE, but distortion correction for pinhole cameras is available. Cameras with advertised low distortion lenses can be desirable and remove the need to perform any distortion correction in software, which will dramatically increase performance.
Global vs. rolling shutter
Global shutter cameras read an image from all of the camera’s pixels at once, reducing motion blur and distortion affects on objects that are moving quickly. Global shutter cameras are preferred but not necessary.
Power
Using many high current draw cameras on a single board computer can cause the system to brownout or restart. For the Raspberry Pi 4/5, use a >=20watt USB-C power supply. You can also power the Raspberry Pi via the GPIO pins.
Driver compatibility
Arducam cameras tend to behave better with OpenCV and how Linux handles UVC devices. Arducam devies are preferred.
Warning
Cameras with known issues:
Logitech C270 Exposure and framerate cannot be directly set. The brighter the scene is when MAPLE starts up, the higher the framerate the camera will be locked into.
1.2.2. Less important factors
Sensor size
Larger sensors will have better low light performance, which may be important for some applications.
1.3. Example Configurations
Co-processor |
Camera |
FPS |
|---|---|---|
Raspberry Pi 4 - 4GB |
3 Logitech C270 USB 2.0 @ 544 x 288 |
3 @ 30 |