HKUST-Aerial-Robotics / D2SLAM

$D^2$SLAM: Decentralized and Distributed Collaborative Visual-inertial SLAM System for Aerial Swarm
273 stars 33 forks source link

Missing header files #20

Closed kajo-kurisu closed 12 months ago

kajo-kurisu commented 12 months ago

The following files are missing when compiling the project in docker

include <swarm_msgs/DistributedPGOData_t.hpp>

include <swarm_msgs/DPGOData.h>

include <swarm_msgs/Odometry.h>

include <swarm_msgs/Landmark.h>

kajo-kurisu commented 12 months ago

i used git checkout in swarm_msg package but i found a new problem

FAILED: CMakeFiles/d2common.dir/src/d2pgo_types.cpp.o 
/usr/bin/c++ -DGFLAGS_IS_A_DLL=0 -DROSCONSOLE_BACKEND_LOG4CXX -DROS_BUILD_SHARED_LIBS=1 -DROS_PACKAGE_NAME=\"d2common\" -Dd2common_EXPORTS -I/home/sy/sy/D2SLAM_ws_copy/src/D2SLAM/d2common/include -I/opt/ros/noetic/include -I/opt/ros/noetic/share/xmlrpcpp/cmake/../../../include/xmlrpcpp -I/home/sy/sy/D2SLAM_ws_copy/devel/.private/swarm_msgs/include -I/home/sy/sy/D2SLAM_ws_copy/devel/.private/swarmcomm_msgs/include -I/home/sy/sy/D2SLAM_ws_copy/src/D2SLAM/swarm_msgs/swarm_msgs/include -I/home/sy/sy/D2SLAM_ws_copy/src/D2SLAM/swarm_msgs/swarmcomm_msgs/include -isystem /usr/include/eigen3 -isystem /usr/local/include/opencv -g -fPIC -fdiagnostics-color=always -g -O3 -Wall -Wno-deprecated-declarations -Wno-format -Wno-reorder -std=gnu++1z -MD -MT CMakeFiles/d2common.dir/src/d2pgo_types.cpp.o -MF CMakeFiles/d2common.dir/src/d2pgo_types.cpp.o.d -o CMakeFiles/d2common.dir/src/d2pgo_types.cpp.o -c /home/sy/sy/D2SLAM_ws_copy/src/D2SLAM/d2common/src/d2pgo_types.cpp
/home/sy/sy/D2SLAM_ws_copy/src/D2SLAM/d2common/src/d2pgo_types.cpp: In constructor ‘D2Common::DPGOData::DPGOData(const DistributedPGOData_t&)’:
/home/sy/sy/D2SLAM_ws_copy/src/D2SLAM/d2common/src/d2pgo_types.cpp:30:71: error: invalid conversion from ‘__gnu_cxx::__alloc_traits<std::allocator<long int> >::value_type {aka long int}’ to ‘const double*’ [-fpermissive]
         frame_poses[msg.frame_ids[i]] = Swarm::Pose(msg.frame_poses[i]);
                                                                       ^
In file included from /home/sy/sy/D2SLAM_ws_copy/src/D2SLAM/d2common/include/d2common/d2pgo_types.h:4:0,
                 from /home/sy/sy/D2SLAM_ws_copy/src/D2SLAM/d2common/src/d2pgo_types.cpp:1:
