New architecture for mobile robots in home network environment ...

5 downloads 1472 Views 299KB Size Report
for a certain task, and the service uses other ser- vice to perform a task as ... Fig.1 An example of mobile robots in a home network envi- ronment. Proceedings of ...
Proceedings of the 2001 IEEE International Conference on Robotics & Automation Seoul, Korea • May 21-26, 2001

New architecture for mobile robots in home network environment using Jini Byoung-Ju Lee*, Hyun-Gu Lee*, Joo-Ho Lee** and Gwi-Tae Park* *Department of Electrical Engineering, Korea University 5-1, Anam-Dong, Sungbuk-Ku, SEOUL, KOREA {sseng, hglee99, gtpark}@elec.korea.ac.kr **IIS #3, University of Tokyo 7-22-1, Roppongi, Minato-ku, Tokyo, Japan [email protected] Abstract Recently, many robotic researchers are much interested in designing mobile robots that can work in the networked and intelligent space. In this case, these robots perform their tasks by sharing many external resources around them. However, these researches only show the possibility to realize the robot. The robot has some problems. To solve the problems, we implemented a network protocol that links all resources around the robot. In this paper, by using network protocol, Jini, we propose an advanced resource sharing architecture(RSA) for a mobile robot. We made several services with all resources around a robot by using Jini. There is a task managing service for a certain task, and the service uses other service to perform a task as well as make a new service of other services. To verify our architecture we built a simple experimental space. In this space we performed the experiments such as a detection of desired objects, path generation and motion control for a robot, object avoidance and so on. Experimental results show the mobile robot with our advanced RSA performs various tasks successfully.

1

Fig.1 An example of mobile robots in a home network environment

Introduction

In the past decade, many robotic researchers have tried to make mobile robots fully intelligent, but there are still so many problems to be solved. For example, to recognize environment around it and to build a map for navigation, a robot needs so expensive sensors such as a gyroscope and laser range finder. Hence until now it is difficult to put service robots for practical use. Recently, several robotic researchers are much interested in mobile robots in the networked and thinking space[1]. Such kind

0-7803-6475-9/01/$10.00© 2001 IEEE

of space can perceive what is happening in it, build a model of itself, communicate with its habitants and act based on things happening in it. Coen et al. suggested intelligent agents known as the Scatterbrain[2]. The agent’s primary tasks are to link various components of the room and to connect them to internal and external stores of information. Fig.1 shows this scheme. Lee et al. tried to applied this paradigm to a mobile robot[3]. In this way a robot receives several data from external resources to build map for navigation. As a result, the robot does not need sensing devices. Since 1998 our laboratory has been interested in such an embedded space and mobile robots for it. By combining mobile robots and the embedded space, we could get many good features that could not be obtained before. For example, even if a robot does not have gyroscopes nor laser range finders the robot can get enough precise positions of itself and easily extend its functions because the robot shares the resources in the room [4][5]. However, these

471

researches only show the possibility to realize such a robot. The robot has some problems such as its extension, modification and maintenance[10]. To solve the problems, we implemented a network protocol that links all resources around the robot. We used Jini as a network protocol. It was designed by the Sun microsystems for a protocol of networked consumer electronics[6]. Many vendors are developing networked consumer electronics with a network transceiver using Jini. As a result, if we use Jini, we can use so many devices such as TV, air conditioner and light as our resources. In this paper, by using Jini, we propose an advanced resource sharing architecture(RSA) for a mobile robot in the home network environment. We made several services with all resources around a robot by using Jini. There is a task managing service for a certain task, and the service uses other service to perform a task as well as makes a new service of other services. In chapter 2, we will explain mobile robots in the home network environment. Chapter 3 describes an advanced RSA. Chapter 4 shows results of experiments. Finally chapter 5 concludes this paper.

2

Mobile robots in home network environment SENSOR

SENSOR

HIGH PERFORMANCE MAIN CONTROLLER

ACTUATOR DRIVERS

ACTUATOR

COMM. UNIT

ACTUATOR

global map of its environment because a sensing devices for doing it is not on the robot. A map is built by external resources(e.g. CCD camera hanging on the wall and an external host computer connected with the camera). Because the sensing resources are able to watch a global area where a robot is located, they can calculate a position of the robot more precisely. Moreover, tasks such as a localization and decision making are done by an external resource so that we can make a robot very simply.

3

A new architecture of mobile robots using Jini

