You are here

Compile error under windows with the latest svn checkout

10 posts / 0 new
Last post
photofantas
photofantas's picture
Compile error under windows with the latest svn checkout

Hi,

I have checked out the latest svn version of mrpt and try to compile it with libfreenect under windows using vs2010.
But I have got errors when compile the (LIB) mrpt-hwdrivers. This doesn't happen when I compile the 0.9.3.
Here is the error information:

4>------ Build started: Project: (LIB) mrpt-hwdrivers, Configuration: Debug Win32 ------
4> CKinect.cpp
4>D:\Program Files\Microsoft Visual Studio 10.0\VC\include\stdint.h(19): error C2371: 'int32_t' : redefinition; different basic types
4> d:\program files\mrpt-read-only\libs\base\include\mrpt\utils\pstdint.h(264) : see declaration of 'int32_t'
4>D:\Program Files\Microsoft Visual Studio 10.0\VC\include\stdint.h(23): error C2371: 'uint32_t' : redefinition; different basic types
4> d:\program files\mrpt-read-only\libs\base\include\mrpt\utils\pstdint.h(234) : see declaration of 'uint32_t'
4>D:\Program Files\Microsoft Visual Studio 10.0\VC\include\stdint.h(27): error C2371: 'int_least32_t' : redefinition; different basic types
4> d:\program files\mrpt-read-only\libs\base\include\mrpt\utils\pstdint.h(438) : see declaration of 'int_least32_t'
4>D:\Program Files\Microsoft Visual Studio 10.0\VC\include\stdint.h(31): error C2371: 'uint_least32_t' : redefinition; different basic types
4> d:\program files\mrpt-read-only\libs\base\include\mrpt\utils\pstdint.h(439) : see declaration of 'uint_least32_t'
4>D:\Program Files\Microsoft Visual Studio 10.0\VC\include\stdint.h(33): error C2371: 'int_fast8_t' : redefinition; different basic types
4> d:\program files\mrpt-read-only\libs\base\include\mrpt\utils\pstdint.h(473) : see declaration of 'int_fast8_t'
4>D:\Program Files\Microsoft Visual Studio 10.0\VC\include\stdint.h(34): error C2371: 'int_fast16_t' : redefinition; different basic types
4> d:\program files\mrpt-read-only\libs\base\include\mrpt\utils\pstdint.h(475) : see declaration of 'int_fast16_t'
4>D:\Program Files\Microsoft Visual Studio 10.0\VC\include\stdint.h(35): error C2371: 'int_fast32_t' : redefinition; different basic types
4> d:\program files\mrpt-read-only\libs\base\include\mrpt\utils\pstdint.h(477) : see declaration of 'int_fast32_t'
4>D:\Program Files\Microsoft Visual Studio 10.0\VC\include\stdint.h(38): error C2371: 'uint_fast16_t' : redefinition; different basic types
4> d:\program files\mrpt-read-only\libs\base\include\mrpt\utils\pstdint.h(476) : see declaration of 'uint_fast16_t'
4>D:\Program Files\Microsoft Visual Studio 10.0\VC\include\stdint.h(39): error C2371: 'uint_fast32_t' : redefinition; different basic types
4> d:\program files\mrpt-read-only\libs\base\include\mrpt\utils\pstdint.h(478) : see declaration of 'uint_fast32_t'
4>D:\Program Files\Microsoft Visual Studio 10.0\VC\include\stdint.h(72): warning C4005: 'INT8_MIN' : macro redefinition
4> d:\program files\mrpt-read-only\libs\base\include\mrpt\utils\pstdint.h(173) : see previous definition of 'INT8_MIN'
4>D:\Program Files\Microsoft Visual Studio 10.0\VC\include\stdint.h(73): warning C4005: 'INT16_MIN' : macro redefinition
4> d:\program files\mrpt-read-only\libs\base\include\mrpt\utils\pstdint.h(209) : see previous definition of 'INT16_MIN'
4>D:\Program Files\Microsoft Visual Studio 10.0\VC\include\stdint.h(74): warning C4005: 'INT32_MIN' : macro redefinition
4> d:\program files\mrpt-read-only\libs\base\include\mrpt\utils\pstdint.h(260) : see previous definition of 'INT32_MIN'
4>D:\Program Files\Microsoft Visual Studio 10.0\VC\include\stdint.h(78): warning C4005: 'INT32_MAX' : macro redefinition
4> d:\program files\mrpt-read-only\libs\base\include\mrpt\utils\pstdint.h(257) : see previous definition of 'INT32_MAX'
4>D:\Program Files\Microsoft Visual Studio 10.0\VC\include\stdint.h(81): warning C4005: 'UINT32_MAX' : macro redefinition
4> d:\program files\mrpt-read-only\libs\base\include\mrpt\utils\pstdint.h(230) : see previous definition of 'UINT32_MAX'
4>D:\Program Files\Microsoft Visual Studio 10.0\VC\include\stdint.h(83): warning C4005: 'INT_LEAST8_MIN' : macro redefinition
4> d:\program files\mrpt-read-only\libs\base\include\mrpt\utils\pstdint.h(448) : see previous definition of 'INT_LEAST8_MIN'
4>D:\Program Files\Microsoft Visual Studio 10.0\VC\include\stdint.h(84): warning C4005: 'INT_LEAST16_MIN' : macro redefinition
4> d:\program files\mrpt-read-only\libs\base\include\mrpt\utils\pstdint.h(449) : see previous definition of 'INT_LEAST16_MIN'
4>D:\Program Files\Microsoft Visual Studio 10.0\VC\include\stdint.h(85): warning C4005: 'INT_LEAST32_MIN' : macro redefinition
4> d:\program files\mrpt-read-only\libs\base\include\mrpt\utils\pstdint.h(450) : see previous definition of 'INT_LEAST32_MIN'
4>D:\Program Files\Microsoft Visual Studio 10.0\VC\include\stdint.h(87): warning C4005: 'INT_LEAST8_MAX' : macro redefinition
4> d:\program files\mrpt-read-only\libs\base\include\mrpt\utils\pstdint.h(443) : see previous definition of 'INT_LEAST8_MAX'
4>D:\Program Files\Microsoft Visual Studio 10.0\VC\include\stdint.h(88): warning C4005: 'INT_LEAST16_MAX' : macro redefinition
4> d:\program files\mrpt-read-only\libs\base\include\mrpt\utils\pstdint.h(445) : see previous definition of 'INT_LEAST16_MAX'
4>D:\Program Files\Microsoft Visual Studio 10.0\VC\include\stdint.h(89): warning C4005: 'INT_LEAST32_MAX' : macro redefinition
4> d:\program files\mrpt-read-only\libs\base\include\mrpt\utils\pstdint.h(447) : see previous definition of 'INT_LEAST32_MAX'
4>D:\Program Files\Microsoft Visual Studio 10.0\VC\include\stdint.h(90): warning C4005: 'UINT_LEAST8_MAX' : macro redefinition
4> d:\program files\mrpt-read-only\libs\base\include\mrpt\utils\pstdint.h(442) : see previous definition of 'UINT_LEAST8_MAX'
4>D:\Program Files\Microsoft Visual Studio 10.0\VC\include\stdint.h(91): warning C4005: 'UINT_LEAST16_MAX' : macro redefinition
4> d:\program files\mrpt-read-only\libs\base\include\mrpt\utils\pstdint.h(444) : see previous definition of 'UINT_LEAST16_MAX'
4>D:\Program Files\Microsoft Visual Studio 10.0\VC\include\stdint.h(92): warning C4005: 'UINT_LEAST32_MAX' : macro redefinition
4> d:\program files\mrpt-read-only\libs\base\include\mrpt\utils\pstdint.h(446) : see previous definition of 'UINT_LEAST32_MAX'
4>D:\Program Files\Microsoft Visual Studio 10.0\VC\include\stdint.h(94): warning C4005: 'INT_FAST8_MIN' : macro redefinition
4> d:\program files\mrpt-read-only\libs\base\include\mrpt\utils\pstdint.h(485) : see previous definition of 'INT_FAST8_MIN'
4>D:\Program Files\Microsoft Visual Studio 10.0\VC\include\stdint.h(95): warning C4005: 'INT_FAST16_MIN' : macro redefinition
4> d:\program files\mrpt-read-only\libs\base\include\mrpt\utils\pstdint.h(486) : see previous definition of 'INT_FAST16_MIN'
4>D:\Program Files\Microsoft Visual Studio 10.0\VC\include\stdint.h(96): warning C4005: 'INT_FAST32_MIN' : macro redefinition
4> d:\program files\mrpt-read-only\libs\base\include\mrpt\utils\pstdint.h(487) : see previous definition of 'INT_FAST32_MIN'
4>D:\Program Files\Microsoft Visual Studio 10.0\VC\include\stdint.h(98): warning C4005: 'INT_FAST8_MAX' : macro redefinition
4> d:\program files\mrpt-read-only\libs\base\include\mrpt\utils\pstdint.h(480) : see previous definition of 'INT_FAST8_MAX'
4>D:\Program Files\Microsoft Visual Studio 10.0\VC\include\stdint.h(99): warning C4005: 'INT_FAST16_MAX' : macro redefinition
4> d:\program files\mrpt-read-only\libs\base\include\mrpt\utils\pstdint.h(482) : see previous definition of 'INT_FAST16_MAX'
4>D:\Program Files\Microsoft Visual Studio 10.0\VC\include\stdint.h(100): warning C4005: 'INT_FAST32_MAX' : macro redefinition
4> d:\program files\mrpt-read-only\libs\base\include\mrpt\utils\pstdint.h(484) : see previous definition of 'INT_FAST32_MAX'
4>D:\Program Files\Microsoft Visual Studio 10.0\VC\include\stdint.h(101): warning C4005: 'UINT_FAST8_MAX' : macro redefinition
4> d:\program files\mrpt-read-only\libs\base\include\mrpt\utils\pstdint.h(479) : see previous definition of 'UINT_FAST8_MAX'
4>D:\Program Files\Microsoft Visual Studio 10.0\VC\include\stdint.h(102): warning C4005: 'UINT_FAST16_MAX' : macro redefinition
4> d:\program files\mrpt-read-only\libs\base\include\mrpt\utils\pstdint.h(481) : see previous definition of 'UINT_FAST16_MAX'
4>D:\Program Files\Microsoft Visual Studio 10.0\VC\include\stdint.h(103): warning C4005: 'UINT_FAST32_MAX' : macro redefinition
4> d:\program files\mrpt-read-only\libs\base\include\mrpt\utils\pstdint.h(483) : see previous definition of 'UINT_FAST32_MAX'
4>D:\Program Files\Microsoft Visual Studio 10.0\VC\include\stdint.h(116): warning C4005: 'INT8_C' : macro redefinition
4> d:\program files\mrpt-read-only\libs\base\include\mrpt\utils\pstdint.h(178) : see previous definition of 'INT8_C'
4>D:\Program Files\Microsoft Visual Studio 10.0\VC\include\stdint.h(117): warning C4005: 'INT16_C' : macro redefinition
4> d:\program files\mrpt-read-only\libs\base\include\mrpt\utils\pstdint.h(220) : see previous definition of 'INT16_C'
4>D:\Program Files\Microsoft Visual Studio 10.0\VC\include\stdint.h(118): warning C4005: 'INT32_C' : macro redefinition
4> d:\program files\mrpt-read-only\libs\base\include\mrpt\utils\pstdint.h(265) : see previous definition of 'INT32_C'
4>D:\Program Files\Microsoft Visual Studio 10.0\VC\include\stdint.h(120): warning C4005: 'UINT8_C' : macro redefinition
4> d:\program files\mrpt-read-only\libs\base\include\mrpt\utils\pstdint.h(163) : see previous definition of 'UINT8_C'
4>D:\Program Files\Microsoft Visual Studio 10.0\VC\include\stdint.h(121): warning C4005: 'UINT16_C' : macro redefinition
4> d:\program files\mrpt-read-only\libs\base\include\mrpt\utils\pstdint.h(196) : see previous definition of 'UINT16_C'
4>D:\Program Files\Microsoft Visual Studio 10.0\VC\include\stdint.h(122): warning C4005: 'UINT32_C' : macro redefinition
4> d:\program files\mrpt-read-only\libs\base\include\mrpt\utils\pstdint.h(235) : see previous definition of 'UINT32_C'
4>D:\Program Files\Microsoft Visual Studio 10.0\VC\include\stdint.h(133): warning C4005: 'SIG_ATOMIC_MAX' : macro redefinition
4> d:\program files\mrpt-read-only\libs\base\include\mrpt\utils\pstdint.h(579) : see previous definition of 'SIG_ATOMIC_MAX'
4>D:\Program Files\Microsoft Visual Studio 10.0\VC\include\stdint.h(149): warning C4005: 'INT64_MIN' : macro redefinition
4> d:\program files\mrpt-read-only\libs\base\include\mrpt\utils\pstdint.h(349) : see previous definition of 'INT64_MIN'
4>D:\Program Files\Microsoft Visual Studio 10.0\VC\include\stdint.h(150): warning C4005: 'INT64_MAX' : macro redefinition
4> d:\program files\mrpt-read-only\libs\base\include\mrpt\utils\pstdint.h(346) : see previous definition of 'INT64_MAX'
4>D:\Program Files\Microsoft Visual Studio 10.0\VC\include\stdint.h(151): warning C4005: 'UINT64_MAX' : macro redefinition
4> d:\program files\mrpt-read-only\libs\base\include\mrpt\utils\pstdint.h(352) : see previous definition of 'UINT64_MAX'
4>D:\Program Files\Microsoft Visual Studio 10.0\VC\include\stdint.h(153): warning C4005: 'INT_LEAST64_MIN' : macro redefinition
4> d:\program files\mrpt-read-only\libs\base\include\mrpt\utils\pstdint.h(457) : see previous definition of 'INT_LEAST64_MIN'
4>D:\Program Files\Microsoft Visual Studio 10.0\VC\include\stdint.h(154): warning C4005: 'INT_LEAST64_MAX' : macro redefinition
4> d:\program files\mrpt-read-only\libs\base\include\mrpt\utils\pstdint.h(456) : see previous definition of 'INT_LEAST64_MAX'
4>D:\Program Files\Microsoft Visual Studio 10.0\VC\include\stdint.h(155): warning C4005: 'UINT_LEAST64_MAX' : macro redefinition
4> d:\program files\mrpt-read-only\libs\base\include\mrpt\utils\pstdint.h(455) : see previous definition of 'UINT_LEAST64_MAX'
4>D:\Program Files\Microsoft Visual Studio 10.0\VC\include\stdint.h(157): warning C4005: 'INT_FAST64_MIN' : macro redefinition
4> d:\program files\mrpt-read-only\libs\base\include\mrpt\utils\pstdint.h(493) : see previous definition of 'INT_FAST64_MIN'
4>D:\Program Files\Microsoft Visual Studio 10.0\VC\include\stdint.h(158): warning C4005: 'INT_FAST64_MAX' : macro redefinition
4> d:\program files\mrpt-read-only\libs\base\include\mrpt\utils\pstdint.h(492) : see previous definition of 'INT_FAST64_MAX'
4>D:\Program Files\Microsoft Visual Studio 10.0\VC\include\stdint.h(159): warning C4005: 'UINT_FAST64_MAX' : macro redefinition
4> d:\program files\mrpt-read-only\libs\base\include\mrpt\utils\pstdint.h(491) : see previous definition of 'UINT_FAST64_MAX'
4>D:\Program Files\Microsoft Visual Studio 10.0\VC\include\stdint.h(161): warning C4005: 'INTMAX_MIN' : macro redefinition
4> d:\program files\mrpt-read-only\libs\base\include\mrpt\utils\pstdint.h(395) : see previous definition of 'INTMAX_MIN'
4>D:\Program Files\Microsoft Visual Studio 10.0\VC\include\stdint.h(162): warning C4005: 'INTMAX_MAX' : macro redefinition
4> d:\program files\mrpt-read-only\libs\base\include\mrpt\utils\pstdint.h(394) : see previous definition of 'INTMAX_MAX'
4>D:\Program Files\Microsoft Visual Studio 10.0\VC\include\stdint.h(163): warning C4005: 'UINTMAX_MAX' : macro redefinition
4> d:\program files\mrpt-read-only\libs\base\include\mrpt\utils\pstdint.h(396) : see previous definition of 'UINTMAX_MAX'
4>D:\Program Files\Microsoft Visual Studio 10.0\VC\include\stdint.h(165): warning C4005: 'INT64_C' : macro redefinition
4> d:\program files\mrpt-read-only\libs\base\include\mrpt\utils\pstdint.h(331) : see previous definition of 'INT64_C'
4>D:\Program Files\Microsoft Visual Studio 10.0\VC\include\stdint.h(166): warning C4005: 'UINT64_C' : macro redefinition
4> d:\program files\mrpt-read-only\libs\base\include\mrpt\utils\pstdint.h(330) : see previous definition of 'UINT64_C'
3> slerp_unittest.cpp
3> CPose3DPDFGaussian_unittest.cpp
3> CPose3DQuatPDFGaussian_unittest.cpp
3> CPose3DQuat_unittest.cpp
3> CPose3D_unittest.cpp
3> CPosePDFGaussian_unittest.cpp
3> SE_traits_unittest.cpp
3> base64_unittest.cpp
3> filesystem_unittest.cpp
3> CSerializable_unittest.cpp
3> format_unittest.cpp
3> Generating Code...
3> test_mrpt_base.vcxproj -> D:\Program Files\mrpt-read-only\build\tests\Debug\test_mrpt_base.exe
========== Build: 2 succeeded, 2 failed, 19 up-to-date, 0 skipped ==========

