Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
CONNECTION ESTABLISHMENT BETWEEN A ROBOT DEVICE AND A ROBOT CONTROLLER
Document Type and Number:
WIPO Patent Application WO/2018/033203
Kind Code:
A1
Abstract:
A robot device for establishing a connection with a robot controller in cloud is provided. The robot device being configured, so that upon a trigger, to send a connection request to the robot controller, and to receive from the robot controller a response so as to establish the connection.

Inventors:
PULERI MARZIO (IT)
GIORGI LUCA (IT)
GIURLANDA FRANCESCO (IT)
Application Number:
PCT/EP2016/069532
Publication Date:
February 22, 2018
Filing Date:
August 17, 2016
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
ERICSSON TELEFON AB L M (SE)
International Classes:
H04L29/08; B25J9/16
Foreign References:
EP2858339A12015-04-08
US6480896B12002-11-12
US20110190930A12011-08-04
Other References:
DHANABAL R ET AL: "Remote access of FPGA robot via internet", 2014 INTERNATIONAL CONFERENCE ON ELECTRONICS AND COMMUNICATION SYSTEMS (ICECS), IEEE, 13 February 2014 (2014-02-13), pages 1 - 4, XP032638424, DOI: 10.1109/ECS.2014.6892830
Attorney, Agent or Firm:
ERICSSON (SE)
Download PDF:
Claims:
CLAIMS

1 . A robot device (700) for establishing a connection with a robot controller in cloud, the robot device being configured, so that upon a trigger, to send a connection request to the robot controller, and to receive from the robot controller a response so as to establish the connection.

2. A robot device according to claim 1 , wherein the trigger comprises an event where the robot device has executed previously received instructions or is based on a

predetermined time interval.

3. A robot device according to any preceding claim, wherein upon connection having been established, the robot device is configured to receive a command from the robot controller.

4. A robot device according to any preceding claim, wherein the robot device is configured with an IP address for the robot controller or it is configured to acquire such an IP address from a domain name system, DNS, (107) prior to sending a connection request to the robot controller.

5. A robot device according to any preceding claim, wherein the robot device is communicating with the robot controller in cloud over a radio access network (106).

6. A robot device according to any of claims 1 to 4, wherein the robot device is communicating with the robot controller over a fixed access network.

7. A robot device according to any of claims 5 and 6, wherein the network is configured with asymmetric network address translation, NAT.

8. A robot (800) comprising a robot device as claimed in any of claims 1 to 7.

9. A vehicle comprising a robot device as claimed in any of claims 1 to 7.

10. A robot device (400) for establishing a connection with a robot controller in cloud, the robot device comprising a processor (401 ) and a memory (402), the memory containing instructions executable by the processor, such that the robot device is operable to send a connection request to the robot controller, and to receive from the robot controller a response so as to establish the connection.

1 1 . A computer program comprising instructions, which when executed by a processor cause said processor to send a connection request to a robot controller for establishing a connection between a robot device and said robot controller, and to receive from the robot controller a response so as to establish said connection

12. A robot controller (900) for communicating with a robot device, the robot controller being configured to receive a connection request from the robot device and respond so as to establish the connection.

13. A robot controller according to claim 12, wherein the robot controller cannot send a connection request to a robot device, and is configured to operate the robot device once a connection has been established.

14. A robot controller (500) for communicating with a robot device, the robot controller comprising a processor (501 ) and a memory (502), the memory containing instructions executable by the processor such that the robot controller is operable to receive a connection request from the robot device and respond so as to establish the connection.

15. A computer program comprising instructions, which when executed by a processor cause said processor to receive a connection request from a robot device and respond so as to establish a connection between said robot device and a robot controller.

16. A system comprising a robot device and a robot controller, wherein the robot device sends a connection request to a robot controller, and the robot controller sending a response to the robot device so as to establish a connection there between, the robot device being configured to control establishment of the connection and the robot controller being configured to control operation of the robot device.

Description:
CONNECTION ESTABLISHMENT BETWEEN A ROBOT DEVICE AND A ROBOT

CONTROLLER

TECHNICAL FIELD

The present invention relates to a robot device and a robot controller and establishment of a connection there between.

BACKGROUND

Cloud robotics is an emerging field where robots form part of a cloud architecture and benefit from shared computational resources, storage and communication resources. Cloud robotics allows robots to take advantage of the rapid increase in data transfer rates to offload tasks. This is of particular interest to mobile robotics, which involves automatic machines or robots that are capable of movement, as the on-board computation requires additional power to enable them to perform their assigned tasks which may cause their operating duration and mobility to be reduced.