Networks must link all resources in RSA together. So a proper protocol is needed to construct RSA from several resources over the network. There are some technologies to construct systems from distributed objects over the network such as Jini [TM]and UPnP(universal plug and play). We selected Jini as a tool to construct RSA because it offers a simple infrastructures for delivering services over the networks and creating spontaneous interaction between programs that use these services, regardless of their hardware or software implementations. Moreover it is recently more popular than UPnP. Hence we can use so many resources in which Jini is implemented.

COMM. UNIT

3.1 Protocol interface, Jini

SIMPLE MAIN CONTROLLER

Lookup Service

ACTUATOR DRIVERS

ACTUATOR

ACTUATOR

Service Provider

Discovery

Service 3

Join

Service 1 Service 2 Service 3

(a) Conventional mobile robot

(b) Mobile robot in the home network environment

Fig.2 Architecture of a mobile robot

As shown in Fig.2(a) a conventional architecture of mobile robots fundamentally consists of four components; main controller with high performance, sensor, actuators and communication unit. Robot with this architecture is so expensive due to sensors such as gyroscopes and laser range finders, and moreover its sensors get only limited data about its environment. On the other hand, Fig.2(b) shows an architecture of the mobile robot in the home network environment. The robot has only simple three components: main controller, actuators, and communication unit. The robot does not have to build a

Lookup Service Service 1

Lookup

Client

Service 3 Proxy

Service 3

Service 2 Service 3

Service Provider

Fig.3 A run time infrastructure of a protocol, Jini

472 1

Jini is a set of APIs and network protocols that can help developer to build and deploy distributed systems that are organized as federations of services. Hardware devices, software, communications channels that reside on the network can be services. Jini defines a runtime infrastructure that resides on the network and provides mechanisms that enable you to add, remove, locate, and access services. The runtime infrastructure resides on the network in three places: in lookup services that sit on the network; in the service providers (such as Jini-enabled devices); and in clients. Lookup services are the central organizing mechanism for Jini-based systems. When new services become available on the network, they register themselves with a lookup service. When clients wish to locate a service to assist with some task, they consult a lookup service. The runtime infrastructure uses one network-level protocol, called discovery, and two object-level protocols, called join and lookup. Fig.3 describes it. Discovery enables clients and services to locate lookup services. Join enables a service to register itself in a lookup service. Lookup enables a client to query a lookup service for services that can help the client to accomplish its goals.

3.2 An advanced resource sharing architecture

bot without considering a network protocol between a robot and external resources. Additionally because Jini supplies PnP(plug and play), a developer doesn’t have to consider a configuration of each resource, and also partial faults of a system does not effect their whole system[6]. The suggested architecture basically consists of physical components and logical components, as shown in Fig.4. The Physical components are devices such as mobile robots, cameras, display monitor, mic, speaker and external host PC, whereas the logical components are Jini services such as an image processing service, robot operation and robot control.

- Physical components Jini service should run on each device to realize an ideal physical component. However, we cannot make Jini run on all devices, since the OS such as Window98 or Linux is required in order to run Jini. Hence some Jini services are run on a PC. For example, we use the PC as a Jini service for a image sensing resource and robot operation.

- Logical components

The most important characteristic of RSA is that external resources are regarded as local components on the robot themselves. As a result, a developer designs a ro-

Logical components are classified into two logical components. One is a fundamental service, and the other is an inherited service that is made of fundamental services. Gray-colored rectangles in Fig.4 describe the ser-

Physical Resources

Camera #1

Camera #2

Display

External Host

Speaker

Mic

Robot #1

Robot #2

Middleware(ex. JINI)

+

+

Object Tracking Service

Acoustic Noise Reduction Service

Object Detection Service

Vision Service for Robots

+

Voice Recognition Service

Path Generation Service

Motion Control Service

M ap Building Service Robot #1 Operation Service

Voice Processing Service

Logical Resources Fig.4 An advanced resource sharing architecture

473 1

+

Robot #2 Operation Service