Can you have a check about this? Thanks.

jlblanco
jlblanco's picture
Ey! I'm glad to see Microsoft

Ey! I'm glad to see Microsoft finally decided to incorporate the 1999's standard header stdint.h, although we had to wait until MSVC 2010...

Your error was caused for an alternative pstdint.h version used in MRPT, which conflicts with OpenKinect's headers which assume a real system's stdint.h.

I've fixed it in SVN.
It's tested MSVC9 & 10, but please update and let me know if you find any other problem. Thanks for reporting!

JL

photofantas
photofantas's picture
Thanks, JL. Everything works

Thanks, JL. Everything works now. It's great!

However, I found that there is an obvious performance difference between the kinect-3d-view program and the one Which I run directly from libfreenect to get the 3d view. When I run kinect-3d-view , it's only about 13 frams/s. But if I run the glpcview program provided by libfreenect, I can get a very fluent video. All this two test are done on the same laptop. So is it because mrpt provide some wrappers which impact the performance or there are some other reason cost this difference? Do you have some suggestions about how to improve the performance if I want to stick with just using mrpt ?

jlblanco
jlblanco's picture
Hi, that's great! On

Hi, that's great!

On performance... I'm interested in nailing down what's causing that, but I won't have access to a Kinect to do any testing for a while... Are you interested in helping debugging this?

