All Projects → ctu-mrs → uav_core

ctu-mrs / uav_core

Licence: BSD-3-Clause License
The main integrator of MRS UAV packages in ROS, part of the "mrs_uav_system".

Programming Languages

python
139335 projects - #7 most used programming language
shell
77523 projects
matlab
3953 projects
C++
36643 projects - #6 most used programming language

Projects that are alternatives of or similar to uav core

Px4 Autopilot
PX4 Autopilot Software
Stars: ✭ 5,090 (+18078.57%)
Mutual labels:  uav, drone, ros, autonomous
grvc-ual
An abstraction layer for unmanned aerial vehicles
Stars: ✭ 35 (+25%)
Mutual labels:  uav, drone, ros
Ardupilot
ArduPlane, ArduCopter, ArduRover, ArduSub source
Stars: ✭ 6,637 (+23603.57%)
Mutual labels:  uav, drone, ros
Mrs uav system
The entry point to the MRS UAV system.
Stars: ✭ 64 (+128.57%)
Mutual labels:  uav, drone, ros
ufomap
UFOMap: An Efficient Probabilistic 3D Mapping Framework That Embraces the Unknown
Stars: ✭ 117 (+317.86%)
Mutual labels:  uav, drone
multi uav simulator
A quadrotor swarm simulator based on ROS (Robot Operating System).
Stars: ✭ 73 (+160.71%)
Mutual labels:  uav, drone
ZeroPilot-SW
Software for WARG custom autopilot
Stars: ✭ 13 (-53.57%)
Mutual labels:  uav, drone
gobot
Golang framework for robotics, drones, and the Internet of Things (IoT)
Stars: ✭ 7,869 (+28003.57%)
Mutual labels:  uav, drone
Gymfc
A universal flight control tuning framework
Stars: ✭ 210 (+650%)
Mutual labels:  uav, drone
FMT-Firmware
FMT Autopilot Embedded System
Stars: ✭ 207 (+639.29%)
Mutual labels:  uav, drone
onine
ROS based service robot
Stars: ✭ 32 (+14.29%)
Mutual labels:  ros, autonomous
ESP32
DroneBridge for ESP32. A short range wifi based telemetry link. Support for MAVLink, MSP & LTM (iNAV).
Stars: ✭ 183 (+553.57%)
Mutual labels:  uav, drone
Faster
3D Trajectory Planner in Unknown Environments
Stars: ✭ 246 (+778.57%)
Mutual labels:  uav, drone
firmware
Firmware for the ROSflight autopilot
Stars: ✭ 115 (+310.71%)
Mutual labels:  uav, ros
Dronin
The dRonin flight controller software.
Stars: ✭ 238 (+750%)
Mutual labels:  uav, drone
FlyingCarUdacity
🛩️⚙️ 3D Planning, PID Control, Extended Kalman Filter for the Udacity Flying Car Nanodegree // FCND-Term1
Stars: ✭ 16 (-42.86%)
Mutual labels:  uav, drone
GapFlyt
GapFlyt: Active Vision Based Minimalist Structure-less Gap Detection For Quadrotor Flight
Stars: ✭ 30 (+7.14%)
Mutual labels:  drone, autonomous
QGISFMV
QGIS Full Motion Video (FMV)
Stars: ✭ 104 (+271.43%)
Mutual labels:  uav, drone
zubax gnss
Zubax GNSS module
Stars: ✭ 45 (+60.71%)
Mutual labels:  uav, drone
groundsdk-android
Parrot Ground SDK for Android
Stars: ✭ 17 (-39.29%)
Mutual labels:  uav, drone

The MRS UAV system core

UAV core build status Build Status Build Status
ROS Package 18.04 20.04
mrs_bumper Build Status Build Status
mrs_lib Build Status Build Status
mrs_mavros_interface Build Status Build Status
mrs_msgs Build Status Build Status
mrs_rviz_plugins Build Status Build Status
mrs_uav_controllers Build Status Build Status
mrs_uav_general Build Status Build Status
mrs_uav_managers Build Status Build Status
mrs_uav_odometry Build Status Build Status
mrs_uav_status Build Status Build Status
mrs_uav_testing Build Status Build Status
mrs_uav_trackers Build Status Build Status
mrs_uav_trajectory_generation Build Status Build Status
Third-party
nlopt_ros
tf2 not compatible

