Giter VIP home page Giter VIP logo

lsd_slam's Introduction

LSD-SLAM: Large-Scale Direct Monocular SLAM

LSD-SLAM is a novel approach to real-time monocular SLAM. It is fully direct (i.e. does not use keypoints / features) and creates large-scale, semi-dense maps in real-time on a laptop. For more information see http://vision.in.tum.de/lsdslam where you can also find the corresponding publications and Youtube videos, as well as some example-input datasets, and the generated output as rosbag or .ply point cloud.

Related Papers

  • LSD-SLAM: Large-Scale Direct Monocular SLAM, J. Engel, T. Schöps, D. Cremers, ECCV '14

  • Semi-Dense Visual Odometry for a Monocular Camera, J. Engel, J. Sturm, D. Cremers, ICCV '13

1. Quickstart / Minimal Setup

First, install LSD-SLAM following 2.1 or 2.2, depending on your Ubuntu / ROS version. You don't need openFabMap for now.

Download the Room Example Sequence and extract it.

Launch the lsd_slam viewer:

	rosrun lsd_slam_viewer viewer

Launch the lsd_slam main ros node:

	rosrun lsd_slam_core live_slam image:=/image_raw camera_info:=/camera_info

Play the sequence:

	rosbag play ~/LSD_room.bag

You should see one window showing the current keyframe with color-coded depth (from live_slam), and one window showing the 3D map (from viewer). If for some reason the initialization fails (i.e., after ~5s the depth map still looks wrong), focus the depth map and hit 'r' to re-initialize.

2. Installation

We tested LSD-SLAM on two different system configurations, using Ubuntu 12.04 (Precise) and ROS fuerte, or Ubuntu 14.04 (trusty) and ROS indigo. Note that building without ROS is not supported, however ROS is only used for input and output, facilitating easy portability to other platforms.

2.1 ROS fuerte + Ubuntu 12.04

Install system dependencies:

sudo apt-get install ros-fuerte-libg2o liblapack-dev libblas-dev freeglut3-dev libqglviewer-qt4-dev libsuitesparse-dev libx11-dev

In your ROS package path, clone the repository:

git clone https://github.com/tum-vision/lsd_slam.git lsd_slam

Compile the two package by typing:

rosmake lsd_slam

2.2 ROS indigo + Ubuntu 14.04

