Source: http://www.dms.umontreal.ca/~rousseac/robots.pdf