If I had to implement a path exploration/finding algorithm on a robot, I would follow these steps:
Make sure you can detect your position. You need to be able to record your position otherwise you have no reference for the exploration. You don't need a global positioning system (like GPS), a local one is more than enough in your case. This means that the robot must know that it has been switched on in position (0,0). If you go straight for 5 meters, you'll update it to (5,0) or something like that.
Knowing how much you moved and towards where is the difficult thing.
Once you can know where you are, it is time to record it. As you want to explore the environment, you might want to create a tree with states on the nodes. The node can be open if you can still explore around it, closed if the exploration has been done.
To get the path from a node to another, A* works more than enough.
To know what is around you, you can use the sensors to explore the surroundings and know the position of the obstacles.
This is the general idea:
Tree tree = new Tree()
Node first = new Node(Here)
tree.Add(first)
Node current = first
while(true) {
ExploreAround(current)
var nodes = CreateSurroundingNodes()
tree.Add(nodes)
current.State = closed
var next = PickNearestOpenNode()
MoveTo(next)
WaitUntilRobotIsOn(next)
current = next
}
In my bachelor thesis I was implementing a very similar algorithm on a drone on Unity3D. You can find the package here. You can get an idea out of it.
Here is a video of how it worked: https://youtu.be/Xrh9-4Bfcew
