theAgingApprentice / HexaFloorRide

Arduino based six legged robot project
MIT License
0 stars 0 forks source link
arduino embedded robot telemetry-client

hexaBot

LICENSE

This repository contains the Arduino source code that runs on an embedded processor at the heart of the six legged robot we call HexaFloorRide. The goals of this project can be found here.

Getting Started

This project requires that you have a HexaFloorRide robot. The Robot is made up of a custom robot chassis and PCB as well as the code in this repository. Without a HexaFloorRide robot this code will not be very useful to you.

Documentation

Here is an index of links to helpful documents found in this repository.

Constructing a HexaFloorRide Robot

HexaFloorRide User Guides

HexaFloorRide Developers Guide

Prerequisites

In order to make use of the code in this repository you will require the following items.

Development Software Stack

Code Compatability

HexaFloorRide software runs as a monolithic firmware image. The high level logic and peripheral interactions are handled using Arduino C++. FreeRTOS is used to run a WiFi stack as well as the primitive xTaskCreatePinnedToCore() which is used to manage mutli-threaded process execution.

HexaFloorRide's firmware is intended to run on the Espressif ESP WROOM32 "Software On a Chip" (SOC). The development board used for this SOC is the Adafruit Huzzah32 Feather Board.. Note that some standard Arduino functions such as AnalogWrite() have not been implemented on the ESP32 SOC and alternate functions such as ledcSetup(), ledcAttachPin() and ledcWrite() must be used in their place. There are some additional compatability issues of note as follows:

Installing

A set of instructions on how to install the source code for theAgingApprentice projects can be found here.

Testing

At this time we have no tools or standards for automated testing of Arduino code on an embedded system.

Deployment

Use serial over USB to load the inital code onto the embedded system. Subsequent builds can be uploaded using either serial over USB or a OTA web interface hosted by the robot which allows you to do OTA updates.

Built With

If you are new to these tools then you may want to read this.

Contributing

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us. If you wish to contribute, please follow our conventions for the use of header files which can be seen here

Versioning

We use Semantic Versioning in naming the releases of this code base.

Kinematic Model

HexaFloorRide uses an inverse kinematic model to manipulate it's legs. To learn more about our implementation of an inverse kinematic model look here.

Authors

License

This project is licensed under the MIT License.

Acknowledgments