Robot controller, control system, and control method

JP2024100959A5Active Publication Date: 2025-03-11YASKAWA DENKI KK
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2024084204
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-05-23
Publication Date
2025-03-11
Estimated Expiration
2042-03-08

AI Technical Summary

Technical Problem

Existing robot controllers lack operability improvements, particularly in handling real-time control and diverse terminal compatibility while maintaining robustness.

Method used

A robot controller utilizing WebAPI to receive requests from SinglePageApplication (SPA) clients, processing units for robot operations, and response generation units for SPA update data, enabling real-time control and flexible terminal compatibility through WebAPI limitations and Server-SentEvents for event notification.

Benefits of technology

Enhances operability by allowing timely screen transitions and resource optimization, maintaining robustness across various terminals, and reducing communication burden while ensuring real-time performance and improved usability.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

To provide an effective robot controller for improving operability of a robot.SOLUTION: A robot controller 100 includes: a WebAPI 111 that receives a request from a Web client executing a Single Page Application; a processing part 112 that executes processing, responding to a request received by the WebAPI 111, for a robot 2; and a response generation part 113 that generates a response for the request as update of the Single Page Application.SELECTED DRAWING: Figure 2
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present disclosure relates to a robot controller, a control system, and a control method. [Background technology]

[0002] Patent Document 1 discloses a teaching playback device having a controller that controls the motion of a robot and a teaching pendant that enables an operator to teach the robot an action. [Prior art documents] [Patent documents]

[0003] [Patent Document 1] JP 2011-224696 A Summary of the Invention [Problem to be solved by the invention]

[0004] The present disclosure provides a robot controller that is effective in improving the operability of a robot. [Means for solving the problem]

[0005] A robot controller according to one aspect of the present disclosure includes a Web API that receives requests from a Web client executing a SinglePageApplication, a processing unit that executes processing on the robot in accordance with the request received by the WebAPI, and a response generation unit that generates a response to the request as update data for the SinglePageApplication.

[0006] A control system according to another aspect of the present disclosure includes a robot controller and a terminal that executes a Web client. The robot controller has a Web API that accepts requests from a Web client that executes a SinglePageApplication, a processing unit that executes processing on the robot in response to the request accepted by the WebAPI, and a response generation unit that generates a response to the request as update data for the SinglePageApplication.

[0007] A control method relating to yet another aspect of the present disclosure includes receiving a request from a Web client executing a SinglePageApplication via a WebAPI, executing processing on a robot in accordance with the request received by the WebAPI, and generating a response to the request as update data for the SinglePageApplication. Effect of the Invention

[0008] According to the present disclosure, it is possible to provide a robot controller that is effective in improving the operability of a robot. [Brief description of the drawings]

[0009] [Figure 1] FIG. 1 is a schematic diagram illustrating a configuration of a robot system. [Diagram 2] FIG. 2 is a block diagram illustrating a functional configuration of a robot controller. [Diagram 3] FIG. 13 is a schematic diagram illustrating an execution screen of a Single Page Application. [Figure 4] FIG. 2 is a block diagram illustrating a hardware configuration of a robot controller and an operation terminal. [Diagram 5] 11 is a flowchart illustrating a procedure for starting a single page application. [Figure 6] 11 is a flowchart illustrating a procedure for handling a request. [Figure 7] 1 is a flowchart illustrating a processing procedure. [Figure 8] 1 is a flow chart illustrating an example event monitoring procedure. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0010] Hereinafter, the embodiments will be described in detail with reference to the drawings. In the description, the same elements or elements having the same functions are denoted by the same reference numerals, and duplicated description will be omitted.

[0011] [Robot System] 1 is a so-called teaching-playback system that operates a robot 2 based on an operating program generated by teaching by an operator. As shown in FIG. 1, the robot system 1 includes a robot 2, a robot controller 100, and a terminal 200.

[0012] The robot 2 shown in FIG. 1 is a 6-axis vertical articulated robot, and includes a base 11, a rotating part 12, a first arm 13, a second arm 14, a third arm 17, a tip 18, and actuators 41, 42, 43, 44, 45, and 46. The base 11 is installed on a floor, a wall, a ceiling, or an automated guided vehicle. The rotating part 12 is provided on the base 11 so as to rotate around a vertical axis 21. The first arm 13 is connected to the rotating part 12 so as to swing around an axis 22 that intersects (for example, perpendicular to) the axis 21, and extends in a direction away from the axis 22. The intersection also includes a case where there is a twisted relationship, such as a so-called three-dimensional intersection. The same applies hereinafter.

[0013] The second arm 14 is connected to the tip of the first arm 13 so as to swing about an axis 23 that is substantially parallel to the axis 22, and extends in a direction away from the axis 23. The second arm 14 includes an arm base 15 and an arm end 16. The arm base 15 is connected to the tip of the first arm 13. The arm end 16 is connected to the tip of the arm base 15 so as to rotate about an axis 24 that intersects (e.g., is perpendicular to) the axis 23, and extends in a direction away from the arm base 15 along the axis 24.

[0014] Third arm 17 is connected to the tip of arm end 16 so as to swing about axis 25 intersecting (e.g., perpendicular to) axis 24. Tip 18 is connected to the tip of third arm 17 so as to rotate about axis 26 intersecting (e.g., perpendicular to) axis 25.

[0015] Thus, the robot 2 has a joint 31 connecting the base 11 and the swivel 12, a joint 32 connecting the swivel 12 and the first arm 13, a joint 33 connecting the first arm 13 and the second arm 14, a joint 34 connecting the arm base 15 and the arm end 16 in the second arm 14, a joint 35 connecting the arm end 16 and the third arm 17, and a joint 36 connecting the third arm 17 and the tip 18.

[0016] The actuators 41, 42, 43, 44, 45, and 46 include, for example, electric motors and reducers, and drive the joints 31, 32, 33, 34, 35, and 36, respectively. For example, the actuator 41 rotates the rotating part 12 around the axis 21, the actuator 42 swings the first arm 13 around the axis 22, the actuator 43 swings the second arm 14 around the axis 23, the actuator 44 rotates the arm end 16 around the axis 24, the actuator 45 swings the third arm 17 around the axis 25, and the actuator 46 rotates the tip part 18 around the axis 26.

