The navigation system was previously creating paths with abrupt turns in them, in this video you can see that I've used Bezier curves to smooth out the paths.
Although it doesn't quite get it right first time, there is an additional short term route planner (the red line) designed to plan around local obstacles that are not present in the map. This planner re-plans the next few meters every second.
There is one further improvement here, the robot no-longer navigates in local maps and as a result doesn't have to stop constantly to switch maps.
The robot still drives quite conservatively (slow) when near obstacles, as can be seen.