Skip to content

Commit

Permalink
0.4.2 config format change: add render depth, change frequency type, …
Browse files Browse the repository at this point in the history
…change planner schedule step unit
  • Loading branch information
makeecat committed Sep 4, 2024
1 parent 8da51e6 commit ab0d4a4
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 4 deletions.
2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
@@ -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 <yangzhou.info@gmail.com>"]
Expand Down
23 changes: 20 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,24 +1,30 @@
# [![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)
[![Docs](https://docs.rs/peng_quad/badge.svg)](https://docs.rs/peng_quad/latest/peng_quad/)
[![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
peng_quad config/quad.yaml
```

### Installation from Source

```bash
cargo install rerun-cli
git clone https://github.com/makeecat/Peng.git && cd Peng
Expand All @@ -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
Expand All @@ -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
Expand All @@ -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!

Expand All @@ -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)

Expand Down

0 comments on commit ab0d4a4

Please sign in to comment.