vices. We designed four inherited services that are basically required to operate two mobile robots in a home network environment. They consist of a vision service, robot operating service, voice processing service and supervising service. - Vision service : Jini service for image processing, VisionService ( Service Provider ) Jini service for a vision system acts as a service provider. It means that this service provides a service for other clients. In this system, its functions are to find a robot in environment, to localize the robot and to send a position data to other clients to request it. The following program written in Java is to do it. 1: class VisionServiceImpl { 2: int robotX; // a x-axis coordination of the robot 3: int robotY; // a y-axis coordination of the robot 4: int robotDir; // a direction of the robot 5: public void GetRobotInfo( int x, int y, int dir); // retrieve a position information of the robot 6: 7: 8: 9: 10:}

public static void main() { new VisionServiceImpl(); // Create a VisionServiceImpl instance; new JoinManager(.,this,..); // Join to the lookup service; //Wait for client’s request; }

In line 8, a service provider registers an interface of this function to a lookup table of a proxy in their network and then waits for a request from any client. - Voice processing service : Jini service for voice processing, VoiceService ( Service Provider ) Jini service for a voice recognition and TTS(text to speech) also acts as a service provider. This service recognizes a voice and then identifies a human command. Additionally, It tells a man its states or processing results by TTS. 1: class VoiceServiceImpl { 2: char *voiceStream; // raw data of a voice 3: char *voiceCommand; // identified command 4: public void GetVoiceCommand( char *voiceStream, char *voiceCommand); // identify a human command from raw data 5: 6: 7: 8:

public static void main() { new VoiceServiceImpl(); // Create a VoiceServiceImpl instance; new JoinManager(.,this,..); // Join to the lookup service; //Wait for client’s request; }

9:} - Supervising service : Jini service for robot operation, VisionClient ( Client, Server ) Jini service for robot operation acts as a service client for image processing service and also service server for robot control service. This service receives information about robots and decides its task. This performed by following sequences. Firstly, a robot find an desired interface at a lookup table of a proxy in its network and if the interface is registered in the lookup table, it processes the interface. Otherwise, the robot should wait until the interface is registered by any service provider. The following program describes this process. 1:class VisionClient { 2: int targetX; // a x-axis coordination of a target 3: int targetY; // a y-axis coordination of a target 4: public void GetRobotOperation( int x, int y); // retrieve a kind of an operating method of robots 5: public static void main() { 6: ServiceFinder sf = new ServiceFinder( VisionService.class ); // find the lookup service; 7: VisionService vs = (VisionService) sf.getObject(); //get the matching service 8: vs.GetRobotInfo();// use the service interface 9: } 10:} In line 6, a robot(client) finds a desired interface and in line 8, an interface, ‘GetRobotInfo()’ is declared in a service provider. Because it can find it at a lookup table, it uses the function supplied by a service provider, vision server. - Robot operating service : Jini service for robot control, VisionClient ( Client ) This acts as a service client of a service for robot operation. On the other hand previous services is performed on a host PC connected to a vision system, while this service is on robots and control its actuators, simple sensors and so on. 1:class RobotClient { 2:public static void main() { 3: ServiceFinder sf = new ServiceFinder( VisionClient.class ); // find the lookup service; 4: VisionClient vs = (VisionClient) sf.getObject(); //get the matching service 5: vs.GetRobotOperation();// use the service interface 6: } 7:}

474

So far we explain a new architecture of mobile robots using Jini. In the next chapter, we will describe our robot system and show some experimental results.

START

1 2

4

Experiment

Table

Table

Table

Table Table

4

Fig.6 Running path of robot for a localization experiment

Second experiment is to explore a test field as shown in Fig.7, passing through all subgoals in the field by two robots. We design a inherited service for this task. Fig.8 describes this service. The most important function of a task managing service of a field exploring service is to find the shortest paths of two robots. Additionally, it reorganizes itself in an error of any service.

4.1 Experimental system Table

3

GOAL

We performed two experiments. One is to evaluate an accuracy of a localization of mobile robot by a proposed vision system. The other is to verify a flexibility of a proposed architecture when a task is changed during its processing and a robot has a trouble.

Active Area #1

Table

Active Area #2 1

Table

Table

Table

2

Robot #1

Bookshelf

4

3

Robot #2 5

7

6

8

Desired path for robot #1

Desired path for robot #2

Fig.7 Test field for exploring experiment and desired paths of two robots

Fig.5 A diagram of a test field for a localization (above) and real pictures of the field (bottom)

Our system consists of two mobile robots, two vision system, PC and a voice processing system. The robot is ‘Pioneer2 CE’, and its main controller is a PC(AMD K6 450MHz). We use a PCI-type image capture card and CCD camera as a vision system. The robot and vision system are linked by a wireless LAN(IEEE 802.11). A running speed of the robot is about 40[cm/sec]. We divide a test field by 2 as shown in Fig.5. The size of each area is respectively about 4x3[m] and 3x2[m]. There are six waypoints in the areas. Firstly, we make the robot go to the ‘GOAL’ point and pass through all subgoals in intended order as shown in Fig.6. Finally we make it come back to the ‘START’ point. We repeat this process seven times. We use PIcontrol for a path tracking and a simple calibration algorithm for compensating a distortion of a captured image[10].

475

Field Exploring Service Active Area #1 Vision Service Active Area #2 Vision Service

Task Managing Service

Robot #1 Operation Service Robot #2 Operation Service

Fig.8 Field exploring service constructed by other inherited services

some advantages by using Jini. For example, firstly, developers can easily design the robots without considering a network programming such as a socket programming because external resources can be used as if they are local components of robots. Secondly, developers can save a development time because Jini is based on Java so that a number of classes with various functions are supported. Finally, nowadays, standard interfaces of Jini for consumer electronics are being discussed. If they are established, Jini will be used in various fields. It means that resources which robots can use will increase. Thus, robots can be utilized at various fields because all devices in the space (e.g. TV, air conditioner, lights, windows, gas valves and etc… ) can be used as resources.

4.2 Experimental results

Start

1 2 3

4

Goal Fig.9 Real trajectory of a mobile robot in a localization experiment

Robot #1

6 Robot #2

Error Point Fig.10 Real trajectory of each robot in a field exploring test

Fig.9 shows the result of the first experiment. The dotted lines are trajectories that the robot kept track of in processing the task. There are some position errors at each subgoal. We get a direction of the robot by a vector of its displacement. Hence, if a robot has a distorted direction during its stopping, it takes some time to compensate the distortion, but the error is decreased in running. The position error in the points is caused mechanical faults of the robot, slip, image calibration and so forth. But because this error is small enough not to effect an operation, we neglect it. Fig.10 describes the result of the second experiment. In this experiment, when robot #2 was turned off at the subgoal 2, the task managing service reorganized a field exploring service and generated a new path for robot #1. As a result, in spite of the error of robot #2, a desired task could be completed. Experimental results show the mobile robot with our advanced RSA performs successfully various tasks and the proposed architecture is proper to develop mobile robots for a home network environment.

5

Conclusion

The main idea of the proposed architecture is that RSA make application areas of Jini more various. Even though Jini is not necessary for a robot with RSA, we can get

References

[1] J.H. Lee, G. Appenzeller, H. Hashimoto, Physical agent for a sensored, networked and thinking space, In Proc. of IEEE Int. Conf. On Robot and Automation, 1998. [2] Coen, M. SodaBot: A Software agent Environment and Construction System. AI Lab Technical Report 1493, Massachusetts Institute of Technology, Cambridge, MA, 1994. [3] J.H. Lee, G. Appenzeller, H. Hashimoto, Building Topological Maps by Looking at people: An Example of Cooperation between Intelligent Spaces and Robots, In Proc. Of IEEE Int. Conference of Intelligent Robotics and Systems, pp. 1326-1333, 1997. [4] B.J. Lee, G.T. Park, A Design of a Physical Agent for a Cooperative Space, Proc. Of KACC99, vol. B, pp. 168171, 1999 [5] B.J. Lee and G. T. Park, A Robot in Intelligent Environment : Soccer Robot, Proceedings of the 1999 IEEE/ASME International Conference on Advanced Intelligent Mechatronics, pp. 73-78, 1999 [6] W.Keith Edwards, Core Jini, Prentice Hall PTR, 1999 [7] Kwun Han, Manuela Veloso, Reactive Visual Control of Multiple Non-Holonomic Robotic Agents, Proc. of IEEE Int. Conference on Robotics and Automation, vol.4, pp.3510-3515, 1998 [8] T.Yoshikawa, J.Ueda, Analysis and Control of Master-salve systems with Time Delay, Proc. Of IEEE Int. Conference of Intelligent Robotics and Systems, pp. 1366-1373, 1996. [9] T.Matsumaru, S.Kawabata, T.Kotoku, N.Matuhira, Task-based Data Exchange for Remote Operation System through a Communication Network, Proc. of IEEE Int. Conference on Robotics and Automation, pp. 557-564, 1999. [10] H.G. Lee, Development of Object Oriented Architecture for an Autonomous Mobile Robot under Home Network Environment, 2000

476

Suggest Documents