Giter VIP home page Giter VIP logo

ethzasl_icp_mapping's Introduction

NOTE: The current branch with the most recent changes is reintegrate/master_into_indigo_devel. We are slowly reducing the public support for this stack. It is mainly there for us to try quick demos and as an example of libpointmatcher code.

This ROS stack provides a real-time 2D and 3D ICP-based SLAM system that can fit a large variety of robots and application scenarios, without any code change or recompilation.

Information about this stack, including installation and compilation, is available on the ROS wiki at http://www.ros.org/wiki/ethzasl_icp_mapping.

ethzasl_icp_mapping's People

Contributors

cedricpradalier avatar chipironcin avatar hannessommer avatar kruesip avatar lorenwel avatar mgb45 avatar nicolapiccinelli avatar peci1 avatar pomerlef avatar rdube avatar remod avatar samlcharreyron avatar simonpierredeschenes avatar stephanemagnenat 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  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  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 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

ethzasl_icp_mapping's Issues

Eigen includes

Incorrect includes of Eigen inside ethzasl_icp_mapping/ethzasl_extrinsic_calibration/src/optimize.cpp.

Support Clang

When using clang I get the following error:

CMake Error at libpointmatcher_ros/ethzasl_point_cloud_vtk_tools/CMakeLists.txt:42 (message):
You need partial C++0x support for N2351, N2672, N1984. Currently this
build toolchain supports only GCC >= 4.4. If your compiler supports these
specifications, please send us a patch.

Please add clang to the list of supported compilers

Using ICP inspectors in ethzasl_icp_mapper package

I have been trying to use the Inspectors. But when I enable the PerformanceInspector by adding the following lines to the icp.yaml.

inspector:
PerformanceInspector:
baseFileName: matcher-output

I get the error. terminate called after throwing an instance of 'PointMatcherSupport::Parametrizable::InvalidParameter'
what(): Parameter baseFileName for module PerformanceInspector was set but is not used

And when I enable the VTKInspector I am not able to find the files in which the output is written.
I have asked the same question here
http://answers.ros.org/question/71659/using-icp-inspectors-in-ethzasl_icp_mapper-package/

Running error of icp_mapper

Please give me some help. I catkin_make the project successfully, but when i run the mapper node with rosbag, it shows**:[ERROR] [1547624044.906055322]: I found no good points in the cloud.**
my data is in laser scan format not pointcloud, so I modify the PointMatcher_ros::rosMsgToPointMatcherCloud function in libpointmatcher to confirm whether the scan data is transformed properly.
As a result, it shows: libpointmatcher_ros: Couldn't transform point: Lookup would require extrapolation into the past. Requested time 1499154210.786858415 but the earliest data is at time 1547624037.313028756, when looking up transform from frame [laser_link] to frame [map].
I don't know how to solve the problem because this rosbag is running well in other slam project.

Compiling for ROS Kinetic

I'm not sure what branches are meant to do what right now, whether feature/catkin_version or indigo_devel is the current recommended version, so haven't sent a pull request, but the branch here compiles for ROS K.

I based this on indigo_devel, and simply added include_directories(include ${Eigen_INCLUDE_DIRS} ${catkin_INCLUDE_DIRS}) to the ethzasl_gridmap_2d/CMakeLists.txt

Compiling requires:

mkdir -p catkin_ws/ws1/src
cd catkin/ws1/src
catkin_init_workspace
git clone https://github.com/ethz-asl/libnabo.git
git clone https://github.com/ethz-asl/libpointmatcher.git
cd ..
catkin_make_isolated
source devel_isolated/setup.bash

cd ..
mkdir -p ws2/src
cd ws2/src
catkin_init_workspace
https://github.com/mgb45/ethzasl_icp_mapping.git
git checkout kinetic
cd ..
catkin_make

Error while rosmake ethzasl_icp_mapper

Hi,

I downloaded the ethzasl_icp_mapping from ROS,
git clone https://github.com/ethz-asl/ethzasl_icp_mapping.git

rosdep install ethzasl_icp_mapping, it showed an error that map_msgs was missing. I get the package and then rosdep did not show any errors.

rosmake ethzasl_icp_mapper is giving the errors below.

{-------------------------------------------------------------------------------
mkdir -p build
cd build && cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_CXX_FLAGS="-fPIC" -DCMAKE_INSTALL_PREFIX=.. -DPYTHON_CUSTOM_TARGET=src ../upstream_src
CMake Error: The source directory "/home/sai/fuerte_workspace/ethzasl_icp_mapping/libnabo/upstream_src" does not appear to contain CMakeLists.txt.
Specify --help for usage, or press the help button on the CMake GUI.
-------------------------------------------------------------------------------}

Also the folder /home/sai/fuerte_workspace/ethzasl_icp_mapping/libnabo/upstream_src is empty.

Please let me know what can be done.

Thanks ,
Sai

No module error python node

When I try to run the node in the ethzasl_icp_mapper/nodes/ , it shows me an error stating no module found
at import modular_cloud_matcher.srv and at import point_cloud.

Missing join or detach on background map thread

mapBuildingThread = boost::thread(boost::move(boost::ref(mapBuildingTask)));

If this thread is not detached or joined (I added mapBuildingThread.detach() after creation), the mapper will die with a thread_resource_error exception after reaching the maximum number of threads in /proc/sys/kernel/threads-max. This corresponds to nearly 70'000 iterations on my system, but it crashes nonetheless.

With the detach suggestion above, the problem disappears.

The indigo_devel branch's CMakeLists.txt include a DEPENDS eigen. Is that right this way?

See https://github.com/ethz-asl/ethzasl_icp_mapping/blob/indigo_devel/ethzasl_gridmap_2d/CMakeLists.txt#L14. I think this should at least be a capital Eigen. See http://docs.ros.org/jade/api/catkin/html/dev_guide/generated_cmake_api.html#catkin_package.

Here https://github.com/ethz-asl/ethzasl_icp_mapping/blob/indigo_devel/ethzasl_extrinsic_calibration/CMakeLists.txt#L6 it even comes before the find_package(Eigen REQUIRED), which seems to be explicitly wrong according to the link before.

This isn't urgent. Just to not forget.

Restricting POSE to 2D

Hi

I tried to use the icp_mapping, it works when there are a lot of features in a small room. It seems however to get negatively affected by rotations.

When i add yaw sometimes the mapper thinks the kinect is moving up the z axis.

Since i know my robot is moving in a 2D plane is to restrict the icp pose increments to x,y and yaw? I think it should greatly improve performance by limiting degrees of freedom.

There is a maxRotationNorm (default: 1, min: 0, max: inf) parameter but i believe this applies to all rotations

Real time processing

Thanks for the excellent library.
I am getting a lot of warnings about real time perfomance using the vlp16 launch files and filters. Could you please point me in the right direction for which filters to tune with the best performance increase and least accuracy lost?

compilation error for indigo_devel branch

Hi
I am facing compilation errors.
Following is the output of the catkin_make

nitin@nitinHP:~/catkin_ethzasl_icp$ catkin_make
Base path: /home/nitin/catkin_ethzasl_icp
Source space: /home/nitin/catkin_ethzasl_icp/src
Build space: /home/nitin/catkin_ethzasl_icp/build
Devel space: /home/nitin/catkin_ethzasl_icp/devel
Install space: /home/nitin/catkin_ethzasl_icp/install

Running command: "cmake /home/nitin/catkin_ethzasl_icp/src -DCATKIN_DEVEL_PREFIX=/home/nitin/catkin_ethzasl_icp/devel -DCMAKE_INSTALL_PREFIX=/home/nitin/catkin_ethzasl_icp/install -G Unix Makefiles" in "/home/nitin/catkin_ethzasl_icp/build"

-- The C compiler identification is GNU 4.8.2
-- The CXX compiler identification is GNU 4.8.2
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Using CATKIN_DEVEL_PREFIX: /home/nitin/catkin_ethzasl_icp/devel
-- Using CMAKE_PREFIX_PATH: /opt/ros/indigo
-- This workspace overlays: /opt/ros/indigo
-- Found PythonInterp: /usr/bin/python (found version "2.7.6")
-- Using PYTHON_EXECUTABLE: /usr/bin/python
-- Using Debian Python package layout
-- Using empy: /usr/bin/empy
-- Using CATKIN_ENABLE_TESTING: ON
-- Call enable_testing()
-- Using CATKIN_TEST_RESULTS_DIR: /home/nitin/catkin_ethzasl_icp/build/test_results
-- Looking for include file pthread.h
-- Looking for include file pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Found gtest sources under '/usr/src/gtest': gtests will be built
-- Using Python nosetests: /usr/bin/nosetests-2.7
-- catkin 0.6.14
-- BUILD_SHARED_LIBS is on
WARNING: Package "ompl" does not follow the version conventions. It should not contain leading zeros (unless the number is 0).
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ~~ traversing 7 packages in topological order:
-- ~~ - ethzasl_icp_mapping (metapackage)
-- ~~ - ethzasl_gridmap_2d
-- ~~ - ethzasl_extrinsic_calibration
-- ~~ - libpointmatcher_ros
-- ~~ - ethzasl_icp_mapper
-- ~~ - ethzasl_icp_mapper_experiments
-- ~~ - ethzasl_point_cloud_vtk_tools
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- +++ processing catkin metapackage: 'ethzasl_icp_mapping'
-- ==> add_subdirectory(ethzasl_icp_mapping/ethzasl_icp_mapping)
-- +++ processing catkin package: 'ethzasl_gridmap_2d'
-- ==> add_subdirectory(ethzasl_icp_mapping/ethzasl_gridmap_2d)
-- Using these message generators: gencpp;genlisp;genpy
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.26")
-- checking for module 'eigen3'
-- found eigen3, version 3.2.0
-- Found Eigen: /usr/include/eigen3
-- Eigen found (include: /usr/include/eigen3)
-- +++ processing catkin package: 'ethzasl_extrinsic_calibration'
-- ==> add_subdirectory(ethzasl_icp_mapping/ethzasl_extrinsic_calibration)
-- Using these message generators: gencpp;genlisp;genpy
-- Eigen found (include: /usr/include/eigen3)
-- +++ processing catkin package: 'libpointmatcher_ros'
-- ==> add_subdirectory(ethzasl_icp_mapping/libpointmatcher_ros)
-- Using these message generators: gencpp;genlisp;genpy
-- +++ processing catkin package: 'ethzasl_icp_mapper'
-- ==> add_subdirectory(ethzasl_icp_mapping/ethzasl_icp_mapper)
-- Using these message generators: gencpp;genlisp;genpy
-- ethzasl_icp_mapper: 0 messages, 6 services
-- +++ processing catkin package: 'ethzasl_icp_mapper_experiments'
-- ==> add_subdirectory(ethzasl_icp_mapping/ethzasl_icp_mapper_experiments)
-- Using these message generators: gencpp;genlisp;genpy
-- +++ processing catkin package: 'ethzasl_point_cloud_vtk_tools'
-- ==> add_subdirectory(ethzasl_icp_mapping/ethzasl_point_cloud_vtk_tools)
-- Using these message generators: gencpp;genlisp;genpy
-- Configuring done
-- Generating done
-- Build files have been written to: /home/nitin/catkin_ethzasl_icp/build