[0017] The specific configuration of the robot 2 can be appropriately changed. For example, the robot 2 may be a seven-axis redundant robot in which one more joint is added to the six-axis vertical articulated robot, or may be a so-called SCARA type articulated robot.

[0018] The robot controller 100 operates the robot 2 based on an operation program registered in advance by teaching. The operation program includes a plurality of operation commands in a time series. Each of the plurality of operation commands defines at least a target position of the tip 18 and a movement speed of the tip 18 to the target position. The target position is information that defines the coordinates of the tip 18 in the robot coordinate system and the attitude of the tip 18 around each coordinate axis. The robot coordinate system is a three-dimensional coordinate system fixed to the base 11. The target position may be information that directly defines the coordinates and attitude of the tip 18, or may be information that indirectly defines the coordinates and attitude of the tip 18. A specific example of information that indirectly defines the coordinates and attitude of the tip 18 is the rotation angles of the joints 31, 32, 33, 34, 35, and 36.

[0019] Teaching refers to the operation of registering an operation program including a plurality of operation commands corresponding to the plurality of target positions by teaching the plurality of target positions. The terminal 200 is used for operations in teaching. For example, the terminal 200 is used for various operations such as an operation of moving the tip 18 to an arbitrary position, an operation of adding an operation command with the position of the tip 18 as a target position to the operation program, and the like.

[0020] In order to enable the various operations described above by the terminal 200, it is necessary to generate a user interface for the various operations in the terminal 200. Hereinafter, the user interface for the various operations is referred to as an "operation interface." The terminal 200 configures the operation interface of the robot 2 by executing a Web application in a Web client.

[0021] The terminal 200 may be any type of terminal as long as it is capable of configuring an operation interface by executing a web application and is capable of communicating with the robot controller 100. For example, the terminal 200 may be a laptop computer, a tablet computer, or a smartphone.

[0022] The robot controller 100 executes processing for the robot 2 in response to a request from a user interface. For example, the robot controller 100 is configured to receive a request from a Web client executing a Single Page Application via a WebAPI, execute processing for the robot 2 in response to the request received by the WebAPI, and generate a response to the request as update data for the Single Page Application.

[0023] Single Page Application (SPA) is a method of constructing a web application. In an SPA, the server does not generate a web page after the web application is launched, but the web page is updated in the web application based on data obtained from the server.

[0024] The Web client is, for example, a Web browser. The Web client may be a native application having a browsing function. The Web API is an API (Application Programming Interface) that can be used by HTTP. The API is an interface that allows pre-installed software to be used from an external application.

[0025] According to the robot controller 100, the user interface can be made into a Web application. This makes it possible to update the user interface at any time and improve the user operability without being restricted by the hardware configuration of the terminal 200. On the other hand, since the robot controller 100 is required to perform control in real time, the resources that can be allocated to requests from Web applications in the robot controller 100 are limited.

[0026] In contrast, with a configuration in which a request is received from a Web client that executes an SPA and a response to the request is generated as update data for the SPA, there is no need to generate a Web page in the robot controller 100 for each request, and screen transitions based on the response can be performed in the Web client. This makes it possible to effectively utilize the resources of the terminal 200 and achieve both real-time performance in the robot controller 100 and excellent operability due to timely screen transitions.

[0027] In addition, since requests are accepted by the WebAPI, the types and formats of requests accepted by the robot controller 100 are limited to the range of the WebAPI. Therefore, the robustness of the robot controller 100 can be maintained even when the robot controller 100 is controlled by various terminals 200. Therefore, the robot controller 100 is effective in improving the operability of the robot 2.

[0028] FIG. 2 is a block diagram illustrating a functional configuration of the robot controller 100. As shown in FIG. 2, the robot controller 100 has a program storage unit 181 and a control unit 182 as functional components (hereinafter referred to as "functional blocks"). The program storage unit 181 stores an operation program generated by teaching. The control unit 182 sequentially calls up a plurality of operation commands of the operation program stored in the program storage unit 181, and operates the robot 2 based on the operation commands. For example, the control unit 182 repeats a control process at a constant control cycle. The control process includes calculating target angles of the joints 31, 32, 33, 34, 35, and 36 so as to move the tip portion 18 along an operation path represented by the target positions of the plurality of operation commands, and causing the angles of the joints 31, 32, 33, 34, 35, and 36 to follow the target angles.

[0029] In teaching, the robot controller 100 further includes a Web server 110 to enable the terminal 200 to operate the robot 2. The Web server 110 receives requests from Web clients using HTTP (Hypertext Transfer Protocol) or the like, processes the requests, and transmits responses to the Web clients. For example, the Web server 110 includes a file processing unit 114, a WebAPI 111, a processing unit 112, and a response generating unit 113. The file processing unit 114 stores the body data 140 of the SPA. The file processing unit 114 transmits the body data 140 to the Web client in response to a request from the Web client.

[0030] The data body 140 includes an HTML (Hypertext Markup Language) document written to display an operational interface on a Web client. The data body 140 may further include one or more JavaScripts (registered trademark) that are called from the HTML document in response to an operation on the operational interface.

[0031] The Web client executes the SPA (executes a Web application using the SPA) based on the body data 140 transmitted by file processing unit 114. As a result, an operation interface is displayed on the Web client.

[0032] Fig. 3 is a schematic diagram illustrating an execution screen (operation interface) of an SPA in a Web client. The operation interface 300 shown in Fig. 3 has an operation window 310, an event window 320, a monitor window 330, and a login window 340. The operation window 310 includes a servo on key 311, a jog key 312, an add command key 313, and a playback key 314.