One thing to try, is to enable the MRPT's CMake option MRPT_ENABLE_EMBEDDED_ENABLED_PROFILER, rebuild the kinect-3d-view application, then execute it like:

$ ./kinect-3d-view > LOG

keep it working for a while, then close it.

It will generate a detailed performance log of (almost) every mrpt function, hopefully having some clues... My wild guess is that the bottleneck may come from the image conversion to OpenCV's IPL format, but there're other potential bottlenecks.

JL

Xilconic
Xilconic's picture
I can second the findings of

I can second the findings of photofantas about this. When running the kinect-3d-view app I also have a fluctuating 15Hz. Although the actual fps seems to be even worse than this.
I also notice a lot of messages related to packets being lost while running this app, and that the resulting 3D reconstruction is not always shown, probably. That might be correlated with that the depth image totally black at that moment too.

Maybe I'll run this specs analysis of the kinect-3d-view as you suggested somewhere in the weekend with nothing else running on my laptop, and a second run with some of my normal programs running too. So I'll probably get back on this one in a week or something.

ciao,
Xilconic

jlblanco
jlblanco's picture
Thanks Xilconic! I'll wait

Thanks Xilconic! I'll wait for your report.

btw: are your tests under Windows? If they are, you could try the most recent version of mrpt (in SVN trunk) which can use libfreenect instead of CL NUI, which if I recall it right, had a poorer performance.

