Tuesday, October 1, 2013

Discussion on NARF features...

Thanks Bastian Steder for your nice replies to my pestering emails :)


Paper about NARF:
- B. Steder, R. B. Rusu, K. Konolige, and W. Burgard. 

Point Feature Extraction on 3D Range Scans Taking into Account Object Boundaries


or his PhD-Thesis:



- Bastian Steder. Feature-Based 3D Perception for Mobile Robots.



You can find those on his homepage:


The rest of the article is the reply I got from Bastian to my questions.

> I was going through the paper on NARF key points and it uses range image

> representation of pointcloud in key point extraction.

> 1. Does it mean that NARF key points can only be extracted on point
> clouds that can be converted to range images?

> 2. Can Un-organized point clouds be converted to range images?

> 3. Is the statement below true,

> "The range image that is visualized in pcl tutorial uses spherical
> projection for better view only. Essentially range image is depth image
> where pixels positions contain depth information. The range image can be
> viewed as normal planar image also but the points not in 180 field of
> view cannot be displayed."



it is correct that NARFs can only be extracted from range images. But a 
range image can be created both from organized and unorganized point 
clouds, as long as you can provide a viewpoint.
I am not sure if I understand the statement in 3. correctly, but there 
are two RangeImage classes. RangeImage uses spherical projections and 
can therefore represent full 360deg views. RangeImagePlanar uses a 
pin-hole camera model with a projection plane and can therefore only 
represent scenes with less than 180deg field of view.



>Goal: One thing I found is that NARF features are not that stable on
> Kinect data, so I was wondering if I can make them more stable. 


I noticed that too, but was not able to fix it in the original NARF method. The problem is that the borders ob objects in the Kinect-Data 'flicker' a lot and are not stable. This leads to big differences in keypoint positions between frames.
I am working on a new keypoint method that should work better in this context, but it is not finished and therefore also not published yet.


>  I guess that you had lidar point cloud in mind
> while developing NARF's.  But sometimes there is a possibility of point
> clouds from lidar like velodyne being very sparse.
> 1.So how does sparse point clouds effect the NARF's stability and  no.
> of features extracted?


Sparsity itself is typically not a problem. I used the method on Velodyne data before. The only thing you have to keep in mind is that you need to choose a large enough support size that there are actually enough points for the estimation process.


> 2. Could you give any suggestion on improving the algorithm and any
> drawbacks which you found on the current method from your experiences


As mentioned above, the method does not work so well on Kinect-like sensors, mainly because of the unstable borders. If you somehow make the border positions more stable that might help, but I do not have a good idea how to do that.


> 3. Currently I am in the beginning stage of understanding your
> algorithm. I was not able to find the math behind converting point cloud
> to range image. Could you please point where can I get theory on
> converting point cloud to range image.


Converting a point cloud into a range image is typically done using a simple z-buffer. This means that all points are converted into pixel coordinates and ranges and then every pixel is the minimum of the ranges that fall into it.


>  4.I went through the tutorial on creating range image from point cloud
> in PCL. We have to set a parameter "angular resolution". Does this
> parameter change the number the number of pixels in the range image
> generated from the point cloud ? If yes, then how can I get the range
> image with all the information I have in point cloud and not missing any
> data? Will setting a small value interpolate any data?



Yes, this conversion step does not keep the original number of pixels. This is a drawback you have to live with if you want to use this method. Range images naturally encode a certain perspective and therefore not encode 3D structures that are occluded from other structures given the perspective.
Yes, the angular resoultion parameter changes the number of pixels. The method in PCL includes some interpolation, but if the resolution of your cloud is much lower than the one of the range image you will have empty pixels in there.



> 5. One more pre-requisite is "view-point" information to generate range
> image from point cloud. If I am planning to use NARF's for pose
> estimation by feature matching, then I actually dont know the current
> "pose" or "view point" and that is what I am trying to estimate in pose
> estimation process. So does it mean that NARF's cannot be used for
> pose-estimation by feature matching. Please correct me, if I am missing
> something fundamental :(



Pose estimation is basically what I use NARFs for. :-)
The viewpoint I am talking about is the sensor position in the coordinate frame of your scan. If the scan is in the coordinate frame of the sensor (which is often the case) this viewpoint is typically just (0,0,0). If you converted the scan into the coordinate system of your robot, e.g., it is the position of the sensor on the robot.
But you can also choose another viewpoint to simulate another perspective.
I would propose to just try the method on one of your scans and visualize the resulting range image.