[0033] The servo-on key 311 is a software key for requesting servo-on. The Web client generates a servo-on request based on the user's input to the servo-on key 311, and transmits it to the robot controller 100 by HTTP. The servo-on request is a request to start supplying drive power (including power for stopping) to the actuators 41, 42, 43, 44, 45, and 46.

[0034] The jog key 312 is a software key for requesting a jog operation. The Web client generates a jog request based on a user's input to the jog key 312, and transmits the jog request to the robot controller 100 via HTTP. The jog request is a request to move the tip 18 by a predetermined amount in a predetermined direction.

[0035] The command addition key 313 is a software key for requesting the addition of an operation command. The Web client generates a command addition request based on the user's input to the command addition key 313, and transmits the command addition request to the robot controller 100 by HTTP. The command addition request is a request to add an operation command having the current position of the tip portion 18 as a target position to the operation program.

[0036] The playback key 314 is a software key for requesting to operate the robot 2 based on the operation program. The Web client generates a playback request based on the user's input to the playback key 314, and transmits the playback request to the robot controller 100 by HTTP. The playback request is a request to operate the robot 2 based on multiple operation commands of the operation program stored in the program storage unit 181.

[0037] The event window 320 is a window that displays the occurrence of an event related to the robot 2. The monitor window 330 is a window that displays the status of the robot 2. For example, the monitor window 330 includes a plurality of status display sections 331, a plurality of target selection sections 332 respectively corresponding to the plurality of status display sections 331, and a monitor key 333. The plurality of status display sections 331 are boxes that respectively display the status of a plurality of items related to the robot 2. Each of the plurality of target selection sections 332 is a box for inputting whether or not the corresponding status display section 331 needs to be monitored.

[0038] The monitor key 333 is a software key for requesting that the status of items that are determined to require monitoring by the multiple target selection units 332 be displayed on the multiple status display units 331. The Web client generates a monitoring request based on an input to the monitor key 333 by the user, and transmits it to the robot controller 100 by HTTP. The monitoring request is a request for transmission of data indicating the status of the robot 2.

[0039] The login window 340 has an ID input box 341 and a login key 342. The ID input box 341 is a box for inputting the user's identification information. The login key 342 is a software key for requesting authentication of the identification information inputted into the ID input box 341. The Web client generates an operation permission request including the user's identification information based on the user's input into the login key 342, and transmits the operation permission request to the robot controller 100 by HTTP. The operation permission request is a request for permitting the user having the identification information inputted into the ID input box 341 to input an operation into the operation window 310.

[0040] 2, the WebAPI 111 receives a request from a Web client that executes an SPA. For example, the WebAPI 111 receives a request transmitted from the Web client via HTTP based on an input to the operation interface 300.

[0041] The processing unit 112 executes processing on the robot 2 in response to the request received by the WebAPI 111. For example, the processing unit 112 has a robot operation unit 121 and a monitor unit 122. The robot operation unit 121 executes operation of the robot 2 in response to the request received by the WebAPI 111.

[0042] For example, the robot operation unit 121 turns on the servo in response to the servo-on request described above. For example, the robot operation unit 121 starts supplying drive power (including power for stopping) to the actuators 41, 42, 43, 44, 45, and 46.

[0043] Furthermore, the robot operating unit 121 causes the control unit 182 to operate the robot 2 in response to the request. For example, the robot operating unit 121 causes the control unit 182 to move the tip unit 18 in the movement direction and by the amount of movement indicated by the above-mentioned jog request. Furthermore, the robot operating unit 121 causes the control unit 182 to operate the robot 2 based on a plurality of operation commands of the operation program stored in the program storage unit 181 in response to the above-mentioned playback request.

[0044] The operation of the robot 2 is not necessarily limited to the operation of operating the robot 2. The operation of the robot 2 also includes the addition, deletion, or change of data for operating the robot 2. For example, the operation of the robot 2 also includes the addition of a new operation program to the program storage unit 181, the deletion of an operation program stored in the program storage unit 181, or the editing of an operation program stored in the program storage unit 181. The operation of the robot 2 also includes the addition, deletion, or change of a control parameter for operating the robot 2. For example, in response to the command addition request described above, the robot operation unit 121 adds an operation command with the current position of the tip 18 as the target position to the operation program stored in the program storage unit 181.

[0045] The monitor unit 122 monitors the robot 2 in response to a request. For example, the monitor unit 122 monitors the status of the robot 2 in response to the above-mentioned monitoring request. Examples of the status of the robot 2 include the angles of the joints 31, 32, 33, 34, 35, and 36. The status of the robot 2 also includes the status of the robot controller 100 that controls the robot 2. Examples of the status of the robot controller 100 include the values ​​of the above-mentioned control parameters.

[0046] The response generation unit 113 generates a response to the request as update data for the SPA. The update data for the SPA is data used to update the display content of a displayed Web page. The response generation unit 113 transmits the generated response to the Web client. For example, the response generation unit 113 transmits the response to a port of the Web client specified in the request. The Web client partially updates the display of the execution screen in response to the response.

[0047] For example, when the robot operation unit 121 executes an operation of the robot 2, the response generation unit 113 generates a response including a notification of completion of the operation and transmits it to the Web client. Based on the response indicating the completion of the operation, the Web client updates the display of the above-mentioned operation window 310 to indicate the completion of the operation.

[0048] When the robot operation unit 121 executes monitoring of the robot 2, the response generation unit 113 generates a response including a monitoring completion notification and the monitoring result, and transmits it to the Web client. The Web client updates the display of the above-mentioned monitor window 330 to show the monitoring result.

[0049] The processing unit 112 may further include an event notification unit 123. The event notification unit 123 monitors the occurrence of an event in the robot controller 100, and when an event occurs, notifies the Web client of the occurrence of the event by Server-Sent Events. Server-Sent Events (hereinafter, SSE) is a method of performing PUSH communication from a Web server to a client. In SSE, a channel for event notification is established in response to a request from a Web client, and the channel is maintained even after a response to the request is generated and transmitted.