Cheers,
JL

Xilconic
Xilconic's picture
Okey, because I was having

Okey, because I was having quite some issues with anyting GUI related with MRPT, I've now got specs analysis of the kinect-3d-view.

Updated the SVN folder today, using OpenCV2.2 and OpenKinect driver (tried also getting CL NUI to work, but it seems to heavily conflict with the drivers installed with OpenKinect.).

The results:
--------------------------- MRPT CTimeLogger report --------------------------
FUNCTION #CALLS MIN.T MEAN.T MAX.T
------------------------------------------------------------------------------
mrpt::gui::CBaseGUIWindow::createWxWindow 1 298.5ms 298.5ms 298.5ms
mrpt::gui::CBaseGUIWindow::destroyWxWindow 1 57.6ms 57.6ms 57.6ms
mrpt::gui::WxSubsystem::wxMainThread 1 0.0ps 0.0ps 0.0ps
mrpt::math::homogeneousMatrixInverse 3093056 6.7us 14.6us 173.8ms
mrpt::opengl::CGridPlaneXY::render_dl 1 14.9us 14.9us 14.9us
mrpt::opengl::COpenGLScene::createViewport 4 38.0us 60.7us 82.6us
mrpt::opengl::COpenGLScene::getViewport 468 6.2us 22.6us 2.3ms
mrpt::opengl::COpenGLScene::insert 3 5.6us 13.7us 28.7us
mrpt::opengl::COpenGLScene::render 464 2.3ms 29.7ms 6.9 s
mrpt::opengl::COpenGLViewport::getByClass 466 6.7us 84.9us 454.7us
mrpt::opengl::COpenGLViewport::setViewportPosition 2 3.1us 3.1us 3.1us
mrpt::opengl::CRenderizable::getNewTextureNumber 56 12.8us 19.9us 133.4us
mrpt::opengl::CSetOfObjects::getByClass 464 10.3us 14.2us 291.5us
mrpt::opengl::CTexturedObject::assignImage 30 229.9us 1.4ms 12.6ms
mrpt::opengl::CTexturedObject::assignImage_fast 30 40.0us 101.2us 223.7us
mrpt::opengl::CTexturedObject::render_post 56 3.1us 3.4us 6.2us
mrpt::opengl::CTexturedObject::render_pre 56 15.4ms 37.2ms 123.4ms
mrpt::opengl::CTexturedPlane::render_texturedobj 56 7.2us 15.5us 374.1us
mrpt::slam::CLogOddsGridMapLUT::CLogOddsGridMapLUT 2 44.1us 75.4us 106.7us
mrpt::synch::CSemaphore::CSemaphore 5 5.6us 9.9us 18.0us
mrpt::synch::CSemaphore::release 5 5.6us 10.6us 17.4us
mrpt::synch::CSemaphore::waitForSignal 5 159.1us 61.2ms 289.6ms
mrpt::system::detail::createThreadImpl 2 365.9us 1.1ms 1.8ms
mrpt::utils::CImage::CImage 3320 17.4us 46.6us 29.2ms
mrpt::utils::CImage::changeSize 6922 4.1us 315.5us 5.9ms
mrpt::utils::CImage::copyFastFrom 30 8.2us 59.2us 186.8us
mrpt::utils::CImage::loadFromMemoryBuffer 3572 120.1us 3.6ms 100.9ms
mrpt::utils::CImage::operator () 26880 2.1us 5.0us 42.2ms
mrpt::utils::CImage::operator = 30 177.0us 1.3ms 12.6ms
mrpt::utils::CImage::setFromMatrix 30 25.8ms 40.8ms 182.5ms
mrpt::utils::CImage::~CImage 3320 4.6us 88.7us 14.7ms
mrpt::utils::CObservable::publishEvent 44 6.2us 19.4us 347.9us
mrpt::utils::CObservable::~CObservable 31 22.6us 49.8us 378.7us
---------------------- End of MRPT CTimeLogger report ------------------------

