Giter VIP home page Giter VIP logo

uav_core's Introduction

The old UAV Core

โš ๏ธ Attention please: This package is no longer maintained!!!

This is an old package that is no longer maintained. The new version of the UAV Core is located here. This repository will be erased soon

ROS Package
mrs_bumper
mrs_lib
mrs_mavros_interface
mrs_msgs
mrs_rviz_plugins
mrs_uav_controllers
mrs_uav_general
mrs_uav_managers
mrs_uav_odometry
mrs_uav_status
mrs_uav_testing
mrs_uav_trackers
mrs_uav_trajectory_generation
Third-party
nlopt_ros
tf2

System requirements

Required OS is Ubuntu 20.04 LTS 64-bit or their flavors that can install ROS 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.

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.

uav_core's People

Contributors

afxalz avatar alvcalmat avatar bednarhonza avatar cturmrsbot avatar damianpm98 avatar danhert avatar dansmrcka avatar dronemancer avatar fnekovar avatar gsilano avatar horynjir007 avatar klaxalk avatar kratkvit avatar matemat13 avatar mergify[bot] avatar miloscihlar avatar mrsctustudent avatar novakfi8 avatar parakhm95 avatar penickar avatar petr-stepan avatar petrapa6 avatar petrlmat avatar pritzvac avatar spurnvoj avatar stibipet avatar velecto1 avatar viktorwalter avatar vrbadev avatar wingrs avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

uav_core's Issues

Problem to switch from the Gitlab code to the Github code

Good evening,

I have been working with your entire software architecture for a couple of months, trying to implement a Distributed Reference governor using the usefull tools MRS provides. The software I was using was the one that was available on your Gitlab, before you removed it and turned it into a Github repository. I was still working on your original code until last week when my computer crashed. I had saved the additional files that I made in a personal drive but they are sadly not compatible with the new version of your code. I have tried to adapt it but I keep having many problems that I didn't have before. Would there be a way I could have access to the previous version of your code ( the one from Gitlab) ? I am a student working for my supervisor Bryan Convens who had access to your Gitlab. Thank you in advance for your help.

Best regards,

Pedro Wunsch

Comment on some problems with installation

I was getting the error:
File "/home/*/mrs_workspace/src/uav_core/lib/mavlink-gbp-release/pymavlink/generator/mavcrc.py", line 34, in accumulate_str
bytes.fromstring(buf)
AttributeError: 'array.array' object has no attribute 'fromstring'

when trying to install.
I'm on Ubuntu 20.04 with Python 3.8 so this probably shouldn't happen (array.fromstring is removed starting from Python 3.9).

The problem was solved by using Python 3.7, but I couldn't figure out why it was necessary.

Another error I was getting is:
/usr/bin/ld: /usr/local/lib/libbz2.a(bzlib.o): relocation R_X86_64_PC32 against symbol `BZ2_crc32Table' can not be used when making a shared object; recompile with -fPIC

which was solved by recompiling the libbz2 library with -fPIC flag.

I don't know if I made some error with installation and that's why these corrections were needed...

ROS packages are not recognized in just_flying.sh

Hi,
i just pulled uav_core, recompiled and wanted to run just_flying.sh. Unfortunately the ROS packages called by just_flying.sh are not known:

Example output of the status window after calling ~/mrs_workspace/src/uav_core/tmux_scripts/./just_flying.sh:

ubuntu@ubuntu:~/mrs_workspace/src/uav_core/tmux_scripts$ cd /home/ubuntu/git/uav_core/tmux_scripts;
ubuntu@ubuntu:~/git/uav_core/tmux_scripts$ mkdir -p /home/ubuntu/bag_files/just_flying;
ubuntu@ubuntu:~/git/uav_core/tmux_scripts$ waitForRos; roslaunch mrs_uav_status status.launch
waiting for ros
waiting for ros
RLException: [status.launch] is neither a launch file in package [mrs_uav_status] nor is [mrs_uav_status] a launch file name
The traceback for the exception was written to the log file
ubuntu@ubuntu:~/git/uav_core/tmux_scripts$ 

I sourced the workspace after catkin build with source ~/mrs_workspace/devel/setup.bash and can also see all related packages with rospack list I can even roslaunch the mrs packages of just_flying.sh by my own without a problem.
Do you have any idea why within this tmux script the ROS packages are unknown?

Thanks a lot in advance!
Max

Using ROS1 bridge

Dear MRS-Team,
I have to use ROS2 on a MRS-UAV system. Therefore, I want to use the ROS1 bridge to access the necessary mrs-topics within ROS2. I found following installation script in your repo. I changed the ROS galaxy references to foxy and ran the script. Unfortunatelly it does not finish the build process due to following error:
image

Is the current ROS1 noetic MRS-System compatible with the ROS 1 bridge? I got the same error when using the official tutorial for using the ROS 1 bridge. For me it seems a problem with the custom TF2 library shipped with the MRS-System.

I further saw that there are additional colcon related aliases where set up in shell_additions.sh. Do these still work with noetic as intended?

Thank you very much in advance and best regards,

Max

The "install.sh" script breaks ssh server on Raspberry Pi 4 8GB

Hi,
I encounter some problems with installing uav_core on a Raspberry Pi 4 8GB RAM running Ubuntu server 18.04.5 for the use as onboard computer. Running this script as mentioned here will break the ssh server after the next reboot. Connecting to a screen sudo service ssh status returns that the ssh server is now:
Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset; enabled
Active: inactive (dead)
It can be restarted then with sudo service ssh start. So I could quick-fix this issue with setting up a cron job restarting ssh after reboot.

I only partly understand what the install.sh script does- does it change any settings regarding the ssh server itself?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.