Hope that this article is useful :-)



Wednesday, September 25, 2013

Difference between Organized and Unorganized Point cloud

source: http://stackoverflow.com/questions/18994680/can-anyone-explain-the-difference-between-organized-and-unorganized-point-cloud

Question: What is the difference between organized point cloud and an unorganized one?
Am I right in thinking that a point cloud is a column of [x,y,z] values? Than what is the difference in the structure of the point cloud if its organized or unorganized ?
How does it affect the later processing steps like filtering, normal estimation, registration etc ?
Answer:See the notes on this page on HEIGHT and WIDTH of a point cloud: Point Cloud File Format
An organised point cloud is organized as a 2D array of points with the same properties you'd expect if the points were obtained from a projective camera, like the Kinect, DepthSense or SwissRanger. In PCL the points array of a point cloud is actually a 2D array but one of those dimensions is only used for representing organised point clouds.
In both organised and unorganised point clouds, all of X Y and Z are provided for each point, but the memory layout of organised point clouds is that of a 2D array. The memory layout of the points then is closely related to the spatial layout as represented by these XYZ values.
Algorithms that work on unorganised point clouds will generally work on organised point clouds (since the 2D array of points is packed and can be interpreted as a 1D array) but specialised algorithms can be designed to work on organized point clouds. An example is the use of the organized property of a point cloud to speed up the process of calculating normals: Integral Images Normal Estimation Tutorial


Thursday, September 12, 2013

Good Will Hunting, a must watch !!!

Yesterday night, I wanted to start my work after just seeing some movie scenes from Youtube. So i started to think of some movie names that come to my mind and it was Good Will Hunting. Having seen this movie before, i wanted to see some good scenes from this. The first link on the youtube was the scene in which , the Will Hunting(Matt Damon) will be asked by Robin Williams what he wanna do with his life ? He gives some bull shit answer by saying that he wants to become a shepherd. Robin William tells him that he doesnt even know and you have some stupid answer for every question.



This scene was so good that temped me to see the full movie. So I started to see the full movie.

I guess that this movie is based on a real life story. Matt Damon is a prodigy who is exceptionally good in math. But his childhood and many incidents from his life make him feel abandoned by the ones who should have loved him. Thus he hangs out with workers and not "intellectual"  people who work for a construction company. Robin says in the movie that he does that becoz he finds trust and loyalty in those people.

Matt Damon used to work as a janitor at MIT and a Prof. Gerald identifies this genius and wants him to go to great places and solve cutting edge problems. The problem with Matt is that he engages in lot of street fights but gets rid of them from the court arguing some previous incidents from history orcivilian rights from the constitution of United states of America. Prof. Gerald gets Matt from prison on two conditions that he ll do math and goes to a therapist.

Prof. Gerald finds Robin who is a psychologist by his profession and the whole movie is about how Robin helps Matt to make good choices in his life. 

Tuesday, September 10, 2013

Saturday, August 31, 2013

Saajna Song Lyrics

Saajna Lyrics

Saajna.. Saajna...
Ek tujhko hi bas dekh kar
Bhooli mujhko hi meri nazar
Tujhko shayad nahi hai khabar
Tujhko jeete hain hum kis kadar

Jude jo tere khawab se
Toh toote hum neend se
Yeh kaisa tera ishq hai Saajna
Tu haathon mein toh hai mere
Hai kyun nahi laqeeron mein
Yeh kaisa tera ishq hai Saajna

Tere bina kabhi raatein na ho meri
Tere kareeb ho, mere yeh din sabhi (x2)

Jude jo tere khawab se
Toh toote hum neend se
Saajna Lyrics

Saajna.. Saajna...
Ek tujhko hi bas dekh kar
Bhooli mujhko hi meri nazar
Tujhko shayad nahi hai khabar
Tujhko jeete hain hum kis kadar

Jude jo tere khawab se
Toh toote hum neend se
Yeh kaisa tera ishq hai Saajna
Tu haathon mein toh hai mere
Hai kyun nahi laqeeron mein
Yeh kaisa tera ishq hai Saajna

Tere bina kabhi raatein na ho meri
Tere kareeb ho, mere yeh din sabhi (x2)

Jude jo tere khawab se
Toh toote hum neend se
Yeh kaisa tera ishq hai Saajna
Tu haathon mein toh hai mere
Hai kyun nahi laqeeron mein
Yeh kaisa tera ishq hai Saajna

Tu saath hai agar
Tanha kyu hai safar
Itna toh bata mujhe
Kyu hai mujhse bekhabar (x2)