While running the program, it mentions a frame rate at about 16Hz and fluctuate about this number. However who what I get to see on screen, the Depth image is grabbed maybe once in the 10 seconds or something, while the RGB image is updates in about each 5 seconds or something. I also get a huge amount of warnings like this:

1760 remaining out of 40480
[Stream 70] Lost 1 packets
[Stream 70] Lost 5 packets
[Stream 70] Inconsistent flag 75 with 139 packets in buf (220 total), resyncing...
3520 remaining out of 10560
[Stream 70] Lost 2 packets
[Stream 70] Lost 4 packets
[Stream 70] Inconsistent flag 72 with 219 packets in buf (220 total), resyncing...

When I put this in comparison of what I get when using Nicolas Burrus' code, I'm able to get about 9.8Hz when doing the same thing. Reading and displaying both RGB as depth image in real time is at 26Hz on my laptop.
(see http://nicolas.burrus.name/index.php/Research/KinectRgbDemoV4?from=Resea..., download: http://sourceforge.net/projects/roboticslab/files/RGBDemo-0.4.0-Win32.zi...
Note: needs OpenKinect library and drivers installed)

Xilconic
Xilconic's picture
Today I've reran the program

Today I've reran the program and again logged the timing results out of it.
It's MRPT 0.9.4 (not a current SVN version nor the release) with wx_widgets-2.9.1, both having been built with Visual C++ 2010. I now far better results in terms of frame rate, being around 25Hz, on the same laptop. I think that because I had a different version of wx_widgets the privious time that that might cause some performance issues.
I ran it for a few minutes.