The architecture of cloud robotics comprises a cloud network having a controller which is configured to communicate with a robot. The controller acts as a client and the robot as a server and the main computational resources reside with the controller. When the controller wants to communicate with the robot, for example it may want data from the robot or send a command to the robot, the controller connects to the robot with a client-server

communication, for example a TCP socket.

The controller and the robot can communicate via a wireless network, such as WiFi, Zigbee or a radio access network including long-term-evolution (LTE) and in the future it is envisaged that fifth generation (5G) networks can be used for cloud robotics.

For high rate transmission, radio access networks, such as LTE and 5G, may be considered to be more suitable for communication between the controller and the robot, in comparison to WiFi, in particular as WiFi is sensitive to electromagnetic interference that impairs its use in several industries and does not provide a wide range of mobility for mobile robotics.

Regarding radio access networks such as LTE and 5G, peer-to-peer connectivity may be restricted by introducing asymmetric network address translation (NAT) and thereby limiting the application and use of cloud robotics. Alternatively, fixed access networks can also be used for controller and robot connectivity, however also here means for reducing peer-to-peer connectivity can be introduced such that a user's control of cloud robotics is reduced.

SUMMARY

It is an object of embodiments of the present invention to provide a method and apparatus which obviate or reduce at least one or more of the disadvantages mentioned above. By doing so, peer-to-peer connectivity for cloud robotics can more easily be implemented and controlled by the user.

According to an aspect of the invention, there is provided a robot device for establishing a connection with a robot controller in cloud. The robot device being configured, so that upon a trigger, to send a connection request to the robot controller, and to receive from the robot controller a response so as to establish the connection.

In one embodiment, the trigger comprises an event where the robot device has executed previously received instructions or is based on a predetermined time interval.

In one embodiment wherein upon connection has been established, the robot device is configured to receive a command from the robot controller.

In one embodiment, the robot device is configured with an IP address for the robot controller or it is configured to acquire such an IP address from a domain name system, DNS, prior to sending a connection request to the robot controller.

In one embodiment, the robot device is communicating with the robot controller in cloud over a radio access network.

In another embodiment, the robot device is communicating with the robot controller over a fixed access network.

In one embodiment, the network is configured with asymmetric network address translation, NAT.

In another aspect of the invention, there is provided a robot comprising a robot device as described above. In yet another aspect of the invention, there is provided a vehicle comprising a robot device as described above.

In a further aspect of the invention, there is provided a robot device for establishing a connection with a robot controller in cloud. The robot device comprising a processor and a memory, the memory containing instructions executable by the processor, such that the robot device is operable to send a connection request to the robot controller, and to receive from the robot controller a response so as to establish the connection.

In one aspect of the invention, there is provided a computer program comprising instructions, which when executed by a processor cause said processor to send a connection request to a robot controller for establishing a connection between a robot device and said robot controller, and to receive from the robot controller a response so as to establish said connection.

In another aspect of the invention, there is provided a robot controller for communicating with a robot device, the robot controller being configured to receive a connection request from the robot device and respond so as to establish the connection.

In one embodiment, the robot controller cannot send a connection request to a robot device, and is configured to operate the robot device once a connection has been established.

In one aspect of the invention, there is provided a robot controller for communicating with a robot device. The robot controller comprising a processor and a memory, the memory containing instructions executable by the processor such that the robot controller is operable to receive a connection request from the robot device and respond so as to establish the connection.

In one aspect of the invention, there is provided a computer program comprising instructions, which when executed by a processor cause said processor to receive a connection request from a robot device and respond so as to establish a connection between said robot device and a robot controller.

In yet another aspect of the invention, there is provided a system comprising a robot device and a robot controller. The robot device sends a connection request to a robot controller, and the robot controller sending a response to the robot device so as to establish a connection there between, the robot device being configured to control establishment of the connection and the robot controller being configured to control operation of the robot device.

BRIEF DESCRIPTION OF THE DRAWINGS

For a better understanding of the present invention, and to show more clearly how it may be carried into effect, reference will now be made, by way of example, to the following drawings in which:

Figure 1 is a schematic illustration of an architecture associated with the embodiments of the present invention;

Figure 2 is flow chart illustrating process steps in a method performed by a robot device;

Figure 3 is flow chart illustrating process steps in a method performed by a robot controller;

Figure 4 is a block diagram illustrating a robot device;

Figure 5 is a block diagram illustrating a robot controller;