We do not use catkin, however fortunately old-fashioned CMake-builds are still possible with ROS indigo. For this you need to create a rosbuild workspace (if you don't have one yet), using:

sudo apt-get install python-rosinstall
mkdir ~/rosbuild_ws
cd ~/rosbuild_ws
rosws init . /opt/ros/indigo
mkdir package_dir
rosws set ~/rosbuild_ws/package_dir -t .
echo "source ~/rosbuild_ws/setup.bash" >> ~/.bashrc
bash
cd package_dir

Install system dependencies:

sudo apt-get install ros-indigo-libg2o ros-indigo-cv-bridge liblapack-dev libblas-dev freeglut3-dev libqglviewer-dev libsuitesparse-dev libx11-dev

In your ROS package path, clone the repository:

git clone https://github.com/tum-vision/lsd_slam.git lsd_slam

Compile the two package by typing:

rosmake lsd_slam

2.3 openFabMap for large loop-closure detection [optional]

If you want to use openFABMAP for large loop closure detection, uncomment the following lines in lsd_slam_core/CMakeLists.txt :

#add_subdirectory(${PROJECT_SOURCE_DIR}/thirdparty/openFabMap)
#include_directories(${PROJECT_SOURCE_DIR}/thirdparty/openFabMap/include)
#add_definitions("-DHAVE_FABMAP")
#set(FABMAP_LIB openFABMAP )

Note for Ubuntu 14.04: The packaged OpenCV for Ubuntu 14.04 does not include the nonfree module, which is required for openFabMap (which requires SURF features). You need to get a full version of OpenCV with nonfree module, which is easiest by compiling your own version. We suggest to use the 2.4.8 version, to assure compatibility with the current indigo open-cv package.

3 Usage

LSD-SLAM is split into two ROS packages, lsd_slam_core and lsd_slam_viewer. lsd_slam_core contains the full SLAM system, whereas lsd_slam_viewer is optionally used for 3D visualization. Please also read General Notes for good results below.

3.1 lsd_slam_core

We provide two different usage modes, one meant for live-operation (live_slam) using ROS input/output, and one dataset_slam to use on datasets in the form of image files.

3.1.1 Using live_slam

If you want to directly use a camera.

rosrun lsd_slam_core live_slam /image:=<yourstreamtopic> /camera_info:=<yourcamera_infotopic>

When using ROS camera_info, only the image dimensions and the K matrix from the camera info messages will be used - hence the video has to be rectified.

Alternatively, you can specify a calibration file using

rosrun lsd_slam_core live_slam /image:=<yourstreamtopic> _calib:=<calibration_file>

In this case, the camera_info topic is ignored, and images may also be radially distorted. See the Camera Calibration section for details on the calibration file format.

3.1.2 Using dataset_slam

rosrun lsd_slam_core dataset_slam _files:=<files> _hz:=<hz> _calib:=<calibration_file>

Here, <files> can either be a folder containing image files (which will be sorted alphabetically), or a text file containing one image file per line. <hz> is the framerate at which the images are processed, and <calibration_file> the camera calibration file.

Specify _hz:=0 to enable sequential tracking and mapping, i.e. make sure that every frame is mapped properly. Note that while this typically will give best results, it can be much slower than real-time operation.

3.1.3 Camera Calibration

LSD-SLAM operates on a pinhole camera model, however we give the option to undistort images before they are being used. You can find some sample calib files in lsd_slam_core/calib.

Calibration File for FOV camera model:

fx/width fy/height cx/width cy/height d
in_width in_height
"crop" / "full" / "none" / "e1 e2 e3 e4 0"
out_width out_height

Here, the values in the first line are the camera intrinsics and radial distortion parameter as given by the PTAM cameracalibrator, in_width and in_height is the input image size, and out_width out_height is the desired undistorted image size. The latter can be chosen freely, however 640x480 is recommended as explained in section 3.1.6. The third line specifies how the image is distorted, either by specifying a desired camera matrix in the same format as the first four intrinsic parameters, or by specifying "crop", which crops the image to maximal size while including only valid image pixels.

Calibration File for Pre-Rectified Images

This one is without radial distortion correction, as a special case of ATAN camera model but without the computational cost:

fx/width fy/height cx/width cy/height 0
width height
none
width height

Calibration File for OpenCV camera model:

fx fy cx cy k1 k2 p1 p2
inputWidth inputHeight
"crop" / "full" / "none" / "e1 e2 e3 e4 0"
outputWidth outputHeight

3.1.4 Useful Hotkeys

  • r: Do a full reset

  • d / e: Cycle through debug displays (in particular color-coded variance and color-coded inverse depth).

  • o: Toggle on screen info display

  • m: Save current state of the map (depth & variance) as images to lsd_slam_core/save/

  • p: Brute-Force-Try to find new constraints. May improve the map by finding more constraints, but will block mapping for a while.

  • l: Manually indicate that tracking is lost: will stop tracking and mapping, and start the re-localizer.

3.1.5 Parameters (Dynamic Reconfigure)

A number of things can be changed dynamically, using (for ROS fuerte)

rosrun dynamic_reconfigure reconfigure_gui 

or (for ROS indigo)

rosrun rqt_reconfigure rqt_reconfigure

Parameters are split into two parts, ones that enable / disable various sorts of debug output in /LSD_SLAM/Debug, and ones that affect the actual algorithm, in /LSD_SLAM. Note that debug output options from /LSD_SLAM/Debug only work if lsd_slam_core is built with debug info, e.g. with set(ROS_BUILD_TYPE RelWithDebInfo).

  • minUseGrad: [double] Minimal absolute image gradient for a pixel to be used at all. Increase if your camera has large image noise, decrease if you have low image-noise and want to also exploit small gradients.
  • cameraPixelNoise: [double] Image intensity noise used for e.g. tracking weight calculation. Should be set larger than the actual sensor-noise, to also account for noise originating from discretization / linear interpolation.
  • KFUsageWeight: [double] Determines how often keyframes are taken, depending on the overlap to the current keyframe. Larger -> more keyframes.
  • KFDistWeight: [double] Determines how often keyframes are taken, depending on the distance to the current Keyframe. Larger -> more keyframes.
  • doSLAM: [bool] Toggle global mapping component on/off. Only takes effect after a reset.
  • doKFReActivation: [bool] Toggle keyframe re-activation on/off: If close to an existing keyframe, re-activate it instead of creating a new one. If false, the map will continually grow even if the camera moves in a relatively constrained area; If false, the number of keyframes will not grow arbitrarily.
  • doMapping: [bool] Toggle entire keyframe creating / update module on/off: If false, only tracking stays active, which will prevent rapid motion or moving objects from corrupting the map.
  • useFabMap: [bool] Use openFABMAP to find large loop-closures. Only takes effect after a reset, and requires LSD-SLAM to be compiled with FabMap.
  • allowNegativeIdepths: [bool] Allow idepth to be (slightly) negative to avoid introducing a bias for far-away points.
  • useSubpixelStereo: [bool] Compute subpixel-accurate stereo disparity.
  • useAffineLightningEstimation: [bool] EXPERIMENTAL: Correct for global affine intensity changes during tracking. Might help if you have problems with auto-exposure.
  • multiThreading: [bool] Toggle multi-threading of depth map estimation. Disable for less CPU usage, but possibly slightly less quality.
  • maxLoopClosureCandidates: [int] Maximal number of loop-closures that are tracked initially for each new keyframe.
  • loopclosureStrictness: [double] Threshold on reciprocal loop-closure consistency check, to be added to the map. Larger -> more (possibly wrong) loop-closures.
  • relocalizationTH: [double] How good a relocalization-attempt has to be to be accepted. Larger -> more strict.
  • depthSmoothingFactor: [double] How much to smooth the depth map. Larger -> less smoothing.

Useful for debug output are:

  • plotStereoImages: [bool] Plot searched stereo lines, and color-coded stereo-results. Nice visualization of what's going on, however drastically decreases mapping speed.
  • plotTracking: [bool] Plot final tracking residual. Nice visualization of what's going on, however drastically decreases tracking speed.
  • continuousPCOutput: [bool] Publish current keyframe's point cloud after each update, to be seen in the viewer. Nice visualization, however bad for performance and bandwidth.

3.1.6 General Notes for Good Results

  • Use a global shutter camera. Using a rolling shutter will lead to inferior results.
  • Use a lens with a wide field-of-view (we use a 130° fisheye lens).
  • Use a high framerate, at least 30fps (depending on the movements speed of course). For our experiments, we used between 30 and 60 fps.
  • We recommend an image resolution of 640x480, significantly higher or lower resolutions may require some hard-coded parameters to be adapted.
  • LSD-SLAM is a monocular SLAM system, and as such cannot estimate the absolute scale of the map. Further it requires sufficient camera translation: Rotating the camera without translating it at the same time will not work. Generally sideways motion is best - depending on the field of view of your camera, forwards / backwards motion is equally good. Rotation around the optical axis does not cause any problems.
  • During initialization, it is best to move the camera in a circle parallel to the image without rotating it. The scene should contain sufficient structure (intensity gradient at different depths).
  • Adjust minUseGrad and cameraPixelNoise to fit the sensor-noise and intensity contrast of your camera.
  • If tracking / mapping quality is poor, try decreasing the keyframe thresholds KFUsageWeight and KFDistWeight slightly to generate more keyframes.
  • Note that LSD-SLAM is very much non-deterministic, i.e. results will be different each time you run it on the same dataset. This is due to parallelism, and the fact that small changes regarding when keyframes are taken will have a huge impact on everything that follows afterwards.

3.2 LSD-SLAM Viewer

The viewer is only for visualization. It can also be used to output a generated point cloud as .ply. For live operation, start it using

rosrun lsd_slam_viewer viewer

You can use rosbag to record and re-play the output generated by certain trajectories. Record & playback using

rosbag record /lsd_slam/graph /lsd_slam/keyframes /lsd_slam/liveframes -o file_pc.bag
rosbag play file_pc.bag

You should never have to restart the viewer node, it resets the graph automatically.

If you just want to lead a certain pointcloud from a .bag file into the viewer, you can directly do that using

rosrun lsd_slam_viewer viewer file_pc.bag

3.2.1 Useful Hotkeys

  • r: Reset, will clear all displayed data.

  • w: Print the number of points / currently displayed points / keyframes / constraints to the console.

  • p: Write currently displayed points as point cloud to file lsd_slam_viewer/pc.ply, which can be opened e.g. in meshlab. Use in combination with sparsityFactor to reduce the number of points.

3.2.2 Parameters (Dynamic Reconfigure)

  • showKFCameras : Toggle drawing of blue keyframe camera-frustrums. min: False, default: True, max: True
  • showKFPointclouds : Toggle drawing of point clouds for all keyframes. min: False, default: True, max: True
  • showConstraints : Toggle drawing of red/green pose-graph constraints. min: False, default: True, max: True
  • showCurrentCamera : Toggle drawing of red frustrum for the current camera pose. min: False, default: True, max: True
  • showCurrentPointcloud : Toggle drawing of the latest point cloud added to the map. min: False, default: True, max: True
  • pointTesselation : Size of points. min: 0.0, default: 1.0, max: 5.0
  • lineTesselation : Width of lines. min: 0.0, default: 1.0, max: 5.0
  • scaledDepthVarTH : log10 of threshold on point's variance, in the respective keyframe's scale. min: -10.0, default: -3.0, max: 1.0
  • absDepthVarTH : log10 of threshold on point's variance, in absolute scale. min: -10.0, default: -1.0, max: 1.0
  • minNearSupport : Only plot points that have #minNearSupport similar neighbours (higher values remove outliers). min: 0, default: 7, max: 9
  • cutFirstNKf : Do not display the first #cutFirstNKf keyframe's point clouds, to remove artifacts left-over from the random initialization. min: 0, default: 5, max: 100
  • sparsifyFactor : Only plot one out of #sparsifyFactor points, selected at random. Use this to significantly speed up rendering for large maps. min: 1, default: 1, max: 100
  • sceneRadius : Defines near- and far clipping plane. Decrease to be able to zoom in more. min: 1, default: 80, max: 200
  • saveAllVideo : Save all rendered images... only use if you know what you are doing. min: False, default: False, max: True
  • keepInMemory : If set to false, the point cloud is only stored in OpenGL buffers, and not kept in RAM. This greatly reduces the required RAM for large maps, however also prohibits saving / dynamically changing sparsifyFactor and variance-thresholds. min: False, default: True, max: True

4 Datasets

For convenience we provide a number of datasets, including the video, lsd-slam's output and the generated point cloud as .ply. See http://vision.in.tum.de/lsdslam

5 License

LSD-SLAM is licensed under the GNU General Public License Version 3 (GPLv3), see http://www.gnu.org/licenses/gpl.html.

For commercial purposes, we also offer a professional version under different licencing terms.

6 Troubleshoot / FAQ

How can I get the live-pointcloud in ROS to use with RVIZ?

You cannot, at least not on-line and in real-time. The reason is the following:

In the background, LSD-SLAM continuously optimizes the pose-graph, i.e., the poses of all keyframes. Each time a keyframe's pose changes (which happens all the time, if only by a little bit), all points from this keyframe change their 3D position with it. Hence, you would have to continuously re-publish and re-compute the whole pointcloud (at 100k points per keyframe and up to 1000 keyframes for the longer sequences, that's 100 million points, i.e., ~1.6GB), which would crush real-time performance.