Jude jo tere khawab se
Toh toote hum neend se
Yeh kaisa tera ishq hai Saajna
Tu haathon mein toh hai mere
Hai kyun nahi laqeeron mein
Yeh kaisa tera ishq hai Saajna



Read more: http://www.lyricsmint.com/2013/02/saajna-falak-shabir-i-me-aur-main.html#ixzz2dZHj4K6u


Yeh kaisa tera ishq hai Saajna
Tu haathon mein toh hai mere
Hai kyun nahi laqeeron mein
Yeh kaisa tera ishq hai Saajna

Tu saath hai agar
Tanha kyu hai safar
Itna toh bata mujhe
Kyu hai mujhse bekhabar (x2)

Jude jo tere khawab se
Toh toote hum neend se
Yeh kaisa tera ishq hai Saajna
Tu haathon mein toh hai mere
Hai kyun nahi laqeeron mein
Yeh kaisa tera ishq hai Saajna


Read more: http://www.lyricsmint.com/2013/02/saajna-falak-shabir-i-me-aur-main.html#ixzz2dZHj4K6u

Thursday, August 29, 2013

Pose Estimation between two Key-frames using PCL

Passthrough Filter

Voxel Grid Filter

KeyPoint Extraction Methods

Descriptor extraction Methods in PCL

Estimating Correspondences by matching Feature Descriptors

RANSAC based false Correspondence Rejection

Sample Consensus based Initial Alignment

Pose Refinement using Iterative Closest Point Algorithm with an initial guess from previous step


Tuesday, August 27, 2013

Undo Send : Nice feature by Google to cancel the sent email

How To: Recall a Sent Mail on Gmail

Posted on Aug 27, 2013 under General

How many times have you sent out an email only to later realise your mistake? Haven’t you wished you could just cancel the sent mail or recall it? Well, using this little known Gmail feature, you actually can! Gmail lets users recall emails sent for a specific period after the mail is sent. You just need to go to settings and activate it. Follow the steps listed to recall your sent email.

1. Click on the Gear button on the top right corner of your screen. The Gear button appears right below your image for the Google Plus profile. Select ‘Settings’ from the dropdown menu.

2.You will now be presented with multiple tabbed options. Choose ‘Labs’ from the options present (third from the right) and scroll towards the bottom.

3.Third from the bottom, you will be presented with an option to ‘Undo Send’. Select Enable to the right of that option.

4. Scroll right to the bottom of the screen and click on the ‘Save Changes’ button. Wait, your Undo Send option might be activated, but there’s still more to be done.

5. Once you click ‘Save Changes’, you will be taken to your Inbox by default. Follow the first step and go to Settings option.

6. You will land on the ‘General’ tab by default. Scroll down the tab and somewhere in the middle, you will see the option to ‘Undo Send’. The option will already be ticked, confirming that your selection. Right below the tick mark, you can then choose the amount of time in which you can recall a sent email. You can choose anywhere from 5 seconds to 30 seconds.

7. Once you choose your time, scroll to the bottom and click on ‘Save Changes’.

source: http://goo.gl/49pQmo - indiatimes.com

source: 
Error 1 :

This occurred after downloading ros_comm package.

sai@sai-HP-EliteBook-8460w:~$ roscore
... logging to /home/sai/.ros/log/0ac69688-0f30-11e3-889a-e4115b3c2706/roslaunch-sai-HP-EliteBook-8460w-2955.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1gb .="" p="">
started roslaunch server http://sai-HP-EliteBook-8460w:44124/
ros_comm version 1.8.11


SUMMARY
========

PARAMETERS
 * /rosdistro
 * /rosversion

NODES

auto-starting new master
process[master]: started with pid [2971]
ROS_MASTER_URI=http://sai-HP-EliteBook-8460w:11311/

setting /run_id to 0ac69688-0f30-11e3-889a-e4115b3c2706



ERROR: rosout is not built. Please run 'rosmake rosout'



failed to start core service [/rosout]
[master] killing on exit
sai@sai-HP-EliteBook-8460w:~$




Solution:

Just delete the ros_comm package
Error 1:

 Linking CXX executable ../bin/feature_matching
  /usr/bin/ld: CMakeFiles/feature_matching.dir/src/feature_matching.o: undefined reference to symbol 'vtkSmartPointerBase::operator=(vtkObjectBase*)'
  /usr/bin/ld: note: 'vtkSmartPointerBase::operator=(vtkObjectBase*)' is defined in DSO /usr/lib/libvtkCommon.so.5.8 so try adding it to the linker command line
  /usr/lib/libvtkCommon.so.5.8: could not read symbols: Invalid operation
  collect2: ld returned 1 exit status
  make[3]: *** [../bin/feature_matching] Error 1