[0050] As an example, the Web client generates an event monitoring request in response to the activation of the SPA, and transmits it to the robot controller 100 by HTTP. The event monitoring request is a request for notification of an event by SSE. In response to the event monitoring request, the event notification unit 123 establishes a channel with the Web client for notifying an event related to the robot 2. Hereinafter, the established channel is referred to as an "event notification channel." For example, the event notification unit 123 stores identification information of a port specified in the event monitoring request. Hereinafter, the port in which the identification information is stored is referred to as an event notification port.

[0051] When the event notification unit 123 establishes the event notification channel, the response generation unit 113 transmits a response to the event monitoring request. Even after receiving the response, the Web client keeps the event notification port open. Based on the stored identification information, the event notification unit 123 transmits notification data notifying the occurrence of an event to the event notification port. Based on the notification data, the Web client displays the occurrence of the event in the above-mentioned event window 320.

[0052] An example of an event related to the robot 2 is the occurrence of an abnormality in the robot 2. The event related to the robot 2 may include an alarm generated by the robot controller 100 based on an abnormality in the robot 2. For example, the event notification unit 123 monitors whether an alarm has occurred in the control unit 182, and when an alarm has occurred in the control unit 182, transmits data notifying the occurrence of the alarm to an event notification port.

[0053] Specific examples of abnormalities in the robot 2 include overcurrent in the actuators 41, 42, 43, 44, 45, and 46, the angles of the joints 31, 32, 33, 34, 35, and 36 falling outside their movable range, abnormal torque being generated in the actuators 41, 42, 43, 44, 45, and 46, and cable breakage between the robot controller 100 and the actuators 41, 42, 43, 44, 45, and 46.

[0054] By applying SSE to alarms, it is possible to reduce the communication load described above while still providing timely notification of alarms. While alarms themselves require timely notification, they are not events that occur all the time, so by applying SSE to alarms, the reduction in communication load becomes even more noticeable.

[0055] When the WebAPI receives a batch request including multiple requests, the processing unit 112 may execute a batch process including multiple processes corresponding to the multiple requests, and the response generating unit 113 may generate a response to the batch request. The processing unit 112 can execute multiple processes collectively without repeating requests and responses between the Web client and the robot controller 100. This can further reduce the communication load between the Web client and the robot controller 100 and further improve the operability.

[0056] The Web client generates a batch request including multiple requests based on an input to the SPA execution screen, and transmits the batch request to the robot controller 100 via HTTP. As an example, the Web client generates a batch request including multiple monitoring requests based on an input by a user to the monitor window 330. For example, when an operation of pressing the monitor key 333 is performed, the Web client identifies two or more items that require monitoring based on inputs to multiple target selection units 332, and generates a batch request including two or more monitoring requests respectively corresponding to the two or more items.

[0057] The processing unit 112 causes the monitor unit 122 to execute batch processing including two or more monitoring corresponding to two or more monitoring requests. The response generation unit 113 transmits a response to the batch processing including the results of the two or more monitoring to the Web client.

[0058] In batch processing, the processing unit 112 may execute a first process in response to a first request included in the multiple requests, and execute a second process in response to a second request included in the multiple requests, using a result of the first process as an argument.

[0059] An example of the first process is to generate one or more operation commands for moving the robot 2 along a path adapted to the surrounding environment. An example of the second process is to move the robot 2 based on the one or more operation commands generated by the first process.

[0060] It is also possible to cause the processing unit 112 to collectively execute a plurality of processes including handover of the processing results between the first process and the second process. This further reduces the communication load between the Web client and the robot controller 100, and further improves the operability.

[0061] The robot controller 100 may be configured to restrict the operation of the robot 2 by the Web client based on the identification information of the user. For example, the Web server 110 may further include a storage unit 115 and a restriction unit 116. The storage unit 115 stores the identification information of the user. When the identification information of the Web client user is not stored in the storage unit, the restriction unit 116 restricts the operation of the robot 2 by the robot operation unit 121. For example, the restriction unit 116 prohibits the robot operation unit 121 from operating the robot 2.

[0062] In the Web client, user information is acquired from login information input by the user. User identification information is included in the request, for example, in the body of a POST method. The restriction unit 116 determines whether the user identification information included in the received data of the request accepted by the WebAPI 111 is stored in the storage unit.

[0063] As an example, the Web client includes the user identification method in a request to operate the robot 2 by the robot operation unit 121 (hereinafter referred to as an "operation request"). The restriction unit 116 determines whether or not the user identification information is stored in the storage unit 115 based on the user identification information included in the received data of the operation request.

[0064] The Web client may be configured to disable an operation object (e.g., operation window 310) for transmitting an operation request when the user's identification information is not authenticated. For example, the Web client displays an execution screen of the SPA in a state in which an operation object (e.g., operation window 310) for transmitting an operation request is disabled. When login information is input by the user (for example, when login key 342 is pressed), the Web client transmits the above-mentioned operation permission request including the user's identification information. The restriction unit 116 judges whether the user's identification information included in the received data of the operation permission request is stored in the storage unit 115.

[0065] The response generation unit 113 transmits a response including the determination result by the restriction unit 116. For example, when it is determined that the user's identification information is stored in the storage unit 115, the response generation unit 113 transmits a response including "operation permitted" as the determination result. When it is determined that the user's identification information is not stored in the storage unit 115, the response generation unit 113 transmits a response including "operation prohibited" as the determination result.

[0066] When a response including "operation permitted" is obtained, the Web client enables the operation window 310. When a response including "operation prohibited" is obtained, the Web client leaves the operation window 310 disabled. By leaving the operation window 310 disabled, sending an operation request is prohibited, and therefore operation of the robot 2 by the robot operation unit 121 is restricted.

[0067] The Web client may send a user authentication request before displaying the SPA execution screen, and if a response including "operation permitted" is obtained, the Web client may enable the operation object and display the SPA execution screen, and if a response including "operation prohibited" is obtained, the Web client may disable the operation object and display the SPA execution screen.

