/foalme

ROS package for Fast Obstacle Avoidance on Locally Mapped Environment (FOALME)

Primary LanguageC++

Fast Obstacle Avoidance on Locally Mapped Environment (FOALME)

Introduction

foalme serves a complete trajectory and optimization server with avoidance on ROS using the bs-traj-server which acts as a wrapper to pass data into the module. In addition, simple_quad_simulator consist of a quadcopter simulator, which can spawn several agents to test the performance of this trajectory planner package.

video demonstration of 20 agents results of 10 drones in antipodal
alt text alt text
# Some Benefits and Uniqueness of the Package
    - Custom variant of RRT, Transformed Bounding Box RRT (TBB-RRT)
    - General Matrix Representation of Bspline library
    - Bspline trajectory server for real-time path representation
    - LBFGS-B optimization server

Dependencies


Setup

For starters who do not know how to use ROS and do not have a prior workspace, just run the commands below and all will be fine

Please have an SSH-key for your machine by using ssh-keygen and finding your key in id_rsa.pub

mkdir -p catkin_ws/src
cd catkin_ws/src
git clone git@github.com:matthewoots/foalme.git --recurse-submodules
cd ..
catkin build
# Or you can compile only the needed packages
# catkin build bs_trajectory_ros quad foalme_user_server

Run scripts in simple_quad_simulator

  1. Run the scripts from simple_quad_simulator package, gen_launch_w_trajectory.py and gen_rviz_display.py this will generate 2 files one in launch and the other in rviz.
  2. copy one of the X_drone_user_server.launch files and change X to the number of drones you want to launch
  3. Change the launch file details to the specifications you want
<arg name="formation_type" value="antipodal or left-right-facing or top-down-facing"/>
...
<param name="agents" value="X"/>
...
<param name="file_location" value="X" />
cd simple_quad_simulator/scripts
# follow the script reference, for example
python gen_launch_w_trajectory.py 10 antipodal 12
# You will see the file being generated in the simple_quad_simulator/launch folder

Running and launching

# XX is the number of drones
roslaunch foalme_user_server XX_drone_user_server.launch

Logging module has been added, agent logs are in CSV using the CSVWriter (https://github.com/al-eax/CSVWriter.git), they are stored in /home/$USER/Documents. To display them as shown in above:

cd foalme_user_server/scripts
# XX is the number of drones
python3 csv_reader.py XX