SLAM on Windows

Hi all,  I am searching for a Simultaneous Localisation And Mapping algorithm for a project.  There seem to be many open source,  but they are all Linux only!  If anyone is aware of a windows /visual studio project that is available to play with,  in any programming language,  please point me at it!

Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

If you do a Google search from SLAM A 00  you will find a set of lectures on this topic by Claus Brenner.
The relevant Python code is also available.  You should be able to run Python on a Windows machine.
There are several other SLAM lectures available.  The math involved is a surprisingly dense.
chemicalx001Author Commented:
Dense indeed! Thanks for the link,  I will look into the course.  Possibly I am over thinking what I need though.  
I just want to be able to move a laser scanner around and accurately map its  trajectory.
Is slam the best way to approach this?
>>  I just want to be able to move a laser scanner around and accurately map its  trajectory.

What is a laser scanner?  
What are its specifications: operating requirements, range, accuracy, output data format, ...?

How are you going to move it?  
How do you determine its position and orientation?  Dead reckoning and a compass, or GPS?

What is your operating environment?  
A table top, a room, a parking lot, or Sherwood Forest?
Do you need to avoid or map obstacles?

What are your accuracy requirements?
Cloud Class® Course: SQL Server Core 2016

This course will introduce you to SQL Server Core 2016, as well as teach you about SSMS, data tools, installation, server configuration, using Management Studio, and writing and executing queries.

chemicalx001Author Commented:
Hi again. A laser scanner such as this one:

it is basically a spinning laser that constantly scans and returns distance.

the output data is returned as angle and distance, eg:

angle: 350.58  distance: 120

Imagine that unit, mounted on a cube. The cube is handheld, so any move is possible. I hope to use the lidar data from the laser to calculate the translation and rotation of the cube in realtime by measuring the changes in distance from each scan. The first scan will map the surroundings, the second, read the change and therefore work out the distance traveled.
That is the plan, anyway!

thanks again!
How fast does the laser spin?  
How many data points to you get per scan?  [Angular Resolution]
What are the maximum range and the range accuracy and resolution?

Work through a simple 2-D case first.
Suppose you are in a triangular room (three different length sides).  
If you take the first scan with Scanner 0 => North, and keep it level, you should be able to tell where you are in the room and what direction the scanner is pointing.  This is just simple trigonometry.  All you need are the distances to the three corners.

If the environment gets more complicated: if targets can move, or vary vertically, or if you need to tilt the scanner to get 3-D information then the math gets much hairier.

You also need to decide on your mission.  Are you trying to map the environment, or calculate your trajectory in it?
chemicalx001Author Commented:
The speed is adjustable,  but can be  around 470 rpm,  and it gives 2000 samples per second.

Distance range: 0.2 - 6m
Angular range: 0-360°
Distance resolution <0.5mm (1% of the distance)
Angular resolution: =<1°
Sample duration: 0.5 miliseconds
Sample frequency: >=2000Hz
Scan rate: 5.5Hz

No need for mapping,  I just need the trajectory.  
I can get my head around the theory,  until the sensor is tilted.  Then it boggles the mind.
Is it slam that I need to be looking at?  Or is there a simpler (but possibly not much simpler)  way to just get the translation /rotation data without mapping?
You really need to describe (in detail and in English) what you are trying to do.
Not for me, but for yourself.  You can't solve a problem like this until it is well specified.

If the scanner doesn't have a tilt monitor, how are you going to deal with the data?
If you don't have a compass, you can't get an absolute direction.  

If your environment consists of an infinite horizontal plane with two stationary vertical poles,
and you can keep the scanner level,
then you can find your relative position with very simple trigonometry.

You just need to define one pole as the North Pole, and the line between the two poles as the Zero Meridian.
You can find level by standing still and adjusting the scanner to minimize the two distances.
This would give you a triangle with direct measurements of two sides and the included angle.
The Law of Sines would give you a solvable set of three equations and three unknowns (the distance between the poles and the other two angles).
The the length of the side between the scanner and the North Pole and the angle between that side and Prime Meridian define you position in polar coordinates.

If your environment contains just a coffee table . . .
It looks like four poles to a short robot, which may be fine.
It looks like a block to a table-top height robot, with is probably fine.
But it may be invisible to a tall robot, like a blind person with a cane and clothes line, not good at all.

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
chemicalx001Author Commented:
Sensible.  Will get a more solid plan together first.  Thanks for your help.
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.