[0068] According to the Web application, the information of the user who is logged in to the Web application can be included in the request. By utilizing this, the robustness of the robot controller 100 can be further improved by restricting the operation of the robot 2 by a user whose identification information is not stored.

[0069] The robot controller 100 may be configured to restrict the operation of the robot 2 by the Web client based on the transmission path of the request. For example, the restriction unit 116 may restrict the operation of the robot 2 by the robot operation unit 121 when the Web client transmits a request via a communication network. For example, the restriction unit 116 prohibits the robot operation unit 121 from operating the robot 2.

[0070] For example, the restriction unit 116 determines whether the request was sent via a communication network based on information included in the received data of the request. As an example, the Web client determines whether the operation request was sent via a communication network based on information included in the received data of the operation request.

[0071] The restriction unit 116 may determine whether or not the operation permission request has been transmitted via a communication network, based on information included in the received data of the operation permission request. The response generation unit 113 transmits a response including the determination result by the restriction unit 116. For example, when it is determined that the operation permission request has been transmitted without via a communication network, the response generation unit 113 transmits a response including "operation permitted" as the determination result. When it is determined that the operation permission request has been transmitted via a communication network, the response generation unit 113 transmits a response including "operation prohibited" as the determination result.

[0072] Similar to the above-mentioned restriction based on user identification information, the Web client enables the operation window 310 when it receives a response including "operation permitted," and disables the operation window 310 when it receives a response including "operation prohibited." The decision as to whether to enable the operation window 310 may be made either before or after the display of the SPA execution screen.

[0073] The web application also allows remote access to the robot controller 100 via a communication network. On the other hand, under remote access, the robot 2 may be operated in a situation where the user cannot sufficiently visually check the robot. In response to this, by restricting the operation of the robot 2 when a request is received via a communication network, it is possible to achieve both the convenience of remote access and the robustness of the robot controller 100.

[0074] The restriction unit 116 may restrict the operation of the robot 2 by the robot operation unit 121 both when the identification information of the user of the Web client is not stored in the memory unit 115 and when the Web client sends a request via a communication network.

[0075] The robot controller 100 may be configured to restrict the operation of the robot 2 by the Web client based on the identification information of the terminal 200. For example, the storage unit 115 may store the identification information of the terminal. The restriction unit 116 may restrict the operation of the robot 2 by the robot operation unit 121 when the identification information of the terminal 200 that executes the Web client is not stored in the storage unit. For example, the restriction unit 116 prohibits the robot operation unit 121 from operating the robot 2.

[0076] For example, the restriction unit 116 acquires identification information of the terminal 200 based on information included in the received data of the request, and determines whether or not the acquired identification information is stored in the storage unit 115. As an example, the restriction unit 116 may determine whether or not the identification information acquired based on information included in the received data of the operation request is stored in the storage unit 115.

[0077] The restriction unit 116 may determine whether or not the acquired identification information is stored in the storage unit 115 based on the information included in the received data of the operation permission request. The response generation unit 113 transmits a response including the determination result by the restriction unit 116. For example, when it is determined that the identification information of the terminal 200 is stored in the storage unit 115, the response generation unit 113 transmits a response including "operation permitted" as the determination result. When it is determined that the identification information of the terminal 200 is not stored in the storage unit 115, the response generation unit 113 transmits a response including "operation prohibited" as the determination result.

[0078] Similar to the above-mentioned restriction based on the user's identification information, when the Web client receives a response including "operation permitted", it enables the operation window 310, and when the Web client receives a response including "operation prohibited", it disables the operation window 310. The decision as to whether to enable the operation object may be made either before or after the display of the execution screen of the SPA.

[0079] By restricting the operation of the robot 2 from a terminal 200 whose identification information is not stored in the memory unit 115, it is possible to achieve both the convenience of being able to use a variety of terminals 200 and the robustness of the robot controller 100.

[0080] The restriction unit 116 may restrict the operation of the robot 2 by the robot operation unit 121 both in the case where the identification information of the user of the Web client is not stored in the storage unit 115 and in the case where the identification information of the terminal 200 is not stored in the storage unit 115. The restriction unit 116 may restrict the operation of the robot 2 by the robot operation unit 121 both in the case where the Web client transmits a request via a communication network and in the case where the identification information of the terminal 200 is not stored in the storage unit 115. The restriction unit 116 may restrict the operation of the robot 2 by the robot operation unit 121 in all of the cases where the identification information of the user of the Web client is not stored in the storage unit 115, where the Web client transmits a request via a communication network, and where the identification information of the terminal 200 is not stored in the storage unit 115.

[0081] The robot controller 100 may be configured to change the body data of the SPA to be sent to the Web client in response to a request from the Web client. For example, the file processing unit 114 may store multiple types of body data 140 including body data 140 of an SPA capable of sending a monitoring request (hereinafter referred to as "body data 141") and body data 140 of an SPA capable of sending a request to operate the robot 2 in addition to a monitoring request (hereinafter referred to as "body data 142"). In the SPA based on the body data 141, the request to operate the robot 2 is at least partially restricted. The file processing unit 114 may send any of the multiple types of body data 140 to the Web client in response to a request from the Web client.

[0082] As an example, the file processing unit 114 may transmit the main data 141 when the identification information of the user included in the received data of the request is not stored in the storage unit 115, and may transmit the main data 142 when the identification information of the user included in the received data of the request is stored in the storage unit 115. The file processing unit 114 may transmit the main data 141 when the request is transmitted via a communication network, and may transmit the main data 142 when the request is transmitted without passing through a communication network. The file processing unit 114 may transmit the main data 141 when the identification information of the terminal 200 is not stored in the storage unit 115, and may transmit the main data 142 when the identification information of the terminal 200 is stored in the storage unit 115.

[0083] The file processing unit 114 may select the body data 140 to be transmitted based on both the user identification information included in the request and the transmission route of the request. The file processing unit 114 may select the body data 140 to be transmitted based on both the user identification information included in the request and the identification information of the terminal 200 included in the request. The restriction unit 116 may select the body data 140 to be transmitted based on both the transmission route of the request and the identification information of the terminal 200 included in the request. The file processing unit 114 may select the body data 140 to be transmitted based on all of the user identification information included in the request, the transmission route of the request, and the identification information of the terminal 200 included in the request.

