tum-vision / dvo Goto Github PK
View Code? Open in Web Editor NEWDense Visual Odometry
Home Page: https://vision.in.tum.de/data/software/dvo
Dense Visual Odometry
Home Page: https://vision.in.tum.de/data/software/dvo
Hi Christian
I run the dvo on dataset "rgbd_dataset_freiburg2_desk_with_person". The registration result of successive frames are great, very little residual last.
Then I compare the motion estimation result (transformation) with the ground truth, to my surprice, they do not coincide with each other, even not qualitatively.
I just run the DenseObject::match() functions, and get the motion matrix G from the parameter transformation.matrix()
I do not know whether I use the lib in a wrong way, but the result of registration tells me it should be right. Is there still anything to do with the transformation object? What unit does it use? meter or milimeter?
I am looking forward to your reply sincerely.
Best Regards,
Yi
Hey,
Does dvo support indigo and hydro currently? From the website, it seems that it only supports electric and fuerte.
Thanks a lot!
I have many problems.I am a newer.
I take the usage as https://github.com/tum-vision/dvo told
1.when run_dense_tracking is selected,rosrun dvo_ros camera_tracker go wrong.segment fault.
gdb -ex run --args ./bin/camera_tracker
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xa9768b40 (LWP 13993)]
0xb76a2208 in dvo::core::SurfacePyramid::convertRawDepthImageSse(cv::Mat const&, cv::Mat&, float) ()
from /home/lynn/fuerte_workspace/sandbox/dvo_slam/dvo_core/lib/libdvo_core.so
(gdb)
2.I cannot changed the reference frame to /world,because i cannot find the /world,
3.I still donot know how to to run dvo_slam on datasets.
I cannot rosrun rgbd_benchmark_tool associate.py rgb.txt depth.txt > assoc.txt.
because i donot have rgbd_benchmark_tool .
so i run python associate.py rgb.txt depth.txt > assoc.txt.,get the assoc.txt file
roslaunch dvo_benchmark benchmark.launch dataset:=/path/to/dataset keep_alive:=true
it get wrong as follows:
benchmark: /usr/include/eigen3/Eigen/src/Core/DenseStorage.h:69: Eigen::internal::plain_array::plain_array() [with T = double, int Size = 16, int MatrixOrArrayOptions = 0]: Assertion `(reinterpret_cast(array) & 0xf) == 0 && "this assertion is explained here: " "http://eigen.tuxfamily.org/dox-devel/TopicUnalignedArrayAssert.html" " **** READ THIS WEB PAGE !!! ***_"' failed.
[benchmark-1] process has died [pid 12411, exit code -6, cmd /home/lynn/fuerte_workspace/sandbox/dvo_slam/dvo_benchmark/bin/benchmark __name:=benchmark _log:=/home/lynn/.ros/log/2091290c-6ec9-11e4-82d1-c0cb386b60af/benchmark-1.log].
log file: /home/lynn/.ros/log/2091290c-6ec9-11e4-82d1-c0cb386b60af/benchmark-1.log
all processes on machine have died, roslaunch will exit
shutting down processing monitor...
... shutting down processing monitor complete
done
I cannot come up with any idea.
Hi, I am doing some research about dense VO. And I want to download a proper data set from TUM RGB-D SLAM data set.
I found an interesting image in Mr Christian's thesis (4.3.2,page 33) which contains a hand moving around a desk. I want to know which data set does the image belong to. Please help me, thx in advance.
Yi
Hello,
I installed DVO on my windows System and it works fine with the given Testdata (Freiburg1).
When I tried to implement my own Dataset of pictures with resolution 848x480, dense_tracking throws an error in line 350 (ref_dx =ref.intensity_dx * intrinsics.fx();) "Critical error detected c0000374".
Maybe someone knows, what to do.
Thank you for yout help
HI there,
I'm using ros Groovy, and when I tried to install the dvo libraries it doesn't find the pcl libraries.
this is what the log file shows:
In file included from /opt/ros/groovy/stacks/dvo_core/src/visualization/pcl_camera_trajetory_visualizer.cpp:21:0:
/opt/ros/groovy/stacks/dvo_core/include/dvo/visualization/pcl_camera_trajectory_visualizer.h:28:46: fatal error: pcl/visualization/pcl_visualizer.h: No such file or directory
compilation terminated.
In file included from /opt/ros/groovy/stacks/dvo_core/src/visualization/async_point_cloud_builder.cpp:21:0:
/opt/ros/groovy/stacks/dvo_core/include/dvo/visualization/async_point_cloud_builder.h:29:29: fatal error: pcl/point_cloud.h: No such file or directory
compilation terminated.
In file included from /opt/ros/groovy/stacks/dvo_core/include/dvo/visualization/point_cloud_aggregator.h:24:0,
from /opt/ros/groovy/stacks/dvo_core/src/visualization/point_cloud_aggregator.cpp:21:
/opt/ros/groovy/stacks/dvo_core/include/dvo/visualization/async_point_cloud_builder.h:29:29: fatal error: pcl/point_cloud.h: No such file or directory
compilation terminated.
I tried to install the PCL libraries in many diferent ways ( rosmake pcl, sudo apt-get instrall ros-groovy-pcl..., install the pcl libraries to the pc), but everytime it ends the same.
Any help would be realy appreciate,
Greatings
Hello,
Looks like it doesn't publish ros odometry directly. Is it inside /dvo_vis/update? What's the best way to extract that? Thanks!
I was reading your code, and noticed that the Bilinear interpolation is not doing what we usually called Bilinear interpolation, (but something that look like a usual mistake).
dvo/dvo_core/src/core/interpolation.cpp
Lines 36 to 53 in bd21a70
https://en.wikipedia.org/wiki/Bilinear_interpolation (see on unit square)
In Bilinear interpolation (like multi-linear interpolation) interpolated values for the vertices are exact.
There should be some crossed term xweight*yweight ...
Hello,
I use groovy, and with rosmake dvo_ros, I get the following errors. Any idea? Thanks!
[ 33%] Building CXX object CMakeFiles/dvo_ros.dir/src/camera_dense_tracking.cpp.o
In file included from /home/xylo/workspace/dvo/dvo_core/include/dvo/core/surface_pyramid.h:24:0,
from /home/xylo/workspace/dvo/dvo_ros/src/camera_dense_tracking.cpp:27:
/usr/lib/gcc/i686-linux-gnu/4.6/include/mmintrin.h:32:3: error: #error "MMX instruction set not enabled"
In file included from /home/xylo/workspace/dvo/dvo_core/include/dvo/core/surface_pyramid.h:25:0,
from /home/xylo/workspace/dvo/dvo_ros/src/camera_dense_tracking.cpp:27:
/usr/lib/gcc/i686-linux-gnu/4.6/include/emmintrin.h:32:3: error: #error "SSE2 instruction set not enabled"
In file included from /home/xylo/workspace/dvo/dvo_ros/src/camera_dense_tracking.cpp:33:0:
/home/xylo/workspace/dvo/dvo_ros/include/dvo_ros/util/util.h: In function ‘void dvo_ros::util::tryGetTransform(Eigen::Affine3d&, tf::TransformListener&, std::string, std::string, double)’:
/home/xylo/workspace/dvo/dvo_ros/include/dvo_ros/util/util.h:57:3: error: ‘TransformTFToEigen’ is not a member of ‘tf’
/home/xylo/workspace/dvo/dvo_ros/src/camera_dense_tracking.cpp: In member function ‘void dvo_ros::CameraDenseTracker::handlePose(const PoseWithCovarianceStampedConstPtr&)’:
/home/xylo/workspace/dvo/dvo_ros/src/camera_dense_tracking.cpp:176:3: error: ‘TransformTFToEigen’ is not a member of ‘tf’
/home/xylo/workspace/dvo/dvo_ros/src/camera_dense_tracking.cpp: In member function ‘void dvo_ros::CameraDenseTracker::publishTransform(const Header&, const Affine3d&, std::string)’:
/home/xylo/workspace/dvo/dvo_ros/src/camera_dense_tracking.cpp:317:3: error: ‘TransformEigenToTF’ is not a member of ‘tf’
/home/xylo/workspace/dvo/dvo_ros/src/camera_dense_tracking.cpp: In member function ‘void dvo_ros::CameraDenseTracker::publishPose(const Header&, const Affine3d&, std::string)’:
/home/xylo/workspace/dvo/dvo_ros/src/camera_dense_tracking.cpp:336:3: error: ‘TransformEigenToTF’ is not a member of ‘tf’
/home/xylo/workspace/dvo/dvo_core/include/dvo/core/datatypes.h: At global scope:
/home/xylo/workspace/dvo/dvo_core/include/dvo/core/datatypes.h:32:28: warning: ‘dvo::core::Invalid’ defined but not used [-Wunused-variable]
/home/xylo/workspace/dvo/dvo_core/include/dvo/core/datatypes.h:35:24: warning: ‘dvo::core::InvalidDepth’ defined but not used [-Wunused-variable]
make[3]: *** [CMakeFiles/dvo_ros.dir/src/camera_dense_tracking.cpp.o] Error 1
make[3]: Leaving directory `/home/xylo/workspace/dvo/dvo_ros/build'
make[2]: *** [CMakeFiles/dvo_ros.dir/all] Error 2
Hui
Can anyone explain the following function ? What is the function based on?
float computeCompleteDataLogLikelihood(const ResidualIterator& first_residual, const ResidualIterator& last_residual, const WeightIterator& first_weight, const Eigen::Vector2f& mean, const Eigen::Matrix2f& precision)
{
size_t n = (last_residual - first_residual);
size_t c = 1;
double error_sum = 0.0;
double error_acc = 1.0;
for(ResidualIterator err_it = first_residual; err_it != last_residual; ++err_it, ++c)
{
error_acc *= (1.0 + 0.2 * ((*err_it).transpose() * precision * (*err_it))(0,0));
if((c % 50) == 0)
{
error_sum += std::log(error_acc);
error_acc = 1.0;
}
}
return 0.5 * n * std::log(precision.determinant()) - 0.5 * (5.0 + 2.0) * error_sum;
}
Hello!.
I am installing this package, but have problems in his build.
I do:
roscore
roscd
git clone -b fuerte git://github.com/tum-vision/dvo.git
rosmake dvo_core dvo_ros dvo_benchmark
But i get this:
{-------------------------------------------------------------------------------
mkdir -p bin
cd build && cmake -Wdev -DCMAKE_TOOLCHAIN_FILE=rospack find rosbuild
/rostoolchain.cmake ..
[rosbuild] Building package dvo_ros
Failed to invoke /opt/ros/fuerte/bin/rospack deps-manifests dvo_ros
[rospack] Error: package/stack dvo_ros depends on non-existent package interactive_markers
CMake Error at /opt/ros/fuerte/share/ros/core/rosbuild/public.cmake:129 (message):
Failed to invoke rospack to get compile flags for package 'dvo_ros'. Look
above for errors from rospack itself. Aborting. Please fix the broken
dependency!
Call Stack (most recent call first):
/opt/ros/fuerte/share/ros/core/rosbuild/public.cmake:203 (rosbuild_invoke_rospack)
CMakeLists.txt:12 (rosbuild_init)
-- Configuring incomplete, errors occurred!
-------------------------------------------------------------------------------}
How to install the package interactive_markers?
Regards.
Hi,
Recently, I began to study something about dense image registration. And I am new to C++.
I just want to use your codes to do some static dense image registration work. Thus, I would like to ask whether it is enough to download the dvo_core part of the this lab?
Thanks
Hi Christian,
I am trying to run dvo_benchmar. I successfully compiling all the things in this repository. I launch the dvo_benchmark by using the command:
roslaunch dvo_benchmark benchmark.launch dataset:=/home/zhouyi/ros/dvo/dataset/rgbd_dataset_freiburg3_cabinet
I get a weird error:
... logging to /home/zhouyi/.ros/log/60c4209e-bd18-11e5-ad13-9cd21ef97dcf/roslaunch-zhouyi-ThinkPad-Edge-E431-4454.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.
started roslaunch server http://zhouyi-ThinkPad-Edge-E431:34129/
PARAMETERS
NODES
/
benchmark (dvo_benchmark/benchmark)
auto-starting new master
process[master]: started with pid [4470]
ROS_MASTER_URI=http://localhost:11311
setting /run_id to 60c4209e-bd18-11e5-ad13-9cd21ef97dcf
process[rosout-1]: started with pid [4483]
started core service [/rosout]
process[benchmark-2]: started with pid [4495]
ros.dvo_benchmark.config: { config: "First Level = 3, Last Level = 1, Max Iterations per Level = 100, Precision = 5e-07, Lambda = 0, Mu = 0, Use Initial Estimate = false, Use Weighting = true, Scale Estimator = TDistribution, Scale Estimator Param = 5, Influence Function = TDistribution, Influence Function Param = 5" }
benchmark: /usr/local/include/boost/unordered/detail/table.hpp:328: std::size_t boost::unordered::detail::table::min_buckets_for_size(std::size_t) const [with Types = boost::unordered::detail::map<std::allocator<std::pair<const std::basic_string, pcl::visualization::CloudActor> >, std::basic_string, pcl::visualization::CloudActor, boost::hashstd::basic_string, std::equal_tostd::basic_string >, std::size_t = long unsigned int]: Assertion `mlf_ >= minimum_max_load_factor' failed.
[benchmark-2] process has died [pid 4495, exit code -6, cmd /home/zhouyi/ros/dvo/dvo_benchmark/bin/benchmark __name:=benchmark __log:=/home/zhouyi/.ros/log/60c4209e-bd18-11e5-ad13-9cd21ef97dcf/benchmark-2.log].
Could you give me some suggestions to solve this problem?
Many thanks
I met the problem you mentioned in the file——readme.md just as followed:
If everything works, the stdout of the camera_tracker node should show [ WARN] [1355131430.132265592]: RGB image size has changed, resetting tracker!
and the camera pose is published on the /rgbd/pose
topic. You can restart the camera motion estimation by disabling and enabling the run_dense_tracking option.
So I want to know how to restart the camera motion estimation.Please into describe it with more details.Thanks a lot.
Hello,
I installed DVO on my windows System and it works fine with the given Testdata (Freiburg1).
When I tried to implement my own Dataset of pictures with resolution 848x480, dense_tracking throws an error in line 350 (ref_dx =ref.intensity_dx * intrinsics.fx();) "Critical error detected c0000374".
Maybe someone knows, what to do.
Thank you for yout help
Hello!.
I am installing this package 'dvo_fuerte' in groovy, but have problems in his build.
But it had a error.
$rosmake dvo_ros
........
Linking CXX executable ../bin/camera_tracker
/groovy_workspace/sandbox/dvo_core/lib/libdvo_core.so: undefined reference to pcl::visualization::PCLVisualizer::registerKeyboardCallback(boost::function<void (pcl::visualization::KeyboardEvent const&)>)' /groovy_workspace/sandbox/dvo_core/lib/libdvo_core.so: undefined reference to
pcl::visualization::allocVtkUnstructuredGrid(vtkSmartPointer&)'
/groovy_workspace/sandbox/dvo_core/lib/libdvo_core.so: undefined reference to `vtkSmartPointerBase::vtkSmartPointerBase(vtkObjectBase*, vtkSmartPointerBase::NoReference const&)'
I hope some can slove the problem.
Thanks in advance!
Hi,
I just built up a static library of dvo in codeblocks. When I compile it, error occurred like below,
/usr/lib/gcc/x86_64-linux-gnu/4.6/include/pmmintrin.h|32|错误: #error "SSE3 instruction set not enabled"|
Does it mean that there is something wrong with my CPU??
How can i get it to work? Any thoughts, thx in advance.
Hi,
I am trying to get the odometry running using my kinect. Following is my launch file:
https://dl.dropboxusercontent.com/u/8948006/dvo_odo.launch
Openni is already sending depth registered images.
I also modified CameraBase constructor to update topic names:
rgb_image_subscriber_(nh, "camera/rgb/image_rect_mono", 1),
depth_image_subscriber_(nh, "/camera/depth_registered/hw_registered/image_rect_raw", 1),
rgb_camera_info_subscriber_(nh, "camera/rgb/camera_info", 1),
depth_camera_info_subscriber_(nh, "camera/depth_registered/camera_info", 1),
I am able to see "camera/rgb/image_rect_mono" and "/camera/depth_registered/hw_registered/image_rect_raw" in rviz. I can also view pointcloud published "/cloud" and pose ("/rgbd/pose"). However the pose does not change when I move the kinect. It constantly has a short high frequency vibration.
Output of running the launch file:
started roslaunch server http://192.168.1.13:56013/
SUMMARY
PARAMETERS
NODES
/
camera_tracker (dvo_ros/camera_tracker)
ROS_MASTER_URI=http://localhost:11311/
core service [/rosout] found
process[camera_tracker-1]: started with pid [20215]
CameraDenseTracker::ctor(...)
config.run_dense_tracking:1 config.use_dense_tracking_estimate:1
reconfigured tracker, config ( First Level = 3, Last Level = 1, Max Iterations per Level = 50, Precision = 0.0001, Mu = 0, Use Initial Estimate = true, Use Weighting = true, Scale Estimator = TDistribution, Scale Estimator Param = 5, Influence Function = TDistribution, Influence Function Param = 5, Intensity Derivative Threshold = 0, Depth Derivative Threshold = 0 )
using identity!
transformation: base_link -> asus
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
started camera_tracker...
RGB image size has changed, resetting tracker!
x:0.00 y:0.00 z:0.00 roll:0.00 pitch:0.00 yaw:-0.00
match: 0.00801919
x:0.00 y:-0.00 z:-0.00 roll:0.00 pitch:-0.00 yaw:-0.00
match: 0.00740023
x:0.00 y:-0.00 z:-0.00 roll:0.00 pitch:-0.00 yaw:-0.00
match: 0.00765328
match: 0.00754171
x:0.00 y:-0.01 z:-0.00 roll:0.00 pitch:-0.00 yaw:-0.00
match: 0.0076491
callback: 0.00965808
x:0.00 y:0.01 z:0.00 roll:0.00 pitch:0.00 yaw:-0.00
match: 0.00582242
match: 0.00827256
x:0.00 y:0.01 z:0.00 roll:0.00 pitch:0.00 yaw:-0.00
match: 0.00754653
x:0.00 y:0.01 z:0.00 roll:0.00 pitch:0.00 yaw:-0.00
match: 0.00619464
match: 0.0062666
callback: 0.00881737
x:0.00 y:0.01 z:0.00 roll:0.00 pitch:0.00 yaw:-0.00
match: 0.00645015
x:0.00 y:0.01 z:0.00 roll:0.00 pitch:0.00 yaw:-0.00
match: 0.00671455
match: 0.00644076
x:0.00 y:0.02 z:0.00 roll:0.00 pitch:0.00 yaw:-0.00
match: 0.00683598
x:0.00 y:-0.02 z:-0.00 roll:0.00 pitch:-0.00 yaw:-0.00
match: 0.00648071
callback: 0.00843992
match: 0.00684254
x:0.00 y:-0.02 z:-0.00 roll:0.00 pitch:-0.00 yaw:-0.00
match: 0.00710994
x:0.00 y:0.02 z:0.00 roll:0.00 pitch:0.00 yaw:-0.00
match: 0.00689754
match: 0.00664394
x:0.00 y:0.02 z:0.00 roll:0.00 pitch:0.00 yaw:-0.00
match: 0.00658692
callback: 0.00886757
...................
I printed out x,y,z to view the values, but no change. Any advice is appreciated.
Cheers
Aswin
In case some of the maintainers here are interested, I've updated DVO core to use the current templated Sophus, and removed ROS dependency in a fork.
It only compiles dvo_core as a shared library, and does not contain all the rest of the code.
Hi,
I followed the procedures on instruction, but the following errors occurred:
In file included from /home/lili/fuerte_workspace/sandbox/dvo_slam/dvo_core/include/dvo/core/surface_pyramid.h:24:0,
from /home/lili/fuerte_workspace/sandbox/dvo_slam/dvo_ros/src/camera_dense_tracking.cpp:27:
/usr/lib/gcc/i686-linux-gnu/4.6/include/mmintrin.h:32:3: error: #error "MMX instruction set not enabled"
In file included from /home/lili/fuerte_workspace/sandbox/dvo_slam/dvo_core/include/dvo/core/surface_pyramid.h:25:0,
from /home/lili/fuerte_workspace/sandbox/dvo_slam/dvo_ros/src/camera_dense_tracking.cpp:27:
/usr/lib/gcc/i686-linux-gnu/4.6/include/emmintrin.h:32:3: error: #error "SSE2 instruction set not enabled"
/home/lili/fuerte_workspace/sandbox/dvo_slam/dvo_core/include/dvo/core/datatypes.h:33:28: warning: ‘dvo::core::Invalid’ defined but not used [-Wunused-variable]
/home/lili/fuerte_workspace/sandbox/dvo_slam/dvo_core/include/dvo/core/datatypes.h:36:24: warning: ‘dvo::core::InvalidDepth’ defined but not used [-Wunused-variable]
make[3]: *** [CMakeFiles/dvo_ros.dir/src/camera_dense_tracking.o] Error 1
make[3]: Leaving directory /home/lili/fuerte_workspace/sandbox/dvo_slam/dvo_ros/build' make[2]: *** [CMakeFiles/dvo_ros.dir/all] Error 2 make[2]: Leaving directory
/home/lili/fuerte_workspace/sandbox/dvo_slam/dvo_ros/build'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/lili/fuerte_workspace/sandbox/dvo_slam/dvo_ros/build'
-------------------------------------------------------------------------------}
[ rosmake ] Output from build of package dvo_ros written to:
[ rosmake ] /home/lili/.ros/rosmake/rosmake_output-20140508-215630/dvo_ros/build_output.log
[rosmake-0] Finished <<< dvo_ros [FAIL] [ 6.04 seconds ]
[ rosmake ] Halting due to failure in package dvo_ros.
[ rosmake ] Waiting for other threads to complete.
[ rosmake ] Results:
[ rosmake ] Built 41 packages with 1 failures.
[ rosmake ] Summary output to directory
[ rosmake ] /home/lili/.ros/rosmake/rosmake_output-20140508-215630
Could anyone provide some suggestions?
Many thanks in advance! :)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.