Fixed Grammatical Errors and updated documentation.
This commit is contained in:
committed by
Rune Harlyk
parent
b113a30942
commit
e0d3912d83
+8
-17
@@ -8,30 +8,21 @@ If you're seeing this, you've probably already done this step. Congrats!
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
# create a new project in the current directory
|
# create a new project in the current directory
|
||||||
npm create svelte@latest
|
npx sv create
|
||||||
|
|
||||||
# create a new project in my-app
|
|
||||||
npm create svelte@latest my-app
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Developing
|
## Developing
|
||||||
|
|
||||||
Once you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server:
|
Once you've created your project, follow these steps:
|
||||||
|
|
||||||
```bash
|
1: Delete package-lock.json
|
||||||
npm run dev
|
2: Check `git status`. If you see any changes other than package-lock.json or favicon.ico, run the command `git restore ./` (See below)
|
||||||
|
3: Run `npm install` or `pnpm install` or `yarn` to install the dependencies
|
||||||
|
4: Run `npm run build` to build the project
|
||||||
|
|
||||||
# or start the server and open the app in a new browser tab
|
Running `git status` should show:
|
||||||
npm run dev -- --open
|
|
||||||
```
|
|
||||||
|
|
||||||
## Building
|
[](https://postimg.cc/7CFsp2bq)
|
||||||
|
|
||||||
To create a production version of your app:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
npm run build
|
|
||||||
```
|
|
||||||
|
|
||||||
You can preview the production build with `npm run preview`.
|
You can preview the production build with `npm run preview`.
|
||||||
|
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
# Components
|
# Components
|
||||||
|
|
||||||
Spot is comprised of a 3D printed body, some hardware and list of electronic components.
|
Spot is comprised of a 3D-printed body, some hardware, and a list of electronic components.
|
||||||
|
|
||||||
## Hardware
|
## Hardware
|
||||||
|
|
||||||
Spot is 3D printed and is a combination of different Spot Micro designs, with some minor modification on top.
|
Spot is 3D-printed and is a combination of different Spot Micro designs, with some minor modifications.
|
||||||
The original design is developed by KDY0523.
|
The original design was developed by KDY0523.
|
||||||
|
|
||||||
- [robjk reinforced shoulder remix](https://www.thingiverse.com/thing:4937631)
|
- [robjk reinforced shoulder remix](https://www.thingiverse.com/thing:4937631)
|
||||||
- [Kooba SpotMicroESP32 remix](https://www.thingiverse.com/thing:4559827)
|
- [Kooba SpotMicroESP32 remix](https://www.thingiverse.com/thing:4559827)
|
||||||
- [KDY0532 original design](https://www.thingiverse.com/thing:3445283)
|
- [KDY0532 original design](https://www.thingiverse.com/thing:3445283)
|
||||||
|
|
||||||
The 3D prints is assembled with some additional component:
|
The 3D prints are assembled with some additional non-printable components:
|
||||||
|
|
||||||
- 84x M2x8 screws + M2 nuts
|
- 84x M2x8 screws + M2 nuts
|
||||||
- 92x M3x8 screws + M3 nuts
|
- 92x M3x8 screws + M3 nuts
|
||||||
@@ -20,7 +20,7 @@ The 3D prints is assembled with some additional component:
|
|||||||
|
|
||||||
## Electronics
|
## Electronics
|
||||||
|
|
||||||
These are the electronics i used for mine and can easily be switched up to suit your Spot's needs.
|
These are the electronics I used for mine, and they can easily be swapped to suit your Spot's needs.
|
||||||
|
|
||||||
| Component | Specification | Required | Recommendation |
|
| Component | Specification | Required | Recommendation |
|
||||||
| ------------------------- | ----------------------------- | -------- | ------------------------------------------------------------------------------------------------------- |
|
| ------------------------- | ----------------------------- | -------- | ------------------------------------------------------------------------------------------------------- |
|
||||||
@@ -39,6 +39,6 @@ These are the electronics i used for mine and can easily be switched up to suit
|
|||||||
| 7.6-8.4V Battery | Battery | No | Im using 4x 18650 in 2s2p configuration, but other people have 2s LiPos. |
|
| 7.6-8.4V Battery | Battery | No | Im using 4x 18650 in 2s2p configuration, but other people have 2s LiPos. |
|
||||||
| 4x Servo extension cables | Servo extension cables | Yes | You can either buy them or make them with a couple or headers and some cable. |
|
| 4x Servo extension cables | Servo extension cables | Yes | You can either buy them or make them with a couple or headers and some cable. |
|
||||||
|
|
||||||
I recommend getting a ESP32-S3 with a camera, allowing for more computation and imaging capabilities.
|
I recommend getting an ESP32-S3 with a camera, allowing for more computation and imaging capabilities.
|
||||||
|
|
||||||
It means a more responsive robot as its faster doing sensor fusion, calculating kinematic and gait planning, and networking.
|
It means a more responsive robot as it's faster at doing sensor fusion, calculating kinematics and gait planning, and networking.
|
||||||
|
|||||||
+5
-5
@@ -1,6 +1,6 @@
|
|||||||
# Assembly and calibration
|
# Assembly and calibration
|
||||||
|
|
||||||
There exist a number of great resources for the assembly of the spot micro. For this reason I refer to these, as the steps are the same for this version:
|
There are a number of great resources for the assembly of the Spot Micro. For this reason, I refer to these, as the steps are the same for this version:
|
||||||
|
|
||||||
- [Michael Kubina SpotMicroESP32 assembly](https://github.com/michaelkubina/SpotMicroESP32/tree/master/assembly)
|
- [Michael Kubina SpotMicroESP32 assembly](https://github.com/michaelkubina/SpotMicroESP32/tree/master/assembly)
|
||||||
- [Spot Micro AI assembly](https://spotmicroai.readthedocs.io/en/latest/assembly/)
|
- [Spot Micro AI assembly](https://spotmicroai.readthedocs.io/en/latest/assembly/)
|
||||||
@@ -9,7 +9,7 @@ There exist a number of great resources for the assembly of the spot micro. For
|
|||||||
|
|
||||||
Discussion about [Calibration](https://github.com/runeharlyk/SpotMicroESP32-Leika/discussions/118)
|
Discussion about [Calibration](https://github.com/runeharlyk/SpotMicroESP32-Leika/discussions/118)
|
||||||
|
|
||||||
Assuming the servos are connected to the PCA9685 and is powered on:
|
Assuming the servos are connected to the PCA9685 and are powered on:
|
||||||
|
|
||||||
### Calibrate in servo frame
|
### Calibrate in servo frame
|
||||||
|
|
||||||
@@ -38,13 +38,13 @@ You now have the values for the servos.
|
|||||||
|
|
||||||
### Calibration in body frame
|
### Calibration in body frame
|
||||||
|
|
||||||
They now has to calibrated to the body frame. It assumed they have the center pwm pointing straight down.
|
They now have to be calibrated to the body frame. It is assumed they have the center PWM pointing straight down.
|
||||||
|
|
||||||
1. Navigate to `/controller` and click on "Calibrate". This will set the servo to the center pwm value.
|
1. Navigate to `/controller` and click on "Calibrate". This will set the servo to the center pwm value.
|
||||||
2. Navigate to `peripherals/servo` - Here you can set the servo angle offset.
|
2. Navigate to `peripherals/servo` - Here you can set the servo angle offset.
|
||||||
|
|
||||||
All the legs should be pointing down. If they are not you have to options. 1; Physically move the servos to the correct position by un screwing the servo horns. 2; Update the servo offset in the servo table.
|
All the legs should be pointing down. If they are not, you have two options. 1. Physically move the servos to the correct position by unscrewing the servo horns. 2. Update the servo offset in the servo table.
|
||||||
|
|
||||||
## Circuit diagram
|
## Circuit diagram
|
||||||
|
|
||||||

|

|
||||||
|
|||||||
+5
-5
@@ -1,6 +1,6 @@
|
|||||||
# Software
|
# Software
|
||||||
|
|
||||||
The robots firmware is built using platform io using the arduino framework over ESP-IDF.
|
The robot's firmware is built using PlatformIO with the Arduino framework over ESP-IDF.
|
||||||
|
|
||||||
## Prerequisites
|
## Prerequisites
|
||||||
|
|
||||||
@@ -8,7 +8,7 @@ To prepare the frontend code for the ESP32, a specific build chain is required.
|
|||||||
|
|
||||||
### Required Software
|
### Required Software
|
||||||
|
|
||||||
Install the following software to ensure all functionalities:
|
Install the following software to ensure all functionality:
|
||||||
|
|
||||||
- [VSCode](https://code.visualstudio.com/) - Preferred IDE for development
|
- [VSCode](https://code.visualstudio.com/) - Preferred IDE for development
|
||||||
- [Node.js](https://nodejs.org) - Needed for app building
|
- [Node.js](https://nodejs.org) - Needed for app building
|
||||||
@@ -45,9 +45,9 @@ For additional boards, refer to the [official board list](https://docs.platformi
|
|||||||
|
|
||||||
### Factory settings
|
### Factory settings
|
||||||
|
|
||||||
Update the `esp32/factory_setting.ini` with new wifi settings, app name and other device information.
|
Update the `esp32/factory_setting.ini` with new Wi-Fi settings, app name and other device information.
|
||||||
|
|
||||||
### Build & Upload Process
|
### Build & Upload Process
|
||||||
|
|
||||||
Update the `platformio.ini` file for your board, then navigate to the PlatformIO tab, select your environment, click `Upload Filesystem Image` and after uploading finish, click `Upload and Monitor`. The filesystem image only has to be uploaded the first time and will override config files on the microcontroller.
|
Update the `platformio.ini` file for your board, then navigate to the PlatformIO tab, select your environment, click `Upload Filesystem Image` and after uploading finishes, click `Upload and Monitor`. The filesystem image only needs to be uploaded the first time. It will override config files on the microcontroller.
|
||||||
When uploading new firmware the app is evaluated and if necessary will be rebuild.
|
When uploading new firmware, the app is evaluated, and if necessary, will be rebuilt.
|
||||||
|
|||||||
@@ -4,10 +4,10 @@
|
|||||||
|
|
||||||
## Connecting to the network
|
## Connecting to the network
|
||||||
|
|
||||||
If the wifi settings were configured using `esp32/factory_settings.ini` the robot will try to connect to the network.
|
If the Wi-Fi settings were configured using `esp32/factory_settings.ini`, the robot will try to connect to the network.
|
||||||
|
|
||||||
If it fails to connect, it will host a AP with a captive portal where it's possible to configure wifi settings.
|
If it fails to connect, it will host an AP with a captive portal where it's possible to configure Wi-Fi settings.
|
||||||
|
|
||||||
When the robot connect successfully the ip address will be printed to the serial monitor
|
When the robot connects successfully, the IP address will be printed to the serial monitor.
|
||||||
|
|
||||||
<!-- ## Calibrating servos -->
|
<!-- ## Calibrating servos -->
|
||||||
|
|||||||
+2
-2
@@ -1,10 +1,10 @@
|
|||||||
# Running the spot
|
# Running the spot
|
||||||
|
|
||||||
> *Prerequsition*: You have successfully build, flashed and configured your robot.
|
> *Prerequsition*: You have successfully built, flashed, and configured your robot.
|
||||||
|
|
||||||
Navigate to `/controller`
|
Navigate to `/controller`
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
<!-- When the robot is in a safe position, click on rest.
|
<!-- When the robot is in a safe position, click on Rest.
|
||||||
This will activate the servos and put the robot in the rest position. -->
|
This will activate the servos and put the robot in the rest position. -->
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
# Developing
|
# Developing
|
||||||
|
|
||||||
> _Prerequsition_: You have successfully build, flashed and configured your robot.
|
> _Prerequsition_: You have successfully built, flashed, and configured your robot.
|
||||||
|
|
||||||
## Setting up SvelteKit
|
## Setting up SvelteKit
|
||||||
|
|
||||||
### Proxy Configuration for Development
|
### Proxy Configuration for Development
|
||||||
|
|
||||||
Configure the proxy settings in the `vite.config.ts` file to direct API calls to your ESP32 device. By default it used the factory MDNS address, but can be changed to the ip if preferred.
|
Configure the proxy settings in the `vite.config.ts` file to direct API calls to your ESP32 device. By default, it uses the factory MDNS address, but it can be changed to the IP if preferred.
|
||||||
|
|
||||||
```ts
|
```ts
|
||||||
server: {
|
server: {
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 110 KiB |
@@ -1,10 +1,10 @@
|
|||||||
# 🏁 Motion state controller
|
# 🏁 Motion state controller
|
||||||
|
|
||||||
The motion controller is a finite state machine with state allowing for static and dynamic posing, 8-phase crawl and bezier bases trot gait, and choreographed animation.
|
The motion controller is a finite state machine that allows for static and dynamic posing, 8-phase crawl, bezier-based trot gait, and choreographed animation.
|
||||||
|
|
||||||
## Controller Input Mapping
|
## Controller Input Mapping
|
||||||
|
|
||||||
The controller input is interpret different between the modes. For the walking it it looks like this:
|
The controller input is interpreted differently between the modes. For walking, it looks like this:
|
||||||
|
|
||||||
| Controller Input | Mapped to Gait Step | Range |
|
| Controller Input | Mapped to Gait Step | Range |
|
||||||
| ---------------- | ------------------- | ------- |
|
| ---------------- | ------------------- | ------- |
|
||||||
@@ -21,7 +21,7 @@ The controller input is interpret different between the modes. For the walking i
|
|||||||
|
|
||||||
## Walking gait
|
## Walking gait
|
||||||
|
|
||||||
General about walking gait
|
General description of walking gait.
|
||||||
|
|
||||||
Time step
|
Time step
|
||||||
|
|
||||||
@@ -31,9 +31,9 @@ Stance and swing controller
|
|||||||
|
|
||||||
## 8-phase crawl gait
|
## 8-phase crawl gait
|
||||||
|
|
||||||
The 8-phase crawl gait works by lifting one leg at a time while shifting its body weight away from the leg.
|
The 8-phase crawl gait works by lifting one leg at a time while shifting the body weight away from that leg.
|
||||||
|
|
||||||
As the name implies, the gait consist of 8 discrete phases, which represents which feet should be contact the ground or be in swing.
|
As the name implies, the gait consists of 8 discrete phases, which represent which feet should be in contact with the ground or in swing.
|
||||||
|
|
||||||
At each time step the phase time $t\in [0,1]$ is updated. When $t\geq 1$ the phase index is updated and phase time is reset.
|
At each time step the phase time $t\in [0,1]$ is updated. When $t\geq 1$ the phase index is updated and phase time is reset.
|
||||||
|
|
||||||
|
|||||||
@@ -16,10 +16,11 @@ extra_configs =
|
|||||||
features.ini
|
features.ini
|
||||||
build_settings.ini
|
build_settings.ini
|
||||||
build_cache_dir = .pio/build_cache
|
build_cache_dir = .pio/build_cache
|
||||||
default_envs = esp32-camera
|
default_envs = esp32-camera ; Change this to your default environment example: [env:{esp32-camera}]
|
||||||
|
|
||||||
; ================================================================
|
; ================================================================
|
||||||
; Project environments
|
; Project environments
|
||||||
|
; More Board information: https://registry.platformio.org/platforms/platformio/espressif32/boards
|
||||||
|
|
||||||
[env:esp32-camera]
|
[env:esp32-camera]
|
||||||
board = esp32cam
|
board = esp32cam
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
<br />
|
<br />
|
||||||
Spot Micro - Leika 🐕
|
Spot Micro - Leika 🐕
|
||||||
</h1>
|
</h1>
|
||||||
<h4>A small quadruped robot, inspired by boston dynamic <a href="https://bostondynamics.com/products/spot/" target="_blank">Spot</a>.</h4>
|
<h4>A small quadruped robot, inspired by Boston Dynamics <a href="https://bostondynamics.com/products/spot/" target="_blank">Spot</a>.</h4>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
<a href="docs/readme.md"><strong>Explore the docs »</strong></a>
|
<a href="docs/readme.md"><strong>Explore the docs »</strong></a>
|
||||||
@@ -25,7 +25,7 @@
|
|||||||
## 📜 Overview
|
## 📜 Overview
|
||||||
|
|
||||||
Leika is a smaller quadruped robot for the Spot-Micro community.
|
Leika is a smaller quadruped robot for the Spot-Micro community.
|
||||||
Built on an ESP32 and powered by FreeRTOS, she can handle multiple tasks seamlessly - Like video and data streaming, solving kinematic and gait planning, controlling IO and much more.
|
Built on an ESP32 and powered by FreeRTOS, she can handle multiple tasks seamlessly—like video and data streaming, solving kinematic and gait planning, controlling I/O, and much more.
|
||||||
By focusing on practicality and simplicity in both hardware and software, it offer an accessible platform for learning, experimentation, and modest real-world applications.
|
By focusing on practicality and simplicity in both hardware and software, it offer an accessible platform for learning, experimentation, and modest real-world applications.
|
||||||
|
|
||||||
## 🎯 Features
|
## 🎯 Features
|
||||||
@@ -83,8 +83,8 @@ $$ -->
|
|||||||
|
|
||||||
### 🎮 Controller
|
### 🎮 Controller
|
||||||
|
|
||||||
The controller is a svelte app, which get embedded in the firmware of the robot.
|
The controller is a Svelte app, which get embedded in the firmware of the robot.
|
||||||
Which mean that new releases and OTA updates includes the latest controller.
|
Which means that new releases and OTA updates include the latest controller.
|
||||||
|
|
||||||
The controller includes full control over robot settings like network and calibration, and a visualization.
|
The controller includes full control over robot settings like network and calibration, and a visualization.
|
||||||
|
|
||||||
@@ -113,11 +113,11 @@ The kinematic for the robot is from this [kinematics paper](https://www.research
|
|||||||
|
|
||||||
## 🏁 Motion state controller
|
## 🏁 Motion state controller
|
||||||
|
|
||||||
The motion controller is a finite state machine with state allowing for static and dynamic posing, 8-phase crawl and bezier based trot gait, and choreographed animation.
|
The motion controller is a finite state machine with states allowing for static and dynamic posing, an 8-phase crawl, Bezier-based trot gait, and choreographed animation.
|
||||||
|
|
||||||
### Controller Input Mapping
|
### Controller Input Mapping
|
||||||
|
|
||||||
The controller input is interpret different between the modes. For the walking it it looks like this:
|
The controller input is interpreted differently between the modes.
|
||||||
|
|
||||||
| Controller Input | Mapped to Gait Step | Range |
|
| Controller Input | Mapped to Gait Step | Range |
|
||||||
| ---------------- | ------------------- | ------- |
|
| ---------------- | ------------------- | ------- |
|
||||||
@@ -175,7 +175,7 @@ Rotation is calulated using the same curve
|
|||||||
|
|
||||||
## 🚀 Future
|
## 🚀 Future
|
||||||
|
|
||||||
See the [project backlog](https://github.com/users/runeharlyk/projects/3) and [open issues](https://github.com/runeharlyk/SpotMicroESP32-Leika/issues) for full list of proposed and active features (and known issues).
|
See the [project backlog](https://github.com/users/runeharlyk/projects/3) and [open issues](https://github.com/runeharlyk/SpotMicroESP32-Leika/issues) for a full list of proposed and active features (and known issues).
|
||||||
|
|
||||||
## 🙌 Credits
|
## 🙌 Credits
|
||||||
|
|
||||||
@@ -191,7 +191,7 @@ This project takes great inspiration from the following resources:
|
|||||||
|
|
||||||
## ☕ Support
|
## ☕ Support
|
||||||
|
|
||||||
If you like the project and want to follow it evolving concidering ✨-ing the project
|
If you like the project and want to follow its evolution, consider ✨-ing the project
|
||||||
|
|
||||||
<a href="https://bmc.link/runeharlyk" target="_blank"><img src="https://www.buymeacoffee.com/assets/img/custom_images/purple_img.png" alt="Buy Me A Coffee" style="height: 41px !important;width: 174px !important;box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;-webkit-box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;" ></a>
|
<a href="https://bmc.link/runeharlyk" target="_blank"><img src="https://www.buymeacoffee.com/assets/img/custom_images/purple_img.png" alt="Buy Me A Coffee" style="height: 41px !important;width: 174px !important;box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;-webkit-box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;" ></a>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user