Allen Yang Yang University of Illinois at Urbana-Champaign RoboTalk: a general robot control framework Can we access R2D2 & C3PO with the same control commands? Allen Yang Yang University of Illinois at Urbana-Champaign H. Gonzales-Banos, V. Ng-Thow-Hing, J. E. Davis Honda Research Institute, Mountain View, CA
Motivation Copyright Lucasfilm Ltd. Mobile Robot with Pan-Tilt Camera Honda Asimo Humanoid Robot
Why do we need a motion specification? Difficulties for researchers in robotics: Industrial copyright Programs are not re-usable in different robot families, even different versions of same robot families Have to choose OS based on the drivers provided Not easy to share a robot remotely with other collaborators in different locations Motion Commands Windows? Linux? Mac OS? Embedded OS?
Project goals Whatever: (cross-model) Whoever: (cross-platform) Provide a network-enabled interface for Asimo which is independent of the controller libraries Access to other robots & simulators: Pioneer, Puma Whoever: (cross-platform) User interface must be cross-platform: support Unix, Linux, Mac OS X and Windows. Wherever: (cross-network) Good quality of service across the Internet.
Demo Videos
Contributions A robot specification standard One command interface Four command modes between client and server: Direct Delay Playback Broadcast Easy-to-change robot driver implementation on the server-end
Previous Work Player [R. Gerkey and A. Howard, 2003] Open Architecture Humanoid Robotics Platform (HRP) [F. Kanehiro, et al., 2004] Open Pino Project [F. Yamasaki, et al., 2000] OROCOS [http://www.orocos.org/] Dedicated systems ARIA [robots.activmedia.com/ARIA/] Robonaut [H. Aldridge, et al., 2000] Athena [J. Biesiadecki, et al., 2001]
Why not others? Do not support humanoid robots Hard to change driver implementation Do not have network quality support Do not have protection mechanism for exotic robots
System Architecture System Overview Client/Server Structure Four Communication Modes
Architecture - Specification Standard Abstraction Configuration Spec Command Spec Communication Spec
Architecture - System Overview Asimo Library Configuration Spec Command Spec Communication Spec Pioneer Library Client . . . Server Client/Server Simulator Client
Architecture - Robotalk Server Server Daemon Provide: Buffering, Scheduling, Panic, etc. Read and Write TCP/IP sockets CClientConnection . . . CClientConnection Issue Robot Driver Calls Class Interface Robot Daemon CRobotDriver
Architecture - CClientConnection Server Daemon CClientConnection Input commands Robot Daemon Command Queue Read Playback Queue Feedback Write Return Queue Priority Queues
Architecture - CClient Function calls CClient Class Commands to the server. (Blocking/Nonblocking) Class Interface Broadcast cache Return cache Feedback (Nonblocking) Read Daemon
Architecture - Communication Modes Direct mode: blocking & instantaneous, for debug purposes Delay mode: nonblocking, instantaneous or delay Playback mode: nonblocking, adaptive caching based on channel quality Broadcast mode: periodic query feedback
Direct Mode Client Server Sync system clock Clock Command Cache Client Function call Cache Robot Daemon Return Cache return
Delay Mode Client Server Sync system clock Delay Command Cache Clock + Function call return Robot Daemon Return Cache error signal
Playback Mode Client Server Length of the sequence Command Cache Delay Robot Daemon Clock Playback Cache Client Cache Function call return Return Cache error signal
Broadcast Mode Delay Broadcast call Command Cache Client Robot Daemon return Command Cache Robot Daemon Return Cache data
Conclusions Motivations System Structure Four Network Command Modes Future Extensions Exclusive control Data channels Controlling multiple humanoid robots Virtual humanoid robots
Virtual Humanoid Pioneer Library Site A Camera Library Site B Server Puma Library Virtual Humanoid
Thank you! Allen Yang: yangyang@uiuc.edu Hector Gonzales-Banos: hhg@honda-ri.com Victor Ng-Thow-Hing: vng@honda-ri.com All videos available online: perception.csl.uiuc.edu/RoboTalk/