lsd_slam
lsd_slam copied to clipboard
`keyframeMsg.h` and `keyframeGraphMsg.h` are not included in the repository.
I've noticed that keyframeMsg.h
and keyframeGraphMsg.h
are referenced in the project lsd_slam_visuaizer
, but they are not included in the source code. Am I missing something?
I'm in d1e6f0e1a027889985d2e6b4c0fe7a90b0c75067
in master
I ran into this as well. My guess is it has something to do with the lsd_slam_viewer/msg/keyframeMsg.msg and lsd_slam_viewer/msg/keyframeGraphMsg.msg files. Maybe some part of the build process is supposed to convert these into .h files and is broken?
This is the error message for this solution: https://github.com/tum-vision/lsd_slam/issues/1#issuecomment-57740328 You generate the message header files by calling genmsg() in a CMakeLists.txt file.
Still can't see why these are just not simply included.
I was building it without ROS, so had to recreate them manually (to the best of my understanding). They can be found here >>> https://gist.github.com/xocoatzin/142b8e6dc744172b5de4 (modified with STL smart pointers, but it doesn't really mater)
thanks for the gist, but there is are references in the headder files to: "../IOWrapper/OpenCV/WrapperTypes.h" which does not exist in the repository.
Have any of you made anymore progress using LSD-SLAM without ROS? I can't get the point cloud to load without it apparently
I faced the same issue (with ROS Kinetic on an Ubuntu 16 machine).
Note that the headers are generated at build time in the devel/include/lsd_slam_viewer
directory via catkin's message_generation functionality.
This worked for me:
- Copy the
msg
directory underlsd_slam_viewer
, intolsd_slam_core
. - Next we need to generate the two headers, one set each for lsd_slam_viewer and lsd_slam_core.
We do this for the viewer by adding an additional line in lsd_slam_viewer/CMakelists.txt:
add_dependencies(viewer lsd_slam_viewer_generate_messages_cpp)
under the add_executable line for viewer. As for lsd_slam_core/CMakelists.txt it's a little more work: Addmessage_generation
to the list offind_package(catkin REQUIRED COMPONENTS)
Then add the linesadd_message_files(DIRECTORY msg FILES keyframeMsg.msg keyframeGraphMsg.msg)
generate_messages(DEPENDENCIES)
above thegenerate_dynamic_reconfigure_options
line. Then add theadd_dependencies
lines for the two executables, similar to the change made forlsd_slam_viewer
, except in this case we specifylsd_slam_core_generate_messages
- Lastly, replace all instances of
lsd_slam_viewer
in theIOWrapper/ROS/ROSOutput3DWrapper.cpp
file withlsd_slam_core
Use my fork's lsd_slam_viewer/cmakelists.txt, lsd_slam_core/cmakelists.txt and ROSOutput3DWrapper.cpp for reference. Hope this helps!
If you're using Ubuntu 16 + ROS Kinetic, please have a look at Kevin George's fork first. If just running catkin_make in your ros workspace doesn't work, check the installation steps for Ubuntu 16, described in the wiki, and the issues tab of the repo.
There have been multiple fixes for known problems under Ubuntu 16 included in this repository. So far, I think it is the best 'community-supported' LSD-SLAM fork.
I hope this can save you some time!