/pathfinder

ESP32-based mobile edge computing platform

Primary LanguageCGNU General Public License v3.0GPL-3.0

Pathfinder

ESP32-based mobile edge computing device based on the Waveshare UGV platform

Table of Contents

Requirements

Hardware

A Pathfinder unit consists of three distinct groups of hardware components:

  • Mobility Platform
  • compute environment
  • camera platform

Mobility 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)

Compute Environment

The Compute Environment (CE) provides processing and networking capabilities for the Pathfinder unit.

This group consists of:

Camera Platform

The Camera Platform (CP) provides visual detection capabilities for the Pathfinder unit.

This group consists of:

Software

For an exhaustive list of Core and Library versions, see ./sketch.yml.

Development

For development and testing of this repository:

  • arduino-lint 1.2.0 or newer
  • cpplint 1.6.0 or newer
  • clang-format 18.1.0 or newer
  • ESP32 Toolchain 5.2.0 or newer

Usage

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`

Notes

Hardware Datasheets

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.

Delays

All use of the delay() function is intentional, despite the function's blocking behavior.

Contributors

For a list of current (and past) contributors to this repository, see GitHub.

License

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.