/home/sy/sy/D2SLAM_ws_copy/src/D2SLAM/swarm_msgs/swarm_msgs/include/swarm_msgs/Pose.h:268:5: note:   initializing argument 1 of ‘Swarm::Pose::Pose(const double*, bool)’
     Pose(const double v[], bool xyzyaw = false) {
     ^~~~
/home/sy/sy/D2SLAM_ws_copy/src/D2SLAM/d2common/src/d2pgo_types.cpp:32:37: error: conversion from ‘const value_type {aka const long int}’ to non-scalar type ‘Pose_t’ requested
         Pose_t a = msg.frame_poses[i];
                                     ^
/home/sy/sy/D2SLAM_ws_copy/src/D2SLAM/d2common/src/d2pgo_types.cpp:33:53: error: request for member ‘data’ in ‘msg.DistributedPGOData_t::frame_duals.std::vector<long int>::operator[](i)’, which is of non-class type ‘const value_type {aka const long int}’
         Map<const VectorXf> dual(msg.frame_duals[i].data.data(),msg.frame_duals[i].data.size());
                                                     ^~~~
/home/sy/sy/D2SLAM_ws_copy/src/D2SLAM/d2common/src/d2pgo_types.cpp:33:84: error: request for member ‘data’ in ‘msg.DistributedPGOData_t::frame_duals.std::vector<long int>::operator[](i)’, which is of non-class type ‘const value_type {aka const long int}’
         Map<const VectorXf> dual(msg.frame_duals[i].data.data(),msg.frame_duals[i].data.size());
                                                                                    ^~~~
In file included from /usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h:33:0,
                 from /usr/include/c++/7/bits/allocator.h:46,
                 from /usr/include/c++/7/vector:61,
                 from /home/sy/sy/D2SLAM_ws_copy/src/D2SLAM/swarm_msgs/swarm_msgs/include/swarm_msgs/DistributedPGOData_t.hpp:12,
                 from /home/sy/sy/D2SLAM_ws_copy/src/D2SLAM/d2common/include/d2common/d2pgo_types.h:2,
                 from /home/sy/sy/D2SLAM_ws_copy/src/D2SLAM/d2common/src/d2pgo_types.cpp:1:
/usr/include/c++/7/ext/new_allocator.h: In instantiation of ‘void __gnu_cxx::new_allocator<_Tp>::construct(_Up*, _Args&& ...) [with _Up = long int; _Args = {Pose_t}; _Tp = long int]’:
/usr/include/c++/7/bits/alloc_traits.h:475:4:   required from ‘static void std::allocator_traits<std::allocator<_Tp1> >::construct(std::allocator_traits<std::allocator<_Tp1> >::allocator_type&, _Up*, _Args&& ...) [with _Up = long int; _Args = {Pose_t}; _Tp = long int; std::allocator_traits<std::allocator<_Tp1> >::allocator_type = std::allocator<long int>]’
/usr/include/c++/7/bits/vector.tcc:100:30:   required from ‘std::vector<_Tp, _Alloc>::reference std::vector<_Tp, _Alloc>::emplace_back(_Args&& ...) [with _Args = {Pose_t}; _Tp = long int; _Alloc = std::allocator<long int>; std::vector<_Tp, _Alloc>::reference = long int&]’
/home/sy/sy/D2SLAM_ws_copy/src/D2SLAM/d2common/src/d2pgo_types.cpp:79:50:   required from here
/usr/include/c++/7/ext/new_allocator.h:136:4: error: cannot convert ‘Pose_t’ to ‘long int’ in initialization
  { ::new((void *)__p) _Up(std::forward<_Args>(__args)...); }
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/7/ext/new_allocator.h: In instantiation of ‘void __gnu_cxx::new_allocator<_Tp>::construct(_Up*, _Args&& ...) [with _Up = long int; _Args = {Vector_t&}; _Tp = long int]’:
/usr/include/c++/7/bits/alloc_traits.h:475:4:   required from ‘static void std::allocator_traits<std::allocator<_Tp1> >::construct(std::allocator_traits<std::allocator<_Tp1> >::allocator_type&, _Up*, _Args&& ...) [with _Up = long int; _Args = {Vector_t&}; _Tp = long int; std::allocator_traits<std::allocator<_Tp1> >::allocator_type = std::allocator<long int>]’
/usr/include/c++/7/bits/vector.tcc:100:30:   required from ‘std::vector<_Tp, _Alloc>::reference std::vector<_Tp, _Alloc>::emplace_back(_Args&& ...) [with _Args = {Vector_t&}; _Tp = long int; _Alloc = std::allocator<long int>; std::vector<_Tp, _Alloc>::reference = long int&]’
/home/sy/sy/D2SLAM_ws_copy/src/D2SLAM/d2common/src/d2pgo_types.cpp:87:46:   required from here
/usr/include/c++/7/ext/new_allocator.h:136:4: error: cannot convert ‘Vector_t’ to ‘long int’ in initialization
Peize-Liu commented 12 months ago

please use docker instead of compile it on your local host.

kajo-kurisu commented 12 months ago

Thanks for your reply, problem solved