Figure 6 is a block diagram illustrating a robot;

Figure 7 is a block diagram illustrating a robot device;

Figure 8 is a block diagram illustrating a robot;

Figure 9 is a block diagram illustrating a robot controller;

Figure 10 is a block diagram illustrating a robot; and

Figure 1 1 is a block diagram illustrating a robot controller;

DETAILED DESCRIPTION

Aspects of the present invention provide a robot device for establishing a connection with a robot controller in cloud. The robot device is configured, so that upon a trigger, it sends a connection request to the robot controller, and receives from the robot controller a response so as to establish the connection. Thus, the robot device is controlling the communication with the robot controller, and the robot controller is controlling (fully or partially) the operation of the robot device after said communication has been established. By the robot device initiating or controlling the establishment of a connection with the robot controller, more control is given to the user of the robot device enabling the implementation of cloud robotics.

The term "robot device" used herein is to be understood as a device that can be

implemented in a robot so as to perform the intended function. The term "robot" used herein shall be understood as a programmable machine capable of carrying out a complex series of actions automatically. Examples of robots include unmanned vehicles such as unmanned ground vehicles (UGV), automated ground vehicles (AGV), unmanned aerial vehicles (UAV), or medical instruments including surgical, diagnostic or treatment systems. A mobile robot is to be understood as a programmable machines capable of movement including robots having arms for example surgical equipment, UGV, AGV and UAV. Mobile robotics is to be understood as the field of programmable machines capable of movement or mobile robots.

Figure 1 illustrates an architecture 101 of a robot device 102 implemented in a robot 103, wherein the robot device is configured to communicate with a robot controller 104 forming part of a cloud network 105. In figure 1 , the robot device 102 is configured to communicate with the robot controller 104 via radio access network 106, however it should be understood that the embodiments described herein are not limited to communication via a radio access network as a fixed access network can also be used for enabling a robot device to establish a connection with a robot controller forming part of a cloud network.

As mentioned above, aspects of the invention provide a robot device configured to establish a connection with a robot controller. The robot device may want to establish a connection with a robot controller in order to send data, for example sensor readings, or to receive a command so as to perform a function such as a movement. The robot device establishes a connection, or more specifically a transmission control protocol (TCP) socket connection, with the robot controller using the transmission control protocol (TCP). This is achieved by the robot device setting up an internet socket using its internet protocol (IP) address and port which it was assigned during installation. The robot device then sends or broadcasts a request for establishing a connection to the robot controller. The robot controller listens for incoming requests, and when it has received the request from the robot device, the robot controller sends the robot device its address to use for communication. The handshaking between the two components is managed or controlled by the robot device such that the robot device acts as a client and the robot controller acts a server.

The request or data packets sent by the robot device may include any of the following information:

• reqID: number used to identify uniquely the request and the related answer

• source: field identifying the type of robot that the robot device is implemented in (e.g.

UGV, UAV, mobile robot or stationary robot with movable arms)

• robotID: unique identifier assigned to each robot

• operation: type of operation required by the robot, for example "GetData" command to ask for new positioning information

• movingStatus: it reports if the robot is still executing the last command or not • position: reports the current position of any servomotors or other actuators implemented in the robot

• speed: reports the current speed of each servomotor or other actuators implemented in the robot (optional field)

• acceleration: reports the current acceleration of each servomotor or other actuators implemented in the robot (optional field)

The response or data packets sent by the robot controller may include any of the following information:

• reqID: number used to uniquely identify the answer of a specific request

• "source": field identifying the type of sender (e.g. robotCtrl for robot controller)

• "ID": unique identifier assigned to each robot controller

• "operation": type of operation the robot has to do; for example, "pos" command to ask for executing a new positioning or "null" when the robot is still executing the last command and does not require new instructions.

• position: reports the new position to be taken by any servomotors or other actuators implemented in the robot

• speed: reports the new speed to be applied by each servomotor or other actuators implemented in the robot (optional field)

• acceleration: reports the new acceleration to be applied by each servomotor or other actuators implemented in the robot (optional field)

Once a connection has been established by the robot device, the robot controller can proceed to operate or control the robot, for example by sending data packets comprising commands or information including operation, position, speed, or acceleration as described above. It is envisaged that the robot controller can either have full control of operation of the robot which comprises the robot device, or alternatively the robot controller may have partial control of operation of the robot. When partial control, the robot may also be configured to have partial control.

