Some tweaking of the motion controller behavior. The logic node now tells the robot to turn around when facing a dead end. It should be able to process sensor data before making a decision: some bad decisions are being made because of it using the first value it gets. I added a delay between the node's decisions so they are more easily identified when testing. The motion controller is not able to keep a specified distance from the wall it's following. The logic node shouldn't always pick the same place to turn, to ensure that we cover most of the map.