[0084] Based on the request to send main data 140, restriction unit 116 determines whether to grant "operation permission" or "operation prohibition," and may cause file processing unit 114 to send main data for operation 142 as a response including the above-mentioned "operation permission," or may cause file processing unit 114 to send main data for monitoring 141 as a response including the above-mentioned "operation prohibition."

[0085] By using multiple types of main data 140 in response to requests from Web clients, the display of the Web application can be changed depending on the user, the terminal 200, or the access route, thereby further improving the operability.

[0086] [Hardware configuration] FIG. 4 is a block diagram illustrating a hardware configuration of a control system including a robot controller 100 and a terminal 200. The robot controller 100 has a circuit 190. The circuit 190 has one or more processors 191, one or more memory devices 192, one or more storage devices 193, a communication port 194, and a driver circuit 195. The one or more storage devices 193 store a program for causing the robot controller 100 to execute the following: receiving a request from a Web client that executes an SPA by a WebAPI, executing a process according to the request received by the WebAPI on the robot 2, and generating a response to the request as update data for the SPA. For example, the one or more storage devices 193 store a program for causing the robot controller 100 to configure each of the above-mentioned functional blocks. Each of the one or more storage devices 193 may be a built-in storage medium such as a flash memory or a hard disk, or may be a portable storage medium such as a USB memory or an optical disk.

[0087] The one or more memory devices 192 temporarily store programs loaded from the one or more storage devices 193. Each of the one or more memory devices 192 may be a random access memory or the like. The one or more processors 191 configure each of the above-mentioned functional blocks by executing the programs loaded in the one or more memory devices 192. The one or more processors 191 store the results of calculations in the one or more memory devices 192 as appropriate.

[0088] The communication port 194 communicates with the terminal 200 based on a request from the one or more processors 191. The driver circuit 195 supplies driving power to the robot 2 (actuators 41, 42, 43, 44, 45, 46) based on a request from the one or more processors 191.

[0089] The terminal 200 includes a circuit 290. The circuit 290 includes one or more processors 291, one or more memory devices 292, one or more storage devices 293, a communication port 294, and a user interface 295. The one or more storage devices 293 are non-volatile storage media, and store at least an operating system and an executable program for a Web client. Each of the one or more storage devices 293 may be a built-in storage medium such as a flash memory or a hard disk, or may be a portable storage medium such as a USB memory or an optical disk.

[0090] The one or more memory devices 292 temporarily store programs loaded from the one or more storage devices 293. The one or more memory devices 292 may be random access memories or the like. The one or more processors 291 execute the programs loaded in the one or more memory devices 292. The one or more processors 291 store operation results in the one or more memory devices 292 as appropriate.

[0091] The communication port 294 communicates with the robot controller 100 based on a request from one or more processors 291. The user interface 295 communicates with a user based on a request from one or more processors 291. For example, the user interface 295 includes a display device and an input device. Examples of the display device include a liquid crystal monitor or an organic EL (Electro-Luminescence) monitor. Examples of the input device include a keyboard, a mouse, or a keypad. The input device may be integrated with the display device as a touch panel.

[0092] The above hardware configuration is merely an example and can be modified as appropriate.

[0093] [Control method] As an example of a control method, a control procedure executed by the robot controller 100 is illustrated. This control procedure includes receiving a request from a Web client executing an SPA by a WebAPI, executing a process on the robot 2 according to the request received by the WebAPI, and generating a response to the request as update data for the SPA. Below, more detailed examples of the control procedure are illustrated, divided into an SPA startup procedure, a request handling procedure, and an event monitoring procedure.

[0094] (SPA startup procedure) As shown in Fig. 5, the robot controller 100 first executes steps S01 and S02. In step S01, the file processing unit 114 waits for a request to send the body data of the SPA. In step S02, the file processing unit 114 sends the body data 140 to the Web client. The Web client executed by the terminal 200 executes the SPA based on the body data 140 sent by the file processing unit 114. For example, the Web client generates the operation interface 300 with the operation window 310 disabled.

[0095] Next, the robot controller 100 executes step S03. In step S03, the event notification unit 123 checks whether or not an event monitoring request has been accepted by the WebAPI 111. If it is determined in step S03 that the event monitoring request has not been accepted, the robot controller 100 executes step S04. In step S04, it is checked whether or not a predetermined startup waiting time has elapsed. If it is determined in step S04 that the startup waiting time has not elapsed, the robot controller 100 returns the process to step S03.

[0096] If it is determined in step S03 that the event monitoring request has been accepted, the robot controller 100 executes steps S05 and S06. In step S05, the event notification unit 123 establishes an event notification channel with the Web client. In step S06, the response generation unit 113 generates a response to the event monitoring request and transmits it to the Web client. After that, the robot controller 100 returns the process to step S03. Thereafter, an event notification channel for each event is established each time an event monitoring request is accepted until the startup waiting time has elapsed.

[0097] In step S04, when the startup waiting time elapses, the startup of the SPA is completed.

[0098] (Request handling procedure) As shown in FIG. 6, the robot controller 100 first executes step S11. In step S11, the processing unit 112 waits for the WebAPI 111 to accept a request. If it is determined in step S11 that the request has been accepted, the robot controller 100 executes step S13. In step S13, the processing unit 112 checks whether the request is a batch request. If it is determined in step S13 that the request is not a batch request, the robot controller 100 executes steps S14 and S15. In step S14, the processing unit 112 executes processing corresponding to the request. The contents of step S14 will be described later. In step S15, the response generation unit 113 generates a response to the request as update data for the SPA, and transmits it to the Web client.