An example of how a robot device would implement the above will now be described with reference to figure 2. Figure 2 shows a flow chart representing a method 200 performed by a robot device. In this example, the robot device is prompted to establish a connection with a robot controller based on predetermined time intervals as represented in the drawing by "robot timing" 201. In a first step 202, the robot device determines if it is to trigger the establishment of a connection. If not, the robot device will return to an idle state of robot timing 201 and repeat the step of determining to trigger 202 as and when. If the robot device determines that it is to trigger the establishment of a connection, the robot device checks whether it, or the overall robot, has the IP address of the robot controller, step 203. The IP address of the robot controller can be installed or previously saved in the robot device or elsewhere in the robot. If the robot device, or the robot, does not have the IP address, the robot device contacts a domain name system (DNS) which may be located in the cloud, see DNS107 in figure 1 , and retrieves the IP address, step 204. Once the robot device has the IP address of the robot controller, the robot device then sends a request for a connection with the robot controller, step 205, as described in more detail above. If a connection is established, step 206, the robot device proceeds to send data, such as sensor data, or a request to the robot controller, step 207. If a connection has not been established at step 206, the robot device starts over in its idle state of robot timing 201 . If a connection has been established and the robot device has sent a request to the robot controller, the robot device determines whether it has received a response, step 208. If it has received a response, the robot device proceeds to process the data or command received, step 209. If the robot device has not received a response a time out is triggered such that the operation is aborted and the internet socket is closed. The robot device then returns to step 201.

The triggering step 202 described above, may comprise a periodic trigger or an event which is based on a predetermined time interval. Alternatively, the trigger may be where the robot or robot device has executed previously received instructions, for example, a movement. This configuration may be desirable where there are consecutive movements that need to be performed by the robot or robot device.

Figure 3 shows an example of how a robot controller can implement the above. In particular, figure 3 illustrates a flow chart of a method 300 performed by a robot controller. In a first step 301 , the robot controller determines whether it has received a request for connection from a robot device. If it has not received a request, the robot controller continues to listen for a request from a robot device. If the robot controller has received a request it replies to the robot device as described above such that an internet socket is established, step 302. In a next step, the robot controller receives data or a request from the robot device, step 303. If the robot controller does not respond to a robot device within a certain time period, step 304, a time out is triggered and the internet socket is closed. If the robot controller does respond to the robot device within the time period, it proceeds to process the received data, step 305, and then sends a command 306 to the robot device, 306. Thereafter, the internet socket is closed. If the robot device wants to send more data or requests, it has to establish a connection again by performing method 200 described above.

The methods 200, 300 of the robot device and the robot controller have been described above and it can be understood that the robot device acts as a client and the robot controller as a server such that the robot device controls or manages the connection. The robot controller cannot initiate a connection with the robot device but instead has to wait for the robot device to send a request for a connection. Once a connection has been established, the robot controller can send commands to the robot device so as to operate the robot device and the robot.

It should be understood that the connection established via methods 200 and 300 can either be over a radio access network such as LTE or future 5G. Alternatively, it can be over a fixed access network. If the connection is established over a radio access network implementing asymmetric network address translation (NAT), the invention can be useful to give the user more control over their robot device, robot and/or robot controller. Fixed access networks may also be implemented with filters which limits the communication between robots and robot controllers and so the invention can also be useful in these circumstances to give the user more control over their robot device, robot and/or robot controller.

The above described methods 200 and 300 may be performed by elements cooperating to form a system for establishing a connection for communication between a robot device and a robot controller in cloud. Such a system is illustrated in figure 1 and it comprises a robot controller 104 comprising means for receiving a request for connection from a robot device, and a robot device 102 comprising means for sending a request for connection to a robot controller. In one embodiment, the system comprises a robot device and a robot controller, wherein the robot device sends a connection request to a robot controller, and the robot controller sending a response to the robot device so as to establish a connection there between, the robot device being configured to control establishment of a connection and the robot controller being configured to control operation of the robot device.

The methods of the present invention, as illustrated by the above examples, may be conducted on receipt of suitable computer readable instructions, which may be embodied within a computer program running on the robot device or robot controller. Figures 4 and 5 illustrate examples of the robot device 400 and the robot controller 500, respectively, which may execute the methods of the present invention, for example on receipt of suitable instructions from a computer program. Referring to figures 4 and 5, the robot device 400 and the robot controller 500 comprises a processor 401 , 501 and memory 402, 502. The memory 402, 502 contains instructions executable by the processor 401 , 501 such that the robot device is operative to carry out the method 200 and the robot controller is operative to carry out method 300.

