ESP32-based mobile edge computing device based on the Waveshare UGV platform
A Pathfinder unit consists of three distinct groups of hardware components:
- Mobility Platform
- compute environment
- camera platform
The Mobility Platform (
MP
) provides non-tethered movement and power-supply capabilities for the Pathfinder unit.
This group consists of:
- 1 x Waveshare WAVE ROVER
- 1 x TODO Antenna
- 3 x 18650 Lithium batteries (min. 3000mAh capacity)
The Compute Environment (
CE
) provides processing and networking capabilities for the Pathfinder unit.
This group consists of:
- 1 x Raspberry Pi 5 (8GB memory, SKU
RP-5B-8GB
) - 1 x Raspberry Pi Active Cooler
- 1 x Raspberry Pi AI Kit
- 1 x microSD card (minimum 64GB capacity)
The Camera Platform (CP
) provides visual detection capabilities for the Pathfinder unit.
This group consists of:
- 1 x Waveshare 2-axis Pan-Tilt Camera Module
- 1 x youyeetoo FHL-LD19P Lidar device (or compatible)
- a copy of @workloads/tooling
- Arduino IDE
- Arduino CLI
1.0.0
or newer - Arduino Board Core for ESP32 v2.x.x
- Arduino Libraries
For an exhaustive list of Core and Library versions, see ./sketch.yml.
For development and testing of this repository:
arduino-lint
1.2.0
or newercpplint
1.6.0
or newerclang-format
18.1.0
or newer- ESP32 Toolchain
5.2.0
or newer
This repository provides a Makefile-based workflow.
Running make
without commands will print out the following help information:
🧭 PATHFINDER
Target Description Usage
lint-arduino lint Arduino code using arduino-lint `make lint-arduino`
lint-cpp lint C++ code using cpplint and clang-format `make lint-cpp`
lint-yaml lint YAML files `make lint-yaml`
attach attach Arduino Board using arduino-cli `make attach`
clean clean Arduino cache using arduino-cli `make clean`
compile compile Arduino Sketch using arduino-cli `make compile`
upload upload binary artifact using arduino-cli `make upload`
monitor monitor binary output using arduino-cli `make monitor`
install-cores install Arduino Board Core using arduino-cli `make install-cores`
install-libs install Arduino libraries using arduino-cli `make install-libs`
list-libs list Arduino libraries using arduino-cli `make list-libs`
docs create docs using doxygen `make docs`
docs-get-theme retrieve Doxygen theme using git `make docs-get-theme`
help display a list of Make Targets `make help`
_listincludes list all included Makefiles and *.mk files `make _listincludes`
_selfcheck lint Makefile `make _selfcheck`
This repository does not include any datasheets directly.
For an overview of the WAVE ROVER hardware, see waveshare.com.
For an overview of the ESP32 hardware, see espressif.com.
All use of the delay()
function is intentional, despite the function's blocking behavior.
For a list of current (and past) contributors to this repository, see GitHub.
Licensed under the General Public License, Version 3.0 (the "License").
You may download a copy of the License at gnu.org/licenses/gpl-3.0.txt.
See the License for the specific language governing permissions and limitations under the License.