To fulfill the users' requests, we must plan a schedule
of when a robot will execute each task in accordance with the
constraints specified by the users. We schedule the robots using a
mixed integer programming approach.
To execute tasks, CoBot uses a finite state machine. Based on its location, and the locations of its destinations, it speaks and displays information on its screen, navigates to locations and creates subplans to navigate to elevators and to seek help when it requires it.