Recently I've become really fascinated by the idea of manifold learning, the main idea behind it being that most data sets are actually too high-dimensional, and we can reduce the dimension of the data by viewing it as a manifold.
Since I need to start preparing for a senior thesis, I decided that I want to try and implement some manifold learning techniques in order to better understand how all of it currently works. The simplest (at least at first glance to me) technique was called a "Self Organizing Map".
Most C++ implementations of SOMs are restricted to two dimensions, and I wanted to understand SOMs for myself; so I decided to make my own. The current iteration of it is here.
But what is a SOM?
Lesson 5 is out here!
And that about concludes the ROS/Gazeebo tutorial I've been working on, I'm gonna go back and improve it a bit, but that's the basic outline.
I've added a guide on how the example solution to the homework of lesson 3 works, it is now up here as lesson 4.
Our little rover can move and steer now!
The "homework" for part 3 of the tutorial ended up being much harder than I thought it would be (although a lot of that was me being too lazy to do it well at first, so I had to redo it), so part 4 of the tutorial will be going over this example solution to part 3, and then we will continue with doing some other plugin types (sensors are coming soon).
Lesson three can be found here
In it we finally get around to making our robot move.