Here's the log:
--------------------------- MRPT CTimeLogger report --------------------------
FUNCTION #CALLS MIN.T MEAN.T MAX.T
------------------------------------------------------------------------------
mrpt::gui::CBaseGUIWindow::createWxWindow 1 1.4 s 1.4 s 1.4 s
mrpt::gui::CBaseGUIWindow::destroyWxWindow 1 56.3ms 56.3ms 56.3ms
mrpt::gui::WxSubsystem::wxMainThread 1 0.0ps 0.0ps 0.0ps
mrpt::math::homogeneousMatrixInverse 255258306 0.0ps 130.7ns 47.2ms
mrpt::opengl::CGridPlaneXY::render_dl 1 613.3us 613.3us 613.3us
mrpt::opengl::COpenGLScene::createViewport 4 3.1us 28.1us 88.3us
mrpt::opengl::COpenGLScene::getViewport 1452 0.0ps 2.0us 454.2us
mrpt::opengl::COpenGLScene::insert 3 0.0ps 11.8us 34.9us
mrpt::opengl::COpenGLScene::render 1448 2.5ms 78.9ms 410.7ms
mrpt::opengl::COpenGLViewport::getByClass 1450 513.2ns 16.0us 434.2us
mrpt::opengl::COpenGLViewport::setViewportPosit
ion 2 0.0ps 4.1us 8.2us
mrpt::opengl::CRenderizable::getNewTextureNumbe
r 1701 1.5us 2.9us 173.5us
mrpt::opengl::CSetOfObjects::getByClass 1448 1.5us 2.0us 46.2us
mrpt::opengl::CTexturedObject::assignImage 1013 522.4us 980.9us 10.1ms
mrpt::opengl::CTexturedObject::assignImage_fast 1013 3.6us 27.7us 5.0ms
mrpt::opengl::CTexturedObject::render_post 1701 513.2ns 725.9ns 3.6us
mrpt::opengl::CTexturedObject::render_pre 1701 5.3ms 16.0ms 168.7ms
mrpt::opengl::CTexturedPlane::render_texturedob
j 1701 3.6us 4.3us 223.2us
mrpt::slam::CLogOddsGridMapLUT::CLogOddsG
ridMapLUT 2 21.6us 63.6us 105.7us
mrpt::synch::CSemaphore::CSemaphore 5 1.5us 3.7us 7.2us
mrpt::synch::CSemaphore::release 5 2.1us 36.1us 162.7us
mrpt::synch::CSemaphore::waitForSignal 5 115.5us 277.5ms 1.2 s
mrpt::system::detail::createThreadImpl 2 237.6us 515.8us 793.9us
mrpt::utils::CImage::CImage 16715 1.0us 8.1us 41.2ms
mrpt::utils::CImage::changeSize 27985 0.0ps 39.0us 45.2ms
mrpt::utils::CImage::copyFastFrom 1013 513.2ns 21.8us 5.0ms
mrpt::utils::CImage::loadFromMemoryBuffer 10258 1.2ms 1.4ms 46.6ms
mrpt::utils::CImage::operator = 1013 518.3us 973.8us 10.0ms
mrpt::utils::CImage::setFromMatrix 1013 1.1ms 1.5ms 26.4ms
mrpt::utils::CImage::~CImage 16715 0.0ps 75.8us 83.9ms
mrpt::utils::CObservable::publishEvent 1034 0.0ps 313.2ns 15.4us
mrpt::utils::CObservable::~CObservable 1014 1.5us 2.8us 91.9us
---------------------- End of MRPT CTimeLogger report ------------------------

