Meine 10 Cent dazu...

Also, zunächst einmal würde ich bestimmen in welcher Umgebung der Roboter kellnern muss. Ist es eine offene Fläche mit stehenden Gästen, oder eine Art Restaurant Situation mit vielen verteilten Tischen?
Am einfachsten wird es, wenn man ein Positionserkennungssystem für den Infrage kommenden Raum baut und dem Roboter einen Lageplan mit allen fest stehenden Gegenständen eingibt (auf diese Weise wüsste er wo welcher Tisch ist und welchen Tisch er schon angefahren hat).

hinzu kommt, er braucht ein Kollsions vermeidungssystem und eine Möglichkeit Menschen zu erkennen (nicht zu unterscheiden).
Kollisionsvermeidung ist dabei noch eines der einfachsten Systeme, die Erkennung von Personen kann über PIR (Personal IR) Sensoren erfolgen, die auf Körperwärme reagieren und damit eine Möglichkeit bieten zwischen toten Hindernissen und Menschen die im Weg stehen zu unterscheiden.
Bilderkennung würde ich ausschliessen, Spracherkennung ist viel einfacher und besser ausgereift.
eine situation könnte dann wie folgt aussehen:

Der Roboter fährt einen bestimmten Kurs ab, den er aufgrund der eingespeisten Karte der Räumlichkeiten errechnet hat (oder der festgelegt wurde). Dabei umfährt er feste und dynamische Hindernisse mit Hilfe der Karte und seiner Sensoren.
Steht vor ihm ein dynamisches Hindernis (sprich etwas das kein Hindernis ist, das aufgestellt und auf der Karte verzeichnet wurde, wie z.B. ein Tisch) dann überprüft er, ob dieses hindernis ein Mensch ist (rückmeldung von den PIR Sensoren auswerten), oder nicht.
Ist es kein Mensch, dann umfährt er das Hindernis einfach und fährt mit seinem Weg fort. Ist das hindernis ein Mensch, dann lässt er seinen Spruch ab (z.B. eine Auflistung von dem was er anbietet, oder je nach Situation die bitte aus dem Weg zu gehen) und setzt seinen Weg dann fort, sobald die Person nicht mehr im Weg steht(das lässt dieser Person dann Zeit sich etwas vom Tablett zu nehmen).
Dabei ist es eine natürliche Reaktion eines Menschen einem Kellner Platz zu machen, wenn er gerade nichts von ihm will.
Stehen in diesem Raum auch feste Tische für die Gäste, dann werden diese angesteuert. Der Roboter bleibt dabei in unmittelbarer Nähe des tisches stehen und überprüft wieder, ob sich Menschen an dem tisch befinden (PIR Sensoren), wenn ja, dann fragt er nach einer bestellung, dabei hilft die Spracherkennung zu entscheiden, ob ein Mensch soeben was bestellt hat, oder ob er noch Zeit braucht sich zu entscheiden. Dabei ist es leicht für den Roboter sich zu merken an welchem Tisch er schon eine Bestellung entgegengenommen hat, da diese ja auf der Karte verzeichnet sind und ihre Position nicht ändern. Um zu bemerken, wann die Personen den Tisch verlassen haben und eventuell neue Gäste angekommen sind, fährt er auf seinem kontroll weg auch immer wieder diesen Tisch ab und testet ob noch personen dort sitzen (wenn nciht, dann wird ein Reset für den Tisch gemacht) wenn ja, dann wird nach jedem so und sovielten Rundgang nochmal die Frage gestellt, ob die Gäste noch etwas möchten.

Der Punkt ist, das ganze system basiert auf Technologien, die bereits verfügbar sind (auch für den Hobbyisten) und größtenteils ausgereift sind. Es kommt also nurnoch auf eine geschickte Programmierung an. Das Ziel ist es ja nciht einen vollwertigen Kellner zu schaffen, sondern eine Machine, die die Funktion eines Kellners gut nachbildet.

Dieses Projekt ist allerdings aus dem Grund nichts für einen alleine, weil dazu Programmierkenntnisse in verschiedenen Disziplinen gefordert werden... z.B. Spracherkennungssoftware, die KI, Sensordatenauswertung, Postionsbestimmung im 3D Raum...
Dennoch ist es sicher realisierbar, wenn man sich nur genügend Gedanken über die spezialisierung auf die Arbeitsumgebung macht.
Das einfachste wäre wirklich ein utler, der mit einem Warenangebot durch einen freien Raum mit stehenden Gästen fährt. Die interaktion mit Menschen wäre am simpelsten von allen Varianten (es gibt keine Bestellungen und damit auch kein Bedarf an echter Stimmerkennung, ausserdem muss der roboter sich nicht merken welche menschen er schon angefahren hat). Der Roboter wird damit quasi vom Kellner zur mobilen selbstbedienungs-Plattform.