From ab0d4a472104056c41bfe468573293754a620e4b Mon Sep 17 00:00:00 2001 From: Yang Zhou Date: Wed, 4 Sep 2024 12:48:33 -0400 Subject: [PATCH] 0.4.2 config format change: add render depth, change frequency type, change planner schedule step unit --- Cargo.toml | 2 +- README.md | 23 ++++++++++++++++++++--- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index d4edddf2..9aba5c7a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "peng_quad" -version = "0.4.1" +version = "0.4.2" edition = "2021" rust-version = "1.76" authors = ["Yang Zhou "] diff --git a/README.md b/README.md index e62af337..2fade3cf 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,5 @@ # [![Peng](assets/Peng.svg)](https://github.com/makeecat/Peng) + [![License](https://img.shields.io/badge/license-MIT%2FApache-blue.svg)](https://github.com/makeecat/Peng#license) [![Crates.io](https://img.shields.io/crates/v/peng_quad.svg)](https://crates.io/crates/peng_quad) [![Downloads](https://img.shields.io/crates/d/peng_quad.svg)](https://crates.io/crates/peng_quad) @@ -6,12 +7,16 @@ [![CI](https://github.com/makeecat/Peng/actions/workflows/CI.yml/badge.svg)](https://github.com/makeecat/Peng/actions/workflows/CI.yml) [![dependency status](https://deps.rs/repo/github/makeecat/peng/status.svg)](https://deps.rs/repo/github/makeecat/peng) [![Gitter](https://img.shields.io/gitter/room/peng/peng)](https://app.gitter.im/#/room/#peng:gitter.im) + ## What is Peng + Peng is a minimal quadrotor autonomy framework in Rust. It includes a simulator, controller, and planner, providing a basic framework for simulating quadrotor dynamics and control. ![demo](assets/Peng_demo.gif) + ## Getting Started ### Installation from Crates.io + ```bash cargo install rerun-cli cargo install peng_quad @@ -19,6 +24,7 @@ peng_quad config/quad.yaml ``` ### Installation from Source + ```bash cargo install rerun-cli git clone https://github.com/makeecat/Peng.git && cd Peng @@ -28,16 +34,21 @@ cargo run --release config/quad.yaml You can configure the simulation through config file, see [quad.yaml](config/quad.yaml) for example. Please follow [rerun troubleshooting](https://rerun.io/docs/getting-started/troubleshooting) if you are using Linux or WSL2. + ## Overview ### Quadrotor Simulator + Simulates realistic quadrotor dynamics with properties like position, velocity, orientation, angular velocity, mass, and inertia. Includes methods for updating dynamics with control inputs and simulating IMU readings and Depth map rendering. ### PID Controller + Controls position and attitude with configurable gains for proportional, integral, and derivative terms. Handles both position and attitude control. ### Trajectory Planners + Includes multiple planners: + - Hover Planner - Minimum Jerk Line Planner - Lissajous Curve Planner @@ -47,9 +58,11 @@ Includes multiple planners: - Waypoint Planner ### Obstacle Simulation + Simulates moving obstacles in the environment, with collision detection and avoidance capabilities based on potential field. ### Data Logging and Visualization + Logs comprehensive simulation data including quadrotor state, desired positions, IMU readings, and depth map rendering. Visualizes the simulation using the rerun library. ## Features @@ -63,17 +76,20 @@ Logs comprehensive simulation data including quadrotor state, desired positions, - Integration with rerun for real-time visualization ## TODO + - [ ] Environment Effect simulation such as wind field - [ ] Add motor speed simulation +- [ ] Multi-quadrotor simulation - [ ] MPC controller ## License Peng is free, open source and permissively licensed! Except where noted (below and/or in individual files), all code in this repository is dual-licensed under either: -* MIT License ([LICENSE-MIT](LICENSE-MIT) or [http://opensource.org/licenses/MIT](http://opensource.org/licenses/MIT)) -* Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0)) -at your option. + +- MIT License ([LICENSE-MIT](LICENSE-MIT) or [http://opensource.org/licenses/MIT](http://opensource.org/licenses/MIT)) +- Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0)) + at your option. This means you can select the license you prefer! @@ -87,6 +103,7 @@ We chose the name Peng because our pipeline is flexible and can transform to sui Reference: https://en.wikipedia.org/wiki/Peng_(mythology) ## Blog posts + - [Peng #1: Minimal quadrotor pipeline in Rust](https://yangrobotics.com/peng-1-minimal-quadrotor-pipeline-in-rust) - [Peng #2: Error Handling, Configuration System and Obstacle Avoidance Planner](https://yangrobotics.com/peng-2-error-handling-configuration-system-and-obstacle-avoidance-planner)