Xilconic
Xilconic's picture
Time logged the Kinect-SLAM

Time logged the Kinect-SLAM program, and it also gave me far better performance than in the past, with a framerate at around 22 Hz. The algorithm does get lost easily, but I think that's because it's an easy demo. The results of the logging are (with the same system configuration: MRPT 0.9.4 (not a current SVN version nor the release) with wx_widgets-2.9.1, both having been built with Visual C++ 2010; release version):

--------------------------- MRPT CTimeLogger report --------------------------
FUNCTION #CALLS MIN.T MEAN.T MAX.T
------------------------------------------------------------------------------
[CGenericFeatureTracker::trackFeatures] Complet
e iteration 1829 2.8ms 9.1ms 66.8ms
[CGenericFeatureTracker] Convert grayscale 1829 540.9us 1.1ms 46.7ms
[CGenericFeatureTracker] add new features 1829 2.1ms 4.7ms 62.3ms
[CGenericFeatureTracker] check KLT responses 365 0.0ps 20.2us 693.3us
[CGenericFeatureTracker] trackFeatures_impl 1829 17.4us 3.2ms 61.1ms
---------------------- End of MRPT CTimeLogger report ------------------------

--------------------------- MRPT CTimeLogger report --------------------------
FUNCTION #CALLS MIN.T MEAN.T MAX.T
------------------------------------------------------------------------------
mrpt::gui::CBaseGUIWindow::createWxWindow 1 190.7ms 190.7ms 190.7ms
mrpt::gui::CBaseGUIWindow::destroyWxWindow 1 57.5ms 57.5ms 57.5ms
mrpt::gui::WxSubsystem::wxMainThread 1 0.0ps 0.0ps 0.0ps
mrpt::math::KDTreeCapable::kdTreeClosestPoint2D
sqrError 148925 0.0ps 3.9us 16.6ms
mrpt::math::homogeneousMatrixInverse 197725865 0.0ps 130.7ns 94.4m
s
mrpt::opengl::CGridPlaneXY::render_dl 1 7.2us 7.2us 7.2us
mrpt::opengl::COpenGLScene::createViewport 3 7.2us 13.7us 24.1us
mrpt::opengl::COpenGLScene::getViewport 2097 0.0ps 6.0us 8.6ms
mrpt::opengl::COpenGLScene::insert 6 0.0ps 1.1us 5.6us
mrpt::opengl::COpenGLScene::render 2094 5.9ms 82.8ms 299.0ms
mrpt::opengl::COpenGLViewport::getByClass 2095 1.5us 73.3us 7.9ms
mrpt::opengl::COpenGLViewport::setViewportPosit
ion 1 2.1us 2.1us 2.1us
mrpt::opengl::CRenderizable::getNewTextureNumbe
r 1623 1.5us 3.5us 468.0us
mrpt::opengl::CRenderizable::renderTextBitmap 34908 3.6us 149.7us 64.9ms
mrpt::opengl::CSetOfObjects::getByClass 30051 513.2ns 4.8us 7.8ms
mrpt::opengl::CTexturedObject::assignImage 1831 484.4us 1.0ms 15.5ms
mrpt::opengl::CTexturedObject::render_post 1623 513.2ns 739.3ns 3.1us
mrpt::opengl::CTexturedObject::render_pre 1623 16.1ms 23.4ms 118.4ms
mrpt::opengl::CTexturedPlane::render_texturedob
j 1623 3.6us 4.6us 330.0us
mrpt::scanmatching::leastSquareErrorRigidTransf
ormation6D 1543112 0.0ps 33.0us 43.1ms
mrpt::scanmatching::leastSquareErrorRigidTransf
ormation6DRANSAC 412 6.9ms 69.5ms 153.2ms
mrpt::slam::CColouredPointsMap::internal_insert
Observation 47 241.2ms 313.5ms 402.4ms
mrpt::slam::CLogOddsGridMapLUT::CLogOddsG
ridMapLUT 2 21.6us 35.9us 50.3us
mrpt::synch::CSemaphore::CSemaphore 5 1.5us 3.4us 6.7us
mrpt::synch::CSemaphore::release 5 1.5us 3.0us 4.6us
mrpt::synch::CSemaphore::waitForSignal 5 102.6us 39.7ms 184.0ms
mrpt::system::detail::createThreadImpl 2 196.6us 255.1us 313.6us
mrpt::utils::CCanvas::textOut 104091 1.5us 11.8us 20.9ms
mrpt::utils::CFileGZInputStream::CFileGZInputSt
ream 6 148.3us 530.2us 1.4ms
mrpt::utils::CFileGZInputStream::open 6 145.2us 525.9us 1.4ms
mrpt::utils::CFileOutputStream::CFileOutputStre
am 6 643.5us 2.1ms 8.7ms
mrpt::utils::CImage::CImage 25583 0.0ps 4.1us 4.9ms
mrpt::utils::CImage::changeSize 42128 0.0ps 23.5us 19.2ms
mrpt::utils::CImage::loadFromMemoryBuffer 11528 1.2ms 1.4ms 20.5ms
mrpt::utils::CImage::operator = 5493 468.5us 977.1us 57.3ms
mrpt::utils::CImage::setFromIplImage 3658 0.0ps 898.1ns 338.2us
mrpt::utils::CImage::setFromIplImageReadOnly 3658 0.0ps 332.5ns 115.0us
mrpt::utils::CImage::~CImage 32899 -513185.5ps 63.9us 27.
5ms
mrpt::utils::CObservable::publishEvent 1993 0.0ps 417.9ns 214.5us
mrpt::utils::CObservable::~CObservable 1880 1.5us 2.7us 220.7us
mrpt::vision::CFeatureList::getMaxID 1038 1.5us 46.5us 7.6ms
mrpt::vision::CFeatureTracker_KL::trackFeatures
_impl 1829 14.9us 3.2ms 61.1ms
---------------------- End of MRPT CTimeLogger report ------------------------

jlblanco
jlblanco's picture
Thanks for the report, I'm

Thanks for the report, I'm glad to see some performance improvement... there were several changes with that idea between 0.9.3 & 0.9.4.

I just realized of the quite large average delay of semaphores ::waitForSignal(), that may mean that the program threads *could* be re-thought to get an even smoother run and avoid waitings...

JL

Log in or register to post comments
Subscribe to Comments for "Compile error under windows with the latest svn checkout "