Beware! the custom tf2 package is not compatible with ROS Melodic. We compile a patched version of tf2 due to an excessive warning that is being printed on Noetic. It is not neccsary to compile it from source on Melodic, therefore, all Melodic users, please, delete it or blacklist the package by issuing the following command:

catkin config --blacklist "geometry2 test_tf2 tf2 tf2_bullet tf2_eigen tf2_geometry_msgs tf2_kdl tf2_msgs tf2_py tf2_ros tf2_sensor_msgs tf2_tools"

The packages should be blacklisted automatically when using the installer in MRS UAV system.

System requirements

Required OS is Ubuntu 18.04 / 20.04 LTS 64-bit or their flavors that can install ROS Melodic / Noetic. The suggested variant of OS installation is dual boot instead of virtualization that can be slow and can not handle well the simulation GUI. We use Gitman to manage the repository submodules. The repository are supposed to be compiled by catkin tools.

Installing uav_core

The preferred way is to install the whole MRS UAV system. However, if you prefer to install only the uav_core, you can do the following:

  1. Clone the repository,
  2. place it into your catkin workspace (guide),
  3. call installation/install.sh to install the dependencies,
  4. build your workspace.

Finishing your .bashrc

The install.sh script will add the following to your .bashrc:

source /opt/ros/noetic/setup.bash

# source uav_core shell additions
source $HOME/git/uav_core/miscellaneous/shell_additions/shell_additions.sh
export UAV_NAME="uav1"
export NATO_NAME="" # lower-case name of the UAV frame {alpha, bravo, charlie, ...}
export UAV_MASS="3.0" # [kg], used only with real UAV
export RUN_TYPE="simulation" # {simulation, uav}
export UAV_TYPE="f550" # {f550, f450, t650, eagle, naki}
export PROPULSION_TYPE="default" # {default, new_esc, ...}
export ODOMETRY_TYPE="gps" # {gps, optflow, hector, vio, ...}
export INITIAL_DISTURBANCE_X="0.0" # [N], external disturbance in the body frame
export INITIAL_DISTURBANCE_Y="0.0" # [N], external disturbance in the body frame
export STANDALONE="false" # disables the core nodelete manager
export SWAP_GARMINS="false" # swap up/down garmins
export PIXGARM="false" # true if Garmin lidar is connected throught Pixhawk
export SENSORS="" # {garmin_down, garmin_up, rplidar, realsense_front, teraranger, bluefox_optflow, realsense_brick, bluefox_brick}
export WORLD_NAME="simulation" # e.g.: "simulation" <= mrs_general/config/world_simulation.yaml
export MRS_STATUS="readme" # {readme, dynamics, balloon, avoidance, control_error, gripper}
export LOGGER_DEBUG="false" # sets the ros console output level to debug

Our shell additions source $HOME/git/uav_core/miscellaneous/shell_additions/shell_additions.sh provide some useful command line aliases (git, catkin, cd) and some neccessary shell functions (wait* commands for simulation).

All the environment variables define a particular configuration of a UAV (through launch files). The variables apply mostly to real hardware. They allow us to make the core universal without the need of hardcoding configurations for a particular UAV, but only for a UAV type. In a simulation, they are mostly overloaded in each tmuxinator session.

The cd alias

One of the features of our shell_additions.sh that might be intrusive is our cd alias. Our cd is capable of automatically traversing from locations that have been symlinked somewhere, to the linked location. This is especially useful if you (like us) clone git repositories under a specific location, e.g., ~/git/my_repository and then link them to catkin workspaces, e.g., ~/project2_workspace/src/my_repository. When you call

cd ~/git/my_repository

our alias will put you in

user@machine:~/project2_workspace/src/my_repository$

A symlink map (stored in /tmp/symlink_array.sh) for all your workspaces is built automatically after boot (after the first start of the terminal) by a detached tmux session using the silversearcher-ag utility. Only the workspaces in the environment variable

export ROS_WORKSPACES="~/mrs_workspace ~/modules_workspace ~/workspace ~/project2_workspace"

are considered. The ROS_WORKSPACES variable is added during the installation of MRS UAV system since that is where we set up the workspaces for you.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].