🐏 Adds gait structures

This commit is contained in:
Rune Harlyk
2024-07-22 13:58:47 +02:00
committed by Rune Harlyk
parent f8e52bf4c0
commit bd7fef7c46
3 changed files with 488 additions and 49 deletions
@@ -0,0 +1,60 @@
#ifndef GAIT_STATE_H
#define GAIT_STATE_H
#include <Kinematics.h>
class GaitState {
private:
public:
GaitState() { ESP_LOGI("GaitState", "%s constructor", name); }
virtual ~GaitState() = 0;
virtual void begin() = 0;
virtual void end() = 0;
virtual void loop() = 0;
const char *name;
static body_state_t body_state;
};
class IdleState : public GaitState {
public:
IdleState() { name = "Idle"; }
~IdleState() {}
void begin() override { ESP_LOGI("GaitState", "IdleState begin"); }
void end() override { ESP_LOGI("GaitState", "IdleState end"); }
void loop() override { ESP_LOGI("GaitState", "IdleState loop"); }
};
class StandState : public GaitState {
public:
StandState() { name = "Stand"; }
~StandState() {}
void begin() override { ESP_LOGI("GaitState", "StandState begin"); }
void end() override { ESP_LOGI("GaitState", "StandState end"); }
void loop() override { ESP_LOGI("GaitState", "StandState loop"); }
};
class WalkState : public GaitState {
public:
WalkState() { name = "Walk"; }
~WalkState() {}
void begin() override { ESP_LOGI("GaitState", "WalkState begin"); }
void end() override { ESP_LOGI("GaitState", "WalkState end"); }
void loop() override { ESP_LOGI("GaitState", "WalkState loop"); }
};
#endif