Instead, this is solved in LSD-SLAM by publishing keyframes and their poses separately:

  • keyframeGraphMsg contains the updated pose of each keyframe, nothing else.
  • keyframeMsg contains one frame with it's pose, and - if it is a keyframe - it's points in the form of a depth map.

Points are then always kept in their keyframe's coodinate system: That way, a keyframe's pose can be changed without even touching the points. In fact, in the viewer, the points in the keyframe's coodinate frame are moved to a GLBuffer immediately and never touched again - the only thing that changes is the pushed modelViewMatrix before rendering.

Note that "pose" always refers to a Sim3 pose (7DoF, including scale) - which ROS doesn't even have a message type for.

If you need some other way in which the map is published (e.g. publish the whole pointcloud as ROS standard message as a service), the easiest is to implement your own Output3DWrapper.

Tracking immediately diverges / I keep getting "TRACKING LOST for frame 34 (0.00% good Points, which is -nan% of available points, DIVERGED)!"

  • double-check your camera calibration.
  • try more translational movement and less roational movement

lsd_slam's People

Contributors

artivis avatar dvad avatar fulkast avatar jakobengel avatar kevin-george avatar pierrickkoch avatar pmoulon avatar puzzlepaint 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

Watchers

 avatar  avatar  avatar  avatar  avatar

lsd_slam's Issues

live_slam window doesnt pup up. Not showing the window with color-coded depth (from live_slam).

Hi

I successfully installed the lsd_slam on my Buntu16.04 and ROS kinetic. Im able to see the window from the viewer showing the 3D map , But when rosrun lsd_slam_core live_slam image:=/age_raw camera_info:=/camera_info I got this

WAITING for ROS camera calibration!
Received ROS Camera Calibration: fx: 254.326950, fy: 375.934387, cx: 267.381897, cy: 231.599091 @ 640x480
RECEIVED ROS camera calibration!
Started mapping thread!
Started constraint search thread!
Doing Random initialization!
Started optimization thread
Done Random initialization!
Then nothing show up. No window pups up I followed the issues and solutions here

tum-vision#222 and here

tum-vision/fastfusion#9

But nothing help

Any help?

[rosrun] Couldn't find executable named dataset_slam below /home/roshnee/catkin_ws/src/lsd_slam/lsd_slam_core

I did install all the required dependencies and i traced back to the folder catkin_ws and ran catkin_make. i also ran the command roscore in the other terminal and performed a rosrun for the lsd_slam

rosrun lsd_slam_core dataset_slam _files:=/home/roshnee/catkin_ws/src/T1_rectified/images _hz:=0 _calib:=/home/roshnee/catkin_ws/src/T1_rectified/calibration.yaml

and this is wat i get

[rosrun] Couldn't find executable named dataset_slam below /home/roshnee/catkin_ws/src/lsd_slam/lsd_slam_core

Can anybody help me pls?

Can't build since Qt is unsuitable

Hello.

I've tried to build this repo using catkin build and met some errors that "QObject No such file or directory". I've double checked what is going on in CMake and tried to run cmake separately inside lsd_slam_viewer folder and here is what i've got

-- Using CATKIN_DEVEL_PREFIX: /home/daddywesker/catkin_ws/src/lsd_slam/lsd_slam_viewer/build/devel
-- Using CMAKE_PREFIX_PATH: /home/daddywesker/catkin_ws/devel;/opt/ros/noetic
-- This workspace overlays: /home/daddywesker/catkin_ws/devel;/opt/ros/noetic
-- Found PythonInterp: /usr/bin/python3 (found suitable version "3.8.5", minimum required is "3") 
-- Using PYTHON_EXECUTABLE: /usr/bin/python3
-- Using Debian Python package layout
-- Using empy: /usr/local/lib/python3.8/dist-packages/em.py
-- Using CATKIN_ENABLE_TESTING: ON
-- Call enable_testing()
-- Using CATKIN_TEST_RESULTS_DIR: /home/daddywesker/catkin_ws/src/lsd_slam/lsd_slam_viewer/build/test_results
-- Forcing gtest/gmock from source, though one was otherwise available.
-- Found gtest sources under '/usr/src/googletest': gtests will be built
-- Found gmock sources under '/usr/src/googletest': gmock will be built
-- Found PythonInterp: /usr/bin/python3 (found version "3.8.5") 
-- Using Python nosetests: /usr/bin/nosetests3
-- catkin 0.8.10
-- BUILD_SHARED_LIBS is on
-- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy
-- Found unsuitable Qt version "5.12.8" from /usr/bin/qmake
Qt QTOPENGL library not found.
Qt QTGUI library not found.
Qt QTXML library not found.
Qt QTCORE library not found.
-- Could NOT find QGLVIEWER (missing: QGLVIEWER_LIBRARY) 
-- Qt5 include dir: 
-- lsd_slam_viewer: 2 messages, 0 services
-- Configuring done
-- Generating done
-- Build files have been written to: /home/daddywesker/catkin_ws/src/lsd_slam/lsd_slam_viewer/build

So, my qt 5.12.8 is unsuitable for some reason and of course it haven't been found and used so i can't just make this project.

Here is the CMakeLists with minor changes.

cmake_minimum_required(VERSION 3.11.0)
project(lsd_slam_viewer)

# Set the build type. Options are:
#  Coverage : w/ debug symbols, w/o optimization, w/ code-coverage
#  Debug : w/ debug symbols, w/o optimization
#  Release : w/o debug symbols, w/ optimization
#  RelWithDebInfo : w/ debug symbols, w/ optimization
#  MinSizeRel : w/o debug symbols, w/ optimization, stripped binaries
set(CMAKE_BUILD_TYPE Release)

ADD_SUBDIRECTORY(${PROJECT_SOURCE_DIR}/thirdparty/Sophus)

set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}/cmake)

find_package(catkin REQUIRED COMPONENTS
  cv_bridge
  dynamic_reconfigure
  sensor_msgs
  roscpp
  rosbag
  message_generation
  roslib
  cmake_modules
)

find_package(Qt5 COMPONENTS Widgets REQUIRED)
find_package(OpenGL REQUIRED)
set(QT_USE_QTOPENGL TRUE)
set(QT_USE_QTXML TRUE)
find_package(QGLViewer REQUIRED)
find_package(Eigen3 REQUIRED)
find_package(OpenCV REQUIRED)
find_package(Boost REQUIRED COMPONENTS thread)

message(STATUS "Qt5 include dir: ${QT_INCLUDES}")

include_directories(${QGLVIEWER_INCLUDE_DIR}
		    ${catkin_INCLUDE_DIRS}
		    ${EIGEN3_INCLUDE_DIR}
		    ${QT_INCLUDES} )

# SSE flags
set(CMAKE_CXX_FLAGS
   "${CMAKE_CXX_FLAGS} -march=native -Wall -std=c++0x"
)

add_message_files(DIRECTORY msg FILES keyframeMsg.msg keyframeGraphMsg.msg)
generate_messages(DEPENDENCIES)

generate_dynamic_reconfigure_options(
  cfg/LSDSLAMViewerParams.cfg
)

catkin_package()

# Sources files
set(SOURCE_FILES
  src/PointCloudViewer.cpp
  src/KeyFrameDisplay.cpp
  src/KeyFrameGraphDisplay.cpp
  src/settings.cpp
)