Running command: "make -j4 -l4" in "/home/nitin/catkin_ethzasl_icp/build"

Scanning dependencies of target ethzasl_gridmap_2d
Scanning dependencies of target optimize
Scanning dependencies of target tf_logger
Scanning dependencies of target pointmatcher_ros
[ 3%] Building CXX object ethzasl_icp_mapping/ethzasl_extrinsic_calibration/CMakeFiles/tf_logger.dir/src/tf_logger.cpp.o
[ 6%] [ 9%] Building CXX object ethzasl_icp_mapping/ethzasl_extrinsic_calibration/CMakeFiles/optimize.dir/src/optimize.cpp.o
Building CXX object ethzasl_icp_mapping/ethzasl_gridmap_2d/CMakeFiles/ethzasl_gridmap_2d.dir/src/grid-map.cpp.o
[ 12%] Building CXX object ethzasl_icp_mapping/libpointmatcher_ros/CMakeFiles/pointmatcher_ros.dir/src/point_cloud.cpp.o
Linking CXX executable /home/nitin/catkin_ethzasl_icp/devel/lib/ethzasl_extrinsic_calibration/optimize
[ 12%] Built target optimize
make[2]: *** No rule to make target /tmp/buildd/ros-indigo-libpointmatcher-1.2.3-0trusty-20150517-2017/obj-x86_64-linux-gnu/libpointmatcher.so', needed by/home/nitin/catkin_ethzasl_icp/devel/lib/libpointmatcher_ros.so'. Stop.
[ 15%] make[2]: *** Waiting for unfinished jobs....
Building CXX object ethzasl_icp_mapping/libpointmatcher_ros/CMakeFiles/pointmatcher_ros.dir/src/transform.cpp.o
Linking CXX shared library /home/nitin/catkin_ethzasl_icp/devel/lib/libethzasl_gridmap_2d.so
[ 15%] Built target ethzasl_gridmap_2d
Scanning dependencies of target _ethzasl_icp_mapper_generate_messages_check_deps_LoadMap
[ 15%] Built target _ethzasl_icp_mapper_generate_messages_check_deps_LoadMap
Scanning dependencies of target std_msgs_generate_messages_cpp
[ 15%] Built target std_msgs_generate_messages_cpp
Scanning dependencies of target nav_msgs_generate_messages_cpp
[ 15%] Built target nav_msgs_generate_messages_cpp
Scanning dependencies of target actionlib_msgs_generate_messages_cpp
[ 15%] Built target actionlib_msgs_generate_messages_cpp
Scanning dependencies of target geometry_msgs_generate_messages_cpp
[ 15%] Built target geometry_msgs_generate_messages_cpp
Scanning dependencies of target sensor_msgs_generate_messages_cpp
[ 15%] Built target sensor_msgs_generate_messages_cpp
Scanning dependencies of target _ethzasl_icp_mapper_generate_messages_check_deps_CorrectPose
[ 15%] Built target _ethzasl_icp_mapper_generate_messages_check_deps_CorrectPose
Scanning dependencies of target _ethzasl_icp_mapper_generate_messages_check_deps_GetBoundedMap
[ 15%] Built target _ethzasl_icp_mapper_generate_messages_check_deps_GetBoundedMap
Scanning dependencies of target _ethzasl_icp_mapper_generate_messages_check_deps_SetMode
[ 15%] Built target _ethzasl_icp_mapper_generate_messages_check_deps_SetMode
Scanning dependencies of target _ethzasl_icp_mapper_generate_messages_check_deps_MatchClouds
[ 15%] Built target _ethzasl_icp_mapper_generate_messages_check_deps_MatchClouds
Scanning dependencies of target _ethzasl_icp_mapper_generate_messages_check_deps_GetMode
[ 15%] Built target _ethzasl_icp_mapper_generate_messages_check_deps_GetMode
Scanning dependencies of target std_msgs_generate_messages_lisp
[ 15%] Built target std_msgs_generate_messages_lisp
Scanning dependencies of target geometry_msgs_generate_messages_lisp
[ 15%] Built target geometry_msgs_generate_messages_lisp
Scanning dependencies of target actionlib_msgs_generate_messages_lisp
[ 15%] Built target actionlib_msgs_generate_messages_lisp
Scanning dependencies of target nav_msgs_generate_messages_lisp
[ 15%] Built target nav_msgs_generate_messages_lisp
Scanning dependencies of target sensor_msgs_generate_messages_lisp
[ 15%] Built target sensor_msgs_generate_messages_lisp
Scanning dependencies of target nav_msgs_generate_messages_py
[ 15%] Built target nav_msgs_generate_messages_py
Scanning dependencies of target std_msgs_generate_messages_py
[ 15%] Built target std_msgs_generate_messages_py
Scanning dependencies of target geometry_msgs_generate_messages_py
[ 15%] Built target geometry_msgs_generate_messages_py
Scanning dependencies of target actionlib_msgs_generate_messages_py
[ 15%] Built target actionlib_msgs_generate_messages_py
Scanning dependencies of target sensor_msgs_generate_messages_py
[ 15%] Built target sensor_msgs_generate_messages_py
Scanning dependencies of target ethzasl_icp_mapper_generate_messages_cpp
[ 18%] Generating C++ code from ethzasl_icp_mapper/GetMode.srv
[ 21%] Generating C++ code from ethzasl_icp_mapper/SetMode.srv
[ 24%] Generating C++ code from ethzasl_icp_mapper/LoadMap.srv
[ 27%] Generating C++ code from ethzasl_icp_mapper/MatchClouds.srv
[ 30%] Generating C++ code from ethzasl_icp_mapper/GetBoundedMap.srv
[ 33%] Generating C++ code from ethzasl_icp_mapper/CorrectPose.srv
Linking CXX executable /home/nitin/catkin_ethzasl_icp/devel/lib/ethzasl_extrinsic_calibration/tf_logger
[ 33%] Built target ethzasl_icp_mapper_generate_messages_cpp
Scanning dependencies of target ethzasl_icp_mapper_generate_messages_lisp
[ 36%] Generating Lisp code from ethzasl_icp_mapper/GetMode.srv
[ 39%] Generating Lisp code from ethzasl_icp_mapper/SetMode.srv
[ 42%] Generating Lisp code from ethzasl_icp_mapper/LoadMap.srv
[ 45%] Generating Lisp code from ethzasl_icp_mapper/MatchClouds.srv
[ 48%] Generating Lisp code from ethzasl_icp_mapper/GetBoundedMap.srv
[ 51%] Generating Lisp code from ethzasl_icp_mapper/CorrectPose.srv
[ 51%] Built target ethzasl_icp_mapper_generate_messages_lisp
Scanning dependencies of target ethzasl_icp_mapper_generate_messages_py
[ 54%] Generating Python code from SRV ethzasl_icp_mapper/GetMode
[ 57%] Generating Python code from SRV ethzasl_icp_mapper/SetMode
[ 60%] Generating Python code from SRV ethzasl_icp_mapper/LoadMap
[ 63%] Generating Python code from SRV ethzasl_icp_mapper/MatchClouds
[ 63%] Built target tf_logger
[ 66%] [ 69%] Generating Python code from SRV ethzasl_icp_mapper/GetBoundedMap
Generating Python code from SRV ethzasl_icp_mapper/CorrectPose
[ 72%] Generating Python srv init.py for ethzasl_icp_mapper
Scanning dependencies of target ethzasl_icp_mapper_gencpp
[ 72%] Built target ethzasl_icp_mapper_gencpp
[ 72%] Built target ethzasl_icp_mapper_generate_messages_py
Scanning dependencies of target ethzasl_icp_mapper_generate_messages
[ 72%] Built target ethzasl_icp_mapper_generate_messages
make[1]: *** [ethzasl_icp_mapping/libpointmatcher_ros/CMakeFiles/pointmatcher_ros.dir/all] Error 2
make: *** [all] Error 2
Invoking "make -j4 -l4" failed