[0099] If it is determined in step S13 that the request is a batch request, the robot controller 100 executes steps S16, S17, and S18. In step S16, the processing unit 112 selects an unprocessed request from among the multiple requests included in the batch request. In step S17, the processing unit 112 executes processing corresponding to the request. The contents of step S14 will be described later. In step S18, the processing unit 112 checks whether processing corresponding to all requests included in the batch request (batch processing) has been completed. If it is determined in step S18 that the batch processing has not been completed, the robot controller 100 returns the processing to step S16. Thereafter, the selection of a request and the processing corresponding to the selected request are repeated until the batch processing is completed.

[0100] If it is determined in step S18 that the batch process is completed, the robot controller 100 executes step S19. In step S19, the response generation unit 113 generates a response to the batch request as update data for the SPA, and transmits the response to the Web client.

[0101] Fig. 7 is a flowchart illustrating the processing procedure in steps S14 and S17. As shown in Fig. 7, the robot controller 100 first executes step S31. In step S31, the processing unit 112 checks whether the request is an operation permission request. If it is determined in step S31 that the request is an operation permission request, the robot controller 100 executes step S32.

[0102] In step S32, the processing unit 112 causes the restriction unit 116 to confirm whether or not the operation is permitted. The restriction unit 116 confirms whether or not the operation is permitted based on whether or not the user's identification information included in the received data of the operation permission request is stored in the storage unit 115. As described above, the restriction unit 116 may confirm whether or not the operation is permitted based on whether or not the transmission path of the operation permission request includes a communication network. The restriction unit 116 may confirm whether or not the operation is permitted based on whether or not the identification information of the terminal 200 is stored in the storage unit 115.

[0103] If it is determined that operation permission is possible, the restriction unit 116 includes "operation permitted" in the response sent by the response generation unit 113. If it is determined that operation permission is not possible, the restriction unit 116 includes "operation prohibited" in the response sent by the response generation unit 113. If a response including "operation permitted" is obtained, the Web client enables the operation window 310. If a response including "operation prohibited" is obtained, the Web client keeps the operation window 310 disabled.

[0104] If it is determined in step S31 that the request is not an operation permission request, the robot controller 100 executes step S34. In step S34, the processing unit 112 checks whether the request is an operation request. If it is determined in step S34 that the request is an operation request, the robot controller 100 executes step S35. In step S35, the robot operation unit 121 executes the operation of the robot 2 in response to the request. If it is determined in step S34 that the request is not an operation request (it is a monitoring request), the robot controller 100 executes step S36. In step S36, the monitor unit 122 executes monitoring of the robot 2 in response to the request. The monitor unit 122 includes the monitoring result in the response sent by the response generation unit 113. This completes the processing procedure.

[0105] (Event monitoring procedure) The event monitoring procedure is a procedure that is performed in parallel with the above-mentioned request handling procedure after the event notification channel is established in step S05. As shown in Fig. 8, the robot controller 100 executes steps S21 and S22. In step S21, the event notification unit 123 waits for an event to occur. In step S22, the event notification unit 123 transmits event notification data to the event notification port. After that, the robot controller 100 returns the process to step S21. After that, monitoring continues.

[0106] 〔summary〕 As described above, the robot controller 100 includes a Web API 111 that receives requests from a Web client executing a Single Page Application, a processing unit 112 that executes processing on the robot 2 in response to the request received by the Web API 111, and a response generation unit 113 that generates a response to the request as update data for the Single Page Application.

[0107] According to this robot controller 100, the operation interface of the robot 2 can be made into a Web application. This makes it possible to update the operation interface at any time and improve the operability for the user without being restricted by the hardware configuration of the terminal 200. On the other hand, since the robot controller 100 is required to perform control in real time, the resources that can be allocated to requests from Web applications in the robot controller 100 are limited.

[0108] In contrast, with a configuration in which a request is received from a Web client that executes an SPA and a response to the request is generated as update data for the SPA, there is no need to generate a Web page in the robot controller 100 for each request, and it becomes possible for the Web client to perform screen transitions based on the response. This makes it possible to effectively utilize the resources of the terminal 200 and achieve both real-time performance in the robot controller 100 and an excellent operability due to timely screen transitions. This is therefore effective in improving the operability of the robot 2.

[0109] In addition, since the requests are accepted by the WebAPI 111, the types, formats, etc. of requests accepted by the robot controller 100 are limited to the range of the WebAPI 111. Therefore, even when the robot controller 100 is controlled by various terminals 200, the robustness of the robot controller 100 can be maintained.

[0110] The terminal 200 may further include a file processing unit 114 that stores the main data 140 of the Single Page Application and transmits it to the Web client in response to a request. Since there is no need to store the main data 140 of the Single Page Application in advance in the terminal 200, various terminals 200 can be used to operate the robot 2 simply by connecting them to the robot controller 100.

[0111] The processing unit 112 may have an event notification unit 123 that monitors the occurrence of an event in the robot controller 100 and, when an event occurs, notifies the Web client of the occurrence of the event by Server-SentEvents. The occurrence of an event can be notified to the Web client in a timely manner without repeating requests and responses between the Web client and the robot controller 100. This can further reduce the communication load between the Web client and the robot controller 100 and further improve the operability.

[0112] The event may include an alarm that occurs in the robot controller 100. By applying SSE to the alarm, it is possible to achieve both the reduction in the communication load and the timely notification of the alarm. While an alarm itself requires timely notification, it is not an event that occurs all the time, so by applying SSE to the alarm, the reduction in the communication load becomes more noticeable.

[0113] The processing unit 112 may have a robot operation unit 121 that operates the robot 2 in response to a request, and a monitor unit 122 that monitors the robot 2 in response to a request. The processing unit 112 can provide both the services of operating the robot 2 and monitoring the robot 2, thereby further improving usability.

[0114] The robot controller 100 may further include a storage unit 115 that stores user identification information, and a restriction unit 116 that restricts the operation of the robot 2 by the robot operation unit 121 when the WebAPI 111 receives a request including user identification information that is not stored in the storage unit 115. According to a Web application, information on a user who is logged in to the Web application can be included in a request. By utilizing this, the robustness of the robot controller 100 can be further improved by restricting the operation of the robot 2 by a user whose identification information is not stored.

