Comments (18)
Could push your changes to a develop
branch on https://github.com/jediofgever/ROS_Raw_Kitti_Player? that I can cooperate with you tonight after work.
from object_builders_lib.
@jediofgever I think it's naming conflicts that cause the above errors. Thus I have added a namespace to protect our data type, now only common_lib and object_builder_lib.
You can try it just update our submodules to the latest version, you can refer to use following command
git submodule foreach git pull origin master
from object_builders_lib.
Namespace is indeed crucial for integrational development. I will update the issue once I pulled your changes. Thank you very much for looking into it.
from object_builders_lib.
Update!,
I pulled your changes and sucessfully builded project. I had some issue to integrate segmenter_lib because of changed namspaces. I integrated segmenter_lib in perception module of my project,
Finally I can use all segmenter_lib, common_lib and object_builder_lib.
I am trying to create a benchmark for different segmenters so far I have tried RegionEuclidian the results are as follows ;
It is reasonable by any means however we pursue for better as engineers :)
So I will keep playing with parameters to get a better result. Especially segmenter sometimes segmentes a single object into multi (2nd and 3rd picture). Do you have any suggestions to avoid this ?
Lastly; When I uncomment to use other segmenters inside segmenter_manager.hpp I got compilation errors, have they been implemented ? , the related part is ;
/*} else if (params.segmenter_type == "RegionGrowingSegmenter") {
segmenter = std::unique_ptr<Segmenter>(new
RegionGrowingSegmenter(params)); } else if (params.segmenter_type ==
"DoNSegmenter") { segmenter = std::unique_ptr<Segmenter>(new
DoNSegmenter(params));*/
from object_builders_lib.
I see , I fine tuned parameters for Euclidean segmenter and it works very good for me. So I think no need to use the ones as you said they are lack of efficiency and accuracy.
I will have a look into tracking Lib to see what is in there and how I can benefit from using it. I will probably open up issue under tracking lib. For now I am closing this issue.
Thank you for your time
from object_builders_lib.
You're welcome. Never mind to open any issue if having problem.
from object_builders_lib.
Seems that it is errors triggered by pcl, have you installed pcl? >1.7 is recommended.
from object_builders_lib.
Yes indeed that was first thing I tried, ROS kinetic comes with pcl 1.7 , so I builded pcl 1.8 from source.
The package builds successfully however when I add headers into my source code it triggers the error.
In my ros package I do link against pcl 1.8 , so it seems like the source of problem is something else ?
from object_builders_lib.
have you add this lib(package) as your catkin depend package? find_package...
from object_builders_lib.
Yes , I followed the structure of segmenters_lib , because that package also uses object_builders_lib , I followed its cmakelist.txt and package.xml
But still got same error
from object_builders_lib.
have tried to build our segment_lib on your system?
from object_builders_lib.
I haven’t try that , what I need is object_buildder But to see if I encounter same problem I will install segmentlib soon and update here
from object_builders_lib.
Update,
So I builded segmenters, it buils sucessfully but my package still stuck on same error. I was building it with catkin_make
I migrated to catkin build but it gave me exactly same error. I am attaching my CMakeList.txt, maybe I am missing something on there ?
1. cmake_minimum_required(VERSION 2.8.3)
2. project(kitti_ros)
3.
4. ## Compile as C++11, supported in ROS Kinetic and newer
5. add_compile_options(-std=c++11)
6.
7.
8.
9. ## Find catkin macros and libraries
10. ## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz)
11. ## is used, also find other catkin packages
12. find_package(catkin REQUIRED COMPONENTS
13. pcl_conversions
14. pcl_ros
15. roscpp
16. sensor_msgs
17. std_msgs
18. helper
19. cv_bridge
20. cmake_modules
21. common_lib
22. object_builders_lib
23. )
24. find_package(PCL 1.8 REQUIRED COMPONENTS
25. common
26. io
27. filters
28. features
29. segmentation
30. )
31.
32. add_definitions(${PCL_DEFINITIONS})
33. link_directories(${PCL_LIBRARY_DIRS})
34. find_package(OpenCV REQUIRED )
35. find_package(Eigen3 REQUIRED)
36.
37. catkin_package(
38. CATKIN_DEPENDS roscpp std_msgs object_builders_lib
39. INCLUDE_DIRS include
40. LIBRARIES kitti_ros
41. )
42.
43.
44. include_directories(
45. include
46. ${catkin_INCLUDE_DIRS}
47. ${helper_INCLUDE_DIRS}
48. ${PCL_INCLUDE_DIRS}
49. ${OpenCV_INCLUDE_DIRS}
50. ${Eigen3_INCLUDE_DIRS}
51. )
52.
53.
54. add_executable (kitti_ros_node src/kitti_ros_node.cpp
55. src/kitti_data_operator.cpp
56. src/kitti_object_operator.cpp
57. src/util/kitti_ros_utils.cpp
58. src/perception/sensor_fusion.cpp
59. src/perception/grid_cell_costmap.cpp)
60. target_link_libraries (kitti_ros_node ${PCL_LIBRARIES} ${OpenCV_LIBS} ${catkin_LIBRARIES} ${Eigen3_LIBRARIES}
61. )
62.
63.
64.
65. install(TARGETS
66. # layers
67. ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
68. LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
69. )
70.
71.
72. ## Uncomment this if the package has a setup.py. This macro ensures
73. ## modules and global scripts declared therein get installed
74. ## See http://ros.org/doc/api/catkin/html/user_guide/setup_dot_py.html
75. # catkin_python_setup()
76.
77. ################################################
78. ## Declare ROS messages, services and actions ##
79. ################################################
80.
81. ## To declare and build messages, services or actions from within this
82. ## package, follow these steps:
83. ## * Let MSG_DEP_SET be the set of packages whose message types you use in
84. ## your messages/services/actions (e.g. std_msgs, actionlib_msgs, ...).
85. ## * In the file package.xml:
86. ## * add a build_depend tag for "message_generation"
87. ## * add a build_depend and a exec_depend tag for each package in MSG_DEP_SET
88. ## * If MSG_DEP_SET isn't empty the following dependency has been pulled in
89. ## but can be declared for certainty nonetheless:
90. ## * add a exec_depend tag for "message_runtime"
91. ## * In this file (CMakeLists.txt):
92. ## * add "message_generation" and every package in MSG_DEP_SET to
93. ## find_package(catkin REQUIRED COMPONENTS ...)
94. ## * add "message_runtime" and every package in MSG_DEP_SET to
95. ## catkin_package(CATKIN_DEPENDS ...)
96. ## * uncomment the add_*_files sections below as needed
97. ## and list every .msg/.srv/.action file to be processed
98. ## * uncomment the generate_messages entry below
99. ## * add every package in MSG_DEP_SET to generate_messages(DEPENDENCIES ...)
100.
101. ## Generate messages in the 'msg' folder
102. # add_message_files(
103. # FILES
104. # Message1.msg
105. # Message2.msg
106. # )
107.
108. ## Generate services in the 'srv' folder
109. # add_service_files(
110. # FILES
111. # Service1.srv
112. # Service2.srv
113. # )
114.
115. ## Generate actions in the 'action' folder
116. # add_action_files(
117. # FILES
118. # Action1.action
119. # Action2.action
120. # )
121.
122. ## Generate added messages and services with any dependencies listed here
123. # generate_messages(
124. # DEPENDENCIES
125. # sensor_msgs# std_msgs
126. # )
127.
128. ################################################
129. ## Declare ROS dynamic reconfigure parameters ##
130. ################################################
131.
132. ## To declare and build dynamic reconfigure parameters within this
133. ## package, follow these steps:
134. ## * In the file package.xml:
135. ## * add a build_depend and a exec_depend tag for "dynamic_reconfigure"
136. ## * In this file (CMakeLists.txt):
137. ## * add "dynamic_reconfigure" to
138. ## find_package(catkin REQUIRED COMPONENTS ...)
139. ## * uncomment the "generate_dynamic_reconfigure_options" section below
140. ## and list every .cfg file to be processed
141.
142. ## Generate dynamic reconfigure parameters in the 'cfg' folder
143. # generate_dynamic_reconfigure_options(
144. # cfg/DynReconf1.cfg
145. # cfg/DynReconf2.cfg
146. # )
147.
148. ###################################
149. ## catkin specific configuration ##
150. ###################################
151. ## The catkin_package macro generates cmake config files for your package
152. ## Declare things to be passed to dependent projects
153. ## INCLUDE_DIRS: uncomment this if your package contains header files
154. ## LIBRARIES: libraries you create in this project that dependent projects also need
155. ## CATKIN_DEPENDS: catkin_packages dependent projects also need
156. ## DEPENDS: system dependencies of this project that dependent projects also need
157. catkin_package(
158. # INCLUDE_DIRS include
159. # LIBRARIES kitti_ros
160. # CATKIN_DEPENDS pcl_ros roscpp sensor_msgs std_msgs
161. # DEPENDS system_lib
162. )
163.
164. ###########
165. ## Build ##
166. ###########
167.
168. ## Specify additional locations of header files
169. ## Your package locations should be listed before other locations
170.
171.
172. ## Declare a C++ library
173. # add_library(${PROJECT_NAME}
174. # src/${PROJECT_NAME}/kitti_ros.cpp
175. # )
176.
177. ## Add cmake target dependencies of the library
178. ## as an example, code may need to be generated before libraries
179. ## either from message generation or dynamic reconfigure
180. # add_dependencies(${PROJECT_NAME} ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
181.
182. ## Declare a C++ executable
183. ## With catkin_make all packages are built within a single CMake context
184. ## The recommended prefix ensures that target names across packages don't collide
185. # add_executable(${PROJECT_NAME}_node src/kitti_ros_node.cpp)
186.
187. ## Rename C++ executable without prefix
188. ## The above recommended prefix causes long target names, the following renames the
189. ## target back to the shorter version for ease of user use
190. ## e.g. "rosrun someones_pkg node" instead of "rosrun someones_pkg someones_pkg_node"
191. # set_target_properties(${PROJECT_NAME}_node PROPERTIES OUTPUT_NAME node PREFIX "")
192.
193. ## Add cmake target dependencies of the executable
194. ## same as for the library above
195. # add_dependencies(${PROJECT_NAME}_node ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
196.
197. ## Specify libraries to link a library or executable target against
198. # target_link_libraries(${PROJECT_NAME}_node
199. # ${catkin_LIBRARIES}
200. # )
201.
202. #############
203. ## Install ##
204. #############
205.
206. # all install targets should use catkin DESTINATION variables
207. # See http://ros.org/doc/api/catkin/html/adv_user_guide/variables.html
208.
209. ## Mark executable scripts (Python etc.) for installation
210. ## in contrast to setup.py, you can choose the destination
211. # install(PROGRAMS
212. # scripts/my_python_script
213. # DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
214. # )
215.
216. ## Mark executables and/or libraries for installation
217. # install(TARGETS ${PROJECT_NAME} ${PROJECT_NAME}_node
218. # ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
219. # LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
220. # RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
221. # )
222.
223. ## Mark cpp header files for installation
224. # install(DIRECTORY include/${PROJECT_NAME}/
225. # DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
226. # FILES_MATCHING PATTERN "*.h"
227. # PATTERN ".svn" EXCLUDE
228. # )
229.
230. ## Mark other files for installation (e.g. launch and bag files, etc.)
231. # install(FILES
232. # # myfile1
233. # # myfile2
234. # DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
235. # )
236.
237. #############
238. ## Testing ##
239. #############
240.
241. ## Add gtest based cpp test target and link libraries
242. # catkin_add_gtest(${PROJECT_NAME}-test test/test_kitti_ros.cpp)
243. # if(TARGET ${PROJECT_NAME}-test)
244. # target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME})
245. # endif()
246.
247. ## Add folders to be run by python nosetests
248. # catkin_add_nosetests(test)
from object_builders_lib.
wow Thank you,
I have cretaed a branch and added both libs common_lib and object_builder_lib as submodule to my project.
Find the branch here;
https://github.com/jediofgever/ROS_Raw_Kitti_Player/tree/develop
Please let me know what is output from your machine when you try to build
Edit; the changes are at last 3 commits here;
https://github.com/jediofgever/ROS_Raw_Kitti_Player/commits/develop
from object_builders_lib.
Sure , I will update by tomorrow but we’re you able to reproduce the error ?
from object_builders_lib.
I reproduced the error, and after adding namespace to protect, I can successfully build. I think it's better to protect our whole project's codes using a unify namespace, like some SDKs I have used.
from object_builders_lib.
You're welcome. Also, the protect macro in header file is the same, after searching your project. I found some header files are lack of this.
from object_builders_lib.
- I have updated these related repos, segmenters_lib and roi_filters_lib
- Solved the problem you mentioned above
RegionGrowingSegmenter
andDoNSegmenter
are too old, not recommended, for not only computation, but also accuracy
- How to improve in over-segmentation situation?
- Fine tunning some parameters
- I improved this by tracking-help segmentation in tracking_lib
- Maybe we can open another issue, where we can discuss more deeply.
from object_builders_lib.
Related Issues (5)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from object_builders_lib.