I had a go at route planning with OSM. There's a little bit about it here with the code: http://www.scottwaye.com/linuxbmw/satnav/