Figure 6 illustrates an example of a robot 601 comprising a robot device 400 as described above with reference to figure 4. The robot 601 comprises a processor 603 and a memory 604. The memory 604 contains instructions executable by the processor 603 such that the robot device 400 can query the robot 601 for an IP address to a robot controller, and/or the robot device 400 can forward instructions or commands received from the robot controller to robot 601 or more specifically its memory 604.

Figure 7 shows another embodiment of a robot device 700 for establishing a connection with a robot controller in cloud. The robot device being configured, so that upon a trigger, to send a connection request to the robot controller, and to receive from the robot controller a response so as to establish the connection.

The trigger may comprise an event where the robot device 700 has executed previously received instructions or is based on a predetermined time interval.

Once connection has been established, the robot device may be configured to receive a command from the robot controller. This command may be to perform a movement, or to send data to the robot controller. The robot device may execute the command or it may forward it to a robot in which the robot device is implemented.

The robot device 700 may be configured with an IP address for the robot controller or it is configured to acquire such an IP address from a domain name system, DNS, prior to sending a connection request to the robot controller.

The robot device 700 may be communicating with the robot controller in cloud over a radio access network or over a fixed access network. The radio access network may be configured with asymmetric network address translation, NAT. In an alternative example, the fixed access network is configured with a filter preventing or reducing the capability of the robot controller to send a connection request to the robot device.

Figure 8 shows a robot 800 comprising the robot device of figure 7.

In one embodiment, a vehicle comprises a robot device of figure 7.

Figure 9 illustrates a robot controller 900 for communicating with a robot device. The robot controller being configured to receive a connection request from the robot device and respond so as to establish the connection. In one embodiment, the robot controller cannot send a connection request to a robot device, and is configured to operate or control the robot device once a connection has been established. Figure 10 illustrates functional units in another embodiment of a robot device 1000 which may execute method 200, for example according to computer readable instructions received from a computer program. It will be understood that the units illustrated in figure 10 are software implemented functional units, and may be realized in any appropriate combination of software modules. The software modules may be executed by a processor.

Referring to figure 10, the robot device 1000 is configured for establishing a connection with a robot controller in cloud. The robot 1000 device comprises communication means 1001 , so that upon a trigger, for sending a connection request to the robot controller, and receiving from the robot controller a response so as to establish the connection.

The trigger comprises an event where the robot device has executed previously received instructions [i.e. resulting in a movement] or is based on a predetermined time interval.

Wherein upon connection having been established, the communication means 1001 may further comprise means for receiving a command from the robot controller.

The robot device 1000 may comprise storage means 1002 for storing an IP address for the robot controller or the communication means further comprises means for acquiring such an IP address from a domain name system, DNS, prior to sending a connection request to the robot controller.

The communication means 1001 may comprise means for communicating with the robot controller in cloud over a radio access network, or means for communicating with the robot controller over a fixed access network.

Figure 11 illustrates functional units in another embodiment of a robot controller 1 100 which may execute method 300, for example according to computer readable instructions received from a computer program. It will be understood that the units illustrated in figure 1 1 are software implemented functional units, and may be realized in any appropriate combination of software modules. The software modules may be executed by a processor.

Referring to figure 1 1 , the robot controller, for communicating with a robot device, comprises communication means 1 101 for receiving a connection request from the robot device and respond so as to establish the connection. The communication means 1 101 may not be able to send a connection request to a robot device, and the robot controller further comprises operation means 1 102 for operating the robot device once a connection has been established.

Aspects of the present invention thus provide, methods, various apparatus, computer programs and a system for establishing a connection between a robot device and a robot controller in cloud. Aspects of the invention provide advantages such that the user of the robot device has more control over the robot device and the system.

The methods of the present invention may be implemented in hardware, or as software modules running on one or more processors. The methods may also be carried out according to the instructions of a computer program, and the present invention also provides a computer readable medium having stored thereon a program for carrying out any of the methods described herein. A computer program embodying the invention may be stored on a computer-readable medium, or it could, for example, be in the form of a signal such as a downloadable data signal provided from an Internet website, or it could be in any other form.

It should be noted that the above-mentioned embodiments illustrate rather than limit the invention, and that those skilled in the art will be able to design many alternative

embodiments without departing from the scope of the appended claims. The word

"comprising" does not exclude the presence of elements or steps other than those listed in a claim, "a" or "an" does not exclude a plurality, and a single feature or other unit may fulfil the functions of several units recited in the claims. Any reference signs in the claims shall not be construed so as to limit their scope.