Skip to content

Commit 0b4a218

Browse files
committed
code added
1 parent 492fd94 commit 0b4a218

33 files changed

Lines changed: 8062 additions & 0 deletions

CMakeLists.txt

Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
1+
cmake_minimum_required(VERSION 3.10)
2+
project(segregator)
3+
4+
set(CMAKE_CXX_STANDARD 17)
5+
# set(CMAKE_BUILD_TYPE "Debug")
6+
7+
set(CMAKE_INSTALL_RPATH "/usr/local/lib")
8+
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
9+
10+
if (NOT CMAKE_BUILD_TYPE)
11+
set(CMAKE_BUILD_TYPE "Release")
12+
endif ()
13+
14+
find_package(catkin REQUIRED COMPONENTS
15+
roscpp
16+
rospy
17+
std_msgs
18+
geometry_msgs
19+
message_generation
20+
sensor_msgs
21+
nav_msgs
22+
pcl_ros
23+
cv_bridge
24+
eigen_conversions
25+
)
26+
27+
find_package(OpenCV REQUIRED)
28+
find_package(OpenCV REQUIRED QUIET)
29+
find_package(OpenMP)
30+
find_package(PCL 1.8 REQUIRED)
31+
find_package(Boost 1.54 REQUIRED)
32+
find_package(Eigen3 3.2 QUIET REQUIRED NO_MODULE)
33+
34+
add_message_files(
35+
FILES
36+
cloud_info.msg
37+
)
38+
39+
generate_messages(
40+
DEPENDENCIES
41+
geometry_msgs
42+
std_msgs
43+
nav_msgs
44+
)
45+
46+
catkin_package(
47+
INCLUDE_DIRS
48+
include
49+
LIBRARIES
50+
${PROJECT_NAME}
51+
nano_gicp
52+
nanoflann
53+
CATKIN_DEPENDS
54+
roscpp
55+
rospy
56+
std_msgs
57+
)
58+
59+
include_directories(include
60+
${catkin_INCLUDE_DIRS}
61+
${OpenCV_INCLUDE_DIRS}
62+
${PCL_INCLUDE_DIRS}
63+
)
64+
65+
add_definitions(${PCL_DEFINITIONS})
66+
link_directories(${PCL_LIBRARY_DIRS})
67+
68+
if (OPENMP_FOUND)
69+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
70+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
71+
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS}")
72+
endif ()
73+
74+
75+
configure_file(pmc/pmc.CMakeLists.txt.in pmc-download/CMakeLists.txt)
76+
execute_process(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" .
77+
WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/pmc-download")
78+
execute_process(COMMAND "${CMAKE_COMMAND}" --build .
79+
WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/pmc-download")
80+
add_subdirectory("${CMAKE_BINARY_DIR}/pmc-src" #CMAKE_BINARY_DIR =>
81+
"${CMAKE_BINARY_DIR}/pmc-build")
82+
83+
# # NanoFLANN
84+
# add_library(nanoflann SHARED
85+
# src/nano_gicp/nanoflann.cc
86+
# )
87+
# target_link_libraries(nanoflann ${PCL_LIBRARIES})
88+
# target_include_directories(nanoflann PUBLIC include ${PCL_INCLUDE_DIRS})
89+
90+
# # NanoGICP
91+
# add_library(nano_gicp SHARED
92+
# src/nano_gicp/lsq_registration.cc
93+
# src/nano_gicp/nano_gicp.cc
94+
# )
95+
# target_link_libraries(nano_gicp ${PCL_LIBRARIES} ${OpenMP_LIBS} nanoflann)
96+
# target_include_directories(nano_gicp PUBLIC include ${PCL_INCLUDE_DIRS} ${EIGEN3_INCLUDE_DIR})
97+
98+
####### Executable #######
99+
set(teaser_src
100+
src/registration.cc
101+
src/graph.cc
102+
src/teaser_utils/feature_matcher.cc
103+
src/teaser_utils/fpfh.cc
104+
)
105+
106+
add_executable(segregator_example examples/segregator_example.cpp ${teaser_src} src/semantic_teaser.cpp)
107+
add_dependencies(segregator_example ${catkin_EXPORTED_TARGETS})
108+
target_compile_options(segregator_example PRIVATE ${OpenMP_FLAGS})
109+
target_link_libraries(segregator_example
110+
PUBLIC
111+
${PCL_LIBRARIES}
112+
${catkin_LIBRARIES}
113+
${OpenMP_LIBS}
114+
stdc++fs
115+
pmc
116+
# nano_gicp
117+
)
118+

config/segregator_params.yaml

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
# case 0: //car
2+
# case 1: //bicycle
3+
# case 2: //motorcycle
4+
# case 3: //truck
5+
# case 4: //other-vehicle
6+
# case 5: //person
7+
# case 6: //bicyclist
8+
# case 7: //motorcyclist
9+
# case 8: //road
10+
# case 9: //parking
11+
# case 10: //sidewalk
12+
# case 11: //other-ground
13+
# case 12: //building
14+
# case 13: //fence
15+
# case 14: //vegetation
16+
# case 15: //trunk
17+
# case 16: //terrain
18+
# case 17: //pole
19+
# case 18: //traffic-sign
20+
# default: //moving objects
21+
22+
building_param:
23+
use_building: true
24+
use_DCVC: true
25+
DCVC_min_num: 20
26+
class_num: 12
27+
min_dist: 0.2
28+
min_num: 50
29+
max_num: 500
30+
31+
car_param:
32+
use_car: true
33+
use_DCVC: true
34+
DCVC_min_num: 30
35+
class_num: 0
36+
min_dist: 0.2
37+
min_num: 50
38+
max_num: 500
39+
40+
vegetation_param:
41+
use_veg: false
42+
use_DCVC: true
43+
DCVC_min_num: 80
44+
class_num: 14
45+
min_dist: 0.2
46+
min_num: 20
47+
max_num: 1000
48+
49+
trunk_param:
50+
use_trunk: true
51+
use_DCVC: true
52+
DCVC_min_num: 15
53+
class_num: 15
54+
min_dist: 0.1
55+
min_num: 30
56+
max_num: 1000
57+
58+
DCVC_param:
59+
startR: 0.35 # Surface voxel initial polar diameter resolution
60+
deltaR: 0.0004 # Pole diameter increment
61+
deltaP: 1.2 # Pitch angle increment
62+
deltaA: 1.2 # Azimuth increment
63+
minSeg: 80 # After splitting, how many points are at least one category, and categories smaller than this number will be filtered out
64+
65+
solving_w_cov: true # whether to use cov pruning
66+
67+
noise_level: 0.2
68+
distribution_noise_level: 5
69+
70+
conduct_other_methods: true # whether to conduct VGICP
71+
72+
src_indx: 0 # source data index
73+
tgt_indx: 4413 # target data index
74+
75+
inital_yaw_rate: 0
76+
77+
label_deter_rate: 0

0 commit comments

Comments
 (0)