[0115] The WebAPI 111 may further include a limiting unit 116 that limits the operation of the robot 2 by the robot operation unit 121 when the WebAPI 111 receives a request via a communication network. The Web application also allows remote access to the robot controller 100 via a communication network. On the other hand, under remote access, the robot 2 may be operated in a situation where the user cannot sufficiently visually confirm the operation. In response to this, by limiting the operation of the robot 2 when a request is received via a communication network, it is possible to achieve both the convenience of remote access and the robustness of the robot controller 100.

[0116] The system may further include a storage unit 115 that stores identification information of a terminal 200 that executes a Web client, and a restriction unit 116 that restricts the operation of the robot 2 by the robot operation unit 121 when the WebAPI 111 receives a request from a terminal 200 whose identification information is not stored in the storage unit 115. By restricting the operation of the robot 2 from a terminal 200 whose identification information is not stored in the storage unit 115, it is possible to achieve both the convenience of being able to use a variety of terminals 200 and the robustness of the robot controller 100.

[0117] When the WebAPI 111 receives a batch request including multiple requests, the processing unit 112 may execute a batch process including multiple processes corresponding to the multiple requests, and the response generating unit 113 may generate a response to the batch request. The processing unit 112 can execute multiple processes collectively without repeating requests and responses between the Web client and the robot controller 100. This can further reduce the communication load between the Web client and the robot controller 100 and further improve the operability.

[0118] In the batch processing, the processing unit 112 may execute a first process in response to a first request included in the multiple requests, and execute a second process in response to a second request included in the multiple requests using the result of the first process as an argument. The processing unit 112 may also execute multiple processes collectively, including handover of the processing results between the first process and the second process. This can further reduce the communication load between the Web client and the robot controller 100, and further improve the operability.

[0119] The file processing unit 114 may store multiple types of body data 140 including body data 140 of SinglePageApplication capable of sending a request for monitoring the robot 2 and body data 140 of SinglePageApplication capable of sending a request for operating the robot 2 in addition to a monitoring request, and may send any one of the multiple types of body data 140 to a Web client in response to a request from the Web client. By using multiple types of body data 140 in response to a request from a Web client, it is possible to change the display of the Web application in accordance with differences in users, terminals 200, access routes, or the like, and to further improve the operability.

[0120] The Web client may generate a request based on an input to the execution screen of the SinglePageApplication, and partially update the display of the execution screen according to the response. Since the screen transition based on the response is performed in the Web client, it is not necessary to generate a Web page in the robot controller 100 for each request. This makes it possible to effectively utilize the resources of the terminal 200 and achieve both real-time performance in the robot controller 100 and excellent operability due to timely screen transitions.

[0121] The Web client generates a request for event monitoring in response to the start of SinglePageApplication, and the robot controller 100 may further include an event notification unit 123 that starts monitoring the occurrence of an event in the robot controller 100 when the WebAPI 111 accepts the request for event monitoring, and notifies the Web client of the occurrence of the event by Server-SentEvents when an event occurs. This can further reduce the communication load after the start of the SPA.

[0122] A batch request including a plurality of requests may be generated based on an input to the execution screen, and when the WebAPI 111 receives the batch request, the processing unit 112 may execute a batch process including a plurality of processes corresponding to the plurality of requests, and the response generating unit 113 may generate a response to the batch process. By dynamically generating a batch request based on an operator's input, it is possible to reduce both the communication load and unnecessary processing.

[0123] Although the embodiments have been described above, the present disclosure is not necessarily limited to the above-described embodiments, and various modifications are possible without departing from the gist of the present disclosure. [Explanation of symbols]

[0124] 2...robot, 100...robot controller, 200...terminal, 110...web server, 140...main body data, 111...web API, 112...processing unit, 113...response generation unit, 121...robot operation unit, 122...monitor unit, 123...event notification unit, 115...memory unit, 116...restriction unit.

Claims

1. A control unit for controlling a robot; an event notification unit that monitors occurrence of an event in the control unit and, when the event occurs, notifies a Web client of the occurrence of the event by Server-Sent Events; A robot controller comprising:

2. The event includes an alarm generated in the control unit. The robot controller according to claim 1.

3. Further comprising a Web API for receiving requests from a Web client; The event notification unit starts monitoring the occurrence of the event in response to the request accepted by the Web API. The robot controller according to claim 1.

4. A robot operation unit that performs an operation of the robot in response to the request received by the Web API; A storage unit that stores user identification information; a restriction unit that restricts the operation of the robot by the robot operation unit when the Web API receives the request including the identification information of a user not stored in the storage unit; Further comprising: The robot controller according to claim 3.

5. A robot operation unit that performs an operation of the robot in response to the request accepted by the Web API; and a limiting unit that limits the operation of the robot by the robot operation unit when the Web API accepts the request via a communication network. The robot controller according to claim 3.

6. A robot operation unit that performs an operation of the robot in response to the request accepted by the Web API; A storage unit that stores identification information of a terminal that executes the Web client; a restriction unit that restricts the operation of the robot by the robot operation unit when the Web API receives the request from the terminal in which the identification information is not stored in the storage unit; Further comprising: The robot controller according to claim 3.

7. A Web API that accepts requests from a Web client; a robot operation unit that executes an operation of a robot in response to the request received by the Web API; A storage unit that stores user identification information; a restriction unit that restricts the operation of the robot by the robot operation unit when the Web API receives the request including the identification information of a user not stored in the storage unit; A robot controller comprising:

8. Controlling the robot by a control unit; monitoring occurrence of an event in the control unit, and when the event occurs, notifying the occurrence of the event to a Web client by Server-Sent Events; A control method comprising:

9. A method comprising: a Web API receiving a request from a Web client; Executing an operation of a robot in response to the request accepted by the Web API; storing user identification information in a storage unit; restricting the operation of the robot when the Web API receives the request including the identification information of a user not stored in the storage unit; A control method comprising: