Providing a Interaction Interface for networked robots using

Providing a ’Interaction Interface' for networked robots using Squeak ITB 844 Bachelor Project by Svein-Magnus Sørensen (n 4607048) Supervised by Joaquin Sitte

Objectives and Goals Project objectives: n n Create a generic robot interaction interface in Squeak, based on the Java-implementation by Erik Berglund. It should enable the passing of messages to remote objects and execute them. Use the Agora Distributed Object-architecture as a basis for message passing to remote objects over any TCP/IP network. Install and run the Squeak VM on the Koala PC/104 system. Using the generic interface, implement and test a specific controller for the K-Team ’Koala’-robot. Learning goals: n n n Learn to use and become familiar with the Squeakenvironment and Smalltalk for application development. Become familiar with the K-Team ’Koala’-robot and its extension, the PC/104 architecture running Linux. Be able to perform and manage a medium sized programming project for on time delivery.

How it all works with the Koala: Instance of class ”Koala. Remote. Client” on client-computer Client system Understands messages from the generic control protocol. The control message in turn sends the relevant Ser. Com message. Ser. Com command Ser. Com return value Connects to Agora. Controller and creates a local Proxy. Object Agora. ORB ”Robot. Controller” Passes messages transparently through a network TCP/IP Network Agora. Controller on PC/104 K-Team Koala Robot system Creates instance of Robot. Controller Instance of class ”Koala. Robot. Controller” Koala processor Connects to the Koala processor through a seriallink and passes Ser. Com-commands and returnvalues between the Koala and the Agora. Controller Understands and replies to Ser. Com commands

Achivements n n Created generic Robot. Server and Robot. Client interfaces in Squeak, extendable to fit many kinds of embedded devices and robots. Made and tested an implementation of the new interfaces for a ’Koala’-robot made by K-Team, extended with an PC/104 system. Successfully used the ”Agora Distributed Object architecture” for transparent message passing between the Robot. Server and Robot. Client over a wireless TCP/IP network. Extended and modified the provided Agoraimplementation to work under Squeak 3. 6 and support custom servers and ports.

UML Diagram Robot-Server package Object – Basic Squeak Class Agora. Object – by Johannes Jansson Agora. Controller Robot. Controller alm, port Class: new Class: start. Up Class: shut. Down init start. Controller stop. Controller In Squeak all methods (messages) are public and all attributes are private. Method Attributes in this font Methods in this font (method attribute) ; return value Class: new init start. Controller stop. Controller send. Command: (string) ; boolean Koala. Robot. Controller serial. Port, robot. Serial Class: new start. Controller stop. Controller send. Command: (string) ; string send. Ser. Command: (string) ; string

UML Diagram Robot-Client package Remote. Client alm, robot, cr, tolerance, Object – Basic Squeak Class Ser. Com. Remote. Client actual. Motor. Positions, steps. Pr. Degree, steps. Pr. Centimeter halt , move: (int) , turn: (int) move. Straight: (int) ; boolean move. Straight. CM: (int) ; boolean set. Speed. Controller. Max. Speed: and Acceleration: (int, int) ; boolean In addition implements each of the 18 defined commands of the Ser. Comprotocol as separate Squeakmessages. Also re-implements relevant Controlmessages from class ’Remote. Client’ to use Ser. Com for their tasks. Class: new Init , stop. Client , stop ; boolean start. Client. To: (string) start. Client. To: at. Port: (string, int) get. Stepper. Positions : boolean set. And. Wait. For. Stepper. Positions. Left: and. Right: (int, int) ; boolean is: different. From: (Ordered. Collection, Ordered. Collection) ; boolean set. Position. Tolerance: (int) set. Speed. Controller. Max. Speed: and. Acceleration: (int, int) ; boolean turn. Degrees: (int) ; boolean zero. Motor. Counter ; boolean. . . And many more for a total of 24 methods. Koala. Remote. Client Class: new Init , start. Client. To: at. Port: (server, port)
- Slides: 6