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 waypointsClone 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.
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.
cd quadrotor_simulator/ros_ws
catkin_make
source devel/setup.bash
- 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.
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).
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}}