Giter Club home page Giter Club logo

racer's Introduction

RACER

RACER, a RApid Collaborative ExploRation approach using a fleet of decentralized UAVs.

We develop a fully decentralized approach for exploration tasks using a fleet of quadrotors. The proposed system features robustness against unstable communication and a high degree of coordination. The quadrotor team operates with asynchronous and limited communication and does not require any central control. The coverage paths and workload allocations of the team are optimized and balanced in order to fully realize the system's potential. The associated paper has been published in IEEE Transactions on Robotics.

Try Quick Start to run a demo in a few minutes!

Complete video: video.

Authors: Boyu Zhou from SYSU STAR Group, and Hao Xu, Shaojie Shen from the HKUST Aerial Robotics Group.

Please cite our paper if you use this project in your research:

@article{zhou2023racer,
  title={Racer: Rapid collaborative exploration with a decentralized multi-uav system},
  author={Zhou, Boyu and Xu, Hao and Shen, Shaojie},
  journal={IEEE Transactions on Robotics},
  year={2023},
  publisher={IEEE}
}

Please kindly star ⭐ this project if it helps you. We take great efforts to develope and maintain it 😁😁.

Table of Contents

Quick Start

This project has been tested on Ubuntu 16.04(ROS Kinetic) and 18.04(ROS Melodic). Take Ubuntu 18.04 as an example, run the following commands to install required tools:

  sudo apt-get install libarmadillo-dev ros-melodic-nlopt libelf-dev libdw-dev 

After that, you need to install LKH-3(LKH-3.0.6 version is recommended) with the following commands. Please make sure the executable file LKH is correctly placed at /usr/local/bin.

wget http://akira.ruc.dk/~keld/research/LKH-3/LKH-3.0.6.tgz
tar xvfz LKH-3.0.6.tgz
cd LKH-3.0.6
make
sudo cp LKH /usr/local/bin

Then simply clone and compile our package (using ssh here):

  cd ${YOUR_WORKSPACE_PATH}/src
  git clone https://github.com/SYSU-STAR/RACER.git
  cd ../ 
  catkin_make

After compilation you can start a sample swarm exploration demo. Firstly run Rviz for visualization:

  source devel/setup.bash && roslaunch exploration_manager rviz.launch

then run the simulation (run in a new terminals):

  source devel/setup.bash && roslaunch exploration_manager swarm_exploration.launch

By default you can see a pillar-like environment. Trigger the quadrotor to start exploration by the 2D Nav Goal tool in Rviz. A sample is shown below, where unexplored structures are shown in grey and explored ones are shown in colorful voxels. The FoV and trajectories of the quadrotor are also displayed.

Exploring Different Environments

The exploration environments in our simulator are represented by .pcd files. We provide several sample environments, which can be selected in swarm_exploration.launch:

  <!-- Change office.pcd to specify the exploration environment -->
  <!-- We provide office.pcd, office2.pcd, office3.pcd and pillar.pcd in this repo -->
  <node pkg ="map_generator" name ="map_pub" type ="map_pub" output = "screen" args="$(find map_generator)/resource/pillar.pcd"/>    

Other examples can be found in map_generator/resource. If you want to use your own environments, simply place the .pcd files in map_generator/resource, and follow the comments above to specify it. You may also need to change the bounding box of explored space in exploration.launch:

    <arg name="box_min_x" value="-10.0"/>
    <arg name="box_min_y" value="-15.0"/>
    <arg name="box_min_z" value=" 0.0"/>
    <arg name="box_max_x" value="10.0"/>
    <arg name="box_max_y" value="15.0"/>
    <arg name="box_max_z" value=" 2.0"/>

To create your own .pcd environments, you can use this tool.

Known issues

Compilation issue

When running this project on Ubuntu 20.04, C++14 is required. Please add the following line in all CMakelists.txt files:

set(CMAKE_CXX_STANDARD 14)

If you get the following error message, please try to recompile this project with catkin_make .

fatal error: plan_env/ChunkStamps.h: No such file or directory

Unexpected crash

If the exploration_node dies after triggering a 2D Nav Goal, it is possibly caused by the ros-nlopt library. In this case, we recommend to uninstall it and install nlopt following the official document. Then in the CMakeLists.txt of bspline_opt package, change the associated lines to link the nlopt library:

find_package(NLopt REQUIRED)
set(NLopt_INCLUDE_DIRS ${NLOPT_INCLUDE_DIR})

...

include_directories( 
    SYSTEM 
    include 
    ${catkin_INCLUDE_DIRS}
    ${Eigen3_INCLUDE_DIRS} 
    ${PCL_INCLUDE_DIRS}
    ${NLOPT_INCLUDE_DIR}
)

...

add_library( bspline_opt 
    src/bspline_optimizer.cpp 
    )
target_link_libraries( bspline_opt
    ${catkin_LIBRARIES} 
    ${NLOPT_LIBRARIES}
    # /usr/local/lib/libnlopt.so
    )  

Acknowledgements

We use NLopt for non-linear optimization and use LKH for travelling salesman problem.

racer's People

Contributors

yinleung avatar zbylgsc 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  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

racer's Issues

catkin_make缺少文件报错

在catkin_make的时候报了以下的错误:


