Software integration for the SkyScanner project
- Get ROS "Indigo" for your system following the instructions for Desktop-Full Install. (Newer versions should work but they haven't been tested) Don't forget to initialize rosdep and do the environment setup.
- Install the following python dependencies (not exhaustive list):
- numpy
- scipy
- matplotlib
- netCDF4 (MesoNH integration)
- Set up a SkyScanner ROS workspace:
mkdir -p skyscanner_ws/src cd skyscanner_ws/src git clone https://github.com/rafael1193/skyscanner-integration.git cd .. echo "source $(pwd)/devel/setup.bash" >> ~/.bashrc source ~/.bashrc
- Build the ROS package:
catkin_make
- Reload your bashrc and recompile again so ROS tools can detect the package properly:
source ~/.bashrc catkin_make
Depending on the simulation backends you want to run you may have to install and configure some other dependencies:
- Paparazzi
- Get Paparazzi UAV following the instructions on their website.
- Set the environment variable
PAPARAZZI_SRC
with the folder where Paparazzi is located.
- FlightGear
- Install FlightGear from your package manager (version >3.0.0 should work)
- Follow the instructions in scripts/README.md.
Beforehand, run roscore
in a dedicated terminal window and leave it running.
Launch files define the nodes and parameters that have to be run to perform different tasks.
- Paparazzi
- Select your aircraft, nps target and build
- Launch a Simulation session adding
-f127.0.0.1 -P50501
to the Simulator command line.-P
should correspond with the port defined inlaunch/conf/pprz_ac*.yaml
files and must be unique if several simulators are launched. - Run
roslaunch skyscanner pprz_planned.launch
- To command several paparazzi aircrafts go to the
pprz_planned.launch
file
- FlightGear
- Start FlightGear with the
fly_malolo1.sh
script. You can change the default UDP, Telnet and HTTP ports inside. - Run
roslaunch skyscanner fg_planned.launch
if you want to launch the whole architecture. - Run
roslaunch skyscanner fg_guided.launch
to start everything but the pathplanner so you can send tasks manually to the guidance node (by default it uses the VF alogrithm as guidance, but PLOS can be se too). In the following examplerostopic
is used to send to ac_1 a TrajectorySequence composed of a circle of 200m radius and origin at (0, 0):
rostopic pub /ac_1/trajectory_sequence skyscanner/TrajectorySequence "header: seq: 0 stamp: secs: 0 nsecs: 0 frame_id: '' ac_id: 0 trajectories: - circle: true origin: {x: 0.0, y: 0.0, z: 0.0} destination: {x: 0.0, y: 0.0, z: 0.0} radius: 200.0 duration: 100.0 time_limit: 10000000000.0" -1
- Start FlightGear with the
- Additionally
roslaunch skyscanner supervision.launch
will show online stats using rqt_plot and rqt_plotxy (make sure you have them). - MesoNH
- By default realistic MesoNH wind is deactivated as you have to declare the path where the NetCDF files are stored in the parameter
mesonh_files_path
located inlaunch/conf/mesonh.yaml
. - If wind data is available you can activate it switching
use_dummy_env
toFalse
inlaunch/conf/mesonh.yaml
.
- By default realistic MesoNH wind is deactivated as you have to declare the path where the NetCDF files are stored in the parameter
Other configuration parameters can be tuned in .yaml
files or directly in the roslaunch files you are running.