# Relation between GraphSLAM and Iterative closest Point algorithm

I have lots of doubts about GraphSLAM, The GraphSLAM Algorithm with Applications to Large-Scale Mapping of Urban Structures. When I practically implement it I get matrix singularity error.

I taken the data set from UTIAS Multi-Robot Cooperative Localization and Mapping Dataset.

Now this dataset contain 75000 odometer data and 5000 sensor data. Correspondence are known correspondence. As per the algorithm initially I think the information matrix should be 75015x75015 matrix. But practically, this is impossible to implement. I am using universal java matrix package.

Then I think the robot may come to the same position after roaming certain amount of time. So I have to identify the location which is same as previous location.

I watched Lecture 7: Visual Navigation for Flying Robots where there is a description of Iterative Closest Point algorithm. This algorithm identity the same location.

But I have some doubts about the lecture. The prof said

Given: Two corresponding point sets (Clouds)

$$P = \{p_1,...,p_n\}\text{ and }Q = \{q_1,...,,q_n\}$$

Where does he get those points? Why there is there two data sets? Does $P$ represent X axis and $Q$ represent Y axis?

I have odometer and sensor raw data. From which one do I create this point cloud?

Do I really need to use this technique (ICP) for my implementation?

• @EllenaMori - Not necessarily two robots, but two point clouds. A point cloud is just indexed sensor data. Take the vehicle position and orientation (pose), build a 4x4 transform $T$ that describes the current pose, and use that to transform the raw sensor data back to a world coordinate. As the vehicle traverses space the sensor data gets indexed back to different coordinates and builds the 3D data set ("cloud"). There are lots of ways to do loop closure; ICP is just one of them. You would need to test current data against all previous data, though, as loop closure can happen anywhere. Aug 6, 2018 at 18:05