Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SIFT CPU #14

Open
X-Bar opened this issue May 19, 2014 · 1 comment
Open

SIFT CPU #14

X-Bar opened this issue May 19, 2014 · 1 comment

Comments

@X-Bar
Copy link

X-Bar commented May 19, 2014

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
Copy link
Contributor

bmagyar commented May 20, 2014

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

  • SiftGPU is using OpenGL for extracting sifts
  • The detector is using a RANSAC for obtaining the pose estimate, where matching SIFTs are also done using OpenGL
  • The tracker is running OpenGL for image processing
  • The tracker is running OpenGL for the particle filter

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants