Server connectivity control for tele-presence robots
12138808 ยท 2024-11-12
Assignee
Inventors
- John Cody Herzog (Santa Barbara, CA, US)
- Blair Whitney (Santa Barbara, CA)
- Yulun Wang (Goleta, CA)
- Charles S. Jordan (Santa Barbara, CA)
- Marco Pinter (Santa Barbara, CA)
Cpc classification
G05D1/2247
PHYSICS
G05B2219/40153
PHYSICS
Y10S901/01
GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
Y10S901/47
GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
B25J5/00
PERFORMING OPERATIONS; TRANSPORTING
G05D1/249
PHYSICS
G05D1/0038
PHYSICS
International classification
B25J5/00
PERFORMING OPERATIONS; TRANSPORTING
Abstract
A robot system with a robot that has a camera and a remote control station that can connect to the robot. The connection can include a plurality of privileges. The system further includes a server that controls which privileges are provided to the remote control station. The privileges may include the ability to control the robot, joint in a multi-cast session and the reception of audio/video from the robot. The privileges can be established and edited through a manager control station. The server may contain a database that defines groups of remote control station that can be connected to groups of robots. The database can be edited to vary the stations and robots within a group. The system may also allow for connectivity between a remote control station at a user programmable time window.
Claims
1. A telepresence system, comprising: a server in communication with a plurality of telepresence devices and a remote station that can establish a connection with at least one of the telepresence devices, the server includes: a database that defines a first subset of the plurality of telepresence devices as associated with a first customer identification (ID) and a second subset of the plurality of telepresence devices as associated with a second customer ID; and an interface that allows a manager control station to access the server to edit which of the plurality of telepresence devices is associated with the first subset of telepresence devices or the second subset of telepresence devices, wherein the remote station and each of the plurality of telepresence device include a camera, a monitor, a microphone, and a speaker, and, when the connection between the remote station and the at least one telepresence device is established, the telepresence device monitor displays an image captured by the remote station camera, the remote station monitor displays an image captured by the telepresence device camera, the remote station microphone reproduces a sound captured by the telepresence device microphone, and the telepresence device speaker reproduces a sound captured by the remote station microphone.
2. The system of claim 1, wherein the connection includes a plurality of privileges.
3. The system of claim 2, wherein the plurality of privileges includes an ability to operate the telepresence device.
4. The system of claim 2, wherein the plurality of privileges includes an ability to participate in a session with another remote station.
5. The system of claim 2, wherein the plurality of privileges includes an ability to view a video image captured by the telepresence device camera.
6. The system of claim 2, wherein the plurality of privileges includes an ability to hear audio captured by the telepresence device microphone.
7. The system of claim 2, wherein the plurality of privileges includes an ability for the video image captured by a control station camera to be displayed on the telepresence device monitor.
8. The system of claim 2, wherein the plurality of privileges includes an ability for the audio captured by a control station microphone to be played by the telepresence device speaker.
9. The system of claim 2, further comprising an auxiliary device that can be coupled to the telepresence device, and the plurality of privileges includes an ability to access the auxiliary device attached to the telepresence device.
10. The system of claim 2, wherein the server includes a privilege map that is transferred to the remote station.
11. The system of claim 1, wherein the telepresence device includes a mobile platform.
12. The system of claim 1, wherein the system includes a plurality of remote stations and the database associates each of the plurality of remote stations with a customer ID.
13. The system of claim 1, wherein the connection between the remote station and the telepresence device is established by a time window.
14. The system of claim 1, wherein the interface that allows one or more connectivity rules to be subtracted.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
DETAILED DESCRIPTION
(9) Disclosed is a robot system with a robot that has a camera and a remote control station that can connect to the robot. The connection can include a plurality of privileges. The system further includes a server that controls which privileges are provided to the remote control station. The privileges may include the ability to control the robot, join in a multi-cast session and the reception of audio/video from the robot. The privileges can be established and edited through a manager control station.
(10) The server may contain a database that defines groups of remote control stations that can be connected to groups of robots. The database can be edited to vary the stations and robots within a group. The system may also allow for connectivity between a remote control station and a robot within a user programmable time window. The system may also allow for connectivity between arbitrary endpoints, including control station to control station connections and robot to robot connections.
(11) Referring to the drawings more particularly by reference numbers,
(12) Each remote control station 16 may include a computer 22 that has a monitor 24, a camera 26, a microphone 28 and a speaker 30. The computer 22 may also contain an input device 32 such as a joystick or a mouse. Each control station 16 is typically located in a place that is remote from the robot 12. Although only one robot 12 is shown, it is to be understood that the system 10 may have a plurality of robots 12. In general any number of robots 12 may be controlled by any number of remote stations. For example, one remote station 16 may be coupled to a plurality of robots 12, or one robot 12 may be coupled to a plurality of remote stations 16.
(13) The robot 12 includes a movement platform 34 that is attached to a robot housing 36. Also attached to the robot housing 36 are a camera 38, a monitor 40, a microphone (s) 42 and a speaker 44. The microphone 42 and speaker 30 may create a stereophonic sound. The robot 12 may also have an antenna 46 that is wirelessly coupled to an antenna 48 of the base station 14. The system 10 allows a user at the remote control station 16 to move the robot 12 through the input device 32. The robot camera 38 is coupled to the remote monitor 24 so that a user at the remote station 16 can view a patient. Likewise, the robot monitor 40 is coupled to the remote camera 26 so that the patient can view the user. The microphones 28 and 42, and speakers 30 and 44, allow for audible communication between the patient and the user.
(14) Each remote station computer 22 may operate Microsoft OS software and WINDOWS XP or other operating systems such as LINUX. The remote computer 22 may also operate a video driver, a camera driver, an audio driver and a joystick driver. The video images may be transmitted and received with compression software such as MPEG CODEC. The control station may have general user interfaces that allow for operation of a robot and for multi-casting with other remote stations.
(15) The system 10 includes a server 50 that controls connectivity between the remote control stations 16 and the robots 12. The server 50 includes a database 52. By way of example, the database 52 may be a relational database. The database 52 can allow for groups of remote stations to connect groups of robots. Groups may contain individual robots and control stations. Groups may also contain customers, which represent all robots and control stations belonging to a particular customer. Groups may also contain OEM configurations, which represent all robots and control stations that are sold by a particular 3rd-party OEM distributor. Groups may also contain other groups in a recursive fashion. By way of example, one healthcare entity may have three robots designated ROBOT-1, ROBOT-2 and ROBOT-3 and 5 remote stations designated CS-1, CS-2, CS-3, CS-4 and CS-5. The 3 robots are defined as group R and the remote stations are defined as group S. Rules can be established that allow connectivity between any remote station in group S with any robot in group R.
(16)
(17) The interface 60 may include an Existing Groups area 76 that allows the user to view existing groups and group members through fields 78 which filter based on the category of group name, OEM, customer or client. Interface area 80 lists each group along with the group members, the person who created the group (with time log), and an indication of whether the group is active. An existing group can be edited by selecting an Edit button 82. A history of edits can be viewed by selecting the History button 84.
(18) The group data may be stored in the database with the following group connectivity information: id [int, identity]: Unique numeric ID. createID [int]: ID that is shared amongst all group edits in the history chain. This is used to locate the group history. For the initial group creation, the createID is equal to the regular id. All subsequent edits to the group will retain the same createID, but will be given new unique regular ids. isActive [bit]: Set to true if group is currently considered active, meaning that it has not been edited and replaced by a new version of the group. name [nvarchar]: Friendly name of group. This name appears in any group dropdowns in an advanced page. members [text]: String of group members. Contains mixed client machines, customer names, OEM configurations and nested groups. membersExpanded [text]: Stores members in an expanded format where all nested groups and OEMs are expanded to list all client machines and customers contained in the groups. createdUTC [int]: Timestamp of initial group creation in UTC seconds. When a group is edited, the original group becomes inactive and a new group is created, but the createdUTC timestamp is maintained in the new group. modifiedUTC [int]: Timestamp of most recent group modification in UTC seconds. For groups being made inactive due to a group edit, the newly inactive group will have its modified timestamp set to the time of the edit. creator [nvarchar]: The user who first created the group. This can be automatically pulled from domain login credentials used to access the various UI pages. lastModifiedBy [nvarchar]: The user who last modified the group. This can be automatically pulled from domain login credentials used to access the various UI pages. comments [text]: Textual comments attached to group.
(19)
(20) The rules include From 98 and To 100 fields that define the connectivity path between control stations and robots. The Priority field 102 defines how conflicting rules will be resolved. When rules are in conflict, the priority value resolves the ambiguity. If two conflicting rules have the same priority, the rule that was modified most recently wins. The Privilege Level field 104 establishes what privileges are allowed in this particular connectivity. By way of example, the system may allow the following privileges: The ability to operate the robot. The ability to accept multi-cast sessions with one or more other remote control stations. The ability to be the Host (primary control station CS user) for a multi-cast session with one or more other remote control stations. The ability to be a Guest CS in a multi-cast session with one or more other remote control stations. The ability to connect directly to a robot (i.e. without being a Guest). Disabling of all visible video output and/or audio output on a Guests system of what is captured on the robot. Disabling video output and/or audio output on the robot of what is captured on one or more Guest control stations. Disabling of saving of media including snapshots and movies from the robot. Access to a medical device connected to the robot. The ability to view and control auxiliary video sources. The ability to use an external handset attached to the robot.
(21) The Type field 106 allows the user to specify whether the rule is additive or subtractive. Additive rules can be used to add connectivity. Subtractive rules can be used to selectively remove connectivity in a targeted manner. In this fashion, if one defines the connectivity to or from a group, and then subtracts connectivity privileges of a sub-group, and further adds connectivity privileges of a sub-sub-group, the system thereby allows one to define a hierarchy of connectivity rules The Bidirectional field 108 allows for connectivity between the From and To members to be unidirectional (False) or bidirectional (True) which is selectable by the user. The user can set the rule as read-only in the Read-Only field 110. Read-only rules always appear at the top of the list when rules are displayed. They require special double confirmation to be edited or deleted.
(22) The user can select a time window for connectivity by entering a start date and time in a Start Time field 112 and an end date and time in an End Time field 114. The rule can be added by selecting the Add This Rule button 116. This allows a user to schedule connectivity in advance, to be enabled at a later date and time.
(23) The From, To, Priority, Privilege and Active data for existing rules can be displayed in an interface area 118. A user can edit an existing rule by selecting an Edit button 120 and review edit history by selecting a History button 122.
(24) The rules can be stored in the relational database with the following connectivity rule information: id [int, identity]: Unique numeric ID. createID [int]: ID that is shared amongst all rules in the history chain that resulted from edits. This is used to locate the rule history. For the initial rule, the createID is equal to the regular id. All subsequent edits to the rule will retain the same createID, but will be given new unique regular ids. priority [int]: Allows establishing precedence between conflicting rules by determining the order in which rules are applied. Higher numbers means the rule will be applied later in the logic chain. groupFrom [text]: String of from group members. Contains mixed client machines, customers and groups. For non-bidirectional rules, this represents the source of connectivity, for bidirectional rules it represents both source and destination. groupTo [text]: String of to group members. Contains mixed client machines, customers and groups. For non-bidirectional rules, this represents the destination of connectivity, for bidirectional rules it represents both source and destination. groupFromExpanded [text]: Stores groupFrom in an expanded format where all nested groups and OEMs are expanded to list all client machines and customers contained in the groups. groupToExpanded [text]: Stores groupTo in an expanded format where all nested groups and OEMs are expanded to list all client machines and customers contained in the groups. privilegeMaskFriendlyNameID [int]: Sets the privilege mask associated with this connectivity rule. This is a link to a privilege table. This can also be set to the special value of 1, which implies that the privilege is not explicitly defined and will be inherited from a rule that is higher up in the logic chain. The privilege table can be transferred to a control station which includes code that can decode the table to determine which privileges are allowed in a connectivity. isActive [bit]: Set to true if rule is currently considered active, meaning that it has not expired and has not explicitly been removed or deactivated as the result of being replaced by a new version of the rule following an edit. isBidirectional [bit]: Set to true if rule is bidirectional, meaning that from can connect to to and vice versa. Set to false for one-way, from.fwdarw.to connectivity. isReadOnly [bit]: Set to true if the rule is read only, meaning that it requires double confirmation on edit/delete and always appears at top of rule list display. Set to false for standard rule. type [int]: 0=additive connectivity rule, 1=subtractive connectivity rule, 2=privilege-only rule startUTC [int]: Defines the start of time window that rule is active in UTC seconds. endUTC [int]: Defines the end of time window that rule is active in UTC seconds. For infinite rules, this will be set to 0. createdUTC [int]: Timestamp of initial rule creation in UTC seconds. When a rule is edited, the original rule becomes inactive and a new rule is created, but the createdUTC timestamp is maintained in the new rule. modifiedUTC [int]: Timestamp of most recent rule modification in UTC seconds. For rules being made inactive due to a rule edit, the newly inactive rule will have its modified timestamp set to the time of the edit. creator [nvarchar]: The user who first created the rule. This can be automatically pulled from domain login credentials used to access the various UI pages. lastModifiedBy [nvarchar]: The user who last modified the rule. This can be automatically pulled from domain login credentials used to access the various UI pages. comments [text]: Textual comments attached to rule. These are required.
(25) The ability to change/add groups and rules can be limited to a select field of users, requiring a password/code for access to the interfaces 60 and 90. The server 50 may provide interfaces that can be accessed by the remote control stations 16 to review connectivity. The pages can provide information on which robots can be accessed by a particular remote control station or which remote control stations can access a specific robot.
(26) The server may provide a tester page that allows a user to test the connectivity between two endpoints.
(27) A manager control station is defined as any computer which has access to one or more of the interfaces depicted in
(28)
(29) The speaker 44 is coupled to the bus 156 by a digital to analog converter 164. The microphone 42 is coupled to the bus 156 by an analog to digital converter 166. The high level controller 150 may also contain random access memory (RAM) device 168, a non-volatile RAM device 170 and a mass storage device 172 that are all coupled to the bus 162. The mass storage device 172 may contain medical files of the patient that can be accessed by the user at the remote control station 16. For example, the mass storage device 172 may contain a picture of the patient. The user, particularly a health care provider, can recall the old picture and make a side by side comparison on the monitor 24 with a present video image of the patient provided by the camera 38. The robot antennae 46 may be coupled to a wireless transceiver 174. By way of example, the transceiver 174 may transmit and receive information in accordance with IEEE 802.11b.
(30) The controller 154 may operate with a LINUX OS operating system. The controller 154 may also operate MS WINDOWS along with video, camera and audio drivers for communication with the remote control station 16. Video information may be transceived using MPEG CODEC compression techniques. The software may allow the user to send e-mail to the patient and vice versa, or allow the patient to access the Internet. In general the high level controller 150 operates to control the communication between the robot 12 and the remote control station 16. The controller and the high level controller 150 may be linked to the low level controller 152 by serial ports 176.
(31) The low level controller 152 runs software routines that mechanically actuate the robot 12. For example, the low level controller 152 provides instructions to actuate the movement platform to move the robot 12. The low level controller 152 may receive movement instructions from the high level controller 150. The movement instructions may be received as movement commands from the remote control station. Although two controllers are shown, it is to be understood that the robot 12 may have one controller controlling the high and low level functions.
(32)
(33) The robot 12 may have a head 154 that supports the camera 38 and the monitor 40. The head 154 may have two degrees of freedom so that the camera 26 and monitor 24 can be swiveled and pivoted as indicated by the arrows.
(34) The system may be the same or similar to a robotic system provided by the assignee InTouch-Health, Inc. of Santa Barbara, California under the trademark RP-7. The system may also be the same or similar to the system disclosed in U.S. Pat. No. 6,925,357 issued Aug. 2, 2005, which is hereby incorporated by reference.
(35) In operation, the robot 12 may be placed in a home, public or commercial property, or a facility where one or more patients are to be monitored and/or assisted. The facility may be a hospital or a residential care facility. By way of example, the robot 12 may be placed in a home where a health care provider may monitor and/or assist the patient. Likewise, a friend or family member may communicate with the patient. The cameras and monitors at both the robot and remote control stations allow for teleconferencing between the patient and the person at the remote station (s).
(36) The robot 12 can be maneuvered through the home, property or facility by manipulating the input device 32 at a remote station 16.
(37) The robot 10 may be controlled by a number of different users. To accommodate for this the robot may have an arbitration system. The arbitration system may be integrated into the operating system of the robot 12. For example, the arbitration technique may be embedded into the operating system of the high-level controller 150.
(38) By way of example, the users may be divided into classes that include the robot itself, a local user, a caregiver, a doctor, a family member, or a service provider. The robot 12 may override input commands that conflict with robot operation. For example, if the robot runs into a wall, the system may ignore all additional commands to continue in the direction of the wall. A local user is a person who is physically present with the robot. The robot could have an input device that allows local operation. For example, the robot may incorporate a voice recognition system that receives and interprets audible commands.
(39) A caregiver is someone who remotely monitors the patient. A doctor is a medical professional who can remotely control the robot and also access medical files contained in the robot memory. The family and service users remotely access the robot. The service user may service the system such as by upgrading software, or setting operational parameters.
(40) Message packets may be transmitted between a robot 12 and a remote station 16. The packets provide commands and feedback. Each packet may have multiple fields. By way of example, a packet may include an ID field a forward speed field, an angular speed field, a stop field, a bumper field, a sensor range field, a configuration field, a text field and a debug field.
(41) The identification of remote users can be set in an ID field of the information that is transmitted from the remote control station 16 to the robot 12. For example, a user may enter a user ID into a setup table in the application software run by the remote control station 16. The user ID is then sent with each message transmitted to the robot.
(42) The robot 12 may operate in one of two different modes; an exclusive mode, or a sharing mode. In the exclusive mode only one user has access control of the robot. The exclusive mode may have a priority assigned to each type of user. By way of example, the priority may be in order of local, doctor, caregiver, family and then service user. In the sharing mode two or more users may share access with the robot. For example, a caregiver may have access to the robot, the caregiver may then enter the sharing mode to allow a doctor to also access the robot. Both the caregiver and the doctor can conduct a simultaneous tele-conference with the patient.
(43) The arbitration scheme may have one of four mechanisms; notification, timeouts, queue and call back. The notification mechanism may inform either a present user or a requesting user that another user has, or wants, access to the robot. The timeout mechanism gives certain types of users a prescribed amount of time to finish access to the robot. The queue mechanism is an orderly waiting list for access to the robot. The call back mechanism informs a user that the robot can be accessed. By way of example, a family user may receive an e-mail message that the robot is free for usage. Tables 1 and 2, show how the mechanisms resolve access request from the various users.
(44) TABLE-US-00001 TABLE I Access Medical Command Software/Debug Set User Control Record Override Access Priority Robot No No Yes (1) No No Local No No Yes (2) No No Caregiver Yes Yes Yes (3) No No Doctor No Yes No No No Family No No No No No Service Yes No Yes Yes Yes
(45) TABLE-US-00002 TABLE II Requesting User Local Caregiver Doctor Family Service Current Local Not Allowed Warn current user of Warn current user of Warn current user of Warn current user of User pending user pending user pending user pending user Notify requesting Notify requesting user Notify requesting user Notify requesting user that system is in that system is in use that system is in use user that system is in use Set timeout = 5 m Set timeout = 5 m use Set timeout Call back No timeout Call back Caregiver Warn current user Not Allowed Warn current user of Warn current user of Warn current user of of pending user. pending user pending user pending user Notify requesting Notify requesting user Notify requesting user Notify requesting user that system is that system is in use that system is in use user that system is in in use. Set timeout = 5 m Set timeout = 5 m use Release control Queue or callback No timeout Callback Doctor Warn current user Warn current user of Warn current user of Notify requesting user Warn current user of of pending user pending user pending user that system is in use pending user Notify requesting Notify requesting Notify requesting user No timeout Notify requesting user that system is user that system is in that system is in use Queue or callback user that system is in in use use No timeout use Release control Set timeout = 5 m Callback No timeout Callback Family Warn current user Notify requesting Warn current user of Warn current user of Warn current user of of pending user user that system is in pending user pending user pending user Notify requesting use Notify requesting user Notify requesting user Notify requesting user that system is No timeout that system is in use that system is in use user that system is in in use Put in queue or Set timeout = 1 m Set timeout = 5 m use Release Control callback Queue or callback No timeout Callback Service Warn current user Notify requesting Warn current user of Warn current user of Not Allowed of pending user user that system is in request pending user Notify requesting use Notify requesting user Notify requesting user user that system is No timeout that system is in use that system is in use in use Callback No timeout No timeout No timeout Callback Queue or callback
(46) The information transmitted between the station 16 and the robot 12 may be encrypted. Additionally, the user may have to enter a password to enter the system 10. A selected robot is then given an electronic key by the station 16. The robot 12 validates the key and returns another key to the station 16. The keys are used to encrypt information transmitted in the session.
(47)
(48) While certain exemplary embodiments have been described and shown in the accompanying drawings, it is to be understood that such embodiments are merely illustrative of and not restrictive on the broad invention, and that this invention not be limited to the specific constructions and arrangements shown and described, since various other modifications may occur to those ordinarily skilled in the art.