A simple bebop simulator for high level controller development. It has been tested on Ubuntu 16.04 (Xenial) with ROS Kinetic.
- Sphinx Note: you might need to disable the front camera and change the virtual ethernet.
- bebop_autonomy Note: remember to change the IP address.
- nav_msgs
$ cd [ROS_workspace]/src
$ git clone https://github.com/0Jiahao/bebop_simulator.git
$ cd ..
$ catkin build
- Start.sh: start the simulation
- Takeoff.sh: takeoff
- Land.sh: land
- Reset.sh: start at the origin and takeoff
- Random_Reset.sh: start at a random position with random yaw angle and takeoff
The ground truth data can be read via topic /simulator/odometry.
Different models are simply estimated, including pitch, roll, and vertical velocity, yawrate, air drag. Some estimated parameter can be found in results.txt. We currently using pitch, roll and vertical velocity for system modelling.
Pitch Model is a first-order system
with constraint
Roll Model is a first-order system
with constraint
Vertical Velocity Model is a second-order system
with constraint
The Integrated System (linearized around stationary) can be written as
Note that the and are the estimated coefficients of air drag force.
bebop_mpc is an example of target-point tracking with a simple linear MPC controller. The result shown below is initialized with a random position and end up with the target point (5,4,3)
.