Repository Summary
Checkout URI | https://gitlab.pdmfc.com/drones/ros1/heifu.git |
VCS Type | git |
VCS Version | releasePackage |
Last Updated | 2021-01-26 |
Dev Status | MAINTAINED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Packages
Name | Version |
---|---|
heifu | 0.7.7 |
heifu_bringup | 0.7.7 |
heifu_description | 0.7.7 |
heifu_diagnostic | 0.7.7 |
heifu_mavros | 0.7.7 |
heifu_msgs | 0.7.7 |
heifu_safety | 0.7.7 |
heifu_simple_waypoint | 0.7.7 |
heifu_tools | 0.7.7 |
README
Installation
ROS packages dependences:
GeographicLib dependeces:
sudo apt-get install libgeographic-dev
sudo apt-get install geographiclib-tools
Run the script in: install_geographiclib_datasets.sh
Compile this directory in your ROS workspace.
Then copy the already configured files to the mavros directory:
cd ${YOUR_ROS_WORKSPACE}/src/heifu/heifu_scripts_firmware
cp apm_config.yaml $(rospack find mavros)/launch/
cp apm.launch $(rospack find mavros)/launch/
cp node.launch $(rospack find mavros)/launch/
NOTE: Adjust the yaml loader script to deal with the argument substitution in the roslaunch of yaml files:
cd ${YOUR_ROS_WORKSPACE}/src/heifu/heifu_scripts_firmware
cp loader.py /opt/ros/melodic/lib/python2.7/dist-packages/roslaunch/
Dont forget to add gimbal and mavros to the source folder and run catkin build
To run the nodes with a real drone:
Just launch - Heifu_bringup
roslaunch heifu_bringup heifu_bringup.launch
Launch Input arguments:
argSafety - Activates the safety zone mode and run the node heifu_safety.
argTakeOffAltitude - Defines the Takeoff altitude.
argSim - Activates the simulation mode. Loads Gazebo and a pre-configured world with the drone HEIFU.
argSecredas - Activates the Secredas Usecases. (Needs extra packages secredas).
argUseCase - Defines witch usecase of Secredas will be loaded.
argPlanners - Loads the Planners nodes with static colision avoidance (Needs extra packages Planners).
Heifu Simulation:
First make sure that the ArduPilot firmware is correctly installed, by following the steps described here.
To open the simulation:
1st terminal - Launch Heifu_bringup
roslaunch heifu_bringup heifu_bringup.launch argSim:=true
2nd terminal - Launch ArduPilot firmware
cd ~/ardupilot/ArduCopter/
sim_vehicle.py -v ArduCopter -f gazebo-heifu -I1
Packages
Heifu Bringup
Responsible for load all packages.
Heifu Description
This package contains the drone robot HEIFU and the worlds for the simulation.
Heifu Diagnostic
Responsible for verify the GPS fix state of the drone and send the information to the application.
Subscribers:
- /diagnostics
Publishers:
-
/heifu/g/f/m
Heifu Interface
This package is the bridge between the ROS and the application.
Subscribers:
- /heifu/disarm
- /heifu/takeoff
- /heifu/land
- /heifu/mavros/local_position/pose
- /heifu/mavros/local_position/velocity_local
- /heifu/mavros/global_position/global
- /heifu/mavros/state
- /heifu/c/s
- /heifu/mavros/battery
- /heifu/mavros/global_position/raw/satellites
- /heifu/g/f/m
Publishers:
- /warning
- /heifu/frontend/cmd
- /heifu/land
- /heifu/takeoff
- /heifu/mode_auto
- /heifu/rtl
- /heifu/global_setpoint_converter
Services:
- /heifu/mavros/mission/clear
- /heifu/mavros/set_mode
-
/heifu/mavros/cmd/arming
Heifu Mavros
This is the main package to control the drone. Responsible for message conversions and commands between the packages and the mavros node.
Subscribers:
- /heifu/takeoff
- /heifu/land
- /heifu/disarm
- /heifu/cmd_vel
- /heifu/xbox_vel_raw
- /heifu/mavros/local_position/pose
- /heifu/rtl
- /heifu/land_vel_raw
- /heifu/simulation_raw
- /heifu/frontend/cmd
- /heifu/mode_auto
- /heifu/global_setpoint_converter
- /heifu/mission/start
- /heifu/mission/stop
Publishers:
- /heifu/mavros/setpoint_velocity/cmd_vel
- /heifu/xbox_vel
- /heifu/land_vel
- /heifu/simulation
- /heifu//g/f/m
- /heifu/mavros/setpoint_position/local
Services:
- /heifu/mavros/cmd/arming
- /heifu/mavros/set_mode
-
/heifu/mavros/takeoff
Heifu Msgs
This package contain the messages and services necessary to work.
Heifu Safety
If loaded, this package controls the flight area and velocity limit of the drone to a safety real demonstration.
Subscribers:
- /heifu/mavros/local_position/pose
- /heifu/xbox_vel
Publishers:
- /heifu/xbox_vel_safety
Services:
- /heifu/EnableSafetyFence
Heifu Simple Waypoint
This package receive a setpoint and make the drone fly pointed to desired position.
Subscribers:
- /heifu/mission/setpoint
- /heifu/mavros/local_position/pose
Publishers:
- /heifu/mission/start
- /heifu/mission/stop
-
/heifu/mavros/setpoint_position/local
Heifu Tools
Responsible for convert the velocity command messages.
Subscribers:
- /heifu/joy
Publishers:
- /heifu/dummy_vel
-
/heifu/xbox_vel_raw