set(HEADER_FILES
  src/PointCloudViewer.h
  src/KeyFrameDisplay.h
  src/KeyFrameGraphDisplay.h
  src/settings.h
)

include_directories(
  ${PROJECT_SOURCE_DIR}/thirdparty/Sophus
)

add_executable(viewer src/main_viewer.cpp ${SOURCE_FILES} ${HEADER_FILES})
add_dependencies(viewer lsd_slam_viewer_generate_messages_cpp)
target_link_libraries(viewer ${QGLViewer_LIBRARIES}
			     ${QGLVIEWER_LIBRARY}
			     ${catkin_LIBRARIES}
			     ${Boost_LIBRARIES}
			     ${QT_LIBRARIES}
			     GL glut GLU
)

I can't install Qt4 since it is obsolete. Any help will be appreciated.

Omnidirectional Cameras

Hi everybody,
Please, somebody knows how to use this implementation with omnidirectional cameras? It seems the same author publish the paper for that, but I am not sure if this lsd salm implementation works for that images.

In advance, thank you so much for any information about that.

Consistently Aborting with memory dump

Sorry i'm a noob but here is the dumperooni

mycomputer:~/catkin_ws$ rosrun lsd_slam_core live_slam /image:=/cv_camera/image_raw _calib:=src/lsd_slam/calibration_params *** Error in /home/mcschwartzman/catkin_ws/devel/lib/lsd_slam_core/live_slam': double free or corruption (out): 0x00000000023df1a0 ***
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x777e5)[0x7fc23ca217e5]
/lib/x86_64-linux-gnu/libc.so.6(+0x8037a)[0x7fc23ca2a37a]
/lib/x86_64-linux-gnu/libc.so.6(cfree+0x4c)[0x7fc23ca2e53c]
/opt/ros/kinetic/lib/libg2o_types_sba.so(_ZN3g2o26EdgeProjectP2MC_IntrinsicsD0Ev+0x2d)[0x7fc23a62ddad]
/opt/ros/kinetic/lib/libg2o_core.so(_ZN3g2o7Factory12registerTypeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPNS_32AbstractHyperGraphElementCreatorE+0x33f)[0x7fc23aaadf8f]
/opt/ros/kinetic/lib/libg2o_types_sba.so(+0x1db2a)[0x7fc23a627b2a]
/lib64/ld-linux-x86-64.so.2(+0x106ba)[0x7fc23e9796ba]
/lib64/ld-linux-x86-64.so.2(+0x107cb)[0x7fc23e9797cb]
/lib64/ld-linux-x86-64.so.2(+0xc6a)[0x7fc23e969c6a]
======= Memory map: ========
00400000-00452000 r-xp 00000000 08:07 1049687 /home/mcschwartzman/catkin_ws/devel/lib/lsd_slam_core/live_slam
00651000-00652000 r--p 00051000 08:07 1049687 /home/mcschwartzman/catkin_ws/devel/lib/lsd_slam_core/live_slam
00652000-00653000 rw-p 00052000 08:07 1049687 /home/mcschwartzman/catkin_ws/devel/lib/lsd_slam_core/live_slam
00653000-00654000 rw-p 00000000 00:00 0
023bc000-023fe000 rw-p 00000000 00:00 0 [heap]
7fc224000000-7fc224021000 rw-p 00000000 00:00 0
7fc224021000-7fc228000000 ---p 00000000 00:00 0
7fc22bcd3000-7fc22bce3000 r-xp 00000000 08:07 402002 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0
7fc22bce3000-7fc22bee2000 ---p 00010000 08:07 402002 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0
7fc22bee2000-7fc22bee3000 r--p 0000f000 08:07 402002 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0
7fc22bee3000-7fc22bee4000 rw-p 00010000 08:07 402002 /usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0
7fc22bee4000-7fc22bee9000 r-xp 00000000 08:07 401741 /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0
7fc22bee9000-7fc22c0e8000 ---p 00005000 08:07 401741 /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0
7fc22c0e8000-7fc22c0e9000 r--p 00004000 08:07 401741 /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0
7fc22c0e9000-7fc22c0ea000 rw-p 00005000 08:07 401741 /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0
7fc22c0ea000-7fc22c0ee000 r-xp 00000000 08:07 403076 /usr/lib/x86_64-linux-gnu/libxcb-dri2.so.0.0.0
7fc22c0ee000-7fc22c2ed000 ---p 00004000 08:07 403076 /usr/lib/x86_64-linux-gnu/libxcb-dri2.so.0.0.0
7fc22c2ed000-7fc22c2ee000 r--p 00003000 08:07 403076 /usr/lib/x86_64-linux-gnu/libxcb-dri2.so.0.0.0
7fc22c2ee000-7fc22c2ef000 rw-p 00004000 08:07 403076 /usr/lib/x86_64-linux-gnu/libxcb-dri2.so.0.0.0
7fc22c2ef000-7fc22c306000 r-xp 00000000 08:07 403080 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0
7fc22c306000-7fc22c505000 ---p 00017000 08:07 403080 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0
7fc22c505000-7fc22c507000 r--p 00016000 08:07 403080 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0
7fc22c507000-7fc22c508000 rw-p 00018000 08:07 403080 /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0
7fc22c508000-7fc22c509000 r-xp 00000000 08:07 401684 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0
7fc22c509000-7fc22c708000 ---p 00001000 08:07 401684 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0
7fc22c708000-7fc22c709000 r--p 00000000 08:07 401684 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0
7fc22c709000-7fc22c70a000 rw-p 00001000 08:07 401684 /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0
7fc22c70a000-7fc22c70f000 r-xp 00000000 08:07 401705 /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0
7fc22c70f000-7fc22c90e000 ---p 00005000 08:07 401705 /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0
7fc22c90e000-7fc22c90f000 r--p 00004000 08:07 401705 /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0
7fc22c90f000-7fc22c910000 rw-p 00005000 08:07 401705 /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0
7fc22c910000-7fc22c912000 r-xp 00000000 08:07 401699 /usr/lib/x86_64-linux-gnu/libXdamage.so.1.1.0
7fc22c912000-7fc22cb11000 ---p 00002000 08:07 401699 /usr/lib/x86_64-linux-gnu/libXdamage.so.1.1.0
7fc22cb11000-7fc22cb12000 r--p 00001000 08:07 401699 /usr/lib/x86_64-linux-gnu/libXdamage.so.1.1.0
7fc22cb12000-7fc22cb13000 rw-p 00002000 08:07 401699 /usr/lib/x86_64-linux-gnu/libXdamage.so.1.1.0
7fc22cb13000-7fc22cb24000 r-xp 00000000 08:07 401703 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0
7fc22cb24000-7fc22cd23000 ---p 00011000 08:07 401703 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0
7fc22cd23000-7fc22cd24000 r--p 00010000 08:07 401703 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0
7fc22cd24000-7fc22cd25000 rw-p 00011000 08:07 401703 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0
7fc22cd25000-7fc22cd50000 r-xp 00000000 08:07 398202 /usr/lib/x86_64-linux-gnu/libglapi.so.0.0.0
7fc22cd50000-7fc22cf4f000 ---p 0002b000 08:07 398202 /usr/lib/x86_64-linux-gnu/libglapi.so.0.0.0
7fc22cf4f000-7fc22cf53000 r--p 0002a000 08:07 398202 /usr/lib/x86_64-linux-gnu/libglapi.so.0.0.0
7fc22cf53000-7fc22cf54000 rw-p 0002e000 08:07 398202 /usr/lib/x86_64-linux-gnu/libglapi.so.0.0.0
7fc22cf54000-7fc22cf55000 rw-p 00000000 00:00 0
7fc22cf55000-7fc22cf56000 r-xp 00000000 08:07 403120 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0
7fc22cf56000-7fc22d156000 ---p 00001000 08:07 403120 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0
7fc22d156000-7fc22d157000 r--p 00001000 08:07 403120 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0
7fc22d157000-7fc22d158000 rw-p 00002000 08:07 403120 /usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0
7fc22d158000-7fc22d15d000 r-xp 00000000 08:07 403100 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0
7fc22d15d000-7fc22d35d000 ---p 00005000 08:07 403100 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0
7fc22d35d000-7fc22d35e000 r--p 00005000 08:07 403100 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0
7fc22d35e000-7fc22d35f000 rw-p 00006000 08:07 403100 /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0
7fc22d35f000-7fc22d361000 r-xp 00000000 08:07 403088 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0
7fc22d361000-7fc22d560000 ---p 00002000 08:07 403088 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0
7fc22d560000-7fc22d561000 r--p 00001000 08:07 403088 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0
7fc22d561000-7fc22d562000 rw-p 00002000 08:07 403088 /usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0
7fc22d562000-7fc22d564000 r-xp 00000000 08:07 403078 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0
7fc22d564000-7fc22d763000 ---p 00002000 08:07 403078 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0
7fc22d763000-7fc22d764000 r--p 00001000 08:07 403078 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0
7fc22d764000-7fc22d765000 rw-p 00002000 08:07 403078 /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0.0.0
7fc22d765000-7fc22d789000 r-xp 00000000 08:07 398595 /usr/lib/x86_64-linux-gnu/libgraphite2.so.3.0.1
7fc22d789000-7fc22d988000 ---p 00024000 08:07 398595 /usr/lib/x86_64-linux-gnu/libgraphite2.so.3.0.1
7fc22d988000-7fc22d98a000 r--p 00023000 08:07 398595 /usr/lib/x86_64-linux-gnu/libgraphite2.so.3.0.1
7fc22d98a000-7fc22d98b000 rw-p 00025000 08:07 398595 /usr/lib/x86_64-linux-gnu/libgraphite2.so.3.0.1
7fc22d98b000-7fc22da2f000 r-xp 00000000 08:07 402128 /usr/lib/x86_64-linux-gnu/libfreetype.so.6.12.1
7fc22da2f000-7fc22dc2e000 ---p 000a4000 08:07 402128 /usr/lib/x86_64-linux-gnu/libfreetype.so.6.12.1
7fc22dc2e000-7fc22dc34000 r--p 000a3000 08:07 402128 /usr/lib/x86_64-linux-gnu/libfreetype.so.6.12.1
7fc22dc34000-7fc22dc35000 rw-p 000a9000 08:07 402128 /usr/lib/x86_64-linux-gnu/libfreetype.so.6.12.1
7fc22dc35000-7fc22dca3000 r-xp 00000000 08:07 3936928 /lib/x86_64-linux-gnu/libpcre.so.3.13.2
7fc22dca3000-7fc22dea3000 ---p 0006e000 08:07 3936928 /lib/x86_64-linux-gnu/libpcre.so.3.13.2
7fc22dea3000-7fc22dea4000 r--p 0006e000 08:07 3936928 /lib/x86_64-linux-gnu/libpcre.so.3.13.2
7fc22dea4000-7fc22dea5000 rw-p 0006f000 08:07 3936928 /lib/x86_64-linux-gnu/libpcre.so.3.13.2
7fc22dea5000-7fc22deac000 r-xp 00000000 08:07 402080 /usr/lib/x86_64-linux-gnu/libffi.so.6.0.4
7fc22deac000-7fc22e0ab000 ---p 00007000 08:07 402080 /usr/lib/x86_64-linux-gnu/libffi.so.6.0.4
7fc22e0ab000-7fc22e0ac000 r--p 00006000 08:07 402080 /usr/lib/x86_64-linux-gnu/libffi.so.6.0.4
7fc22e0ac000-7fc22e0ad000 rw-p 00007000 08:07 402080 /usr/lib/x86_64-linux-gnu/libffi.so.6.0.4
7fc22e0ad000-7fc22e111000 r-xp 00000000 08:07 402667 /usr/lib/x86_64-linux-gnu/libpcre16.so.3.13.2
7fc22e111000-7fc22e311000 ---p 00064000 08:07 402667 /usr/lib/x86_64-linux-gnu/libpcre16.so.3.13.2
7fc22e311000-7fc22e312000 r--p 00064000 08:07 402667 /usr/lib/x86_64-linux-gnu/libpcre16.so.3.13.2
7fc22e312000-7fc22e313000 rw-p 00065000 08:07 402667 /usr/lib/x86_64-linux-gnu/libpcre16.so.3.13.2
7fc22e313000-7fc22e381000 r-xp 00000000 08:07 656348 /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1.2.0
7fc22e381000-7fc22e581000 ---p 0006e000 08:07 656348 /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1.2.0
7fc22e581000-7fc22e584000 r--p 0006e000 08:07 656348 /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1.2.0
7fc22e584000-7fc22e585000 rw-p 00071000 08:07 656348 /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1.2.0
7fc22e585000-7fc22e586000 rw-p 00000000 00:00 0
7fc22e586000-7fc22e5e2000 r-xp 00000000 08:07 402343 /usr/lib/x86_64-linux-gnu/libharfbuzz.so.0.10000.1
7fc22e5e2000-7fc22e7e2000 ---p 0005c000 08:07 402343 /usr/lib/x86_64-linux-gnu/libharfbuzz.so.0.10000.1
7fc22e7e2000-7fc22e7e3000 r--p 0005c000 08:07 402343 /usr/lib/x86_64-linux-gnu/libharfbuzz.so.0.10000.1
7fc22e7e3000-7fc22e7e4000 rw-p 0005d000 08:07 402343 /usr/lib/x86_64-linux-gnu/libharfbuzz.so.0.10000.1
7fc22e7e4000-7fc22e8f3000 r-xp 00000000 08:07 3936841 /lib/x86_64-linux-gnu/libglib-2.0.so.0.4800.2
7fc22e8f3000-7fc22eaf2000 ---p 0010f000 08:07 3936841 /lib/x86_64-linux-gnu/libglib-2.0.so.0.4800.2
7fc22eaf2000-7fc22eaf3000 r--p 0010e000 08:07 3936841 /lib/x86_64-linux-gnu/libglib-2.0.so.0.4800.2
7fc22eaf3000-7fc22eaf4000 rw-p 0010f000 08:07 3936841 /lib/x86_64-linux-gnu/libglib-2.0.so.0.4800.2
7fc22eaf4000-7fc22eaf5000 rw-p 00000000 00:00 0
7fc22eaf5000-7fc22eb47000 r-xp 00000000 08:07 402235 /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.4800.2
7fc22eb47000-7fc22ed46000 ---p 00052000 08:07 402235 /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.4800.2
7fc22ed46000-7fc22ed47000 r--p 00051000 08:07 402235 /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.4800.2
7fc22ed47000-7fc22ed48000 rw-p 00052000 08:07 402235 /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.4800.2
7fc22ed48000-7fc22ed53000 r-xp 00000000 08:07 402438 /usr/lib/x86_64-linux-gnu/libjbig.so.0
7fc22ed53000-7fc22ef52000 ---p 0000b000 08:07 402438 /usr/lib/x86_64-linux-gnu/libjbig.so.0
7fc22ef52000-7fc22ef53000 r--p 0000a000 08:07 402438 /usr/lib/x86_64-linux-gnu/libjbig.so.0
7fc22ef53000-7fc22ef56000 rw-p 0000b000 08:07 402438 /usr/lib/x86_64-linux-gnu/libjbig.so.0
7fc22ef56000-7fc22ef77000 r-xp 00000000 08:07 3936866 /lib/x86_64-linux-gnu/liblzma.so.5.0.0
7fc22ef77000-7fc22f176000 ---p 00021000 08:07 3936866 /lib/x86_64-linux-gnu/liblzma.so.5.0.0
7fc22f176000-7fc22f177000 r--p 00020000 08:07 3936866 /lib/x86_64-linux-gnu/liblzma.so.5.0.0
7fc22f177000-7fc22f178000 rw-p 00021000 08:07 3936866 /lib/x86_64-linux-gnu/liblzma.so.5.0.0
7fc22f178000-7fc230a2e000 r-xp 00000000 08:07 401106 /usr/lib/x86_64-linux-gnu/libicudata.so.55.1
7fc230a2e000-7fc230c2d000 ---p 018b6000 08:07 401106 /usr/lib/x86_64-linux-gnu/libicudata.so.55.1
7fc230c2d000-7fc230c2e000 r--p 018b5000 08:07 401106 /usr/lib/x86_64-linux-gnu/libicudata.so.55.1
7fc230c2e000-7fc230c2f000 rw-p 018b6000 08:07 401106 /usr/lib/x86_64-linux-gnu/libicudata.so.55.1
7fc230c2f000-7fc230c55000 r-xp 00000000 08:07 3936830 /lib/x86_64-linux-gnu/libexpat.so.1.6.0
7fc230c55000-7fc230e55000 ---p 00026000 08:07 3936830 /lib/x86_64-linux-gnu/libexpat.so.1.6.0
7fc230e55000-7fc230e57000 r--p 00026000 08:07 3936830 /lib/x86_64-linux-gnu/libexpat.so.1.6.0
7fc230e57000-7fc230e58000 rw-p 00028000 08:07 3936830 /lib/x86_64-linux-gnu/libexpat.so.1.6.0
7fc230e58000-7fc230e61000 r-xp 00000000 08:07 3932492 /lib/x86_64-linux-gnu/libcrypt-2.23.so
7fc230e61000-7fc231060000 ---p 00009000 08:07 3932492 /lib/x86_64-linux-gnu/libcrypt-2.23.so
7fc231060000-7fc231061000 r--p 00008000 08:07 3932492 /lib/x86_64-linux-gnu/libcrypt-2.23.so
7fc231061000-7fc231062000 rw-p 00009000 08:07 3932492 /lib/x86_64-linux-gnu/libcrypt-2.23.so
7fc231062000-7fc231090000 rw-p 00000000 00:00 0
7fc231090000-7fc231094000 r-xp 00000000 08:07 3936983 /lib/x86_64-linux-gnu/libuuid.so.1.3.0
7fc231094000-7fc231293000 ---p 00004000 08:07 3936983 /lib/x86_64-linux-gnu/libuuid.so.1.3.0
7fc231293000-7fc231294000 r--p 00003000 08:07 3936983 /lib/x86_64-linux-gnu/libuuid.so.1.3.0
7fc231294000-7fc231295000 rw-p 00004000 08:07 3936983 /lib/x86_64-linux-gnu/libuuid.so.1.3.0
7fc231295000-7fc231297000 r-xp 00000000 08:07 3932480 /lib/x86_64-linux-gnu/libutil-2.23.so
7fc231297000-7fc231496000 ---p 00002000 08:07 3932480 /lib/x86_64-linux-gnu/libutil-2.23.so
7fc231496000-7fc231497000 r--p 00001000 08:07 3932480 /lib/x86_64-linux-gnu/libutil-2.23.so
7fc231497000-7fc231498000 rw-p 00002000 08:07 3932480 /lib/x86_64-linux-gnu/libutil-2.23.so
7fc231498000-7fc23149d000 r-xp 00000000 08:07 401701 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0
7fc23149d000-7fc23169c000 ---p 00005000 08:07 401701 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0
7fc23169c000-7fc23169d000 r--p 00004000 08:07 401701 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0
7fc23169d000-7fc23169e000 rw-p 00005000 08:07 401701 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0
7fc23169e000-7fc2316a0000 r-xp 00000000 08:07 401690 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0
7fc2316a0000-7fc2318a0000 ---p 00002000 08:07 401690 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0
7fc2318a0000-7fc2318a1000 r--p 00002000 08:07 401690 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0
7fc2318a1000-7fc2318a2000 rw-p 00003000 08:07 401690 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0
7fc2318a2000-7fc231d67000 r-xp 00000000 08:07 401581 /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.5.1
7fc231d67000-7fc231d73000 r--p 004c4000 08:07 401581 /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.5.1
7fc231d73000-7fc231d74000 rw-p 004d0000 08:07 401581 /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.5.1
7fc231d74000-7fc231d78000 rw-p 00000000 00:00 0
7fc231d78000-7fc23229f000 r-xp 00000000 08:07 401593 /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5.5.1
7fc23229f000-7fc2322a0000 ---p 00527000 08:07 401593 /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5.5.1
7fc2322a0000-7fc2322b5000 r--p 00527000 08:07 401593 /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5.5.1
7fc2322b5000-7fc2322bb000 rw-p 0053c000 08:07 401593 /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5.5.1
7fc2322bb000-7fc2322c0000 rw-p 00000000 00:00 0
7fc2322c0000-7fc232919000 r-xp 00000000 08:07 401638 /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5.5.1
7fc232919000-7fc232947000 r--p 00658000 08:07 401638 /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5.5.1
7fc232947000-7fc23294c000 rw-p 00686000 08:07 401638 /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5.5.1
7fc23294c000-7fc23294d000 rw-p 00000000 00:00 0
7fc23294d000-7fc23299d000 r-xp 00000000 08:07 6045007 /opt/ros/kinetic/lib/libopencv_flann3.so.3.3.1
7fc23299d000-7fc232b9c000 ---p 00050000 08:07 6045007 /opt/ros/kinetic/lib/libopencv_flann3.so.3.3.1
7fc232b9c000-7fc232b9e000 r--p 0004f000 08:07 6045007 /opt/ros/kinetic/lib/libopencv_flann3.so.3.3.1
7fc232b9e000-7fc232b9f000 rw-p 00051000 08:07 6045007 /opt/ros/kinetic/lib/libopencv_flann3.so.3.3.1
7fc232b9f000-7fc232c6d000 r-xp 00000000 08:07 6045027 /opt/ros/kinetic/lib/libopencv_features2d3.so.3.3.1
7fc232c6d000-7fc232e6c000 ---p 000ce000 08:07 6045027 /opt/ros/kinetic/lib/libopencv_features2d3.so.3.3.1
7fc232e6c000-7fc232e71000 r--p 000cd000 08:07 6045027 /opt/ros/kinetic/lib/libopencv_features2d3.so.3.3.1
7fc232e71000-7fc232e73000 rw-p 000d2000 08:07 6045027 /opt/ros/kinetic/lib/libopencv_features2d3.so.3.3.1
7fc232e73000-7fc232e74000 rw-p 00000000 00:00 0
7fc232e74000-7fc232ebe000 r-xp 00000000 08:07 402435 /usr/lib/x86_64-linux-gnu/libjasper.so.1.0.0
7fc232ebe000-7fc2330bd000 ---p 0004a000 08:07 402435 /usr/lib/x86_64-linux-gnu/libjasper.so.1.0.0
7fc2330bd000-7fc2330be000 r--p 00049000 08:07 402435 /usr/lib/x86_64-linux-gnu/libjasper.so.1.0.0
7fc2330be000-7fc2330c2000 rw-p 0004a000 08:07 402435 /usr/lib/x86_64-linux-gnu/libjasper.so.1.0.0
7fc2330c2000-7fc2330c9000 rw-p 00000000 00:00 0
7fc2330c9000-7fc233139000 r-xp 00000000 08:07 402891 /usr/lib/x86_64-linux-gnu/libtiff.so.5.2.4
7fc233139000-7fc233339000 ---p 00070000 08:07 402891 /usr/lib/x86_64-linux-gnu/libtiff.so.5.2.4
7fc233339000-7fc23333a000 r--p 00070000 08:07 402891 /usr/lib/x86_64-linux-gnu/libtiff.so.5.2.4
7fc23333a000-7fc23333d000 rw-p 00071000 08:07 402891 /usr/lib/x86_64-linux-gnu/libtiff.so.5.2.4
7fc23333d000-7fc233361000 r-xp 00000000 08:07 3936940 /lib/x86_64-linux-gnu/libpng12.so.0.54.0
7fc233361000-7fc233560000 ---p 00024000 08:07 3936940 /lib/x86_64-linux-gnu/libpng12.so.0.54.0
7fc233560000-7fc233561000 r--p 00023000 08:07 3936940 /lib/x86_64-linux-gnu/libpng12.so.0.54.0
7fc233561000-7fc233562000 rw-p 00024000 08:07 3936940 /lib/x86_64-linux-gnu/libpng12.so.0.54.0
7fc233562000-7fc2335bb000 r-xp 00000000 08:07 403010 /usr/lib/x86_64-linux-gnu/libwebp.so.5.0.4
7fc2335bb000-7fc2337bb000 ---p 00059000 08:07 403010 /usr/lib/x86_64-linux-gnu/libwebp.so.5.0.4
7fc2337bb000-7fc2337bc000 r--p 00059000 08:07 403010 /usr/lib/x86_64-linux-gnu/libwebp.so.5.0.4
7fc2337bc000-7fc2337be000 rw-p 0005a000 08:07 403010 /usr/lib/x86_64-linux-gnu/libwebp.so.5.0.4
7fc2337be000-7fc233815000 r-xp 00000000 08:07 402442 /usr/lib/x86_64-linux-gnu/libjpeg.so.8.0.2
7fc233815000-7fc233a15000 ---p 00057000 08:07 402442 /usr/lib/x86_64-linux-gnu/libjpeg.so.8.0.2
7fc233a15000-7fc233a16000 r--p 00057000 08:07 402442 /usr/lib/x86_64-linux-gnu/libjpeg.so.8.0.2
7fc233a16000-7fc233a17000 rw-p 00058000 08:07 402442 /usr/lib/x86_64-linux-gnu/libjpeg.so.8.0.2
7fc233a17000-7fc233a30000 r-xp 00000000 08:07 3936990 /lib/x86_64-linux-gnu/libz.so.1.2.8
7fc233a30000-7fc233c2f000 ---p 00019000 08:07 3936990 /lib/x86_64-linux-gnu/libz.so.1.2.8
7fc233c2f000-7fc233c30000 r--p 00018000 08:07 3936990 /lib/x86_64-linux-gnu/libz.so.1.2.8
7fc233c30000-7fc233c31000 rw-p 00019000 08:07 3936990 /lib/x86_64-linux-gnu/libz.so.1.2.8
7fc233c31000-7fc233db0000 r-xp 00000000 08:07 401108 /usr/lib/x86_64-linux-gnu/libicuuc.so.55.1
7fc233db0000-7fc233fb0000 ---p 0017f000 08:07 401108 /usr/lib/x86_64-linux-gnu/libicuuc.so.55.1
7fc233fb0000-7fc233fc0000 r--p 0017f000 08:07 401108 /usr/lib/x86_64-linux-gnu/libicuuc.so.55.1
7fc233fc0000-7fc233fc1000 rw-p 0018f000 08:07 401108 /usr/lib/x86_64-linux-gnu/libicuuc.so.55.1
7fc233fc1000-7fc233fc5000 rw-p 00000000 00:00 0
7fc233fc5000-7fc234217000 r-xp 00000000 08:07 401101 /usr/lib/x86_64-linux-gnu/libicui18n.so.55.1
7fc234217000-7fc234417000 ---p 00252000 08:07 401101 /usr/lib/x86_64-linux-gnu/libicui18n.so.55.1
7fc234417000-7fc234426000 r--p 00252000 08:07 401101 /usr/lib/x86_64-linux-gnu/libicui18n.so.55.1
7fc234426000-7fc234427000 rw-p 00261000 08:07 401101 /usr/lib/x86_64-linux-gnu/libicui18n.so.55.1
7fc234427000-7fc23444d000 r-xp 00000000 08:07 411461 /usr/lib/x86_64-linux-gnu/libaprutil-1.so.0.5.4
7fc23444d000-7fc23464c000 ---p 00026000 08:07 411461 /usr/lib/x86_64-linux-gnu/libaprutil-1.so.0.5.4
7fc23464c000-7fc23464d000 r--p 00025000 08:07 411461 /usr/lib/x86_64-linux-gnu/libaprutil-1.so.0.5.4
7fc23464d000-7fc23464e000 rw-p 00026000 08:07 411461 /usr/lib/x86_64-linux-gnu/libaprutil-1.so.0.5.4Aborted (core dumped)`

Linking error

I'm on Ubuntu 16.04, and ROS-Kinetic. Following the steps given in wiki, I end up with following linking error :

/home/vivek/ros_files/catkin_ws/devel/lib/liblsdslam.so: undefined reference to 'g2o::OptimizationAlgorithmLevenberg::OptimizationAlgorithmLevenberg(g2o::Solver*)'

The solver mentioned in the error log : OptimizationAlgorithmLevenberg(g2o::Solver*) Is being used in KeyFrameGraph.cc (reproduced below)


       typedef g2o::BlockSolver_7_3 BlockSolver;
        typedef g2o::LinearSolverCSparse<BlockSolver::PoseMatrixType> LinearSolver;
        LinearSolver* solver = new LinearSolver();
        BlockSolver* blockSolver = new BlockSolver(solver);
        g2o::OptimizationAlgorithmLevenberg* algorithm = new g2o::OptimizationAlgorithmLevenberg(blockSolver);

Displaying depth map

Heya,

has a solution been found for displaying the depth map?

I am getting the following output which seems to be the same for most people in the tum_vision version

QObject::killTimer: Timers cannot be stopped from another thread
QObject::startTimer: Timers cannot be started from another thread
^CQObject::~QObject: Timers cannot be stopped from another thread

I followed the instructions on your Wiki

Thanks

main_on_images is almost 300x slower than main_live_odometry

When I run live_slam the odometry pose updates at a fast rate (~30Hz). The input is my laptop's webcam (Calibrated) with input configured to be 640_480 (no cropping).

Afterwards, I compiled main_on_images and fed it with sequence_30 images. The calibration file uses crop setting and same image size 640_480 (cropped). The frequency of pose update (from Output3DWrapper) is about 0.1 Hz (about 10 seconds or more for one pose output).

I have used the same CMake settings to build the executable as used by catkin. I want to speed up the processing (as fast as the main_live_odometry version. Any help is appreciated.

Nothing is displayed in PointcloudViewer.

Hello. I follow your instruction for installing LSD-SLAM with ROS Kinetic.
Install for LSD-SLAM is perfect with no error. But, when I run lsd-slam with default rosbag play LSD_room.bag, I can't see anything in PointCloudViewer.

This is my commands:

  1. rosrun lsd_slam_viewer viewer (work fine)
  2. rosrun lsd_slam_core live_slam /image:=/cama/image_raw camera_info:=/camera_info
  3. rosbag play LSD_room.bag

I also saw your Usage for lsd-slam. first, cv_camera_node is executing webcam node. second, execute lsd slam core.

What part is wrong in my commands? How can I see point cloud data?

nothing_pointcloud

Failing to build g2o_types_sim3 - undefined reference to `g2o::OptimizableGraph::addVertex(g2o::HyperGraph::Vertex*, g2o::HyperGraph::Data*)'

