RuslanAgishev / quadrotor_simulator

Quadrotor simulator based on Coursera Aerial Robotics course from University of Pennsylvania

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Quadrotor simulator

Thesis EnT-MIPT

Package description

Quadrotor simulation writen in Matlab with ROS communication. The package is written based on wonderful course from University of Pennsylvania on Coursera.

Fig. 1. Minimum snap trajectory via waypoints

Running the simulation

Clone the repository:

git clone https://github.com/RuslanAgishev/quadrotor_simulator.git
cd quadrotor_simulator/3D

From your Matlab command prompt run:

runsim.m

You would see a quadrotor executing a min-jerk trajectory via sequence of spiral waypoints around a pointcloud object.

ROS integration

During the fligt the drone's state is published as a ROS nav_msgs/Odometry message. You could also access quadrotor's controller commands published as array std_msgs/Float32MultiArray message. Connect to the master in order to see the topics:

export ROS_MASTER_URI=http://YOUR_COMPUTER_NAME_HERE:11311/
rostopic list

It is also possible to look at the prerecorder rosbag file from the simulation. Follow the next steps to do this.

  1. Download the bagfile and place it in the launch directory.

  2. Build the workspace:

cd quadrotor_simulator/ros_ws
catkin_make
source devel/setup.bash
  1. Adjust the poitcloud file path here and play recorded data:
roslaunch quadrotor_sim quadrotor_sim.launch

As an output you should see in Rviz: Trajectory publisher node provides quadrotor path (nav_msgs/Path message) from a sequence of odometry messages.

Implementation details

Minimum jerk and minimum snap trajectories generation implementation is available here. Reference: Daniel Mellinger and Vijay Kumar, 2011.

Quadrotor controller is implemented here. Reference: Coursera lecture from Prof. Vijay Kumar.

Refer to my Bachelor Thesis for more details (in Russian).

Citation

The package was used in the publication. Feel free to cite it if you find it relevant to your recearch.

@INPROCEEDINGS{8757477,
  author={Kalinov, Ivan and Agishev, Ruslan},
  booktitle={2018 Engineering and Telecommunication (EnT-MIPT)}, 
  title={Effective Detection of Real Trajectories of Highly Maneuverable UAVs Under Strong Noise Conditions}, 
  year={2018},
  volume={},
  number={},
  pages={193-196},
  keywords={Kalman filters;Trajectory;Filtration;Radar tracking;Filtering algorithms;Tracking;Drones;UAV;DSP;Kalman filter;trajectory analysis},
  doi={10.1109/EnT-MIPT.2018.00050}}

About

Quadrotor simulator based on Coursera Aerial Robotics course from University of Pennsylvania


Languages

Language:MATLAB 88.3%Language:CMake 8.3%Language:Python 2.9%Language:M 0.4%