pal-robotics / perception_blort

opencv
15 stars 14 forks source link

SIFT CPU #14

Open X-Bar opened 10 years ago

X-Bar commented 10 years ago

Hello,

I am looking at using BLORT without a gpu. Is it possible to compile BLORT with SIFTCPU or simply without GLSL or CUDA? I am asking because I would like to use BLORT with a PR2 that does not have a GPU.

Thanks

bmagyar commented 10 years ago

Hi,

I've been exploring the possibility to have a CPU 2 years ago when I was making this package.

Computing the SIFTs on a CPU is no problem with OpenCV, but BLORT has other parts where OpenGL is called.

Related reading: http://pal-robotics.com/publications/msc_blort_bence_magyar.pdf , please read page 19 before moving on.

Let me break it down where and how OpenGL is used. I'm going to use the

Back in the day I implemented the image processing part of BLORT with OpenCV, that one I can contribute with, but you will have to implement the rest if you'd like to have it without GPU.

We are running blort in REEM by using the integrated graphics card that's on the computer for the upper body (it has a screen which is connected to this integrated gpu) and it performs well. Maybe you can find something similar on the PR2, or try using mesa for software rendering, it can also give you an opengl context though I never really got it to work on my computer (short on time).

...or you can run blort on a laptop that has the ROS_MASTER_URI connected to the robot. With this you will lose the online tracking feature but for pose estimation and refinement it's good enough, serves for tabletop grasping for example.