I'm trying to compile lsd_slam in a catking_ws. When I run catkin_make, I get this.

...                                                                                                                                                                [16/1818]
[ 80%] Built target turtlebot_msgs_generate_messages_lisp                                                                                                                                                                             [15/1818]
[ 81%] Built target turtlebot_msgs_generate_messages_cpp                                                                                                                                                                              [14/1818]
[ 82%] Built target turtlebot_msgs_generate_messages_nodejs                                                                                                                                                                           [13/1818]
[ 82%] Built target usb_cam_node                                                                                                                                                                                                      [12/1818]
[ 82%] Built target g2o_solver_dense                                                                                                                                                                                                  [11/1818]
[ 83%] Built target rotate_recovery                                                                                                                                                                                                   [10/1818]
[ 84%] Built target g2o_solver_cholmod                                                                                                                                                                                                 [9/1818]
[ 84%] Built target hector_nav_msgs_generate_messages                                                                                                                                                                                  [8/1818]
[ 87%] Built target g2o_types_slam3d                                                                                                                                                                                                   [7/1818]
[ 88%] Built target geotiff_writer                                                                                                                                                                                                     [6/1818]
[ 88%] Built target ti_mmwave_rospkg_generate_messages                                                                                                                                                                                 [5/1818]
[ 89%] Built target mmwave                                                                                                                                                                                                             [4/1818]
[ 89%] Built target lsd_slam_viewer_generate_messages                                                                                                                                                                                  [3/1818]
[ 89%] Built target ptam_com_generate_messages                                                                                                                                                                                         [2/1818]
[ 91%] Built target viewer                                                                                                                                                                                                             [1/1818]
[ 91%] Linking CXX executable /home/rude/catkin_ws/devel/lib/lsd_slam_core/dataset
[ 91%] Linking CXX executable /home/rude/catkin_ws/devel/lib/lsd_slam_core/live_slam
[ 91%] Built target hector_mapping_generate_messages
[ 91%] Built target turtlebot_actions_gencpp
[ 92%] Built target hector_mapping
[ 92%] Built target turtlebot_actions_generate_messages
[ 92%] Built target turtlebot_move_action_server
[ 92%] Built target turtlebot_calibration_generate_messages
[ 92%] Built target turtlebot_msgs_generate_messages
[ 92%] Built target turtlebot_follower
[ 93%] Built target move_base
[ 94%] Built target g2o_types_sba
[ 95%] Built target geotiff_node
[ 95%] Built target geotiff_saver
[ 95%] Built target ti_mmwave_rospkg
[ 96%] Built target hector_geotiff_plugins
[ 96%] Built target mmWaveQuickConfig
[ 97%] Built target find_fiducial_pose
[ 97%] Built target move_base_node
[ 98%] Built target g2o_types_sim3
/home/rude/catkin_ws/devel/lib/liblsdslam.so: undefined reference to `g2o::OptimizableGraph::addVertex(g2o::HyperGraph::Vertex*, g2o::HyperGraph::Data*)'                                                                                     
/home/rude/catkin_ws/devel/lib/liblsdslam.so: undefined reference to `g2o::OptimizableGraph::addVertex(g2o::HyperGraph::Vertex*, g2o::HyperGraph::Data*)'                                                                                     
collect2: error: ld returned 1 exit status
collect2: error: ld returned 1 exit status
lsd_slam/lsd_slam_core/CMakeFiles/dataset.dir/build.make:189: recipe for target '/home/rude/catkin_ws/devel/lib/lsd_slam_core/dataset' failed                                                                                                 
make[2]: *** [/home/rude/catkin_ws/devel/lib/lsd_slam_core/dataset] Error 1
lsd_slam/lsd_slam_core/CMakeFiles/live_slam.dir/build.make:238: recipe for target '/home/rude/catkin_ws/devel/lib/lsd_slam_core/live_slam' failed                                                                                             
make[2]: *** [/home/rude/catkin_ws/devel/lib/lsd_slam_core/live_slam] Error 1
CMakeFiles/Makefile2:6110: recipe for target 'lsd_slam/lsd_slam_core/CMakeFiles/dataset.dir/all' failed
make[1]: *** [lsd_slam/lsd_slam_core/CMakeFiles/dataset.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
CMakeFiles/Makefile2:6222: recipe for target 'lsd_slam/lsd_slam_core/CMakeFiles/live_slam.dir/all' failed
make[1]: *** [lsd_slam/lsd_slam_core/CMakeFiles/live_slam.dir/all] Error 2
Makefile:138: recipe for target 'all' failed
make: *** [all] Error 2
Invoking "make -j4 -l4" failed

Thanks

SLAM to work with TUM RGB .bag files

I have got LSD SLAM working with "Quickstart / Minimal Setup" on Ubuntu 16.04 and ROS Kinetic. But when i run .bag file from TUM RGB dataset nothing happens. Point cloud viewer is not showing anything and Debug Depth window also doesnt pops up. I am using calibration parameters from TUM site. On running rosrun lsd_slam_core live_slam image:=/image_raw _calib:=/home/maq/catkin_ws/src/lsd_slam/lsd_slam_core/calib/calibration_params... I get this on terminal
`Reading Calibration from file /home/maq/catkin_ws/src/lsd_slam/lsd_slam_core/calib/calibration_params ... found!

found ATAN camera model, building rectifier.

Input resolution: 640 480

In: 535.400024 539.200012 320.100006 247.600006 0.000000

Out: Full

Output resolution: 640 480

Prepped Warp matrices

Started mapping thread!

Started constraint search thread!

Started optimization thread`

And after this rosbag play ~/MAQ/rgbd_dataset_freiburg3_long_office_household.bag file starts playing but no result on PointCloud Viewer or Debug Depth Window.

Viewer's pointcloud is 2d

Hi,

when I run LSD-SLAM I only get a 2D plain as "pointcloud" in my viewer window.
When running an example bag file it gets 3D but when trying my own camera it is this kind of flat thing.

lsd_slam_pointcloud

Any idea what I'm missing?

LSDParamsConfig.h

[ 89%] Building CXX object lsd_slam/lsd_slam_core/CMakeFiles/dataset.dir/src/main_on_images.cpp.o
In file included from /home/pete/catkin_ws/src/lsd_slam/lsd_slam_core/src/main_on_images.cpp:34:0:
/home/pete/catkin_ws/src/lsd_slam/lsd_slam_core/src/IOWrapper/ROS/rosReconfigure.h:25:43: fatal error: lsd_slam_core/LSDParamsConfig.h: No such file or directory
compilation terminated.
lsd_slam/lsd_slam_core/CMakeFiles/dataset.dir/build.make:62: recipe for target 'lsd_slam/lsd_slam_core/CMakeFiles/dataset.dir/src/main_on_images.cpp.o' failed
make[2]: *** [lsd_slam/lsd_slam_core/CMakeFiles/dataset.dir/src/main_on_images.cpp.o] Error 1
CMakeFiles/Makefile2:2263: recipe for target 'lsd_slam/lsd_slam_core/CMakeFiles/dataset.dir/all' failed
make[1]: *** [lsd_slam/lsd_slam_core/CMakeFiles/dataset.dir/all] Error 2
Makefile:138: recipe for target 'all' failed
make: *** [all] Error 2
Invoking "make -j1 -l1" failed

I can't find the files requested.
Any ideas whats going on?

Thanks in advance.

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.