Solution 1:


include_directories(/usr/include/vtk-5.8)

target_link_libraries(pcl_viz ${PCL_LIBRARIES} libvtkCommon.so libvtkFiltering.so libvtkRendering.so)


Error 2:

In file included from /home/sai/fuerte_workspace/perception_pcl_new/pcl16/include/pcl-1.6/pcl16/point_cloud.h:43:0,
                   from /home/sai/fuerte_workspace/perception_pcl_new/pcl16/include/pcl-1.6/pcl16/io/pcd_io.h:43,
                   from /home/sai/fuerte_workspace/pcl_ros_feature_matching/src/feature_matching.cpp:4:
  /home/sai/fuerte_workspace/perception_pcl_new/pcl16/include/pcl-1.6/pcl16/common/eigen.h:84:27: fatal error: Eigen/StdVector: No such file or directory
  compilation terminated.


Solution 2:

include_directories(/usr/include/eigen3)

Error 3:

 Linking CXX executable ../bin/feature_matching
  /usr/bin/ld: CMakeFiles/feature_matching.dir/src/feature_matching.o: undefined reference to symbol 'vtkAppendPolyData::New()'
  /usr/bin/ld: note: 'vtkAppendPolyData::New()' is defined in DSO /usr/lib/libvtkGraphics.so.5.8 so try adding it to the linker command line
  /usr/lib/libvtkGraphics.so.5.8: could not read symbols: Invalid operation

Solution 3:

target_link_libraries(feature_matching ${PCL_LIBRARIES} libvtkCommon.so libvtkFiltering.so libvtkRendering.so libvtkGraphics.so)

The hardest part is starting. Once we get that out of the way, we'll find the rest of the journey much easier.

--Simon Sinek

Monday, August 26, 2013

Some points from APJ Abdul Kalam's Speech at IISc

Source: My friend Aditya kskv post in Facebook

Some of few points that I remember from Dr A. P. J. Abdul Kalam @ IISc

Be the Captain for the problem...and the defeat the problem 

Not dreaming high in the teens is a crime 

work work work...work harder...

If the country GDP can be improved in the coming seven years still vision 2020 is possible...

Happy home will reduce the corruption
and the equation is

Happy home= Spritual book + Happy mother+ Transparent Father

If mother is happy family will be happy, if family is happy society will be happy if society is happy state will be happy if state is happy India will be happy

Those who believe what we believe offer their blood, sweat and tears. Those who don't believe what we believe demand more money or glory.

-- Simon Sinek

Sunday, August 25, 2013

In the End by Linkin Park

"In The End"

(It starts with one)
One thing I don't know why
It doesn’t even matter how hard you try
Keep that in mind, I designed this rhyme
To explain in due time
(All I know)
Time is a valuable thing
Watch it fly by as the pendulum swings
Watch it count down to the end of the day
The clock ticks life away
(It’s so unreal)
Didn’t look out below
Watch the time go right out the window
Trying to hold on but didn’t even know
I wasted it all just to watch you go

I kept everything inside and even though I tried, it all fell apart
What it meant to be will eventually be a memory of a time when...

I tried so hard
And got so far
But in the end
It doesn't even matter
I had to fall
To lose it all
But in the end
It doesn't even matter

One thing, I don’t know why
It doesn’t even matter how hard you try
Keep that in mind, I designed this rhyme
To remind myself how
I tried so hard
In spite of the way you were mocking me
Acting like I was part of your property
Remembering all the times you fought with me
I’m surprised it got so (far)
Things aren’t the way they were before
You wouldn’t even recognize me anymore
Not that you knew me back then
But it all comes back to me
In the end

You kept everything inside and even though I tried, it all fell apart
What it meant to me will eventually be a memory of a time when...

I tried so hard
And got so far
But in the end
It doesn’t even matter
I had to fall
To lose it all
But in the end
It doesn’t even matter

I've put my trust in you
Pushed as far as I can go
For all this
There’s only one thing you should know
I've put my trust in you
Pushed as far as I can go
For all this
There’s only one thing you should know

I tried so hard
And got so far
But in the end
It doesn’t even matter
I had to fall
To lose it all
But in the end
It doesn’t even matter



One of the best songs composed on New York