error with command git clone --recursive

Hello

I was trying to install this stack.

I followed the instructions from http://www.ros.org/wiki/extrinsic_calibration?distro=fuerte

I did a

git clone --recursive git://github.com/ethz-asl/ros-mapping.git ethzasl_mapping

The recursive command I think is to install submodules libnabo and libpointcloudmatcher.

Libnabo works.

However, the git command exits with error

mike@atlascar1b:~/workingcopies$ git clone --recursive git://github.com/ethz-asl/ros-mapping.git ethzasl_mapping
Cloning into ethzasl_mapping...
remote: Counting objects: 1371, done.
remote: Compressing objects: 100% (464/464), done.
remote: Total 1371 (delta 912), reused 1323 (delta 866)
Receiving objects: 100% (1371/1371), 228.23 KiB | 165 KiB/s, done.
Resolving deltas: 100% (912/912), done.
Submodule 'libnabo/upstream_src' (git://github.com/ethz-asl/libnabo.git) registered for path 'libnabo/upstream_src'
Submodule 'libpointmatcher/upstream_src' (git://github.com/ethz-asl/libpointmatcher.git) registered for path 'libpointmatcher/upstream_src'
Cloning into libnabo/upstream_src...
remote: Counting objects: 1074, done.
remote: Compressing objects: 100% (907/907), done.
remote: Total 1074 (delta 711), reused 305 (delta 142)
Receiving objects: 100% (1074/1074), 1.17 MiB | 317 KiB/s, done.
Resolving deltas: 100% (711/711), done.
Submodule path 'libnabo/upstream_src': checked out 'ee7d9046387a30cb7abbe5783b3ed115fa2dbb25'
Cloning into libpointmatcher/upstream_src...
remote: Counting objects: 2339, done.
remote: Compressing objects: 100% (515/515), done.
remote: Total 2339 (delta 1787), reused 2339 (delta 1787)
Receiving objects: 100% (2339/2339), 2.80 MiB | 440 KiB/s, done.
Resolving deltas: 100% (1787/1787), done.
fatal: reference is not a tree: a7fea1a48f9ed8b3b237144f5a581c44d3ac9799
Unable to checkout 'a7fea1a48f9ed8b3b237144f5a581c44d3ac9799' in submodule path 'libpointmatcher/upstream_src'

Is there a problem with the repository?

How can I solve this?

Thank you

Miguel

have to include Eigen separately

In order to use the PointMatcher<float>::DataPoints structure, I need to include Eigen separately:

#include <Eigen/Dense>
#include "pointmatcher/PointMatcher.h"

If if the first line is omitted, the compiler complains about Eigen stuff that is "not declared in this scope".

Trying to run under ubuntu16 kinetic

Update: adding the following code at 442 in mapper.cpp resolves all issues except using the identity corrupts the map going forward. not sure how to resolve.

    int cloudDimension = mapPointCloud->getEuclideanDim();					
	if (!transformation->checkParameters(Ticp)) {
		ROS_INFO_STREAM("Initial transformation is not rigid, identiy will be used");
		int cloudDimension = mapPointCloud->getEuclideanDim();	 
		Ticp = PM::TransformationParameters::Identity(
					cloudDimension+1,cloudDimension+1);
					
	}

I have been trying to get mapping to work for a sequence of point clouds under ubuntu16 kinetic.
It starts to work..."Creating an initial map" that show ok in rviz then....it just stops adding new points. it looks like mapBuildingInProgress variable is never reset. Then after a while it start generating translation errors. I tried compiling without boost but then it fails right off with a translation error...I did not list here. I am running a bag file rgbd_dataset_freiburg3_long_office_household_validation s then generate point cloud and pass it to mapping. I use ros image proc to do this last part. The transform errors at the end I am wondering if the transform is not being normalized. Example of launch file given at end.

[ INFO] [1513563048.190694245, 1341848149.617713142]: Adding new points to the map in background
[ INFO] [1513563048.190762154, 1341848149.617713142]: [TIME] Total ICP took: 0.691481 [s]
[ INFO] [1513563048.190797388, 1341848149.617713142]: [TIME] Real-time capability: 0%
[ INFO] [1513563048.215309334, 1341848149.620736564]: Processing new point cloud
[ INFO] [1513563048.215343556, 1341848149.620736564]: Input filters took 1.634e-06 [s]
[ INFO] [1513563048.215742940, 1341848149.620736564]: Applying 1 DataPoints filters - 82886 points in
[ INFO] [1513563048.217802505, 1341848149.620736564]: * RandomSamplingDataPointsFilter - 41639 points out (-49.7635%)
[ INFO] [1513563048.217815591, 1341848149.620736564]: Applied 1 filters - 41639 points out (-49.7635%)
[ INFO] [1513563048.228549735, 1341848149.621743327]: Applying 1 DataPoints filters - 83776 points in
[ INFO] [1513563048.230814973, 1341848149.621743327]: * RandomSamplingDataPointsFilter - 41565 points out (-50.3856%)
[ INFO] [1513563048.230865353, 1341848149.621743327]: Applied 1 filters - 41565 points out (-50.3856%)
[ INFO] [1513563048.231735271, 1341848149.622754062]: PointMatcher::icp - reading pre-processing took 0.00400291 [s]
[ INFO] [1513563048.321473443, 1341848149.630807623]: PointMatcher::icp - 4 iterations took 0.594932 [s]
[ INFO] [1513563048.321527407, 1341848149.630807623]: PointToPointSimilarityErrorMinimizer - warning, no sensor noise found. Using best estimate given outlier rejection instead.
[ INFO] [1513563048.321543391, 1341848149.630807623]: Overlap: 0.950006
[ INFO] [1513563048.321591392, 1341848149.630807623]: [TIME] Total ICP took: 0.612256 [s]
[ WARN] [1513563048.321642030, 1341848149.630807623]: [TIME] Real-time capability: 1003%
[ INFO] [1513563048.345921580, 1341848149.633828378]: Processing new point cloud
[ INFO] [1513563048.345971216, 1341848149.633828378]: Input filters took 1.594e-06 [s]
[ INFO] [1513563048.346404271, 1341848149.633828378]: Applying 1 DataPoints filters - 82886 points in
[ INFO] [1513563048.348521506, 1341848149.633828378]: * RandomSamplingDataPointsFilter - 41450 points out (-49.9916%)
[ INFO] [1513563048.348554072, 1341848149.633828378]: Applied 1 filters - 41450 points out (-49.9916%)
[ INFO] [1513563048.359308281, 1341848149.634838601]: Applying 1 DataPoints filters - 83261 points in
[ INFO] [1513563048.361516117, 1341848149.634838601]: * RandomSamplingDataPointsFilter - 41433 points out (-50.2372%)
[ INFO] [1513563048.361555641, 1341848149.634838601]: Applied 1 filters - 41433 points out (-50.2372%)
[ INFO] [1513563048.362282636, 1341848149.635844327]: PointMatcher::icp - reading pre-processing took 0.00376824 [s]
[ INFO] [1513563048.456318331, 1341848149.645006912]: PointMatcher::icp - 4 iterations took 0.614608 [s]
[ INFO] [1513563048.456383837, 1341848149.645006912]: PointToPointSimilarityErrorMinimizer - warning, no sensor noise found. Using best estimate given outlier rejection instead.
[ INFO] [1513563048.456414016, 1341848149.645006912]: Overlap: 0.950008
[ INFO] [1513563048.456492082, 1341848149.645006912]: [TIME] Total ICP took: 0.632074 [s]
[ WARN] [1513563048.456503426, 1341848149.645006912]: [TIME] Real-time capability: 929%
[ INFO] [1513563048.480175853, 1341848149.647018483]: Processing new point cloud
[ INFO] [1513563048.480241553, 1341848149.647018483]: Input filters took 1.423e-06 [s]
[ INFO] [1513563048.480633298, 1341848149.647018483]: Applying 1 DataPoints filters - 82886 points in
[ INFO] [1513563048.482735212, 1341848149.647018483]: * RandomSamplingDataPointsFilter - 41740 points out (-49.6417%)
[ INFO] [1513563048.482760453, 1341848149.647018483]: Applied 1 filters - 41740 points out (-49.6417%)
[ INFO] [1513563048.493700512, 1341848149.648024125]: Applying 1 DataPoints filters - 83252 points in
[ INFO] [1513563048.495801371, 1341848149.649032187]: * RandomSamplingDataPointsFilter - 41455 points out (-50.2054%)
[ INFO] [1513563048.495816299, 1341848149.649032187]: Applied 1 filters - 41455 points out (-50.2054%)
[ INFO] [1513563048.496410142, 1341848149.649032187]: PointMatcher::icp - reading pre-processing took 0.00330159 [s]
[ INFO] [1513563048.589969629, 1341848149.658084014]: PointMatcher::icp - 4 iterations took 0.620074 [s]
[ INFO] [1513563048.590036678, 1341848149.658084014]: PointToPointSimilarityErrorMinimizer - warning, no sensor noise found. Using best estimate given outlier rejection instead.
[ INFO] [1513563048.590066753, 1341848149.658084014]: Overlap: 0.950002
[ INFO] [1513563048.590230464, 1341848149.658084014]: [TIME] Total ICP took: 0.637544 [s]
[ WARN] [1513563048.590283635, 1341848149.658084014]: [TIME] Real-time capability: 1992%
[ INFO] [1513563048.614454123, 1341848149.660099698]: Processing new point cloud

it does this for a about 20 clouds...then it starts to fail with:

Error:   TF_DENORMALIZED_QUATERNION: Ignoring transform for child_frame_id "odom" from authority "unknown_publisher" because of an invalid quaternion in the transform (0.021138 0.023537 0.011691 0.993532)
         at line 257 in /tmp/binarydeb/ros-kinetic-tf2-0.5.16/src/buffer_core.cpp[ERROR] [1513563072.392325512, 1341848152.037934144]: Ignoring transform for child_frame_id "odom" from authority "unknown_publisher" because of an invalid quaternion in the transform (0.021138 0.023537 0.011691 0.993532)

Error:   TF_DENORMALIZED_QUATERNION: Ignoring transform for child_frame_id "odom" from authority "unknown_publisher" because of an invalid quaternion in the transform (0.021138 0.023537 0.011691 0.993532)
         at line 257 in /tmp/binarydeb/ros-kinetic-tf2-0.5.16/src/buffer_core.cpp
Error:   TF_DENORMALIZED_QUATERNION: Ignoring transform for child_frame_id "odom" from authority "unknown_publisher" because of an invalid quaternion in the transform (0.021138 0.023537 0.011691 0.993532)
         at line 257 in /tmp/binarydeb/ros-kinetic-tf2-0.5.16/src/buffer_core.cpp
Error:   TF_DENORMALIZED_QUATERNION: Ignoring transform for child_frame_id "odom" from authority "unknown_publisher" because of an invalid quaternion in the transform (0.021138 0.023537 0.011691 0.993532)
         at line 257 in /tmp/binarydeb/ros-kinetic-tf2-0.5.16/src/buffer_core.cpp
[ERROR] [1513563072.484770115, 1341848152.048024109]: Ignoring transform for child_frame_id "odom" from authority "unknown_publisher" because of an invalid quaternion in the transform (0.021138 0.023537 0.011691 0.993532)

<launch>
  <arg name="rviz_cfg"            default="$(find misc)/launch/config/icp_manager.rviz" />
  
    <arg name="bag_file"         default="/home/rjn/data/bags/downloads/rgbd_dataset_freiburg3_long_office_household_validation.bag" />  
       
    <arg name="bag_image_topic"  default="/camera/rgb/image_color" />
    <arg name="bag_depth_topic"  default="/camera/depth/image" />     
 


    <param name="use_sim_time" value="true" />  
    <node pkg="rosbag" type="play" name="player" output="log"  args=" --clock --delay 6 -r .1 $(arg bag_file)"/> 
 
  <node pkg="nodelet" type="nodelet" name="manager"  args="manager" output="screen"/>

  <node pkg="nodelet" type="nodelet" name="points_xyzrgb" args="load depth_image_proc/point_cloud_xyzrgb manager">
      <remap from="rgb/camera_info"             to="/camera/rgb/camera_info" />  
      <remap from="rgb/image_rect_color"        to="$(arg bag_image_topic)"/>    
      <remap from="depth_registered/image_rect" to="$(arg bag_depth_topic)"/>   
      <remap from="depth_registered/points"     to="/cloud"/>
      <param name="queue_size"    type="int"    value="50"/>     
  </node>
 
  <node name="mapper" type="mapper" pkg="ethzasl_icp_mapper" output="screen" >
		<param name="subscribe_scan"  value="false" />
		<remap from="cloud_in" to="/cloud" />		
		<param name="subscribe_cloud" value="true" />			
		
		<param name="publishMapTf" value="false" />		
		<param name="icpConfig"    value="$(find misc)/launch/config/my.yaml" />	
		<param name="map_frame"    value="map" />		
		<param name="odom_frame"   value="world" />
		
		<param name="useROSLogger" value="true" />
		<param name="minOverlap"   value="0.50" /> 
		<param name="maxOverlapToMerge" value="0.99" /> 
		<param name="minMapPointCount" value="100" /> 
		<param name="minReadingPointCount" value="100" /> 		
		<param name="localizing" value="true" /> 
		<param name="mapping" value="true" /> 	
		<param name="maxDistNewPoint" value="100.0" />
  </node>

  <node pkg="rviz" type="rviz" name="rviz" args="-d $(arg rviz_cfg)"/>

</launch>


If I remove boost from mapper.cpp I get the following error right off after initial map. The line "sendTransform-1" is a print I added before the error at line 539.
*newPointCloud = transformation->compute(*newPointCloud, Ticp);

[ INFO] [1513634413.657895768, 1341848151.177497522]: Processing new point cloud
[ INFO] [1513634413.657952216, 1341848151.177497522]: Input filters took 1.696e-06 [s]
[ INFO] [1513634413.673889009, 1341848151.177497522]: Applying 1 DataPoints filters - 2120323 points in
[ INFO] [1513634413.724600373, 1341848151.198658212]: * RandomSamplingDataPointsFilter - 1060219 points out (-49.9973%)
[ INFO] [1513634413.724639231, 1341848151.198658212]: Applied 1 filters - 1060219 points out (-49.9973%)
[ INFO] [1513634414.041275483, 1341848151.262386154]: Applying 1 DataPoints filters - 264568 points in
[ INFO] [1513634414.047509273, 1341848151.264402859]: * RandomSamplingDataPointsFilter - 131728 points out (-50.2102%)
[ INFO] [1513634414.047549204, 1341848151.264402859]: Applied 1 filters - 131728 points out (-50.2102%)
[ INFO] [1513634414.049618960, 1341848151.264402859]: PointMatcher::icp - reading pre-processing took 0.0099291 [s]
[ INFO] [1513634414.419304568, 1341848151.339013279]: PointMatcher::icp - 4 iterations took 1.71663 [s]
[ INFO] [1513634414.419374035, 1341848151.339013279]: PointToPointSimilarityErrorMinimizer - warning, no sensor noise found. Using best estimate given outlier rejection instead.
[ INFO] [1513634414.419389515, 1341848151.339013279]: Overlap: 0.950001
[ INFO] [1513634414.419462216, 1341848151.339013279]: sendTransform-1     1.00043   0.00244218  0.000782185  -0.00222898
 -0.00244356      1.00043   0.00198656  -0.00709355
-0.000777324  -0.00198877      1.00043  -0.00154626
           0            0            0            1
[ INFO] [1513634414.419501857, 1341848151.339013279]: Adding new points to the map
terminate called after throwing an instance of 'PointMatcherSupport::TransformationError'
  what():  RigidTransformation: Error, rotation matrix is not orthogonal.


support for Velodyne HDL-32e?

The launch files have support for the 64-laser Velodyne and the Velodyne puck, but no explicit option to use the HDL-32e.

libgomp: Thread creation failed: Resource temporarily unavailable

Hi,

The process died by itself(exit code 1)after I ran the Kingfisher.launch about 30mins. And the reason is caused by this thread creation failed. I tried to relaunch the launch file, the launch file continuous to work. But after about 30mins, the process died with the same reason.

I am in reintegrate/master_into_indigo_devel branch, and the launch file path is ethzasl_icp_mapping/ethzasl_icp_mapper/launch/kingfisher/kingfisher.launch.
How should I solve this problem? thx!

Mapper aborts using 2d_mapper.launch and tilt1.bag

Hi,

i am currently trying to get the icp_mapper working and had some troubles while using the provided, prerecorded bag file.

My plan was to get ethzasl_icp_mapper/launch/2D_scans/2D_mapper.launch running for some basic understanding what the package is doing.

The package was installed following: ethzasl_icp_mapping/README.md

The modules are started as described in 2D_scans/howToTest.txt with http://pr.willowgarage.com/data/slam_karto/tilt1.bag

(i start rviz without the config file, because I am using ros groovy and the file is only for fuerte)

I get the following output from the mapper when running the bag file:

process[mapper-1]: started with pid [17442]
[ INFO] [1370611429.477779104]: Found parameter: minReadingPointCount, value: 150
[ INFO] [1370611429.478617638]: Found parameter: minMapPointCount, value: 1000
[ INFO] [1370611429.479322074]: Found parameter: minOverlap, value: 0.5
[ INFO] [1370611429.479942881]: Found parameter: maxOverlapToMerge, value: 0.9
[ WARN] [1370611429.480667785]: Cannot find value for parameter: tfPublishPeriod, assigning default: 0.001
[ INFO] [1370611429.481402585]: Found parameter: odom_frame, value: /map
[ INFO] [1370611429.482021381]: Found parameter: map_frame, value: /map_icp
[ WARN] [1370611429.482614945]: Cannot find value for parameter: vtkFinalMapName, assigning default: finalMap.vtk
[ WARN] [1370611429.483213308]: Cannot find value for parameter: inputQueueSize, assigning default: 10
[ WARN] [1370611429.483805115]: Cannot find value for parameter: useConstMotionModel, assigning default: 0
[ WARN] [1370611429.484382632]: Cannot find value for parameter: localizing, assigning default: 1
[ WARN] [1370611429.485044780]: Cannot find value for parameter: mapping, assigning default: 1
[ INFO] [1370611429.491486481]: Found parameter: useROSLogger, value: 0
[ INFO] [1370611429.493688290]: Found parameter: useROSLogger, value: 0
[ INFO] [1370611429.495101166]: No map pre-filters config file given, not using these filters
[ INFO] [1370611429.497023263]: Found parameter: subscribe_scan, value: 1
[ INFO] [1370611429.498800365]: Found parameter: subscribe_cloud, value: 0
[ERROR] [1370611431.497991284, 1295388987.293531675]: I found no good points in the cloud
[ INFO] [1370611431.541267929, 1295388987.333796888]: Processing new point cloud
[mapper-1] process has died [pid 17442, exit code -11, cmd /home/robolab/ethzasl_icp_mapping/ethzasl_icp_mapper/bin/mapper scan:=/base_scan __name:=mapper __log:=/home/robolab/.ros/log/78781b66-cf75-11e2-a667-e8e0b7e2af6a/mapper-1.log].
log file: /home/robolab/.ros/log/78781b66-cf75-11e2-a667-e8e0b7e2af6a/mapper-1*.log
all processes on machine have died, roslaunch will exit
shutting down processing monitor...
... shutting down processing monitor complete
done

I understand why there is a [ERROR] print about no good points in the very first LaserScan message.
When reaching this part of the mapper.cpp with the first "good" message the module aborts as far as i can tell at

Line 342:  // Apply filters to incoming cloud, in scanner coordinates
Line 343:  inputFilters.apply(*newPointCloud);

I have also tried it with the icp_mapping packet from sudo apt-get install ros-groovy-ethzasl-icp-mapping. Same behavior.

Am I missing anything? Is this not working with ros groovy ?

Thanks in advance

ethzasl_mapping compilation error (rosdep Eigen)

Hello,

I have the ROS Electric running on Ubuntu 10.04. I follow the guide of the ethzasl_mapping. I still cannot solve the error on modular_cloud_matcher.

tsailo@tsailo-laptop:$ export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:pwd/ethzasl_mapping
tsailo@tsailo-laptop:
$ rosmake --rosdep-install ethzasl_mapping
[ rosmake ] Packages requested are: ['ethzasl_mapping']
[ rosmake ] Logging to directory/home/tsailo/.ros/rosmake/rosmake_output-20120724-093934
[ rosmake ] Expanded args ['ethzasl_mapping'] to:
['extrinsic_calibration', 'libnabo', 'modular_cloud_matcher', 'libpointmatcher', 'libpointmatcher_ros', 'kinect_exp_logger']
[ rosmake ] Generating Install Script using rosdep then executing. This may take a minute, you will be prompted for permissions. . .
Failed to find rosdep Eigen for package modular_cloud_matcher on OS:ubuntu version:lucid
[ rosmake ] rosdep install failed: Rosdep install failed

I installed Eigen, libnano and libpointmatcher.
I already google the error but there is no solution yet. Can someone help me on this?

Thank you very much for your help.

Luo

Parameter prob for module MaxPointCountDataPointsFilter was set but is not used

I am getting the same Problem with every openni launch file as issue #44 can you please tell me where can I find MaxPointCountDataPointsFilter.yaml ? I found defaultMaxPointCountDataPointsFilter.yaml in libpointmatcher source code but I dont think that is going to be useful, and even in that yaml file there's no prob parameter.
Please help!
I am using Ubuntu 15.10 with kinetic distro of ROS.
This error pops out when i run tracker.launch.

Dimension of saved map differs from the actual map

I create a map using 2D data from scans. Dimension for that map is 2D (rows-1). But when I save that map, in order to load it later, libpointmatcher saves it with 3D and when I try to load that map and keep matching, 2D scans doesnt fit 3D map loaded.

Where can we fix it? I had taken a look to IO.cpp and InspectorsImpl.cpp but I dont find a way to store the map properly or even load the map and delete a row.

To use turtlebot_gazebo to build a map with ethzasl_icp_mapping ( by ros-indigo)

Hello,
I want to use turtlebot_gazebo to build a map with ethzasl_icp_mapping in simulated environments.

  1. The launch files and operation procedures are as follows:
    `<!--
    This launch file is an example for 2D scan matching

It has been parametrized for the PR2 rosbag that can be downloaded at
wget http://pr.willowgarage.com/data/gmapping/small_loop_prf.bag
-->

<node name="dynamic_mapper" type="dynamic_mapper" pkg="ethzasl_icp_mapper" output="screen" >
	<param name="publishMapTf" value="true" /> 
	<param name="subscribe_scan" value="true" />
	<param name="subscribe_cloud" value="false" />
	<param name="useROSLogger" value="false" />
	<param name="icpConfig" value="$(find ethzasl_icp_mapper)/launch/2D_scans/icp.yaml" />
	<param name="inputFiltersConfig" value="$(find ethzasl_icp_mapper)/launch/2D_scans/input_filters.yaml" />
	<param name="mapPostFiltersConfig" value="$(find ethzasl_icp_mapper)/launch/2D_scans/map_post_filters.yaml" />
	<param name="odom_frame" value="odom" />
	<param name="map_frame" value="map" />
	<param name="maxAngle" value="0.02" />
	<param name="minOverlap" value="0.5" /> 
	<param name="maxOverlapToMerge" value="0.9" /> 
	<param name="minMapPointCount" value="1000" /> 
	<param name="minReadingPointCount" value="150" /> 
	<param name="localizing" value="true" /> 
	<param name="mapping" value="true" /> 
	<param name="inputQueueSize" value="10" /> 
	<param name="tfRefreshPeriod" value="0.01" /> 
	<param name="priorStatic" value="0.5" /> 
</node>

<node name="occupancy_grid_builder" type="occupancy_grid_builder" pkg="ethzasl_icp_mapper" output="screen" >
	<param name="max_range" value="5.5" />
</node>

`

  1. For now I use keyboard to control the movement of turtlebot. When I control the robot to move forward, The the mapping process in rviz is normal, however, when I control the robot to rotation, the mapping process failed
    Error: TF_DENORMALIZED_QUATERNION: Ignoring transform for child_frame_id "odom" from authority "unknown_publisher" because of an invalid quaternion in the transform (0.000000 0.000000 0.836740 0.547589) at line 253 in /tmp/binarydeb/ros-indigo-tf2-0.5.15/src/buffer_core.cpp

  2. Refer to the next link, I realize that the quaternion (0.000000 0.000000 0.836740 0.547589) is not in the tolerance margin of 10^-6

https://github.com/introlab/rtabmap_ros/issues/172

  1. To solve the question of invalid quaternion, I change the code of dynamic_mapper.cpp, before Publish tf, the quaternion corresponding to the rotation matrix (TOdomToMap) is normalized, the codes are as follows:
    `double tr = TOdomToMap(0,0) + TOdomToMap(1,1) + TOdomToMap(2,2);
    double q0,q1,q2,q3;
    q0 = sqrt(tr+1)/2;
    q1 = (TOdomToMap(1,2)-TOdomToMap(2,1))/(4q0);
    q2 = (TOdomToMap(2,0)-TOdomToMap(0,2))/(4
    q0);
    q3 = (TOdomToMap(0,1)-TOdomToMap(1,0))/(4*q0);

     double d = sqrt(q0*q0+q1*q1+q2*q2+q3*q3);
     if (d != 0)
     {
     	q0 = q0/d;
     	q1 = q1/d;
     	q2 = q2/d;
     		q3 = q3/d;
     }
     TOdomToMap(0,0) = 1-2*q2*q2-2*q3*q3;
     TOdomToMap(0,1) = 2*q1*q2+2*q0*q3;
     TOdomToMap(0,2) = 2*q1*q2-2*q0*q2;
     TOdomToMap(1,0) = 2*q1*q2-2*q0*q3;
     TOdomToMap(1,1) = 1-2*q1*q1-2*q3*q3;
     TOdomToMap(1,2) = 2*q2*q3+2*q0*q1;
     TOdomToMap(2,0) = 2*q1*q3+2*q0*q2;
     TOdomToMap(2,1) = 2*q2*q3-2*q0*q1;
     TOdomToMap(2,2) = 1-2*q1*q1-2*q2*q2;`
    
  2. When I use the modified code of dynamic_mapper.cpp, the error of an invalid quaternion in the transform is not happening. However, when I control the robot to rotation, the mapping process failed, the error infomation is as follows:
    terminate called after throwing an instance of 'PointMatcherSupport::TransformationError' what(): RigidTransformation: Error, rotation matrix is not orthogonal. [dynamic_mapper-1] process has died [pid 11410, exit code -6, cmd /home/liying/icp_ws/devel_isolated/ethzasl_icp_mapper/lib/ethzasl_icp_mapper/dynamic_mapper __name:=dynamic_mapper __log:=/home/liying/.ros/log/47f8b690-678c-11e7-81c4-4ccc6a8d4c37/dynamic_mapper-1.log]. log file: /home/liying/.ros/log/47f8b690-678c-11e7-81c4-4ccc6a8d4c37/dynamic_mapper-1*.log
    Can you give me a hint? Many thanks!

yaw problem using icp-mapper, does it consider the odometry?

Hi,

I am trying to do 3D SLAM with pose graph with a hokuyo 2D laser and need to match the pointclouds of the nodes. Therefore I thought the ethzasl_icp_mapping is a good starting point.

The 3D sweeping of the hokuyo is similar to the railyard- and multifloor-mapping of the nifti.
At the beginning I stand still, make a 3D sweep, publish the pointcloud, put the laser back in horizontal position, drive x meters, stand still, make a 3D sweep etc.

Currently I try to simulate the mapping with gazebo but it seems that when I yaw the robot about 20 degrees it doesn't match the point clouds anymore. Perhaps around 10 degrees are fine but I thought that this should work better. I tried different configurations, the nifti-railyard-icp-configuration, the velodyne-icp-configuration, tried my own configurations but it doesn't seem to get much better.
Additionally when entering a small corridor from a large room it also seems to disturb the matcher.
Shouldn't it consider the odometry to get an initial guess between 2 pointclouds where the matcher should start to look?
Is there a bagfile of the nifti-railyard- or nfiti-multifloor-mapping available to find out what I do wrong?

Because my tries didn't work very well, I thought perhaps it is possible to use the 2D laser for matching the 2D information with the created 3D map. Is that possible (because it doesn't seem to work)?
When I use the VLP-16 instead of the hokuyo everything works fine but I don't have a 3D laser, just the hokuyo.

Do you have any suggestions what I do wrong or what I could do to improve the pointcloud matching in my case?

Thanks in advance.

Issue with LaserScan frames in 2D mapper

There seem to be a frame consistency issue in ethzasl_icp_mapper for 2D scans.
When the mapper receives a LaserScan message, it is first transformed in a DataPoints object into odomFrame, in order to account for the motion of the robot during the scan, then the processCloud method is called with this DP but specifying the frame as scanMsgIn.header.frame_id.

It seems inconsistent and, indeed, when playing the example bag we observe that the robot location doesn't move and is completely incoherent with the map (which seems fine). Changing scanMsgIn.header.frame_id into odomFrame when calling processCloud fixes this issue.

I can submit a pull request but it seems that this inconsistency was there from the start so I'm not sure how it could have worked nor whether there could be specific cases that work only this way.

Ros Wiki Error in ICP config file parameter

Hi,

There is also a minor error in the Ros Wiki about the parameter name for ICP config file.
The parameter name in the mapper node for the ICP config file on the ROS Wiki is given to be "~config" . But in the source code of mapper node i.e. on line 176 of mapper.cpp it seems to be loaded through the name "~icpConfig".

Segmentation fault at the end of program

I get a seg fault at the end of every program where I use a variable of type PointMatcher<float>::DataPoints.

For example, I have the following test program (in a ROS package that has ethzasl_icp_mapper as a dependency):

#include "pointmatcher/PointMatcher.h"
using namespace PointMatcherSupport;
typedef PointMatcher<float> PM;
typedef PM::DataPoints DP;
int main(int argc, char **argv)
{  
  if(true) { DP test; }
  printf("finished\n");  
  return 0;
}

This creates the following output with gdb:

(gdb) run
Starting program: /home/kruesip/Repositories/asrl_navigation/asrl_graphnav/python_asrl_icp_navigation/bin/testExec 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
finished

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7a1427c in ~Registrar (this=0x7ffff7dd94b0, __in_chrg=<optimized out>)
    at /tmp/buildd/ros-groovy-ethzasl-icp-mapping-0.9.5/debian/ros-groovy-ethzasl-icp-mapping/opt/ros/groovy/stacks/ethzasl_icp_mapping/libpointmatcher/upstream_src/pointmatcher/Registrar.h:135
135     /tmp/buildd/ros-groovy-ethzasl-icp-mapping-0.9.5/debian/ros-groovy-ethzasl-icp-mapping/opt/ros/groovy/stacks/ethzasl_icp_mapping/libpointmatcher/upstream_src/pointmatcher/Registrar.h: No such file or directory.
(gdb) bt
#0  0x00007ffff7a1427c in ~Registrar (this=0x7ffff7dd94b0, __in_chrg=<optimized out>)
    at /tmp/buildd/ros-groovy-ethzasl-icp-mapping-0.9.5/debian/ros-groovy-ethzasl-icp-mapping/opt/ros/groovy/stacks/ethzasl_icp_mapping/libpointmatcher/upstream_src/pointmatcher/Registrar.h:135
#1  PointMatcher<double>::~PointMatcher (this=0x7ffff7dd9360, __in_chrg=<optimized out>)
    at /tmp/buildd/ros-groovy-ethzasl-icp-mapping-0.9.5/debian/ros-groovy-ethzasl-icp-mapping/opt/ros/groovy/stacks/ethzasl_icp_mapping/libpointmatcher/upstream_src/pointmatcher/PointMatcher.h:119
#2  0x00007ffff6e20d1d in __cxa_finalize () from /lib/x86_64-linux-gnu/libc.so.6
#3  0x00007ffff576ae36 in __do_global_dtors_aux () from /opt/ros/groovy/stacks/ethzasl_icp_mapping/libpointmatcher_ros/lib/libpointmatcher_ros.so
#4  0x00007fffffffdb00 in ?? ()
#5  0x00007fffffffdd00 in ?? ()
#6  0x00007ffff585e081 in _fini () from /opt/ros/groovy/stacks/ethzasl_icp_mapping/libpointmatcher_ros/lib/libpointmatcher_ros.so
#7  0x00007fffffffdd00 in ?? ()
#8  0x00007ffff7de992d in ?? () from /lib64/ld-linux-x86-64.so.2
Backtrace stopped: previous frame inner to this frame (corrupt stack?)

Error with compiling from source

Hi,

I downloaded the source of the stack ethzasl_icp_mapping with
git clone --recursive https://github.com/ethz-asl/ethzasl_icp_mapping.git

and after running the rosdep commands mentioned on the ROS wiki here
http://www.ros.org/wiki/ethzasl_icp_mapping

I get an error which says the following:
/home/spacemaster/fuerte_workspace/sandbox/ethzasl_icp_mapping/ethzasl_icp_mapper/src/dynamic_mapper.cpp:14:39: fatal error: pointmatcher/MatchersImpl.h: No such file or directory

when I comment out the line #include "pointmatcher/MatchersImpl.h" in dynamic_mapper.cpp the source gets compiled.

What does this header file do?? How important is that file for the functioning of the ROS stack.

Basically I want to use the inspectors to test the performance. Can the inspectors be used with the MatchersImpl.h header file inlcluded??

NOTE: I face the same problem with "git clone --recursive git://github.com/ethz-asl/ethzasl_icp_mapping.git". There is difference in the files that get cloned by this command though.

complie the ethzasl_icp_mapper error.( indigo_devel)

/home/ycc/g2o_catkin/src/ethzasl_icp_mapping/ethzasl_icp_mapper/src/interact_mapper.cpp:446:61: required from here
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:32:40: error: static assertion failed: THE_BRACKET_OPERATOR_IS_ONLY_FOR_VECTORS__USE_THE_PARENTHESIS_OPERATOR_INSTEAD
#define EIGEN_STATIC_ASSERT(X,MSG) static_assert(X,#MSG);
^
/usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h:153:7: note: in expansion of macro ‘EIGEN_STATIC_ASSERT’
EIGEN_STATIC_ASSERT(Derived::IsVectorAtCompileTime,

Sudden jumps in position and rotation

Hi,

I'm using a hand-held Kinect camera for our application. When I start modular_cloud_matcher and move the camera smoothly horizontally to the right, modular_cloud_matcher tracks smoothly, but every foot 20cm or so, it takes an arbitrary jump in position and/or rotation. After a few jumps, it may decide that the camera is some distance away from the true position (in an arbitrary direction) and the image might end up upside-down.

Do you have any suggestions for parameters or filters I should use to make the tracking less "twitchy?"

Thanks again.

Dan

ROS Wiki Documentation Clarification

Hi All,

I was just using the "match_coulds" service in the ethzasl_icp_mapper package. There seems to be a small error in the ROS Wiki.
http://wiki.ros.org/ethzasl_icp_mapper?distro=groovy

The wiki says that the node that provides the "match_clouds" service is called "cloud_matcher_service" but the node is called "matcher_service" in the package.

Has the name been changed in the newer versions of the package? It would helpful to change the ROS Wiki if it is so. I had compiled the source by downloading it from github.

Regards
Anuraj

Parameter prob for module MaxPointCountDataPointsFilter was set but is not used

When starting mapper from the indigo-devel branch, using the openni launcher.

terminate called after throwing an instance of 'PointMatcherSupport::Parametrizable::InvalidParameter'
  what():  Parameter prob for module MaxPointCountDataPointsFilter was set but is not used
[mapper-1] process has died [pid 445, exit code -6, cmd /opt/workspaces/catkin_eth/devel/lib/ethzasl_icp_mapper/mapper cloud_in:=/pico_flexx/points __name:=mapper __log:=/home/mehdi/.ros/log/ba3bf752-183d-11e6-acb5-28d24422fddc/mapper-1.log].
log file: /home/mehdi/.ros/log/ba3bf752-183d-11e6-acb5-28d24422fddc/mapper-1*.log

ros-mapping compilation issue #2

Hi again,

Here's my next problem in compiling ros-mapping.

ddavies@ddlinux:~$ rosmake --rosdep-install ethzasl_mapping
[ rosmake ] Packages requested are: ['ethzasl_mapping']
[ rosmake ] Logging to directory/etc/ros/rosmake/rosmake_output-20111025-142448
[ rosmake ] Expanded args ['ethzasl_mapping'] to:
['libnabo', 'extrinsic_calibration', 'kinect_exp_logger', 'modular_cloud_matcher']
[ rosmake ] Generating Install Script using rosdep then executing. This may take a minute, you will be prompted for permissions. . .
[ rosmake ] rosdep successfully installed all system dependencies
[rosmake-0] Starting >>> rosemacs [ make ]
[rosmake-0] Finished <<< rosemacs ROS_NOBUILD in package rosemacs
No Makefile in package rosemacs
[rosmake-1] Starting >>> rosbuild [ make ]
[rosmake-1] Finished <<< rosbuild ROS_NOBUILD in package rosbuild
No Makefile in package rosbuild
[rosmake-2] Starting >>> cpp_common [ make ]
[rosmake-2] Finished <<< cpp_common ROS_NOBUILD in package cpp_common
[rosmake-3] Starting >>> roslib [ make ]
[rosmake-3] Finished <<< roslib ROS_NOBUILD in package roslib
[rosmake-4] Starting >>> bullet [ make ]
[rosmake-4] Finished <<< bullet ROS_NOBUILD in package bullet
[rosmake-5] Starting >>> angles [ make ]
[rosmake-5] Finished <<< angles ROS_NOBUILD in package angles
[rosmake-6] Starting >>> orocos_kdl [ make ]
[rosmake-6] Finished <<< orocos_kdl ROS_NOBUILD in package orocos_kdl
[rosmake-7] Starting >>> eigen [ make ]
[rosmake-7] Finished <<< eigen ROS_NOBUILD in package eigen
[rosmake-0] Starting >>> actionlib_msgs [ make ]
[rosmake-0] Finished <<< actionlib_msgs ROS_NOBUILD in package actionlib_msgs
[rosmake-6] Starting >>> roscpp_traits [ make ]
[rosmake-2] Starting >>> roslang [ make ]
[rosmake-3] Starting >>> rostime [ make ]
[rosmake-5] Starting >>> xmlrpcpp [ make ]
[rosmake-2] Finished <<< roslang ROS_NOBUILD in package roslang
No Makefile in package roslang
[rosmake-6] Finished <<< roscpp_traits ROS_NOBUILD in package roscpp_traits
[rosmake-4] Starting >>> std_msgs [ make ]
[rosmake-5] Finished <<< xmlrpcpp ROS_NOBUILD in package xmlrpcpp
[rosmake-3] Finished <<< rostime ROS_NOBUILD in package rostime
[rosmake-0] Starting >>> rosclean [ make ]
[rosmake-0] Finished <<< rosclean ROS_NOBUILD in package rosclean
[rosmake-1] Starting >>> rosparam [ make ]
[rosmake-7] Starting >>> rosgraph [ make ]
[rosmake-2] Starting >>> rosconsole [ make ]
[rosmake-5] Starting >>> roscpp_serialization [ make ]
[rosmake-4] Finished <<< std_msgs ROS_NOBUILD in package std_msgs
[rosmake-3] Starting >>> rosmaster [ make ]
[rosmake-0] Starting >>> rosunit [ make ]
[rosmake-0] Finished <<< rosunit ROS_NOBUILD in package rosunit
[rosmake-6] Starting >>> rosgraph_msgs [ make ]
[rosmake-3] Finished <<< rosmaster ROS_NOBUILD in package rosmaster
[rosmake-4] Starting >>> rosnode [ make ]
[rosmake-3] Starting >>> python_orocos_kdl [ make ]
[rosmake-5] Finished <<< roscpp_serialization ROS_NOBUILD in package roscpp_serialization
[rosmake-7] Finished <<< rosgraph ROS_NOBUILD in package rosgraph
[rosmake-2] Finished <<< rosconsole ROS_NOBUILD in package rosconsole
[rosmake-1] Finished <<< rosparam ROS_NOBUILD in package rosparam
[rosmake-6] Finished <<< rosgraph_msgs ROS_NOBUILD in package rosgraph_msgs
[rosmake-3] Finished <<< python_orocos_kdl ROS_NOBUILD in package python_orocos_kdl
[rosmake-4] Finished <<< rosnode ROS_NOBUILD in package rosnode
[rosmake-0] Starting >>> trajectory_msgs [ make ]
[rosmake-0] Finished <<< trajectory_msgs ROS_NOBUILD in package trajectory_msgs
[rosmake-5] Starting >>> rosdep [ make ]
[rosmake-5] Finished <<< rosdep ROS_NOBUILD in package rosdep
No Makefile in package rosdep
[rosmake-7] Starting >>> libnabo [ make ]
[rosmake-2] Starting >>> roscpp [ make ]
[rosmake-3] Starting >>> kdl [ make ]
[rosmake-6] Starting >>> rospy [ make ]
[rosmake-2] Finished <<< roscpp ROS_NOBUILD in package roscpp
[rosmake-3] Finished <<< kdl ROS_NOBUILD in package kdl
No Makefile in package kdl
[rosmake-6] Finished <<< rospy ROS_NOBUILD in package rospy
[rosmake-4] Starting >>> rosbash [ make ]
[rosmake-4] Finished <<< rosbash ROS_NOBUILD in package rosbash
No Makefile in package rosbash
[rosmake-0] Starting >>> rosmake [ make ]
[rosmake-0] Finished <<< rosmake ROS_NOBUILD in package rosmake
[rosmake-0] Starting >>> test_rosmake [ make ]
[rosmake-0] Finished <<< test_rosmake ROS_NOBUILD in package test_rosmake
[rosmake-4] Starting >>> rosout [ make ]
[rosmake-4] Finished <<< rosout ROS_NOBUILD in package rosout
[rosmake-1] Starting >>> bfl [ make ]
[rosmake-1] Finished <<< bfl ROS_NOBUILD in package bfl
[rosmake-2] Starting >>> test_roslib [ make ]
[rosmake-2] Finished <<< test_roslib ROS_NOBUILD in package test_roslib
[rosmake-3] Starting >>> cminpack [ make ]
[rosmake-3] Finished <<< cminpack ROS_NOBUILD in package cminpack
[rosmake-6] Starting >>> flann [ make ]
[rosmake-6] Finished <<< flann ROS_NOBUILD in package flann
[rosmake-5] Starting >>> roscreate [ make ]
[rosmake-5] Finished <<< roscreate ROS_NOBUILD in package roscreate
[rosmake-3] Starting >>> roslaunch [ make ]
[rosmake-3] Finished <<< roslaunch ROS_NOBUILD in package roslaunch
No Makefile in package roslaunch
[rosmake-4] Starting >>> tinyxml [ make ]
[rosmake-4] Finished <<< tinyxml ROS_NOBUILD in package tinyxml
[rosmake-1] Starting >>> test_rosdep [ make ]
[rosmake-1] Finished <<< test_rosdep ROS_NOBUILD in package test_rosdep
[rosmake-2] Starting >>> rosboost_cfg [ make ]
[rosmake-2] Finished <<< rosboost_cfg ROS_NOBUILD in package rosboost_cfgplete ]
No Makefile in package rosboost_cfg
[rosmake-0] Starting >>> mk [ make ]
[rosmake-0] Finished <<< mk ROS_NOBUILD in package mk
No Makefile in package mk
[rosmake-6] Starting >>> test_roscreate [ make ]
[rosmake-6] Finished <<< test_roscreate ROS_NOBUILD in package test_roscreate
[rosmake-5] Starting >>> rostest [ make ]
[rosmake-5] Finished <<< rostest ROS_NOBUILD in package rostest
[rosmake-4] Starting >>> yaml_cpp [ make ]
[rosmake-4] Finished <<< yaml_cpp ROS_NOBUILD in package yaml_cpp
[rosmake-3] Starting >>> test_rospack [ make ]
[rosmake-3] Finished <<< test_rospack ROS_NOBUILD in package test_rospack
[rosmake-1] Starting >>> topic_tools [ make ]
[rosmake-0] Starting >>> message_filters [ make ]
[rosmake-4] Starting >>> actionlib [ make ]
[rosmake-4] Finished <<< actionlib ROS_NOBUILD in package actionlib
[rosmake-1] Finished <<< topic_tools ROS_NOBUILD in package topic_tools
[rosmake-0] Finished <<< message_filters ROS_NOBUILD in package message_filters
[rosmake-0] Starting >>> rosbag [ make ]
[rosmake-0] Finished <<< rosbag ROS_NOBUILD in package rosbag
[rosmake-0] Starting >>> rosbagmigration [ make ]
[rosmake-4] Starting >>> rosmsg [ make ]
[rosmake-0] Finished <<< rosbagmigration ROS_NOBUILD in package rosbagmigration
No Makefile in package rosbagmigration
[rosmake-0] Starting >>> geometry_msgs [ make ]
[rosmake-3] Starting >>> diagnostic_msgs [ make ]
[rosmake-4] Finished <<< rosmsg ROS_NOBUILD in package rosmsg
No Makefile in package rosmsg
[rosmake-3] Finished <<< diagnostic_msgs ROS_NOBUILD in package diagnostic_msgs
[rosmake-0] Finished <<< geometry_msgs ROS_NOBUILD in package geometry_msgs
[rosmake-0] Starting >>> sensor_msgs [ make ]
[rosmake-3] Starting >>> nav_msgs [ make ]
[rosmake-3] Finished <<< nav_msgs ROS_NOBUILD in package nav_msgs
[rosmake-3] Starting >>> visualization_msgs [ make ]
[rosmake-3] Finished <<< visualization_msgs ROS_NOBUILD in package visualization_msgs
[rosmake-3] Starting >>> tf2_msgs [ make ]
[rosmake-4] Starting >>> rostopic [ make ]
[rosmake-0] Finished <<< sensor_msgs ROS_NOBUILD in package sensor_msgs
[rosmake-2] Starting >>> stereo_msgs [ make ]
[rosmake-2] Finished <<< stereo_msgs ROS_NOBUILD in package stereo_msgs
[rosmake-0] Starting >>> test_common_msgs [ make ]
[rosmake-6] Starting >>> pcl [ make ]
[rosmake-3] Finished <<< tf2_msgs ROS_NOBUILD in package tf2_msgs
[rosmake-0] Finished <<< test_common_msgs ROS_NOBUILD in package test_common_msgs
[rosmake-4] Finished <<< rostopic ROS_NOBUILD in package rostopic
[rosmake-2] Starting >>> rosservice [ make ]
[rosmake-4] Starting >>> tf2 [ make ]
[rosmake-6] Finished <<< pcl ROS_NOBUILD in package pcl
[rosmake-2] Finished <<< rosservice ROS_NOBUILD in package rosservice
[rosmake-4] Finished <<< tf2 ROS_NOBUILD in package tf2
[rosmake-2] Starting >>> roswtf [ make ]
[rosmake-2] Finished <<< roswtf ROS_NOBUILD in package roswtf
[rosmake-2] Starting >>> tf [ make ]
[rosmake-2] Finished <<< tf ROS_NOBUILD in package tf
[rosmake-2] Starting >>> tf_conversions [ make ]
[rosmake-1] Starting >>> extrinsic_calibration [ make ]
[rosmake-2] Finished <<< tf_conversions ROS_NOBUILD in package tf_conversions
[rosmake-2] Starting >>> kinect_exp_logger [ make ]
[rosmake-4] Starting >>> modular_cloud_matcher [ make ]
[ rosmake ] All 32 linesibnabo: 0.2 sec ] [ extri... [ 4 Active 69/73 Complete ]
{-------------------------------------------------------------------------------
mkdir -p build
if [ ! -f libnabo-git-4a43d8ee6d72070c3e91.tar.gz.md5sum ]; then echo "Error: Couldn't find md5sum file libnabo-git-4a43d8ee6d72070c3e91.tar.gz.md5sum" && false; fi
rospack find rosbuild/bin/download_checkmd5.py https://code.ros.org/svn/release/download/thirdparty/libnabo-git-4a43d8ee6d72070c3e91.tar.gz build/libnabo-git-4a43d8ee6d72070c3e91.tar.gz awk {'print $1'} libnabo-git-4a43d8ee6d72070c3e91.tar.gz.md5sum
[rosbuild] Downloading https://code.ros.org/svn/release/download/thirdparty/libnabo-git-4a43d8ee6d72070c3e91.tar.gz to build/libnabo-git-4a43d8ee6d72070c3e91.tar.gz...Traceback (most recent call last):
File "/opt/ros/electric/ros/core/rosbuild/bin/download_checkmd5.py", line 56, in
sys.exit(main())
File "/opt/ros/electric/ros/core/rosbuild/bin/download_checkmd5.py", line 28, in main
urllib.urlretrieve(uri, dest)
File "/usr/lib/python2.7/urllib.py", line 91, in urlretrieve
return _urlopener.retrieve(url, filename, reporthook, data)
File "/usr/lib/python2.7/urllib.py", line 237, in retrieve
fp = self.open(url, data)
File "/usr/lib/python2.7/urllib.py", line 205, in open
return getattr(self, name)(url)
File "/usr/lib/python2.7/urllib.py", line 435, in open_https
h.endheaders(data)
File "/usr/lib/python2.7/httplib.py", line 951, in endheaders
self._send_output(message_body)
File "/usr/lib/python2.7/httplib.py", line 811, in _send_output
self.send(msg)
File "/usr/lib/python2.7/httplib.py", line 773, in send
self.connect()
File "/usr/lib/python2.7/httplib.py", line 1158, in connect
self.sock = ssl.wrap_socket(sock, self.key_file, self.cert_file)
File "/usr/lib/python2.7/ssl.py", line 344, in wrap_socket
ciphers=ciphers)
File "/usr/lib/python2.7/ssl.py", line 121, in init
self.do_handshake()
File "/usr/lib/python2.7/ssl.py", line 283, in do_handshake
self._sslobj.do_handshake()
IOError: [Errno socket error] [Errno 1] _ssl.c:499: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol
-------------------------------------------------------------------------------}
[ rosmake ] Output from build of package libnabo written to:
[ rosmake ] /etc/ros/rosmake/rosmake_output-20111025-142448/libnabo/build_output.log
[rosmake-7] Finished <<< libnabo [FAIL] [ 0.25 seconds ]
[ rosmake ] Halting due to failure in package libnabo.
[ rosmake ] Waiting for other threads to complete.
[rosmake-2] Finished <<< kinect_exp_logger [PASS] [ 0.36 seconds ]
[ rosmake ] Last 40 linestrinsic_calibration: 0.9... [ 2 Active 70/73 Complete ]
[ rosmake ] All 26 lines
{-------------------------------------------------------------------------------
.. many more failures follow.

Here's the contents of libnabo:

drwxr-xr-x 2 ddavies adoc 4096 2011-10-25 13:54 build
-rwxrwxrwx 1 root root 74 2011-10-25 13:30 libnabo-git-4a43d8ee6d72070c3e91.tar.gz.md5sum
-rwxrwxrwx 1 root root 730 2011-10-25 13:30 Makefile
-rwxrwxrwx 1 root root 418 2011-10-25 13:30 manifest.xml

./build:
total 0

It looks as if there is some sort of network problem. The ros-mapping installation instructions for diamondback on http://www.ros.org/wiki/modular_cloud_matcher#Installation say, "First, you have to compile libnabo and libpointmatcher. Make sure that these libraries compile against Eigen3 from diamondback." Is that required for electric as well?

Thanks for your time!

Dan

no rule to make target

Hi im getting following error when i try to compile under ros-indigo and catkin:
No rule to make target /tmp/binarydeb/ros-indigo-libpointmatcher-1.2.3/obj-x86_64-linux-gnu/libpointmatcher.so', needed by /home/mamaddl/catkin_ws/devel/lib/libpointmatcher_ros.so

plz help me thanks in advance.

Any SLAM solution available here?

Hi,

I was wondering is there any consideration of a SLAM solution build on top of 3D scan matching?
Right now I am trying to put it together with iSAM which enable us to update the map by using key frames. I wasn't quite sure if you guys have developed that function or it is under developing?

Thanks.

ros-mapping compilation problem #1

Hi,

I have the electric release of ros running on Ubuntu 11.04. I followed the instructions on https://github.com/ethz-asl/ros-mapping to bring over and compile ros-mapping. The first issue was that rosmake complained about the differences between the yaml-cpp items in ros-mapping's rosdep.yaml and ros's version.

ddavies@ddlinux:~$ rosmake --rosdep-install ethzasl_mapping
[ rosmake ] Packages requested are: ['ethzasl_mapping']
[ rosmake ] Logging to directory/etc/ros/rosmake/rosmake_output-20111025-133831
[ rosmake ] Expanded args ['ethzasl_mapping'] to:
['libnabo', 'extrinsic_calibration', 'kinect_exp_logger', 'modular_cloud_matcher']
[ rosmake ] Generating Install Script using rosdep then executing. This may take a minute, you will be prompted for permissions. . .
[ rosmake ] rosdep install failed: QUITTING: due to conflicting rosdep definitions, please resolve this conflict.
Rules for yaml-cpp do not match:
{'apt': {'packages': ['yaml-cpp0.2.6-dev']}} [/opt/ros/electric/stacks/common_rosdeps/rosdep.yaml]
yaml-cpp0.2.6-dev [/opt/ros_addons/electric/stacks/ethzasl_mapping/rosdep.yaml]

In /opt/ros_addons/electric/stacks/ethzasl_mapping/rosdep.yaml I changed


yaml-cpp:
ubuntu: yaml-cpp0.2.6-dev


to


yaml-cpp:
ubuntu:
apt:
packages: [ yaml-cpp0.2.6-dev ]


This fixed the first problem. The make then failed because it didn't have permission to create the "build" directory, but that was easily fixed. The next problem is in the next message.

ICP Sequence Mapping

Hi, thank you for all your work it has been very usefull.

I'm trying to build a point cloud map from scans and I'm experiencing some troubles with ICP algorithm.

I've tried to understand your code examples like dynamicmapper.cpp but there is some operations that i don't understand.

So there is my method and i don't know if it's correct to think that way.

Say we loop for 10 pointclouds, i compute a globalTransformation (that is the expression of the initial frame from the actual pointcloud frame) by multiplying matrix given by ICPSequence::icp(newCloud,globalTransormation).
In my code i have somethign like :

ICPSequence icp
PM::TransformationParameters globalTransformation;
PM::TransformationParameters T;

Then when I perfom icp

T = icp(newCloud, globalTransformation);
globalTransformation = globalTransformation * T;

Then i do something like this :

 PM::Transformation* rigidTrans;
 rigidTrans = PM::get().REG(Transformation).create("RigidTransformation");
 rigidTrans->compute(newCloud,globalTransformation)

mapPointcloud.concatenate(newCloud);

And i concatenate to a PointCloud all the transformed pointcloud.

Do this method seems right to you ?

Thank you in advance for your answer

Arthur

Any update on using this with Indigo?

Hello,

Do you have any update on getting this to be compatible with Indigo? I tried catkin_make_isolated on the master branch but the 'mapper' node was missing.

icp mapper ignoring scans

I am using dynamic mapper with kitti dataset but I get an error which complains:
[ERROR] [1549648619.066825900, 1317664535.404973199]: Unexpected exception... ignoring scan
The kitti dataset has laser scans collected using a velodyne 64e lidar so I am using:
roslaunch ethzasl_icp_mapper grizzly_dynamic_mapper_outdoor.launch. Anyone here had the same issue?

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.