/home/zhouzhou/catkin_ws/src/RACER/swarm_exploration/utils/lkh_tsp_solver/src2/tsp_node.cpp:6:10: fatal error: lkh_tsp_solver/SolveTSP.h: No such file or directory
#include <lkh_tsp_solver/SolveTSP.h>
^~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
RACER/swarm_exploration/utils/lkh_tsp_solver/CMakeFiles/tsp_node.dir/build.make:2582: recipe for target 'RACER/swarm_exploration/utils/lkh_tsp_solver/CMakeFiles/tsp_node.dir/src2/tsp_node.cpp.o' failed
make[2]: *** [RACER/swarm_exploration/utils/lkh_tsp_solver/CMakeFiles/tsp_node.dir/src2/tsp_node.cpp.o] Error 1
CMakeFiles/Makefile2:3021: recipe for target 'RACER/swarm_exploration/utils/lkh_tsp_solver/CMakeFiles/tsp_node.dir/all' failed
make[1]: *** [RACER/swarm_exploration/utils/lkh_tsp_solver/CMakeFiles/tsp_node.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
In file included from /home/zhouzhou/catkin_ws/src/RACER/swarm_exploration/plan_env/src/sdf_map.cpp:3:0:
/home/zhouzhou/catkin_ws/src/RACER/swarm_exploration/plan_env/include/plan_env/multi_map_manager.h:7:10: fatal error: plan_env/ChunkStamps.h: No such file or directory
#include <plan_env/ChunkStamps.h>
^~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
RACER/swarm_exploration/plan_env/CMakeFiles/plan_env.dir/build.make:62: recipe for target 'RACER/swarm_exploration/plan_env/CMakeFiles/plan_env.dir/src/sdf_map.cpp.o' failed
make[2]: *** [RACER/swarm_exploration/plan_env/CMakeFiles/plan_env.dir/src/sdf_map.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
In file included from /home/zhouzhou/catkin_ws/src/RACER/swarm_exploration/plan_env/src/multi_map_manager.cpp:2:0:
/home/zhouzhou/catkin_ws/src/RACER/swarm_exploration/plan_env/include/plan_env/multi_map_manager.h:7:10: fatal error: plan_env/ChunkStamps.h: No such file or directory
#include <plan_env/ChunkStamps.h>
^~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
RACER/swarm_exploration/plan_env/CMakeFiles/plan_env.dir/build.make:182: recipe for target 'RACER/swarm_exploration/plan_env/CMakeFiles/plan_env.dir/src/multi_map_manager.cpp.o' failed
make[2]: *** [RACER/swarm_exploration/plan_env/CMakeFiles/plan_env.dir/src/multi_map_manager.cpp.o] Error 1
In file included from /home/zhouzhou/catkin_ws/src/RACER/swarm_exploration/plan_env/src/map_ros.cpp:3:0:
/home/zhouzhou/catkin_ws/src/RACER/swarm_exploration/plan_env/include/plan_env/multi_map_manager.h:7:10: fatal error: plan_env/ChunkStamps.h: No such file or directory
#include <plan_env/ChunkStamps.h>
^~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
RACER/swarm_exploration/plan_env/CMakeFiles/plan_env.dir/build.make:158: recipe for target 'RACER/swarm_exploration/plan_env/CMakeFiles/plan_env.dir/src/map_ros.cpp.o' failed
make[2]: *** [RACER/swarm_exploration/plan_env/CMakeFiles/plan_env.dir/src/map_ros.cpp.o] Error 1
CMakeFiles/Makefile2:3938: recipe for target 'RACER/swarm_exploration/plan_env/CMakeFiles/plan_env.dir/all' failed
make[1]: *** [RACER/swarm_exploration/plan_env/CMakeFiles/plan_env.dir/all] Error 2
Makefile:140: recipe for target 'all' failed
make: *** [all] Error 2
Invoking "make -j4 -l4" failed


以上的错误看起来像是git仓库中缺少了部分文件,但是我又不知道该怎么获得这些文件

when I running RACER code, I have facing a problem about "ERROR: Larger cost after reallocation"

when I running this code: source devel/setup.bash && roslaunch exploration_manager swarm_exploration.launch. I have facing a problem that confuse me, why its occur this error:"[ERROR] [1711975484.051144093]: Larger cost after reallocation
[ERROR] [1711975484.051167210]: Path 1 inconsistent"... the first image (racer) is a screenshot of the open-source code published by the author of this method on GitHub; the second image (test racer) is the result that appeared after I configured the running environment based on the author's readme; the third image (test result) is the issue prompted at runtime. Why is the final result different from the author's? Is the result I obtained also correct? If not correct, which files should be modified? Thank you very much and I look forward to your reply. Thank you.
racer
test racer
test result

Fail to solve ATSP

When I start, the error "[ERROR] [1703141022.727323139]: Fail to solve ATSP" occurs. Currently, when I click on '2D Nav,' the program freezes. What could be the reason for this?

[ERROR] [1703141023.484201976]: Fail to solve ACVRP.
[ WARN] [1703141023.488464743]: Drone 1 send opt request to 2, pair opt t: 0.094435, allocate t: 0.089981
[ WARN] [1703141023.499463192]: [Traj server]: init...
[ WARN] [1703141023.529948049]: Pair opt 1 & 2
[ERROR] [1703141023.560839094]: Fail to solve ACVRP.
[ WARN] [1703141023.564007632]: Drone 1 send opt request to 2, pair opt t: 0.034106, allocate t: 0.030868
[ WARN] [1703141023.592531548]: Reject frequent attempt
[ WARN] [1703141023.592893510]: get response 2
[ WARN] [1703141023.629597664]: Global Pointcloud received..
global map has points: 187081.
[ WARN] [1703141023.677698339]: Pair opt 1 & 2
[ERROR] [1703141023.711393238]: Fail to solve ACVRP.
[ WARN] [1703141023.714765857]: Drone 1 send opt request to 2, pair opt t: 0.037116, allocate t: 0.033672
[ERROR] [1703141023.805901394]: Fail to solve ATSP.
[ WARN] [1703141023.819792237]: Pair opt 1 & 2
[ERROR] [1703141023.862610568]: Fail to solve ACVRP.
[ WARN] [1703141023.865683084]: Drone 1 send opt request to 2, pair opt t: 0.045955, allocate t: 0.042739
[ WARN] [1703141023.899997182]: wait for trigger.
[ WARN] [1703141023.902972485]: get response 1
0
0
[ WARN] [1703141024.099688638]: [Traj server]: ready.
[ WARN] [1703141024.191062850]: Empty dominance.
[ WARN] [1703141024.439777066]: wait for init
0
0
[ WARN] [1703141024.536757417]: [Traj server]: ready.
[ WARN] [1703141024.684873392]: Empty dominance.
[ WARN] [1703141024.909039558]: wait for trigger.
[ WARN] [1703141025.183037478]: Empty dominance.
[ WARN] [1703141025.398208479]: wait for trigger.
[ WARN] [1703141025.674419496]: Empty dominance.
[ WARN] [1703141025.857706619]: Init grid allocation.
[ WARN] [1703141025.861715592]: Init grid allocation.
[ WARN] [1703141025.861757730]: Empty dominance.
[ WARN] [1703141025.915766053]: wait for trigger.
[ WARN] [1703141026.081909783]: no odom
[ WARN] [1703141026.158268163]: no odom
[ WARN] [1703141026.193196679]: Empty dominance.
[ WARN] [1703141026.229409616]: wait for init
[ WARN] [1703141026.317953940]: wait for init
[ WARN] [1703141026.333339218]: Empty dominance.
[ WARN] [1703141026.403677652]: wait for trigger.
[ WARN] [1703141026.684236865]: Empty dominance.
[ WARN] [1703141026.825911733]: Empty dominance.
[ WARN] [1703141026.921029902]: wait for trigger.
[ WARN] [1703141027.203808724]: Empty dominance.
[ WARN] [1703141027.239298498]: wait for init
[ WARN] [1703141027.325748537]: Empty dominance.
[ WARN] [1703141027.327176653]: wait for init
[ WARN] [1703141027.413519061]: wait for trigger.
[ WARN] [1703141027.674807969]: Empty dominance.
[ WARN] [1703141027.829111173]: Empty dominance.
[ WARN] [1703141027.928267231]: wait for trigger.
[ WARN] [1703141028.126720649]: wait for trigger.
[ WARN] [1703141028.187451920]: Empty dominance.
[ WARN] [1703141028.231026346]: wait for trigger.
[ WARN] [1703141028.325989125]: Empty dominance.
[ WARN] [1703141028.409000246]: Init grid allocation.
[ WARN] [1703141028.411636154]: Init grid allocation.
[ WARN] [1703141028.411656182]: Empty dominance.
[ WARN] [1703141028.416706202]: wait for trigger.
[ WARN] [1703141028.472782335]: Init grid allocation.
[ WARN] [1703141028.475829125]: Init grid allocation.
[ WARN] [1703141028.475882397]: Empty dominance.
[ WARN] [1703141028.686085860]: Empty dominance.
[ WARN] [1703141028.825098435]: Empty dominance.
[ WARN] [1703141028.888478771]: Empty dominance.
[ WARN] [1703141028.937284910]: wait for trigger.
[ WARN] [1703141028.951512767]: Empty dominance.
[ WARN] [1703141029.134726504]: wait for trigger.
[ WARN] [1703141029.189288654]: Empty dominance.
[ WARN] [1703141029.238066851]: wait for trigger.
[ WARN] [1703141029.332850438]: Empty dominance.
[ WARN] [1703141029.385878752]: Empty dominance.
[ WARN] [1703141029.420397231]: wait for trigger.
[ WARN] [1703141029.458643758]: Empty dominance.
[ WARN] [1703141029.680179138]: Empty dominance.
[ WARN] [1703141029.824070521]: Empty dominance.
[ WARN] [1703141029.885188187]: Empty dominance.
[ WARN] [1703141029.952325676]: Empty dominance.
[ WARN] [1703141029.975308203]: wait for trigger.
[ WARN] [1703141030.140714956]: wait for trigger.
[ WARN] [1703141030.199442595]: Empty dominance.
[ WARN] [1703141030.243453408]: wait for trigger.
[ WARN] [1703141030.323901395]: Empty dominance.
[ WARN] [1703141030.384894858]: Empty dominance.
[ WARN] [1703141030.430229508]: wait for trigger.
[ WARN] [1703141030.452624161]: Empty dominance.
[ WARN] [1703141030.685714306]: Empty dominance.
[ WARN] [1703141030.823470949]: Empty dominance.
[ WARN] [1703141030.886448617]: Empty dominance.
[ WARN] [1703141030.959205047]: Empty dominance.
[ WARN] [1703141030.982819483]: wait for trigger.
[ WARN] [1703141031.150594358]: wait for trigger.
[ WARN] [1703141031.185745471]: Empty dominance.
[ WARN] [1703141031.249030012]: wait for trigger.
[ WARN] [1703141031.324433671]: Empty dominance.
[ WARN] [1703141031.386851089]: Empty dominance.
[ WARN] [1703141031.436510662]: wait for trigger.
[ WARN] [1703141031.454661016]: Empty dominance.
[ WARN] [1703141031.684708333]: Empty dominance.
[ WARN] [1703141031.721103462]: Start expl pos: 0 0 1
[ WARN] [1703141031.721157409]: Start expl pos: 0 -1 1
[ WARN] [1703141031.726909996]: Empty dominance.
[ WARN] [1703141031.726960852]: No grid
[ WARN] [1703141031.729543259]: Empty dominance.
[ WARN] [1703141031.729597463]: No grid
[ WARN] [1703141031.732846606]: Start expl pos: 1 0 1
[ WARN] [1703141031.737761103]: Start expl pos: 1 -1 1
[ WARN] [1703141031.741353888]: Empty dominance.
[ WARN] [1703141031.741380359]: No grid
[ WARN] [1703141031.741540437]: Empty dominance.
[ WARN] [1703141031.741567089]: No grid

Compilation issue on 20.04

Hi ,

I go ahead with the recommendation of "-std=c++14" change in the cmakes, and installed dw. All is compiling other than lkh_tsp_solver and lkh_mtsp_solver. I am getting the following error.

usr/bin/ld: CMakeFiles/lkh_tsp_solver.dir/src/SolveCompressedSubproblem.c.o:(.bss+0xa0): multiple definition of PatchingCExtended; CMakeFiles/lkh_tsp_solver.dir/src/Activate.c.o:(.bss+0xa0): first defined here /usr/bin/ld: CMakeFiles/lkh_tsp_solver.dir/src/SolveCompressedSubproblem.c.o:(.bss+0xa4): multiple definition of PatchingARestricted; CMakeFiles/lkh_tsp_solver.dir/src/Activate.c.o:(.bss+0xa4): first defined here /usr/bin/ld: CMakeFiles/lkh_tsp_solver.dir/src/SolveCompressedSubproblem.c.o:(.bss+0xa8): multiple definition of PatchingAExtended; CMakeFiles/lkh_tsp_solver.dir/src/Activate.c.o:(.bss+0xa8): first defined here /usr/bin/ld: CMakeFiles/lkh_tsp_solver.dir/src/SolveCompressedSubproblem.c.o:(.bss+0xac): multiple definition of MoorePartitioning; CMakeFiles/lkh_tsp_solver.dir/src/Activate.c.o:(.bss+0xac): first defined here /usr/bin/ld: CMakeFiles/lkh_tsp_solver.dir/src/SolveCompressedSubproblem.c.o:(.bss+0xb0): multiple definition of KMeansPartitioning; CMakeFiles/lkh_tsp_solver.dir/src/Activate.c.o:(.bss+0xb0): first defined here

I tried to compile the LKH-3.0.6 and I get the same error. Also checked LKH-3.0.5, which also does not compile on Ubuntu20.04, LKH-3.0.7 and LKH-3.0.8 compiles but there are some changes on the APIs, so not sure how to add that part.

I did take a look at FUEL repo, but did not see much information other than the ones Known Issues part. Any recommendations?

License for Open Source usage

Hello,

This work and your paper are very interesting. Do you have any plans to add a license to your code? A license would ensure that the great work done here could be used in an open source way, if that is your intention.
Some relevant documentation by GitHub on the topic:

Thanks for your consideration!

An issue with computer less than 8 core

Tanks for your code, I find the project cannot successfully compile on less than 8 core. On a 4-core CPU, the compilation of the srv files into .h files (such as SolveMTSP.h, ChunkStamps.h) could not be solved by recompiling. (Probably due to compiling order and parallel tasks). Anyone experiencing this problem can solve it by creating an empty header file or catkin_make it with other computer and use the .h file.

Why does this error occur during compilation

CMake Error at /opt/ros/noetic/share/catkin/cmake/catkinConfig.cmake:83 (find_package):
Could not find a package configuration file provided by "active_perception"
with any of the following names:

active_perceptionConfig.cmake
active_perception-config.cmake

Add the installation prefix of "active_perception" to CMAKE_PREFIX_PATH or
set "active_perception_DIR" to a directory containing one of the above
files. If "active_perception" provides a separate development package or
SDK, be sure it has been installed.
Call Stack (most recent call first):
RACER/swarm_exploration/bspline_opt/CMakeLists.txt:18 (find_package)

Where does the topic 'opt_pair' go ?

Thanks for your great attention!
I have already known the topic '/swarm_expl/pair_opt_send'.But I can't find where it goes after 'opt_pair' is published.Could you please tell me the place ,or if there are other special situations?
Thanks a lot!

How to ensure the time synchronizatio between drones?

Thanks for your great and cool work in autonomous exploration! ​
Recently, I am studying planning or exploration with a distributed drone swarm, but it is a realistic problem that how to ensure the time synchronization in the swarm. If the time is asynchronous, the collision might happen between drones.
Is there any good way to solve that problem?

catkin_make error

ubuntu18.04+ros melodic catkin_make partial error message:
/usr/local/include/pcl-1.12/pcl/impl/point_types.hpp:2145:1: error: ‘minusscalar’ is not a member of ‘pcl::traits’
POINT_CLOUD_REGISTER_POINT_STRUCT (pcl::PPFSignature,
^
/usr/local/include/pcl-1.12/pcl/impl/point_types.hpp:2145:1: error: ‘minusscalar’ is not a member of ‘pcl::traits’
POINT_CLOUD_REGISTER_POINT_STRUCT (pcl::PPFSignature,
^
/usr/local/include/pcl-1.12/pcl/impl/point_types.hpp:2145:1: error: ‘minusscalar’ is not a member of ‘pcl::traits’
POINT_CLOUD_REGISTER_POINT_STRUCT (pcl::PPFSignature,
^
/usr/local/include/pcl-1.12/pcl/impl/point_types.hpp:2145:1: error: ‘minusscalar’ is not a member of ‘pcl::traits’
POINT_CLOUD_REGISTER_POINT_STRUCT (pcl::PPFSignature,
^
/usr/local/include/pcl-1.12/pcl/impl/point_types.hpp:2145:1: error: ‘minusscalar’ is not a member of ‘pcl::traits’
POINT_CLOUD_REGISTER_POINT_STRUCT (pcl::PPFSignature,
^
/usr/local/include/pcl-1.12/pcl/impl/point_types.hpp: In function ‘const pcl::PPFSignature& pcl::common::operator/=(pcl::PPFSignature&, const float&)’:
/usr/local/include/pcl-1.12/pcl/impl/point_types.hpp:2145:1: error: ‘divscalar’ is not a member of ‘pcl::traits’
POINT_CLOUD_REGISTER_POINT_STRUCT (pcl::PPFSignature,
^
/usr/local/include/pcl-1.12/pcl/impl/point_types.hpp:2145:1: error: ‘divscalar’ is not a member of ‘pcl::traits’
POINT_CLOUD_REGISTER_POINT_STRUCT (pcl::PPFSignature,
^
/usr/local/include/pcl-1.12/pcl/impl/point_types.hpp:2145:1: error: ‘divscalar’ is not a member of ‘pcl::traits’
POINT_CLOUD_REGISTER_POINT_STRUCT (pcl::PPFSignature,
^
/usr/local/include/pcl-1.12/pcl/impl/point_types.hpp:2145:1: error: ‘divscalar’ is not a member of ‘pcl::traits’
POINT_CLOUD_REGISTER_POINT_STRUCT (pcl::PPFSignature,
^
/usr/local/include/pcl-1.12/pcl/impl/point_types.hpp:2145:1: error: ‘divscalar’ is not a member of ‘pcl::traits’
POINT_CLOUD_REGISTER_POINT_STRUCT (pcl::PPFSignature,
^
/usr/local/include/pcl-1.12/pcl/impl/point_types.hpp: In function ‘const pcl::PPFSignature pcl::common::operator/(const float&, const pcl::PPFSignature&)’:
/usr/local/include/pcl-1.12/pcl/impl/point_types.hpp:2145:1: error: ‘divscalar2’ is not a member of ‘pcl::traits’
POINT_CLOUD_REGISTER_POINT_STRUCT (pcl::PPFSignature,
^
/usr/local/include/pcl-1.12/pcl/impl/point_types.hpp:2145:1: error: ‘divscalar2’ is not a member of ‘pcl::traits’
POINT_CLOUD_REGISTER_POINT_STRUCT (pcl::PPFSignature,
^
/usr/local/include/pcl-1.12/pcl/impl/point_types.hpp:2145:1: error: ‘divscalar2’ is not a member of ‘pcl::traits’
POINT_CLOUD_REGISTER_POINT_STRUCT (pcl::PPFSignature,
^
/usr/local/include/pcl-1.12/pcl/impl/point_types.hpp:2145:1: error: ‘divscalar2’ is not a member of ‘pcl::traits’
POINT_CLOUD_REGISTER_POINT_STRUCT (pcl::PPFSignature,
^
/usr/local/include/pcl-1.12/pcl/impl/point_types.hpp:2145:1: error: ‘divscalar2’ is not a member of ‘pcl::traits’
POINT_CLOUD_REGISTER_POINT_STRUCT (pcl::PPFSignature,/usr/local/include/pcl-1.12/pcl/impl/point_types.hpp:2145:1: error: ‘minus’ is not a member of ‘pcl::traits’
POINT_CLOUD_REGISTER_POINT_STRUCT (pcl::PPFSignature,
^/usr/local/include/pcl-1.12/pcl/impl/point_types.hpp:2145:1: error: ‘minus’ is not a member of ‘pcl::traits’
POINT_CLOUD_REGISTER_POINT_STRUCT (pcl::PPFSignature,
^
I just follow the step of the quick start, why this error happen

UAV get stuck after running a short time when launch the Quick Start demo

Thanks for wonderful work!
I run RACER in ubuntu 18.04
I follow the guide,and run "source devel/setup.bash && roslaunch exploration_manager swarm_exploration.launch".
After click the "2D Nav Goal" in Gazebo, two of four uavs start to move. But after about 1 second, all UAVs got stuck as follows:

Screenshot from 2023-02-24 21-54-27

and I got the error log in terminal as follows (everything goes well when I run FUEL demo in my pc):

Stack trace (most recent call last):
#4 Object "", at 0xffffffffffffffff, in
#3 Object "/home/young8/multi_exploration/Racer_ws/devel/lib/libpath_searching.so", at 0x7f80dd0b400a, in fast_planner::KinodynamicAstar::cubic(double, double, double, double) [clone .cold.1153]
#2 Object "/lib/x86_64-linux-gnu/libgcc_s.so.1", at 0x7f80db41fd06, in _Unwind_Resume
#1 Object "/lib/x86_64-linux-gnu/libgcc_s.so.1", at 0x7f80db41f3e5, in
#0 Object "/lib/x86_64-linux-gnu/libgcc_s.so.1", at 0x7f80db41ef34, in
Segmentation fault (Signal sent by the kernel [(nil)])
[ WARN] [1677247602.391850051]: Pair opt 1 & 3
[ERROR] [1677247602.414712002]: Larger cost after reallocation
[ WARN] [1677247602.414811365]: Drone 1 send opt request to 3, pair opt t: 0.022999, allocate t: 0.020624
[ WARN] [1677247602.417611228]: get response 1
[ WARN] [1677247602.491863740]: Pair opt 1 & 4
[ WARN] [1677247602.507779446]: Replan: cluster covered=====================================
[ WARN] [1677247602.515244865]: Drone 1 send opt request to 4, pair opt t: 0.023395, allocate t: 0.020891
[ WARN] [1677247602.516000740]: Replan: cluster covered=====================================
[ WARN] [1677247602.533452422]: get response 1
[ WARN] [1677247602.537027062]: Replan: cluster covered=====================================
Stack trace (most recent call last):
#4 Object "", at 0xffffffffffffffff, in
#3 Object "/home/young8/multi_exploration/Racer_ws/devel/lib/libpath_searching.so", at 0x7fbdc825000a, in fast_planner::KinodynamicAstar::cubic(double, double, double, double) [clone .cold.1153]
#2 Object "/lib/x86_64-linux-gnu/libgcc_s.so.1", at 0x7fbdc65bbd06, in _Unwind_Resume
#1 Object "/lib/x86_64-linux-gnu/libgcc_s.so.1", at 0x7fbdc65bb3e5, in
#0 Object "/lib/x86_64-linux-gnu/libgcc_s.so.1", at 0x7fbdc65baf34, in
Segmentation fault (Signal sent by the kernel [(nil)])
[exploration_node_2-9] process has died [pid 18736, exit code -11, cmd /home/young8/multi_exploration/Racer_ws/devel/lib/exploration_manager/exploration_node /odom_world:=/state_ukf/odom_2 /map_ros/pose:=/pcl_render_node/sensor_pose_2 /map_ros/depth:=/pcl_render_node/depth_2 /map_ros/cloud:=/pcl_render_node/cloud_2 /planning/replan:=/planning/replan_2 /planning/new:=/planning/new_2 /planning/bspline:=/planning/bspline_2 /swarm_expl/drone_state_send:=/swarm_expl/drone_state /swarm_expl/drone_state_recv:=/swarm_expl/drone_state /swarm_expl/pair_opt_send:=/swarm_expl/pair_opt /swarm_expl/pair_opt_recv:=/swarm_expl/pair_opt /swarm_expl/pair_opt_res_send:=/swarm_expl/pair_opt_res /swarm_expl/pair_opt_res_recv:=/swarm_expl/pair_opt_res /swarm_expl/grid_tour_send:=/swarm_expl/grid_tour /swarm_expl/hgrid_send:=/swarm_expl/hgrid /multi_map_manager/chunk_stamps_send:=/multi_map_manager/chunk_stamps /multi_map_manager/chunk_data_send:=/multi_map_manager/chunk_data /multi_map_manager/chunk_stamps_recv:=/multi_map_manager/chunk_stamps /multi_map_manager/chunk_data_recv:=/multi_map_manager/chunk_data /planning/swarm_traj_recv:=/planning/swarm_traj /planning/swarm_traj_send:=/planning/swarm_traj /planning_vis/trajectory:=/planning_vis/trajectory_2 /planning_vis/frontier:=/planning_vis/frontier_2 /planning_vis/viewpoints:=/planning_vis/viewpoints_2 /sdf_map/occupancy_all:=/sdf_map/occupancy_all_2 /sdf_map/occupancy_local:=/sdf_map/occupancy_local_2 /sdf_map/occupancy_local_inflate:=/sdf_map/occupancy_local_inflate_2 /sdf_map/unknown:=/sdf_map/unknown_2 /sdf_map/update_range:=/sdf_map/update_range_2 /sdf_map/basecoor:=/swarm_sim_tf/basecoor_2 __name:=exploration_node_2 __log:=/home/young8/.ros/log/5feaccee-b44c-11ed-a4bd-38002590fcd6/exploration_node_2-9.log].
log file: /home/young8/.ros/log/5feaccee-b44c-11ed-a4bd-38002590fcd6/exploration_node_2-9*.log
[exploration_node_1-2] process has died [pid 18701, exit code -11, cmd /home/young8/multi_exploration/Racer_ws/devel/lib/exploration_manager/exploration_node /odom_world:=/state_ukf/odom_1 /map_ros/pose:=/pcl_render_node/sensor_pose_1 /map_ros/depth:=/pcl_render_node/depth_1 /map_ros/cloud:=/pcl_render_node/cloud_1 /planning/replan:=/planning/replan_1 /planning/new:=/planning/new_1 /planning/bspline:=/planning/bspline_1 /swarm_expl/drone_state_send:=/swarm_expl/drone_state /swarm_expl/drone_state_recv:=/swarm_expl/drone_state /swarm_expl/pair_opt_send:=/swarm_expl/pair_opt /swarm_expl/pair_opt_recv:=/swarm_expl/pair_opt /swarm_expl/pair_opt_res_send:=/swarm_expl/pair_opt_res /swarm_expl/pair_opt_res_recv:=/swarm_expl/pair_opt_res /swarm_expl/grid_tour_send:=/swarm_expl/grid_tour /swarm_expl/hgrid_send:=/swarm_expl/hgrid /multi_map_manager/chunk_stamps_send:=/multi_map_manager/chunk_stamps /multi_map_manager/chunk_data_send:=/multi_map_manager/chunk_data /multi_map_manager/chunk_stamps_recv:=/multi_map_manager/chunk_stamps /multi_map_manager/chunk_data_recv:=/multi_map_manager/chunk_data /planning/swarm_traj_recv:=/planning/swarm_traj /planning/swarm_traj_send:=/planning/swarm_traj /planning_vis/trajectory:=/planning_vis/trajectory_1 /planning_vis/frontier:=/planning_vis/frontier_1 /planning_vis/viewpoints:=/planning_vis/viewpoints_1 /sdf_map/occupancy_all:=/sdf_map/occupancy_all_1 /sdf_map/occupancy_local:=/sdf_map/occupancy_local_1 /sdf_map/occupancy_local_inflate:=/sdf_map/occupancy_local_inflate_1 /sdf_map/unknown:=/sdf_map/unknown_1 /sdf_map/update_range:=/sdf_map/update_range_1 /sdf_map/basecoor:=/swarm_sim_tf/basecoor_1 __name:=exploration_node_1 __log:=/home/young8/.ros/log/5feaccee-b44c-11ed-a4bd-38002590fcd6/exploration_node_1-2.log].
log file: /home/young8/.ros/log/5feaccee-b44c-11ed-a4bd-38002590fcd6/exploration_node_1-2*.log
[ WARN] [1677247602.821016119]: Pair opt 3 & 4
[ WARN] [1677247602.834322157]: Drone 3 send opt request to 4, pair opt t: 0.013321, allocate t: 0.012186
[ WARN] [1677247602.834615143]: get response 1
[ WARN] [1677247602.893309530]: Drone 3, [1.000550,0.344042,0.343853,3.832224], [time, length, vel, energy]
[ WARN] [1677247602.898017805]: Drone 4, [0.999200,0.213831,0.214002,2.681881], [time, length, vel, energy]
[ WARN] [1677247602.898866902]: Drone 2, [0.769890,0.082941,0.107731,5.035449], [time, length, vel, energy]
[ WARN] [1677247602.927753537]: Replan: cluster covered=====================================
[ WARN] [1677247602.937479053]: Drone 1, [0.924734,0.093479,0.101088,2.852091], [time, length, vel, energy]
[ WARN] [1677247602.943360037]: Replan: cluster covered=====================================
[ WARN] [1677247603.347882201]: Replan: cluster covered=====================================
[ WARN] [1677247603.353065950]: Replan: cluster covered=====================================
Stack trace (most recent call last):
#4 Object "", at 0xffffffffffffffff, in
#3 Object "/home/young8/multi_exploration/Racer_ws/devel/lib/libpath_searching.so", at 0x7faf0a55800a, in fast_planner::KinodynamicAstar::cubic(double, double, double, double) [clone .cold.1153]
#2 Object "/lib/x86_64-linux-gnu/libgcc_s.so.1", at 0x7faf088c3d06, in _Unwind_Resume
#1 Object "/lib/x86_64-linux-gnu/libgcc_s.so.1", at 0x7faf088c33e5, in
#0 Object "/lib/x86_64-linux-gnu/libgcc_s.so.1", at 0x7faf088c2f34, in
Segmentation fault (Signal sent by the kernel [(nil)])
[exploration_node_3-16] process has died [pid 18799, exit code -11, cmd /home/young8/multi_exploration/Racer_ws/devel/lib/exploration_manager/exploration_node /odom_world:=/state_ukf/odom_3 /map_ros/pose:=/pcl_render_node/sensor_pose_3 /map_ros/depth:=/pcl_render_node/depth_3 /map_ros/cloud:=/pcl_render_node/cloud_3 /planning/replan:=/planning/replan_3 /planning/new:=/planning/new_3 /planning/bspline:=/planning/bspline_3 /swarm_expl/drone_state_send:=/swarm_expl/drone_state /swarm_expl/drone_state_recv:=/swarm_expl/drone_state /swarm_expl/pair_opt_send:=/swarm_expl/pair_opt /swarm_expl/pair_opt_recv:=/swarm_expl/pair_opt /swarm_expl/pair_opt_res_send:=/swarm_expl/pair_opt_res /swarm_expl/pair_opt_res_recv:=/swarm_expl/pair_opt_res /swarm_expl/grid_tour_send:=/swarm_expl/grid_tour /swarm_expl/hgrid_send:=/swarm_expl/hgrid /multi_map_manager/chunk_stamps_send:=/multi_map_manager/chunk_stamps /multi_map_manager/chunk_data_send:=/multi_map_manager/chunk_data /multi_map_manager/chunk_stamps_recv:=/multi_map_manager/chunk_stamps /multi_map_manager/chunk_data_recv:=/multi_map_manager/chunk_data /planning/swarm_traj_recv:=/planning/swarm_traj /planning/swarm_traj_send:=/planning/swarm_traj /planning_vis/trajectory:=/planning_vis/trajectory_3 /planning_vis/frontier:=/planning_vis/frontier_3 /planning_vis/viewpoints:=/planning_vis/viewpoints_3 /sdf_map/occupancy_all:=/sdf_map/occupancy_all_3 /sdf_map/occupancy_local:=/sdf_map/occupancy_local_3 /sdf_map/occupancy_local_inflate:=/sdf_map/occupancy_local_inflate_3 /sdf_map/unknown:=/sdf_map/unknown_3 /sdf_map/update_range:=/sdf_map/update_range_3 /sdf_map/basecoor:=/swarm_sim_tf/basecoor_3 __name:=exploration_node_3 __log:=/home/young8/.ros/log/5feaccee-b44c-11ed-a4bd-38002590fcd6/exploration_node_3-16.log].
log file: /home/young8/.ros/log/5feaccee-b44c-11ed-a4bd-38002590fcd6/exploration_node_3-16*.log
[ WARN] [1677247603.773967676]: Replan: cluster covered=====================================
[ WARN] [1677247603.898132827]: Drone 4, [1.999318,0.988353,0.494345,5.149499], [time, length, vel, energy]
[ WARN] [1677247603.898965140]: Drone 2, [0.769890,0.082941,0.107731,5.035449], [time, length, vel, energy]
[ WARN] [1677247603.901671420]: Drone 3, [1.790637,1.070052,0.597582,17.157516], [time, length, vel, energy]
[ WARN] [1677247603.937533827]: Drone 1, [0.924734,0.093479,0.101088,2.852091], [time, length, vel, energy]
[ WARN] [1677247604.186434847]: Replan: cluster covered=====================================
[ WARN] [1677247604.648216646]: Replan: cluster covered=====================================
[ WARN] [1677247604.908088316]: Drone 4, [3.009233,1.775520,0.590024,12.785846], [time, length, vel, energy]
[ WARN] [1677247604.908892480]: Drone 2, [0.769890,0.082941,0.107731,5.035449], [time, length, vel, energy]
[ WARN] [1677247604.911605524]: Drone 3, [1.790637,1.070052,0.597582,17.157516], [time, length, vel, energy]
[ WARN] [1677247604.939140315]: Drone 1, [0.924734,0.093479,0.101088,2.852091], [time, length, vel, energy]
[ WARN] [1677247605.059736308]: Replan: cluster covered=====================================
[ WARN] [1677247605.475253547]: Replan: cluster covered=====================================

Real World Experiments

Thank you for your great work. Recently, I would like to deploy your algorithm on a real drone. Starting from exploring a single drone, let's take a look at the difficulty of real deployment, in order to guide my future research. How can I modify the launch file using Vins_ Fusion. Thank you

Pointcloud orientation problem

Hi,
Im using realsense d435i and facing an issue of pointcloud in z axis. I am using depth topic of realsense.
I am giving my odometry topic whose forward is x, and also giving my odometry pose topic.
146559510-e800349a-bb02-49e0-b28b-b050c03b18d6

Please help

Real World Deployment

Great job! I am a beginner in this field. I want to know:

  1. Can this work be used in such an environment as the tunnel? In other words, does this need GPS signal information?

  2. How do I deploy the environment in the real world, and whether there are relevant papers and documents for reference?

Looking forward to your reply. Many thanks!

Instructions for installation

Im trying to install this using Docker. Got so many troubles using melodic version that I decided to try installing it using kinetic. I just replaced all the melodic ones with their kinetic alternative but when doing catkin_make it doesn't recognize the LKD despite being in /usr/local/bin . So, are the steps for installing in kinetic those? Or have you done anything different to make it work on that version?

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.