Hey how are you all, i am trying to implelnt RT ICP using fake kinect 3d laser scanner in the icp-slam app in my graduation project and hope to use this library.
but the problem is undefined refrence error:
undefined reference to `mrpt::slam::CObservation3DRangeScan::convertTo2DScan(mrpt::slam::CObservation2DRangeScan&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, double, double, double)'
i think the solution is to modify the cmakelist file, but i'm kind of new in usinf cmake
and hope if someone can help me.
here's the two files src code and .
https://rapidshare.com/files/1853157118/RT-ICP.tar.gz
thanks in advance for anybody could help me


Hi Bassim,
Have you tried creating an independent CMake project as explained here? There, you should add hwdrivers, obs, maps,... as dependencies.
Anyway, exactly what version of MRPT are you using here?
Cheers,
JL
yes, I've already edited the cmakelists.txt myself and added those dependencies.
but it keeps giving me that undefined refrence error and i can't pass it.
and i'm using mrpt-0.9.5 version.
if you double checked my edit, and try to build it, I'll be the most gratful.
Hi Basim,
Just checked your code and it builds and links without problems, at least with the latest MRPT (0.9.6) and with the GCC compiler.
It seems to me that you have some sort of mixed versions of MRPT, because CObservation3DRangeScan::convertTo2DScan() was introduced in 0.9.6, so you can't be using 0.9.5 and having a linking error since a compile error should have ocurred before...
I would recommend trying with a clean checkout of 0.9.6 or with a SVN trunk checkout.
Cheers,
JL
alright I'm Downloading it right now, I'll try it and get back to tell you the results.
thanks Very much for your help :)
alright it gives me an exception while trying to put the fake kinect 2D laser scanner observation.
Can you help me please ?
Alright what i'm trying to do is:
1 - initialized the Kinect
2 - get 3D observation
3 - convert it into 2D Observation
4 - set isObsBasedRawlog = true;
5 - put observation = 2D scanned from the Kinect
6 - call mapBuilder.processObservation( observation );
Here's a link of the files: https://rapidshare.com/files/2085243365/Kinect_ICP.tar.gz
yet it keeps giving me the above exception :S
I did found the problem.
It was the incomplete configuration file, and i felt really stupid :D
Anyway the results wasn't accurate enought. i'm switching to real time Particle Filter.
and i will inject the odeometry data inside the algorithm using UDP network protocol.
Nice it's solved!
On the quality of ICP with Kinect: my first results were also quite poor, but perhaps something decent can be obtained by just playing with the thresholds of distance-between-insertions-in-the-map, etc.
Cheers,
JL
Thanks Dr. , I 'll try to tune some config. paramters.
on the other hand, I'm trying now to get the pf-localization to work in Real Time too.
hope to do it without facing any problems :)