WO2021028709A1 - Apparatus and method for providing an emergency-stop switch for a network-controlled robot - Google Patents

Apparatus and method for providing an emergency-stop switch for a network-controlled robot Download PDF

Info

Publication number
WO2021028709A1
WO2021028709A1 PCT/IB2019/000912 IB2019000912W WO2021028709A1 WO 2021028709 A1 WO2021028709 A1 WO 2021028709A1 IB 2019000912 W IB2019000912 W IB 2019000912W WO 2021028709 A1 WO2021028709 A1 WO 2021028709A1
Authority
WO
WIPO (PCT)
Prior art keywords
heartbeat signal
transmission
robot
stop
emergency
Prior art date
Application number
PCT/IB2019/000912
Other languages
French (fr)
Inventor
Ilija Hadzic
Original Assignee
Nokia Technologies Oy
Nokia Of America Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nokia Technologies Oy, Nokia Of America Corporation filed Critical Nokia Technologies Oy
Priority to PCT/IB2019/000912 priority Critical patent/WO2021028709A1/en
Publication of WO2021028709A1 publication Critical patent/WO2021028709A1/en

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1674Programme controls characterised by safety, monitoring, diagnostic
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B9/00Safety arrangements
    • G05B9/02Safety arrangements electric
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • B25J9/1689Teleoperation
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0428Safety, monitoring
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/50Machine tool, machine tool null till machine tool work handling
    • G05B2219/50198Emergency stop

Definitions

  • Various example embodiments relate to providing safety features for operating robots or other network-controlled devices.
  • an apparatus e.g., an emergency- stop switch device
  • the apparatus is also caused to determine an input (e.g., an activation or a physical or software switch) at the apparatus for requesting a stopping of at least one operational function of the at least one device (e.g., causing the robot to stop moving or operating).
  • the apparatus is further caused to initiate a termination of the transmission of the heartbeat signal in response to the input.
  • the method further comprises causing at least one device to initiate the stopping of the at least one operational function based on detecting the termination of the transmission of the heartbeat signal.
  • a method comprises causing, at least in part, a transmission of a heartbeat signal that is directed to at least one device (e.g., a robot, autonomous vehicle, drone, etc.).
  • the method also comprises determining an input (e.g., an activation or a physical or software switch) at the apparatus for requesting a stopping of at least one operational function of the at least one device (e.g., causing the robot to stop moving or operating).
  • the method further comprises initiating a termination of the transmission of the heartbeat signal in response to the input.
  • the apparatus further causes at least one device to initiate the stopping of the at least one operational function (e.g., mechanical movement or other dangerous process) based on detecting the termination of the transmission of the heartbeat signal.
  • a computer-readable storage medium carrying one or more sequences of one or more instructions which, when executed by one or more processors, cause, at least in part, an apparatus to initiate a transmission of a heartbeat signal that is directed to at least one device (e.g., a robot, autonomous vehicle, drone, etc.).
  • the apparatus is also caused to determine an input (e.g., an activation or a physical or software switch) at the apparatus for requesting a stopping of at least one operational function of the at least one device (e.g., causing the robot to stop moving or operating).
  • the apparatus is further caused to initiate a termination of the transmission of the heartbeat signal in response to the input.
  • the apparatus further causes at least one device to initiate the stopping of the at least one operational function (e.g., mechanical movement or other dangerous process) based on detecting the termination of the transmission of the heartbeat signal.
  • an apparatus comprises means for causing, at least in part, a transmission of a heartbeat signal that is directed to at least one device (e.g., a robot, autonomous vehicle, drone, etc.).
  • the apparatus also comprises means for determining an input (e.g., an activation or a physical or software switch) at the apparatus for requesting a stopping of at least one operational function of the at least one device (e.g., causing the robot to stop moving or operating).
  • the apparatus further comprises means for initiating a termination of the transmission of the heartbeat signal in response to the input.
  • the at least one device then initiates the stopping of the at least one operational function based on detecting the termination of the transmission of the heartbeat signal.
  • an apparatus e.g., a robot or other autonomously or remotely controlled device
  • the heartbeat signal for instance, is received from at least one emergency- stop device.
  • the apparatus is also caused to determine that the at least one transmission of the at least one heartbeat signal has terminated, wherein a termination of the at least one transmission is initiated by an input received at the at least one emergency-stop device.
  • the apparatus is further caused to initiate a stopping of at least one operational function of the apparatus based on the determination.
  • a method comprises causing, at least in part, a monitoring by an apparatus of at least one transmission of at least one heartbeat signal.
  • the heartbeat signal for instance, is received from at least one emergency- stop device.
  • the method also comprises determining that the at least one transmission of the at least one heartbeat signal has terminated, wherein a termination of the at least one transmission is initiated by an input received at the at least one emergency- stop device.
  • the method further comprises initiating a stopping of at least one operational function of the apparatus based on the determination.
  • a computer-readable storage medium carrying one or more sequences of one or more instructions which, when executed by one or more processors, cause, at least in part, an apparatus to initiate a monitoring of at least one transmission of at least one heartbeat signal.
  • the heartbeat signal for instance, is received from at least one emergency- stop device.
  • the apparatus is also caused to determine that the at least one transmission of the at least one heartbeat signal has terminated, wherein a termination of the at least one transmission is initiated by an input received at the at least one emergency- stop device.
  • the apparatus is further caused to initiate a stopping of at least one operational function of the apparatus based on the determination.
  • an apparatus comprises means for causing, at least in part, a monitoring by an apparatus of at least one transmission of at least one heartbeat signal.
  • the heartbeat signal for instance, is received from at least one emergency- stop device.
  • the apparatus also comprises means for determining that the at least one transmission of the at least one heartbeat signal has terminated, wherein a termination of the at least one transmission is initiated by an input received at the at least one emergency- stop device.
  • the apparatus further comprises means for initiating a stopping of at least one operational function of the apparatus based on the determination.
  • a system comprises a stop device and a robot.
  • the stop device configured to cause, at least in part, a transmission of a heartbeat signal, wherein the heartbeat signal is directed to at least one device.
  • the stop device is also configured to determine an input at the apparatus for requesting a stopping of at least one operational function of the at least one device.
  • the stop device is further configured to cause, at least in part, a termination of the transmission of the heartbeat signal in response to the input.
  • the robot is configured to initiate the stopping of the at least one operational function based on detecting the termination of the transmission of the heartbeat signal.
  • a method comprising facilitating a processing of and/or processing (1) data and/or (2) information and/or (3) at least one signal, the (1) data and/or (2) information and/or (3) at least one signal based, at least in part, on (including derived at least in part from) any one or any combination of methods (or processes) disclosed in this application as relevant to any embodiment of the invention.
  • a method comprising facilitating access to at least one interface configured to allow access to at least one service, the at least one service configured to perform any one or any combination of network or service provider methods (or processes) disclosed in this application.
  • a method comprising facilitating creating and/or facilitating modifying (1) at least one device user interface element and/or (2) at least one device user interface functionality, the (1) at least one device user interface element and/or (2) at least one device user interface functionality based, at least in part, on data and/or information resulting from one or any combination of methods or processes disclosed in this application as relevant to any embodiment of the invention, and/or at least one signal resulting from one or any combination of methods (or processes) disclosed in this application as relevant to any embodiment of the invention.
  • a method comprising creating and/or modifying (1) at least one device user interface element and/or (2) at least one device user interface functionality, the (1) at least one device user interface element and/or (2) at least one device user interface functionality based at least in part on data and/or information resulting from one or any combination of methods (or processes) disclosed in this application as relevant to any embodiment of the invention, and/or at least one signal resulting from one or any combination of methods (or processes) disclosed in this application as relevant to any embodiment of the invention.
  • the methods can be accomplished on the service provider side or on the mobile device side or in any shared way between service provider and mobile device with actions being performed on both sides.
  • FIG. 1 is a diagram of a system capable of providing an emergency- stop switch for a network-controlled robot or device, according to an embodiment
  • FIG. 2 illustrates an example of location-based handover between emergency- stop switch devices, according to one embodiment
  • FIG. 3 illustrates an example publish-subscribe mechanism for providing an emergency- stop switch, according to one embodiment
  • FIG. 4 is a diagram of the components of an emergency-stop switch device, according to an embodiment
  • FIG. 5 is a flowchart of a process for providing an emergency- stop switch device for a network-controlled robot or device, according to one embodiment
  • FIG. 6 is a diagram of the components of a network-controlled robot or device, according to an embodiment
  • FIG. 7 is a flowchart of a process for using a heartbeat signal of an emergency- stop switch device, according to one embodiment
  • FIGs. 8A and 8B are diagrams of an emergency- stop switch device, according to one embodiment
  • FIG. 9 is a diagram of hardware that can be used to implement an embodiment
  • FIG. 10 is a diagram of a chip set that can be used to implement an embodiment.
  • FIG. 11 is a diagram of a mobile terminal (e.g., handset) that can be used to implement an embodiment.
  • a mobile terminal e.g., handset
  • FIG. 1 is a diagram of a system capable of providing an emergency- stop switch for a network-controlled robot or device, according to an embodiment.
  • the various example embodiments described herein relate to safety features of autonomous robots, teleoperated robots, or any other autonomous or network-controlled devices.
  • robot operation is associated with risks of injuries, damage to surrounding property, or damage to the robot itself.
  • a mobile robot (or any other similar device such as but not limited to autonomous cars, drones, etc.) can hit people and objects in the way if the robot fails to detect an obstacle or if an obstacle is in the blind spot of the robot. Component failures can also result in unsafe robot operation, or a person unaware of safety procedures may step into the path of a robot that is not designed to avoid obstacles (e.g., a robot 103 designed to operate in confined environment).
  • stationary robots e.g., industrial or manufacturing robots
  • a robotic arm can go awry due to a mechanical, electrical, or software failure (e.g., due to a software bug), misleading sensor input, or unanticipated external force.
  • a physical emergency stop switch sometimes called a “kill switch” or E- stop switch.
  • the emergency stop switch When pushed, the emergency stop switch will immediately stop all motion in the robot.
  • the switch itself must be designed to be safe and easily engaged in an emergency.
  • the robot must also stop as if the switch is engaged.
  • the e-stop switches are designed to break a power circuit in the robot when engaged. In other words, when the switch is not engaged, the power circuit of the robot is on, and the power circuit breaks when the switch is engaged. If the switch itself fails, breaking the circuit, the robot will act as if the switch is engaged.
  • the physical design of the switch is such that it can be pressed by slamming on it, but it is still protected from accidental presses.
  • the procedure to disengage the switch requires a motion that is hard to perform accidentally.
  • a typical motion is twist- and-pull, and the operator is supposed to disengage the switch only after going through the check-list procedure that ensures that the dangerous condition has been cleared.
  • a physical emergency stop switch is an important safety feature of any robot and is here to stay (e.g., the example embodiments described herein present do not propose eliminating them).
  • the operator in order to engage a traditional physical emergency- stop switch, the operator must be near the switch. This limitation many not be a problem under some circumstances such as for stationary robots (e.g., an assembly line in the factory) or for autonomous cars in which the operator (or a passenger in the latter case) are always near the emergency- stop switch.
  • the emergency- stop switch may not be accessible to the operator. Consider a vehicle on the ground course running autonomously engaging in an unsafe operation.
  • the person monitoring the operation may be physically far from the robot and may not be following the robot at all, but instead observing the operation on a computer at the remote station (e.g., monitoring the status gauges or the camera view).
  • Engaging the physical emergency- stop switch on the robot may be impossible and by the time the operator runs to the robot’s location it may be too late. Constantly following the robot may be impractical (e.g., impossible to monitor the gauges or other remote vehicle controls from the control room and follow the robot at the same time) and even undesirable (e.g., potential interfering with the robot operation).
  • a remote emergency- switch is the solution for these use cases. For example, the switch operator must be able to engage the emergency switch over a radio or other remote link.
  • the radio or remote link should also be designed following similar principles that the traditional physical switch follows such as but limited to the failure of the link must result in robot stopping.
  • One technical problem with the direct radio link is that it limits the range of operation of the robot. For example, the typical range of an unlicensed 900MHz remote-control radio link is about 100m, so the radius of operation is limited by the range of the link.
  • a packet network e.g., TCP/IP network
  • This packet stream is commonly referred to as the “heartbeat” packets or signals and are sent to the robot periodically, at some previously defined rate. The lack of heartbeats would result in robot stopping.
  • An alternative way to implement heartbeats is to make the motion commands sent to the robot expire. Whenever the command is sent, it is valid for only specific short time period. If the new command is not sent before the existing one expires, the robot will stop.
  • heartbeat packets regardless of whether they are implemented as a separate stream of packets of as part of the motion command stream.
  • heartbeats typically come from the same server or set of servers (or any other network-side control unit) that control the robot and engaging the emergency switch is a software command issued from the control station.
  • the use case that leads to the need for the approach of the various embodiments described herein is when the robot is network controlled (e.g., when it is possible to implement a heartbeat packet stream as the heartbeat signal), but it is not convenient for the person supervising the robot to be present at the control station where the command to stop the heartbeats can be issued (e.g., a safety person is observing the robot operation from other more convenient spot but is not controlling the robot using the control station).
  • a safety person is observing the robot operation from other more convenient spot but is not controlling the robot using the control station.
  • the person cannot conveniently or safely follow the robot to be able to reach for the physical emergency- stop switch on the robot, while the dedicated radio link is excluded because of the range limit.
  • the system 100 of FIG. 1 introduces a capability to provide one or more emergency stop switches or devices lOla-lOln (also collectively referred to as emergency stop devices 101) for robots 103a-103m (also collectively referred to as robots 103) or any other autonomous or remotely operated network-controlled devices (e.g., autonomous cars, drones, etc.).
  • the emergency- stop device 101 (also referred to as a stop device) can be a hand-held or pocket device with a wireless or wired network interface to a communication network 105 (e.g., typically WiFi, but other network access technologies such as LTE are also an option).
  • the emergency- stop devices lOla-lOln include respective heartbeat sources 107a-107n (also collectively referred to as heartbeat sources 107) that generate the heartbeat signals whose content can include the unique identification of the heartbeat source 107, stop-device 101, and/or the device or robot 103 to which the heartbeats are directed.
  • the stop devices 101 may be operated manually or automatically (e.g., via artificial intelligence or machine learning trained to recognize and stop potentially dangerous or harmful functions performed by the robots 103).
  • heartbeat signals are sent periodically over a data connection of the communication network 105 (e.g., using a TCP/IP connection, UDP connectionless data flow, etc.).
  • Heartbeats for instance, can be sent either directly to the robot 103 (using the robot’s IP address) or to a server that controls the robot (e.g., a controller platform 111 or any other equivalent server/device).
  • the emergency- stop devices lOla-HOn include respective stop switches 113a-113n (also collectively referred to as stop switches 113) which when activated can initiate an emergency stop of the robot 103 or activation/deactivation of any operational function of the robot 103 (e.g., movement, sensor deployment, return to a designated location, etc.).
  • activating or engaging the stop switch 113 e.g., a physical or software switch on the emergency- stop device 101
  • the robot 103 and/or the controller platform 109 controlling the robot 103 is configured to listen to the heartbeat signals associated with the robot 103 (e.g., monitoring for heartbeat signals whose content includes an identifier or other identification associated with the robot 103). Absence of heartbeats causes the robot 103 to stop completely or stop one or more specified operational functions of the robot 103 (e.g., stop movement only but remain on to receive follow up commands).
  • the robot 103 (and/or the controller platform 109 controlling the robot 103) can be configured to listen for multiple emergency- stop devices 101 and stop if any of the heartbeats from one or more of the emergency- stop devices 101 are missing.
  • multiple robots 103 (and/or the controller platform 109 controlling the robot) can be configured to listen for heartbeats associated with the same emergency- stop device 101, conveniently allowing one emergency- stop device 101 to stop multiple robots 103.
  • a person e.g., a safety operator separated from the robot 103’s control station
  • observing the robot 103 can carry the corresponding emergency- stop device 101 in the pocket, and he/she can observe the robot operation from any convenient point (e.g., observation deck) that is not necessarily near the robot 103 or near the main control station (e.g., the controller platform 109).
  • the robot 103 performs a deemed-unsafe operation, the person breaks the power to the emergency- stop device 101 (e.g., using the stop switch 113) and the robot 103 stops.
  • the range limit is advantageously eliminated, as long as there is network coverage (e.g., WiFi or LTE) in the area where the robot operator is standing.
  • network coverage e.g., WiFi or LTE
  • the availability of the communication network 105 is presumed. Because the robot 103 can be programmed to listen to specific heartbeats, it is also possible to implement a handoff of the transmission of the heartbeat signals from one emergency- stop device 101a to a different emergency-stop device 101b. For example, if the robot 103’s area of operation (e.g., designated by a polygon or other boundary) is large enough to warrant multiple operators to observe the robot operation, the system 100 can define a protocol that informs the robot 103a to start listening to heartbeats from another emergency- stop device 101b once the robot 103 a moves into the area where a different person with a different emergency- stop device 101b is observing the robot 103a’s operation. At the same, the system 100 can reconfigure or reprogram another robot 103b to listen to the emergency- stop device 101a that no longer controls the first robot 103 a.
  • area of operation e.g., designated by a polygon or other boundary
  • an alternative embodiment of the emergency- stop device 101 is a wireless hand held/pocket device
  • an alternative embodiment can be emergency- stop switches 101 that are mounted on the wall or other fixed structure and connected over a wired network that can reach the robot 103 over a packet network infrastructure or other equivalent data network (e.g., the communication network 105).
  • the robot 103 may be connected to the communication network 105 using any wireless or wired means. For example, consider a robot 103 that moves from a first room to a second room. Each room can have a stationary emergency- stop switch device 101 mounted on the wall.
  • the robot 103 listens to the heartbeats coming from the first emergency- stop device 101a.
  • the robot starts to listen to the heartbeats coming from the second emergency- stop device 101b.
  • the principle of operation is the same and engaging the switch is also done by removing the power from the emergency- stop device 101, but the physical design can be different.
  • the emergency- stop device 101 itself fails, that is, if it loses network connectivity or power, the heartbeats will stop, and the robot 103 will consequently stop. This way one safety property is advantageously satisfied (i.e., a failed emergency- stop switch device 101 will stop the robot 103 eliminating the case that the switch engages with no effect.
  • the robot 103 is programmed to receive heartbeats from one or more heartbeat sources 107 over the communication network 105.
  • the robot 103 receives heartbeats from the emergency- stop devices 101 on a pre-defmed communication channel (e.g., a TCP connection or UDP flow), looks at the packet content or packet header or both to identify whether the incoming heartbeats are the ones the robot 103 is programmed to listen to or monitor.
  • the heartbeat signals can be sent using any operating system or protocol capable of controlling the robot 103 (e.g., Robotic Operating System (ROS) or equivalent).
  • ROS Robotic Operating System
  • the heartbeats are sent on a communication channel called a topic (essentially a named flow) whose name is configured to be known to the robot 103 and the emergency- stop device 101 or process responsible for sending the heartbeat signals.
  • a topic essentially a named flow
  • ROS is a software platform (developed at Stanford University) that conveniently allows robotic software modules to be easily developed, reused, and integrated with each other, by means of a publish- subscribe communication model.
  • multiple heartbeat sources 107 can send to the same topic or channel, and multiple robots 103 can listen on the same topic.
  • the heartbeat message or signal contains the source identification (e.g., an identifier associated with the transmitting emergency- stop device 101), and the robot 103 is configured with the list of heartbeat source identifiers that must be present for the robot 103 to run.
  • Each configured heartbeat source identifier can be associated with a timer.
  • the heartbeat source identifier list is dynamically reconfigurable, so the robot 103 can at any time add one set of heartbeats to listen to or remove another set of heartbeats to listen to.
  • the robot 103 when a heartbeat message arrives on the topic, the robot 103 extracts its identifier and indexes into the table (e.g., tables 115a-115m - collectively referred to as tables 115 - respectively associated robots 103a-103m) of heartbeats that the robot 103 listens to. For example, each table 103 identifies that the heartbeat source 107 (e.g., source ID) that each robot 103 is to listen to. If the source ID in a received heartbeat message is found in the table 115, the robot 103 records the time (e.g., Time Tl, Time T2) when the last heartbeat is for the specified source ID has been received.
  • the time e.g., Time Tl, Time T2
  • the process on the robot 103 responsible for converting the motion commands received from the network (e.g., from the controller platform 109) and driving the actuators (or performing any other operational function of the robot 103 or device) parses through the table 115 each time the new motion command is received and accepts the command only if a difference between the current time 117 and the time recorded for each heartbeat in the table 115 is less than the timer expiration time (process 119). If this condition is violated for any of the configured heartbeats, the incoming motion commands 121 are blocked.
  • motion commands arriving from the network are blocked, they are not passed to the local motor controller of the robot 103.
  • the local motor controller there is another timer that expires the physical motion commands 121 and effectively stops the robot 103. For example, if the motion commands 121 themselves stop arriving the local motor controller will expire the last command and stop. Likewise, if any of the processes responsible for processing the heartbeats or processing motion commands crashes, the robot 103 will also stop.
  • FIG. 1 The process described in the previous three paragraphs is illustrated in Fig 1.
  • two robots e.g., robots 103a and 103m
  • three heartbeat sources e.g., heartbeat sources 101a, 101b, and 101h
  • the first robot 103a is configured to listen to heartbeat sources 107a and 107n as shown in table 115a. An absence of any of these two heartbeats 107a and 107n will stop the robot 103a.
  • the second robot 103m is configured to listen to heartbeat sources 107a and 107b as shown in table 115m.
  • heartbeat source 107a will stop both robots 103a and 103m, which is an illustrative example of how a single heartbeat stream can control multiple robots.
  • the logical operation between all heartbeats is “AND”, which means that all heartbeats must be present for the robot to operate.
  • This embodiment illustrates an example where multiple heartbeat sources 107 or stop devices 101 can control one or more robots 101, so that activation of any one of the stop devices 101 can stop the robot(s) 101.
  • the ability to send the same source of heartbeats to multiple robots can be implemented using the publish-subscribe communication model that ROS is based on.
  • the multiple robots 103 simply subscribe to the same communication channel (topic) to which the heartbeat signals are published.
  • the human observer observes an unsafe behavior of the robot 103, he/she can need only use one emergency- stop switch device 101 to push, and the robots 103 that are in that section of the course will stop. If the robot 103 leaves said section of the course, the robot 103 starts listening to the new flow of heartbeats, responsible for the new section of the course.
  • a safely designed system will always listen to at least one heartbeat flow and handing off from one flow to the other is done such that the new flow is added first before dropping the next flow.
  • the robot 103 can have the set of rules programmed to enforce the safe hand-off property.
  • the robots 103a and 103b are listening to heartbeat source 107a in section 201a of the course 200, while the robot 103c is listening to heartbeat source 107b.
  • the observers e.g., respectively associated with heartbeat sources 107a-107c corresponding to respective emergency- stop devices 101
  • the heartbeat sources are handed off.
  • the emergency- stop device 101 can be implemented as a hand held device.
  • the implementation can consist of a microcontroller and a wireless network interface.
  • the network interface can be WiFi or any other wireless networking technologies (e.g., LTE, 5G, and/or the like).
  • the emergency- stop device 101 also can use battery power or other portable power sources and can include provisions to charge or replace battery/power source, and a mechanical or software design that enables removal of power from the microcontroller.
  • a power removal can be accomplished using a mechanical switch or designing the device in two parts (battery and other circuitry) with the mechanism that allows separation of the said two parts.
  • the performance and memory capacity of the microcontroller should be sufficient to accommodate the minimalistic implementation or a network stack (e.g., a TCP/IP, UDP, or equivalent protocol stack).
  • one problem may be that ROS may not exist in a small (microcontroller) footprint.
  • one way to overcome this problem is to use a proxy node that listens on a previously established network port (e.g., TCP, UDP, or equivalent data port) and receives the heartbeat information from the hand-held emergency- stop device 101.
  • the proxy then publishes the heartbeats on a ROS topic.
  • the robots 103 subscribe to the heartbeat topic and monitor the arrivals of the heartbeats, stopping their motion or other operational function if a timeout condition occurs (e.g., the heartbeats are stopped).
  • the proxy can run on any server that is part of the same network of ROS nodes that control the group of robots 103 of interest. As long as the robot 103 and the emergency- stop device 101 have network connectivity (which do not need to be the same wireless or wired network), the robot 103’s operating reach and the location of the emergency- stop device 101 are not restricted.
  • each heartbeat message or signal includes content that uniquely identifies the source emergency- stop device 101, multiple heartbeat sources 107 can share the same ROS topic. It is contemplated that the system 100 can implement any number of different ROS topics and determine which heartbeat sources 107 share which ROS topic.
  • FIG. 3 illustrates an example publish-subscribe mechanism for providing an emergency- stop switch, according to one embodiment. More specifically, FIG. 3 illustrates the relationship between the emergency- stop devices 101 that source the heartbeats and device nodes (e.g., respective ROS nodes included in the controller platform 109 and robots 103). There are two heartbeat sources 107a and 107b (e.g., corresponding to hand-held emergency- stop devices 101a and 101b) in the system and both are sending to the ROS proxy 301 on the server (e.g., controller platform 109). Sourced from the ROS proxy 301 there is a heartbeat ROS topic 303 or equivalent channel to which all incoming heartbeats from heartbeat sources 107a and 107b are published.
  • heartbeat ROS topic 303 or equivalent channel to which all incoming heartbeats from heartbeat sources 107a and 107b are published.
  • the message stream on the heartbeat ROS topic 303 contains heartbeats of all heartbeat sources 107a and 107b in the system.
  • each heartbeat message or signal has a unique identification of the heartbeat source (e.g., either heartbeat source 107a or 107b) embedded in it.
  • the three robots 103a-103c subscribe to the heartbeat topic 303. Each robot 103 a- 103c looks for source identifiers that correspond to the source it is configured to listen to.
  • engaging the stop switch 113 on the emergency- stop device 101 breaks the power supply by physically (or virtually) disconnecting the battery or power source from its connector to the emergency- stop device 101. It is contemplated that cutting power to stop the heartbeat signals is provided by way of illustrating and that any means to stop the transmission of heartbeat signals from the emergency- stop device 101 can be used in the embodiments described herein.
  • the robot 103 stops. For example, the delay it takes to stop is determined by the heartbeat frequency and timeout value programmed in the robot.
  • the heartbeat frequency can be varied based on the function or other contextual parameter (e.g., range, available power, weather, visibility, etc.) associated with the robot 103, emergency- stop device 101, and/or the environment in which the devices are operating.
  • the heartbeat frequency can be based on available network bandwidth or other network availability parameter.
  • the operational functions that can be performed by the robot 103 can be limited based on the available heartbeat frequency. For example, the top speed of the robot 103 can be limited based on how frequently the heartbeat signal can be transmitted which in turn is based on available network bandwidth (e.g., higher frequencies with higher bandwidth availability and lower frequencies with lower bandwidth availability).
  • the robot 103 When the power is applied back to the hand-held emergency- stop device 101, the robot 103 continues to move towards its target or continues with its operational function that was interrupted.
  • the delay between reconnecting the power and robot 103 moving again, for instance, is determined by the time it takes the microcontroller of the emergency- stop device 101 to boot up, connect to the network, establish the network (e.g., TCP, UDP, etc.) connection to the ROS proxy and for the subscribed heartbeat messages to start coming to the robot 103.
  • this delay is usually longer than the delay to stop the robot 103.
  • this is not an issue, because releasing the emergency- stop state is typically not a time-critical operation.
  • the emergency- stop device 101 may include one or more components (e.g., circuitry, modules, etc.) for providing an emergency- stop switch according to the embodiments described herein.
  • emergency- stop switch device 101 includes heartbeat circuitry 401, transmission circuitry 403, switch circuitry 405, and power circuitry 407.
  • heartbeat circuitry 401 may refer to one or more of all of the following:
  • any portions of hardware processor(s) with software including digital signal processor(s)), software, and memory(ies) that work together to cause an apparatus (e.g., the emergency- stop switch device 101, mobile phone, or server) to perform various function(s); and [0061] (c) hardware circuit(s) and/or processor(s), such as a microprocessor(s) or a portion of a microprocessor(s), that requires software (e.g., firmware) for operation, but the software may not be present when it is not needed for operation.
  • software e.g., firmware
  • circuitry also covers an implementation of merely hardware circuit or processor (or multiple processors) or portion of a hardware circuit or processor and its (or their) accompanying software and/or firmware.
  • circuitry also covers, for example and if applicable to the particular claim element, a baseband integrated circuit or processor integrated circuit for a mobile device or a similar integrated circuit in a server, a cellular network device, or other computing or network device.
  • the functions of these components may be combined in one or more components or performed by other components with similar functionalities.
  • the above presented components of the emergency- stop switch device 101 can be implemented in hardware, firmware, software, or a combination thereof. Though depicted as a separate entity in FIG. 1, it is contemplated that the emergency- stop switch device 101 may be implemented as a module of any of the components of the system 100. In another embodiment, one or more of the components or circuitry 401-407 may be implemented as a cloud-based service, local service, native application, or combination thereof. The functions of the emergency- stop switch device 101 and its component circuitry 401-407 are discussed above and summarized with respect to FIG. 5 below.
  • FIG. 5 is a flowchart of a process for providing an emergency- stop switch for a network-controlled robot or device, according to one embodiment.
  • the emergency- stop switch 101 and/or any of its component circuitry 401-407 may perform one or more portions of the process 500 and may be implemented in, for instance, a chip set including a processor and a memory as shown in FIG. 10 and a network interface (e.g., a wireless radio interface 1115 as shown in FIG. 11).
  • the emergency- stop switch 101 and/or any of its component circuitry 401-407 can provide means for accomplishing various parts of the process 500.
  • the process 500 is illustrated and described as a sequence of steps, it is contemplated that various embodiments of the process 500 may be performed in any order or combination and need not include all of the illustrated steps.
  • the heartbeat circuitry 401 interacts with the transmission circuitry 403 to cause, at least in part, a transmission of a heartbeat signal, wherein the heartbeat signal is directed to at least one device (e.g., a network-controlled robot or other device 107).
  • the apparatus e.g., the emergency- stop switch device 101
  • the apparatus is a separate device from at least one control device that operates the at least one device.
  • the at least one device can include but is not limited to an autonomously operated device, a remotely operated device, or a combination thereof.
  • the heartbeat signal includes content specifying an identification of the device (e.g., the robot 103 or other network-controlled device).
  • the heartbeat signal can also include content identify the heartbeat source or emergency- stop device 101 that transmitted the heartbeat signal.
  • the transmission of the heartbeat signal can be sent directly to the robot 103 and/or can be forwarded to the robot 103 by a control device (e.g., a controller platform 109 or other service listening to the heartbeat signal to relay to the robot).
  • a control device e.g., a controller platform 109 or other service listening to the heartbeat signal to relay to the robot.
  • the relay of the transmission of the heartbeat signal can be performed via a publish- subscribe mechanism.
  • the publish-subscribe mechanism can be performed using a ROS topic as described above.
  • the switch circuitry 405 determines an input at the apparatus (e.g., at the emergency- stop switch device 101) for requesting a stopping of at least one operational function of the at least one device.
  • the input can be provided using a physical switch, a software switch, or a combination thereof of the apparatus.
  • a physical switch an operator can engage the physical stop switch 113 on the emergency- stop device 101.
  • the emergency- stop device 101 can be a mobile device (e.g., a smartphone) executing an application that displays a user interface with a representation of the stop switch 113.
  • the user can then interact (e.g., touch, press, select, etc.) with the representation to engage the stop switch 113 or simply stop the application to terminate the heartbeat signal.
  • the application can be started to initiate the transmission of the heartbeat signal.
  • any interruption of the execution of the application e.g., closed by the user, unexpected crash, loss of power etc.
  • any interruption of the execution of the application e.g., closed by the user, unexpected crash, loss of power etc.
  • step 505 power circuitry 407 causes, at least in part, a termination of the transmission of the heartbeat signal.
  • the input or detected termination of the heartbeat signal causes, at least in part, a cut-off of a power supply to a transmission circuitry of the apparatus to cause the termination of the transmission of the heartbeat signal.
  • the cut-off of the power supply can be performed by physically interrupting or disconnecting the power supply from the emergency- stop switch device 101 (e.g., by discussing a power connector, battery, power source, etc.).
  • interrupting the power supply to the emergency- stop device 101 will cause the device 101 to stop transmitting the heartbeat signal (e.g., because the heartbeat circuitry 401 and transmission circuitry 403 would not be able to function without power).
  • a cut-off of the power is only example of terminating the transmission of the heartbeat signal.
  • the termination of the transmission of the heartbeat signals can be performed by means other than cutting of the power supply.
  • Other examples may include but is not limited issuing a command to the transmission circuitry to stop the transmission of the heartbeat signal, stopping the generating of heartbeat signal so that there is no signal to transmit, removing the unique identifier of the heartbeat source 107 and/or robot 103 from the heartbeat signal, unpublishing the heartbeat signal (e.g., unpublish from a ROS topic or equivalent publication channel), and/or the like.
  • the transmission circuitry 403 can initiate a handover of the transmission of the heartbeat signal to another apparatus (e.g., another emergency- stop switch device 101).
  • the handover can be initiated by the robot 103 which can decide or select which stop device 101 to monitor or listen to.
  • the robot 103 can be programmed to subscribe a publication channel (e.g., ROS topic) associated with another selected stop switch device 101.
  • the robot 103 can be programmed to open a connection to the other stop switch 101 or to filter on a different heartbeat source identifier (e.g., associated with the other stop switch device 101) from a heartbeat stream sent to all robots 103.
  • the handover can be performed based on a location of the device, the apparatus, or a combination thereof.
  • the handover of the transmission of the heartbeat signal to another emergency- stop switch device 101 can be initiated based on a network availability status of the robot 103, the emergency- stop device 101, the environment in which the devices are operating, and/or the like. For example, if a first emergency- stop device 101a detects that it has available network bandwidth below a threshold value, the emergency- stop device 101a can initiate a handover of the transmission of heartbeats to another emergency- stop device 101b that has more available network bandwidth (e.g., bandwidth above the threshold value). The handover, for instance, reprograms the robot 103 to listen to a source ID associated with the new emergency- stop device 101b.
  • the robot 103 can listen multiple heartbeat sources.
  • the robot(s) 103 can monitor for the heartbeat signal for the first emergency- stop device 101a in addition to at least one other heartbeat signal for another emergency- stop device 101b.
  • both a heartbeat signal from the first device 101a and a heartbeat signal from the second device 101b must be received by the robot 103 for the robot 103 to operate (e.g., perform at least one operational function that is controlled by the stop switches 101a and 101b).
  • the termination or interruption of any one of the heartbeat signals that the robot 103 is programmed to causes the stopping of the at least one operational function of the robot 103 or other device controlled by the stop switches 101a and 101b (described in more detail with respect to FIGs. 6 and 7 below).
  • the robot 103 or other network-controlled device may include one or more components (e.g., circuitry, modules, etc.) for providing an emergency- stop of operations according to the embodiments described herein.
  • robot 103 or other network-controlled device includes heartbeat circuitry 601, a heartbeat table 603 (e.g., table 115 as shown in FIG. 1 or any other equivalent data structure for storing information on monitored heartbeat signals), processing circuitry 605, and operation termination circuitry 607. It is contemplated that the functions of these components may be combined in one or more components or performed by other components with similar functionalities.
  • the above presented components of the robot 103 or other network-controlled device can be implemented in hardware, firmware, software, or a combination thereof.
  • the robot 103 may be implemented as a module of any of the components of the system 100.
  • one or more of the components or circuitry 601-607 may be implemented as a cloud-based service, local service, native application, or combination thereof. The functions of the robot 103 or other network-controlled device and its component circuitry 601-607 are discussed with respect to FIG. 7 below.
  • FIG. 7 is a flowchart of a process for using a heartbeat signal of an emergency- stop switch device, according to one embodiment.
  • the emergency- stop switch 101 and/or any of its component circuitry 401-407 may perform one or more portions of the process 700 and may be implemented in, for instance, a chip set including a processor and a memory as shown in FIG. 10.
  • the emergency- stop switch 101 and/or any of its component circuitry 401-407 can provide means for accomplishing various parts of the process 700.
  • the process 700 is illustrated and described as a sequence of steps, it is contemplated that various embodiments of the process 700 may be performed in any order or combination and need not include all of the illustrated steps.
  • the process 700 is described from the perspective of the robot 103 or other network-controlled device that is receiving heartbeat signals from the emergency- stop device 101.
  • the heartbeat circuitry 601 causes, at least in part, a monitoring of at least one transmission of at least one heartbeat signal, wherein the heartbeat signal is received from at least one emergency- stop device 101 and stored in the heartbeat table 603.
  • the apparatus performing the monitoring is a network-controlled device.
  • the at least one- emergency stop device is a separate device from at least one control device that operates the robot 103 or network-controlled device 101 (e.g., a control station, controller platform 109, and/or the like).
  • the network-controlled device may be an autonomous robot, a remotely controlled robot, or a combination thereof.
  • the heartbeat signal is transmitted using a ROS or other equivalent protocol.
  • the monitoring of the at least one transmission of the at least one heartbeat signal is performed using a publish-subscribe mechanism.
  • An example of the publish-subscribe mechanism is the ROS-based mechanism that can aggregate and publish heartbeat signals or messages to one or more ROS topics as described above.
  • the robot(s) 103 can then subscribe to the ROS topic to receive the heartbeat signals transmitted from the emergency- stop devices 101.
  • the heartbeat circuitry 601 can be programmed or configured to listen to specific heartbeat sources 107 (e.g., using a list or table of source IDs stored in the heartbeat table 603). Listening or monitoring includes, for instance, storing the timestamps of the last received heartbeat message identified with a monitored source ID and/or robot/device ID.
  • the at least one transmission of the at least one heartbeat signal to the robot 103 or equivalent can be handed over among a plurality of emergency- stop devices based on a location of the apparatus, a location of the at least one emergency- stop device, or a combination thereof.
  • the handover can be performed by reprogramming the robot 103 or device with the source ID(s) of the new emergency- stop devices 101 that are to be monitored (e.g., the devices 101 to which the handover is made).
  • the processing circuitry 605 determines whether the heartbeat signal has stopped or otherwise expired. For example, the processing circuitry 605 can compare the timestamps of the received heartbeat messages or signals against expiration criteria (e.g., a timeout value between receipt of any two consecutive heartbeat or control messages). If the heartbeat signal has not expired, the processing circuitry interacts with the heartbeat circuitry 601 to continue monitoring the heartbeat signal(s) and returns to step 701.
  • expiration criteria e.g., a timeout value between receipt of any two consecutive heartbeat or control messages.
  • the processing circuitry 605 determines that the at least one transmission of the at least one heartbeat signal has terminated.
  • the termination of the at least one transmission can be initiated by an input received at the at least one emergency- stop device 101 to cut power to the emergency- stop device 101 and stop the heartbeat transmission.
  • Failure of any component of the emergency- stop device 103, the communication network 105, the robot 103, or any other component of the system 100 can also cause heartbeat signal to be terminated, interrupted, or otherwise not received by the robot 103.
  • the operation termination circuitry 607 causes, at least in part, a stopping of at least one operational function of the robot 103 or device.
  • an operational function of the robot 103 can include but is not limited to movement, power state, and/or any other function, activity, or task for which the robot 103 is configured.
  • stopping of the operational function can include performed a predetermined set of actions or motions.
  • a network-controlled device such as a drone can be programmed to return to a designated location (e.g., home-base or other safe landing location) when the heartbeat signal is stopped by engagement of the stop switch 113 of the emergency- stop device 101.
  • the robot 103 can be configured with one or more actuators (e.g., mechanical components) that interact with an environment in a way that it can cause harm (e.g., to the robot 103, to object/things/people/etc. in the environment, etc.).
  • the operational function that is stopped on engagement of the stop switch 101 can then relate to the actuators, mechanical components, etc.
  • the operational function or interaction can include any process or means performed by the robot 103 that is deemed or otherwise classified as a dangerous process.
  • the system 100 can use any means or classification system to classify a process as dangerous (e.g., manual classification, machine-learning based classification, etc.).
  • the operational function that is stopped on engagement of the stop switch 101 can then relate to the processes/means classified as dangerous (e.g., nuclear reaction, chemical process, temperature, exhaust emissions, etc.).
  • FIGs. 8A and 8B are diagrams of example implementations of emergency- stop switch devices, according to one embodiment.
  • FIG. 8A illustrates an example of a physical emergency- stop switch device 800.
  • the emergency- stop switch device 800 is a physical switch device that includes a physical switch 801 that is engaged to stop the heartbeat signals being transmitted by the emergency- stop switch device 800.
  • the emergency- stop switch device 800 can also be configured with an optional display 803 that indicates which robot 103 (e.g., Robot A) that the emergency- stop switch device 800 is associated can initiate a stop.
  • robot 103 e.g., Robot A
  • FIG. 8B illustrates an example of an emergency- stop switch device 820 that provides for a software-based stop switch 821.
  • the emergency- stop switch device 820 is a mobile device (e.g., a smartphone) executing a stop-switch application to provide the software- based stop switch 821 in a user interface (UI) 823.
  • the UI 823 can indicate which robots 103 (e.g., Robots A, B, and C) to which the emergency- stop switch device 820 applies.
  • the user can interact with the software stop switch 821 (e.g., an interactive UI element) to cause the emergency- stop switch application executing on the emergency- stop switch device 820 to stop transmitting the heartbeat signals.
  • the emergency- stop software application should be active and running (e.g., as either an active or background process) to continue transmitting the heartbeat signals. Closing or ending the application will be considered as a failure of the emergency- stop device 820 and also terminate the heartbeat signals to initiate stopping of the corresponding robots 103.
  • the system 100 includes one or more emergency- stop devices 101 and robots 103 configured to listen for heartbeat signals for the devices 101.
  • the emergency- stop devices 101 may be any type of mobile terminal, fixed terminal, or portable terminal including a mobile handset, station, unit, device, multimedia computer, multimedia tablet, Internet node, communicator, desktop computer, laptop computer, notebook computer, netbook computer, tablet computer, personal communication system (PCS) device, personal navigation device, personal digital assistants (PDAs), audio/video player, digital camera/camcorder, positioning device, television receiver, loud speakers, display monitors, radio broadcast receiver, electronic book device, game device, wrist watch, or any combination thereof, including the accessories and peripherals of these devices, or any combination thereof.
  • PCS personal communication system
  • PDAs personal digital assistants
  • audio/video player digital camera/camcorder
  • positioning device television receiver, loud speakers, display monitors, radio broadcast receiver, electronic book device, game device, wrist watch, or any combination thereof, including the accessories and peripherals of these devices, or any combination thereof.
  • the emergency- stop devices 101 can support any type of interface to the user (such as “wearable” circuitry, etc.) Further, the emergency- stop devices 101 may include various sensors for collecting data associated with a user, a user’s environment, and/or with a device 101, for example, the sensors may determine and/or capture audio, video, images, atmospheric conditions, device location, ambient lighting, device movement speed and direction, and the like. These sensors can be used to determine contextual data for determining when to handover the transmission of heartbeats signals to other emergency- stop devices 101. [0083] In one embodiment, the emergency- stop devices 101 can include a location module/sensor that can determine location data (e.g., a location of the device 101).
  • the emergency- stop device 101 ’s location may be determined by a triangulation system such as a GPS, assisted GPS (A-GPS), Cell of Origin, wireless local area network triangulation, or other location extrapolation technologies.
  • Standard GPS and A-GPS systems can use the one or more satellites to pinpoint the location (e.g., longitude, latitude, and altitude) of the emergency- stop device 101.
  • a Cell of Origin system can be used to determine the cellular tower that a cellular- based emergency- stop device 101 is synchronized with. This information provides a coarse location of the emergency- stop device 101 because the cellular tower can have a unique cellular identifier (cell-ID) that can be geographically mapped.
  • cell-ID unique cellular identifier
  • the location module/sensor may also utilize multiple technologies to detect the location of the robot 103. GPS coordinates can provide finer detail as to the location of the robot 103.
  • the emergency- stop device 101 may utilize a local area network (e.g., LAN, WLAN) connection to determine the emergency- stop device 101 location information, for example, from an Internet source (e.g., a service provider).
  • a local area network e.g., LAN, WLAN
  • the communication network 105 of system 100 includes one or more networks such as a data network, a wireless network, a telephony network, or any combination thereof.
  • the data network may be any local area network (LAN), metropolitan area network (MAN), wide area network (WAN), a public data network (e.g., the Internet), short range wireless network, or any other suitable packet-switched network, such as a commercially owned, proprietary packet-switched network, e.g., a proprietary cable or fiber-optic network, and the like, or any combination thereof.
  • the wireless network may be, for example, a cellular network and may employ various technologies including enhanced data rates for global evolution (EDGE), general packet radio service (GPRS), global system for mobile communications (GSM), Internet protocol multimedia subsystem (IMS), universal mobile telecommunications system (UMTS), etc., as well as any other suitable wireless medium, e.g., worldwide interoperability for microwave access (WiMAX), Long Term Evolution (LTE) networks, 5G, code division multiple access (CDMA), wideband code division multiple access (WCDMA), wireless fidelity (WiFi), wireless LAN (WLAN), Bluetooth®, Internet Protocol (IP) data casting, satellite, mobile ad-hoc network (MANET), and the like, or any combination thereof.
  • EDGE enhanced data rates for global evolution
  • GPRS general packet radio service
  • GSM global system for mobile communications
  • IMS Internet protocol multimedia subsystem
  • UMTS universal mobile telecommunications system
  • WiMAX worldwide interoperability for microwave access
  • LTE Long Term Evolution
  • 5G
  • the emergency- stop device 101, emergency- stop component of the robot 103, and/or components thereof are implemented as a collection of one or more hardware, software, algorithms, firmware, or combinations thereof.
  • the emergency- stop device 101 can be maintained on a network server, while operating in connection with the robots 103.
  • the emergency- stop devices 101, robots 103, controller platform 109, and/or other components of the system 100 may communicate with each other using well known, new or still developing protocols (e.g., a ROS protocol).
  • a protocol includes a set of rules defining how the network nodes within the communication network 105 interact with each other based on information sent over the communication links.
  • the protocols are effective at different layers of operation within each node, from generating and receiving physical signals of various types, to selecting a link for transferring those signals, to the format of information indicated by those signals, to identifying which software application executing on a computer system sends or receives the information.
  • the conceptually different layers of protocols for exchanging information over a network are described in the Open Systems Interconnection (OSI) Reference Model.
  • Each packet typically comprises (1) header information associated with a particular protocol, and (2) payload information that follows the header information and contains information that may be processed independently of that particular protocol.
  • the packet includes (3) trailer information following the payload and indicating the end of the payload information.
  • the header includes information such as the source of the packet, its destination, the length of the payload, and other properties used by the protocol.
  • the data in the payload for the particular protocol includes a header and payload for a different protocol associated with a different, higher layer of the OSI Reference Model.
  • the header for a particular protocol typically indicates a type for the next protocol contained in its payload.
  • the higher layer protocol is said to be encapsulated in the lower layer protocol.
  • the headers included in a packet traversing multiple heterogeneous networks, such as the Internet typically include a physical (layer 1) header, a data-link (layer 2) header, an internetwork (layer 3) header and a transport (layer 4) header, and various application (layer 5, layer 6 and layer 7) headers as defined by the OSI Reference Model.
  • the emergency- stop devices 101 and robots 103 may interact according to a client-server model.
  • client-server model of computer process interaction is widely known and used.
  • a client process sends a message including a request to a server process, and the server process responds by providing a service.
  • the server process may also return a message with a response to the client process.
  • client process and server process execute on different computer devices, called hosts, and communicate via a network using one or more protocols for network communications.
  • the term “server” is conventionally used to refer to the process that provides the service, or the host computer on which the process operates.
  • client is conventionally used to refer to the process that makes the request, or the host computer on which the process operates.
  • server refer to the processes, rather than the host computers, unless otherwise clear from the context.
  • process performed by a server can be broken up to run as multiple processes on multiple hosts (sometimes called tiers) for reasons that include reliability, scalability, and redundancy, among others.
  • the role of a client and a server is not fixed; in some situations, a device may act both as a client and a server, which may be done simultaneously, and/or the device may alternate between these roles.
  • the processes described herein for providing an emergency- stop switch for a network-controlled robot or device may be advantageously implemented via software, hardware (e.g., general processor, Digital Signal Processing (DSP) chip, an Application Specific Integrated Circuit (ASIC), Field Programmable Gate Arrays (FPGAs), etc.), firmware or a combination thereof.
  • DSP Digital Signal Processing
  • ASIC Application Specific Integrated Circuit
  • FPGAs Field Programmable Gate Arrays
  • firmware or a combination thereof.
  • FIG. 9 illustrates a computer system 900 upon which an embodiment of the invention may be implemented.
  • Computer system 900 is programmed (e.g., via computer program code or instructions) to provide an emergency- stop switch for a network-controlled robot or device as described herein and includes a communication mechanism such as a bus 910 for passing information between other internal and external components of the computer system 900.
  • Information also called data
  • Information is represented as a physical expression of a measurable phenomenon, typically electric voltages, but including, in other embodiments, such phenomena as magnetic, electromagnetic, pressure, chemical, biological, molecular, atomic, sub-atomic and quantum interactions. For example, north and south magnetic fields, or a zero and non-zero electric voltage, represent two states (0, 1) of a binary digit (bit).
  • a superposition of multiple simultaneous quantum states before measurement represents a quantum bit (qubit).
  • a sequence of one or more digits constitutes digital data that is used to represent a number or code for a character.
  • information called analog data is represented by a near continuum of measurable values within a particular range.
  • a bus 910 includes one or more parallel conductors of information so that information is transferred quickly among devices coupled to the bus 910.
  • One or more processors 902 for processing information are coupled with the bus 910.
  • a processor 902 performs a set of operations on information as specified by computer program code related to providing an emergency- stop switch for a network-controlled robot or device.
  • the computer program code is a set of instructions or statements providing instructions for the operation of the processor and/or the computer system to perform specified functions.
  • the code for example, may be written in a computer programming language that is compiled into a native instruction set of the processor. The code may also be written directly using the native instruction set (e.g., machine language).
  • the set of operations include bringing information in from the bus 910 and placing information on the bus 910.
  • the set of operations also typically include comparing two or more units of information, shifting positions of units of information, and combining two or more units of information, such as by addition or multiplication or logical operations like OR, exclusive OR (XOR), and AND.
  • Each operation of the set of operations that can be performed by the processor is represented to the processor by information called instructions, such as an operation code of one or more digits.
  • a sequence of operations to be executed by the processor 902, such as a sequence of operation codes, constitute processor instructions, also called computer system instructions or, simply, computer instructions. Processors may be implemented as mechanical, electrical, magnetic, optical, chemical or quantum components, among others, alone or in combination.
  • Computer system 900 also includes a memory 904 coupled to bus 910.
  • the memory 904 such as a random access memory (RAM) or other dynamic storage device, stores information including processor instructions for providing an emergency- stop switch for a network-controlled robot or device.
  • Dynamic memory allows information stored therein to be changed by the computer system 900.
  • RAM allows a unit of information stored at a location called a memory address to be stored and retrieved independently of information at neighboring addresses.
  • the memory 904 is also used by the processor 902 to store temporary values during execution of processor instructions.
  • the computer system 900 also includes a read only memory (ROM) 906 or other static storage device coupled to the bus 910 for storing static information, including instructions, that is not changed by the computer system 900. Some memory is composed of volatile storage that loses the information stored thereon when power is lost.
  • Information including instructions for providing an emergency- stop switch for a network-controlled robot or device, is provided to the bus 910 for use by the processor from an external input device 912, such as a keyboard containing alphanumeric keys operated by a human user, or a sensor.
  • an external input device 912 such as a keyboard containing alphanumeric keys operated by a human user, or a sensor.
  • a sensor detects conditions in its vicinity and transforms those detections into physical expression compatible with the measurable phenomenon used to represent information in computer system 900.
  • Other external devices coupled to bus 910 used primarily for interacting with humans, include a display device 914, such as a cathode ray tube (CRT) or a liquid crystal display (LCD), or plasma screen or printer for presenting text or images, and a pointing device 916, such as a mouse or a trackball or cursor direction keys, or motion sensor, for controlling a position of a small cursor image presented on the display 914 and issuing commands associated with graphical elements presented on the display 914.
  • a display device 914 such as a cathode ray tube (CRT) or a liquid crystal display (LCD), or plasma screen or printer for presenting text or images
  • a pointing device 916 such as a mouse or a trackball or cursor direction keys, or motion sensor, for controlling a position of a small cursor image presented on the display 914 and issuing commands associated with graphical elements presented on the display 914.
  • a display device 914 such as a cathode ray tube (CRT
  • special purpose hardware such as an application specific integrated circuit (ASIC) 920
  • ASIC application specific integrated circuit
  • the special purpose hardware is configured to perform operations not performed by processor 902 quickly enough for special purposes.
  • application specific ICs include graphics accelerator cards for generating images for display 914, cryptographic boards for encrypting and decrypting messages sent over a network, speech recognition, and interfaces to special external devices, such as robotic arms and medical scanning equipment that repeatedly perform some complex sequence of operations that are more efficiently implemented in hardware.
  • Computer system 900 also includes one or more instances of a communications interface 970 coupled to bus 910.
  • Communication interface 970 provides a one-way or two- way communication coupling to a variety of external devices that operate with their own processors, such as printers, scanners and external disks. In general the coupling is with a network link 978 that is connected to a local network 980 to which a variety of external devices with their own processors are connected.
  • communication interface 970 may be a parallel port or a serial port or a universal serial bus (USB) port on a personal computer.
  • USB universal serial bus
  • communications interface 970 is an integrated services digital network (ISDN) card or a digital subscriber line (DSL) card or a telephone modem that provides an information communication connection to a corresponding type of telephone line.
  • ISDN integrated services digital network
  • DSL digital subscriber line
  • a communication interface 970 is a cable modem that converts signals on bus 910 into signals for a communication connection over a coaxial cable or into optical signals for a communication connection over a fiber optic cable.
  • communications interface 970 may be a local area network (LAN) card to provide a data communication connection to a compatible LAN, such as Ethernet. Wireless links may also be implemented.
  • LAN local area network
  • the communications interface 970 sends or receives or both sends and receives electrical, acoustic or electromagnetic signals, including infrared and optical signals, that carry information streams, such as digital data.
  • the communications interface 970 includes a radio band electromagnetic transmitter and receiver called a radio transceiver.
  • the communications interface 970 enables connection to the communication network 105 for providing an emergency- stop switch for a network-controlled robot or device.
  • Non-volatile media include, for example, optical or magnetic disks, such as storage device 908.
  • Volatile media include, for example, dynamic memory 904.
  • Transmission media include, for example, coaxial cables, copper wire, fiber optic cables, and carrier waves that travel through space without wires or cables, such as acoustic waves and electromagnetic waves, including radio, optical and infrared waves. Signals include man-made transient variations in amplitude, frequency, phase, polarization or other physical properties transmitted through the transmission media.
  • Computer-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, any other magnetic medium, a CD-ROM, CDRW, DVD, any other optical medium, punch cards, paper tape, optical mark sheets, any other physical medium with patterns of holes or other optically recognizable indicia, a RAM, a PROM, an EPROM, a FLASH-EPROM, any other memory chip or cartridge, a carrier wave, or any other medium from which a computer can read.
  • a floppy disk a flexible disk, hard disk, magnetic tape, any other magnetic medium, a CD-ROM, CDRW, DVD, any other optical medium, punch cards, paper tape, optical mark sheets, any other physical medium with patterns of holes or other optically recognizable indicia, a RAM, a PROM, an EPROM, a FLASH-EPROM, any other memory chip or cartridge, a carrier wave, or any other medium from which a computer can read.
  • FIG. 10 illustrates a chip set 1000 upon which an embodiment of the invention may be implemented.
  • Chip set 1000 is programmed to provide an emergency- stop switch for a network-controlled robot or device as described herein and includes, for instance, the processor and memory components described with respect to FIG. 9 incorporated in one or more physical packages (e.g., chips).
  • a physical package includes an arrangement of one or more materials, components, and/or wires on a structural assembly (e.g., a baseboard) to provide one or more characteristics such as physical strength, conservation of size, and/or limitation of electrical interaction. It is contemplated that in certain embodiments the chip set can be implemented in a single chip.
  • the chip set 1000 includes a communication mechanism such as a bus 1001 for passing information among the components of the chip set 1000.
  • a processor 1003 has connectivity to the bus 1001 to execute instructions and process information stored in, for example, a memory 1005.
  • the processor 1003 may include one or more processing cores with each core configured to perform independently.
  • a multi-core processor enables multiprocessing within a single physical package. Examples of a multi-core processor include two, four, eight, or greater numbers of processing cores.
  • the processor 1003 may include one or more microprocessors configured in tandem via the bus 1001 to enable independent execution of instructions, pipelining, and multithreading.
  • the processor 1003 may also be accompanied with one or more specialized components to perform certain processing functions and tasks such as one or more digital signal processors (DSP) 1007, or one or more application-specific integrated circuits (ASIC) 1009.
  • DSP digital signal processors
  • ASIC application-specific integrated circuits
  • a DSP 1007 typically is configured to process real-world signals (e.g., sound) in real time independently of the processor 1003.
  • an ASIC 1009 can be configured to performed specialized functions not easily performed by a general purposed processor.
  • Other specialized components to aid in performing the inventive functions described herein include one or more field programmable gate arrays (FPGA) (not shown), one or more controllers (not shown), or one or more other special-purpose computer chips.
  • FPGA field programmable gate arrays
  • the processor 1003 and accompanying components have connectivity to the memory 1005 via the bus 1001.
  • the memory 1005 includes both dynamic memory (e.g., RAM, magnetic disk, writable optical disk, etc.) and static memory (e.g., ROM, CD-ROM, etc.) for storing executable instructions that when executed perform the inventive steps described herein to provide an emergency- stop switch for a network-controlled robot or device.
  • the memory 1005 also stores the data associated with or generated by the execution of the inventive steps.
  • FIG. 11 is a diagram of exemplary components of a mobile terminal (e.g., an emergency- stop device 101 or emergency- stop component of the robot 103/network-controlled device) capable of operating in the system of FIG. 1, according to one embodiment.
  • a radio receiver is often defined in terms of front-end and back-end characteristics.
  • the front-end of the receiver encompasses all of the Radio Frequency (RF) circuitry whereas the back-end encompasses all of the base-band processing circuitry.
  • Pertinent internal components of the telephone include a Main Control Unit (MCU) 1103, a Digital Signal Processor (DSP) 1105, and a receiver/transmitter unit including a microphone gain control unit and a speaker gain control unit.
  • MCU Main Control Unit
  • DSP Digital Signal Processor
  • a main display unit 1107 provides a display to the user in support of various applications and mobile station functions that offer automatic contact matching.
  • An audio function circuitry 1109 includes a microphone 1111 and microphone amplifier that amplifies the speech signal output from the microphone 1111. The amplified speech signal output from the microphone 1111 is fed to a coder/decoder (CODEC) 1113.
  • CDEC coder/decoder
  • a radio section 1115 amplifies power and converts frequency in order to communicate with a base station, which is included in a mobile communication system, via antenna 1117.
  • the power amplifier (PA) 1119 and the transmitter/modulation circuitry are operationally responsive to the MCU 1103, with an output from the PA 1119 coupled to the duplexer 1121 or circulator or antenna switch, as known in the art.
  • the PA 1119 also couples to a battery interface and power control unit 1120.
  • a user of mobile station 1101 speaks into the microphone 1111 and his or her voice along with any detected background noise is converted into an analog voltage.
  • the analog voltage is then converted into a digital signal through the Analog to Digital Converter (ADC) 1123.
  • ADC Analog to Digital Converter
  • the control unit 1103 routes the digital signal into the DSP 1105 for processing therein, such as speech encoding, channel encoding, encrypting, and interleaving.
  • the processed voice signals are encoded, by units not separately shown, using a cellular transmission protocol such as global evolution (EDGE), general packet radio service (GPRS), global system for mobile communications (GSM), Internet protocol multimedia subsystem (IMS), universal mobile telecommunications system (UMTS), etc., as well as any other suitable wireless medium, e.g., microwave access (WiMAX), Long Term Evolution (LTE) networks, code division multiple access (CDMA), wireless fidelity (WiFi), satellite, and the like.
  • a cellular transmission protocol such as global evolution (EDGE), general packet radio service (GPRS), global system for mobile communications (GSM), Internet protocol multimedia subsystem (IMS), universal mobile telecommunications system (UMTS), etc.
  • EDGE global evolution
  • GPRS general packet radio service
  • GSM global system for mobile communications
  • IMS Internet protocol multimedia subsystem
  • UMTS universal mobile telecommunications system
  • any other suitable wireless medium e.g., microwave access (WiMAX), Long Term Evolution (LTE)
  • the encoded signals are then routed to an equalizer 1125 for compensation of any frequency-dependent impairments that occur during transmission though the air such as phase and amplitude distortion.
  • the modulator 1127 combines the signal with a RF signal generated in the RF interface 1129.
  • the modulator 1127 generates a sine wave by way of frequency or phase modulation.
  • an up-converter 1131 combines the sine wave output from the modulator 1127 with another sine wave generated by a synthesizer 1133 to achieve the desired frequency of transmission.
  • the signal is then sent through a PA 1119 to increase the signal to an appropriate power level.
  • the PA 1119 acts as a variable gain amplifier whose gain is controlled by the DSP 1105 from information received from a network base station.
  • the signal is then filtered within the duplexer 1121 and optionally sent to an antenna coupler 1135 to match impedances to provide maximum power transfer. Finally, the signal is transmitted via antenna 1117 to a local base station.
  • An automatic gain control (AGC) can be supplied to control the gain of the final stages of the receiver.
  • the signals may be forwarded from there to a remote telephone which may be another cellular telephone, other mobile phone or a land-line connected to a Public Switched Telephone Network (PSTN), or other telephony networks.
  • PSTN Public Switched Telephone Network
  • Voice signals transmitted to the mobile station 1101 are received via antenna 1117 and immediately amplified by a low noise amplifier (LNA) 1137.
  • LNA low noise amplifier
  • a down-converter 1139 lowers the carrier frequency while the demodulator 1141 strips away the RF leaving only a digital bit stream.
  • the signal then goes through the equalizer 1125 and is processed by the DSP 1105.
  • a Digital to Analog Converter (DAC) 1143 converts the signal and the resulting output is transmitted to the user through the speaker 1145, all under control of a Main Control Unit (MCU) 1103-which can be implemented as a Central Processing Unit (CPU) (not shown).
  • MCU Main Control Unit
  • CPU Central Processing Unit
  • the MCU 1103 receives various signals including input signals from the keyboard 1147.
  • the keyboard 1147 and/or the MCU 1103 in combination with other user input components comprise a user interface circuitry for managing user input.
  • the MCU 1103 runs a user interface software to facilitate user control of at least some functions of the mobile station 1101 to provide an emergency- stop switch for a network- controlled robot or device.
  • the MCU 1103 also delivers a display command and a switch command to the display 1107 and to the speech output switching controller, respectively.
  • the MCU 1103 exchanges information with the DSP 1105 and can access an optionally incorporated SIM card 1149 and a memory 1151.
  • the MCU 1103 executes various control functions required of the station.
  • the DSP 1105 may, depending upon the implementation, perform any of a variety of conventional digital processing functions on the voice signals. Additionally, DSP 1105 determines the background noise level of the local environment from the signals detected by microphone 1111 and sets the gain of microphone 1111 to a level selected to compensate for the natural tendency of the user of the mobile station 1101.
  • the CODEC 1113 includes the ADC 1123 and DAC 1143.
  • the memory 1151 stores various data including call incoming tone data and is capable of storing other data including music data received via, e.g., the global Internet.
  • the software module could reside in RAM memory, flash memory, registers, or any other form of writable computer-readable storage medium known in the art including non-transitory computer-readable storage medium.
  • the memory device 1151 may be, but not limited to, a single memory, CD, DVD, ROM, RAM, EEPROM, optical storage, or any other non-volatile or non-transitory storage medium capable of storing digital data.
  • An optionally incorporated SIM card 1149 carries, for instance, important information, such as the cellular phone number, the carrier supplying service, subscription details, and security information.
  • the SIM card 1149 serves primarily to identify the mobile station 1101 on a radio network.
  • the card 1149 also contains a memory for storing a personal telephone number registry, text messages, and user specific mobile station settings.

Abstract

An approach is provided for an emergency-stop switch for a network-control device (e.g., a robot). The approach involves causing, by an apparatus (e.g., an emergency-stop device), a transmission of a heartbeat signal that is directed to at least one device (e.g., a robot) (501). The approach also involves determining an input at the apparatus for requesting a stopping of at least one operational function of the at least one device (e.g., causing the robot to stop moving or operating) (503). The approach further involves causing a termination of the transmission of the heartbeat signal in response to the input (505). The approach further involves causing the at least one device to initiate the stopping of the at least one operational function (e.g., mechanical movement or other dangerous process) based on detecting the termination of the transmission of the heartbeat signal.

Description

APPARATUS AND METHOD FOR PROVIDING AN EMERGENCY-STOP SWITCH FOR A NETWORK-CONTROLLED ROBOT
TECHNOLOGICAL FIELD
[0001] Various example embodiments relate to providing safety features for operating robots or other network-controlled devices.
BACKGROUND
[0002] There is increasing interest in the development of robots and other autonomously or remotely operated devices (e.g., autonomous cars, drones, etc.). However, these robots or devices can be potentially large and powerful mechanical devices whose operation can be associated with risks or injuries, damage to surrounding property, or damage to the robot or the device itself. As a results, manufacturers face significant technical challenges to ensuring safe operation of robots and/or equivalent devices particularly when the robots/devices are operated remotely at long distances between operators/controllers and the robots/devices over a data network.
SOME EXAMPLE EMBODIMENTS
[0003] Therefore, there is a need for an approach for providing an emergency- stop switch device for a network-controlled robot or device.
[0004] According to one embodiment, an apparatus (e.g., an emergency- stop switch device) comprises at least one processor, and at least one memory including computer program code for one or more computer programs, the at least one memory and the computer program code configured to, with the at least one processor, cause, at least in part, the apparatus to initiate a transmission of a heartbeat signal that is directed to at least one device (e.g., a robot, autonomous vehicle, drone, etc.). The apparatus is also caused to determine an input (e.g., an activation or a physical or software switch) at the apparatus for requesting a stopping of at least one operational function of the at least one device (e.g., causing the robot to stop moving or operating). The apparatus is further caused to initiate a termination of the transmission of the heartbeat signal in response to the input. The method further comprises causing at least one device to initiate the stopping of the at least one operational function based on detecting the termination of the transmission of the heartbeat signal.
[0005] According to another embodiment, a method comprises causing, at least in part, a transmission of a heartbeat signal that is directed to at least one device (e.g., a robot, autonomous vehicle, drone, etc.). The method also comprises determining an input (e.g., an activation or a physical or software switch) at the apparatus for requesting a stopping of at least one operational function of the at least one device (e.g., causing the robot to stop moving or operating). The method further comprises initiating a termination of the transmission of the heartbeat signal in response to the input. The apparatus further causes at least one device to initiate the stopping of the at least one operational function (e.g., mechanical movement or other dangerous process) based on detecting the termination of the transmission of the heartbeat signal.
[0006] According to another embodiment, a computer-readable storage medium carrying one or more sequences of one or more instructions which, when executed by one or more processors, cause, at least in part, an apparatus to initiate a transmission of a heartbeat signal that is directed to at least one device (e.g., a robot, autonomous vehicle, drone, etc.). The apparatus is also caused to determine an input (e.g., an activation or a physical or software switch) at the apparatus for requesting a stopping of at least one operational function of the at least one device (e.g., causing the robot to stop moving or operating). The apparatus is further caused to initiate a termination of the transmission of the heartbeat signal in response to the input. The apparatus further causes at least one device to initiate the stopping of the at least one operational function (e.g., mechanical movement or other dangerous process) based on detecting the termination of the transmission of the heartbeat signal.
[0007] According to another embodiment, an apparatus comprises means for causing, at least in part, a transmission of a heartbeat signal that is directed to at least one device (e.g., a robot, autonomous vehicle, drone, etc.). The apparatus also comprises means for determining an input (e.g., an activation or a physical or software switch) at the apparatus for requesting a stopping of at least one operational function of the at least one device (e.g., causing the robot to stop moving or operating). The apparatus further comprises means for initiating a termination of the transmission of the heartbeat signal in response to the input. By way of example, the at least one device then initiates the stopping of the at least one operational function based on detecting the termination of the transmission of the heartbeat signal.
[0008] According to another embodiment, an apparatus (e.g., a robot or other autonomously or remotely controlled device) comprises at least one processor, and at least one memory including computer program code for one or more computer programs, the at least one memory and the computer program code configured to, with the at least one processor, cause, at least in part, the apparatus to initiate a monitoring of at least one transmission of at least one heartbeat signal. The heartbeat signal, for instance, is received from at least one emergency- stop device. The apparatus is also caused to determine that the at least one transmission of the at least one heartbeat signal has terminated, wherein a termination of the at least one transmission is initiated by an input received at the at least one emergency-stop device. The apparatus is further caused to initiate a stopping of at least one operational function of the apparatus based on the determination.
[0009] According to one embodiment, a method comprises causing, at least in part, a monitoring by an apparatus of at least one transmission of at least one heartbeat signal. The heartbeat signal, for instance, is received from at least one emergency- stop device. The method also comprises determining that the at least one transmission of the at least one heartbeat signal has terminated, wherein a termination of the at least one transmission is initiated by an input received at the at least one emergency- stop device. The method further comprises initiating a stopping of at least one operational function of the apparatus based on the determination.
[0010] According to another embodiment, a computer-readable storage medium carrying one or more sequences of one or more instructions which, when executed by one or more processors, cause, at least in part, an apparatus to initiate a monitoring of at least one transmission of at least one heartbeat signal. The heartbeat signal, for instance, is received from at least one emergency- stop device. The apparatus is also caused to determine that the at least one transmission of the at least one heartbeat signal has terminated, wherein a termination of the at least one transmission is initiated by an input received at the at least one emergency- stop device. The apparatus is further caused to initiate a stopping of at least one operational function of the apparatus based on the determination. [0011] According to another embodiment, an apparatus comprises means for causing, at least in part, a monitoring by an apparatus of at least one transmission of at least one heartbeat signal. The heartbeat signal, for instance, is received from at least one emergency- stop device. The apparatus also comprises means for determining that the at least one transmission of the at least one heartbeat signal has terminated, wherein a termination of the at least one transmission is initiated by an input received at the at least one emergency- stop device. The apparatus further comprises means for initiating a stopping of at least one operational function of the apparatus based on the determination.
[0012] According to another embodiment, a system comprises a stop device and a robot. The stop device configured to cause, at least in part, a transmission of a heartbeat signal, wherein the heartbeat signal is directed to at least one device. The stop device is also configured to determine an input at the apparatus for requesting a stopping of at least one operational function of the at least one device. The stop device is further configured to cause, at least in part, a termination of the transmission of the heartbeat signal in response to the input. The robot is configured to initiate the stopping of the at least one operational function based on detecting the termination of the transmission of the heartbeat signal.
[0013] In addition, for various example embodiments of the invention, the following is applicable: a method comprising facilitating a processing of and/or processing (1) data and/or (2) information and/or (3) at least one signal, the (1) data and/or (2) information and/or (3) at least one signal based, at least in part, on (including derived at least in part from) any one or any combination of methods (or processes) disclosed in this application as relevant to any embodiment of the invention.
[0014] For various example embodiments of the invention, the following is also applicable: a method comprising facilitating access to at least one interface configured to allow access to at least one service, the at least one service configured to perform any one or any combination of network or service provider methods (or processes) disclosed in this application.
[0015] For various example embodiments of the invention, the following is also applicable: a method comprising facilitating creating and/or facilitating modifying (1) at least one device user interface element and/or (2) at least one device user interface functionality, the (1) at least one device user interface element and/or (2) at least one device user interface functionality based, at least in part, on data and/or information resulting from one or any combination of methods or processes disclosed in this application as relevant to any embodiment of the invention, and/or at least one signal resulting from one or any combination of methods (or processes) disclosed in this application as relevant to any embodiment of the invention.
[0016] For various example embodiments of the invention, the following is also applicable: a method comprising creating and/or modifying (1) at least one device user interface element and/or (2) at least one device user interface functionality, the (1) at least one device user interface element and/or (2) at least one device user interface functionality based at least in part on data and/or information resulting from one or any combination of methods (or processes) disclosed in this application as relevant to any embodiment of the invention, and/or at least one signal resulting from one or any combination of methods (or processes) disclosed in this application as relevant to any embodiment of the invention.
[0017] In various example embodiments, the methods (or processes) can be accomplished on the service provider side or on the mobile device side or in any shared way between service provider and mobile device with actions being performed on both sides.
[0018] Still other aspects, features, and advantages of the invention are readily apparent from the following detailed description, simply by illustrating a number of particular embodiments and implementations, including the best mode contemplated for carrying out the invention. The invention is also capable of other and different embodiments, and its several details can be modified in various obvious respects, all without departing from the spirit and scope of the invention. Accordingly, the drawings and description are to be regarded as illustrative in nature, and not as restrictive.
BRIEF DESCRIPTION OF THE DRAWINGS
[0019] The embodiments of the invention are illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings:
[0020] FIG. 1 is a diagram of a system capable of providing an emergency- stop switch for a network-controlled robot or device, according to an embodiment; [0021] FIG. 2 illustrates an example of location-based handover between emergency- stop switch devices, according to one embodiment;
[0022] FIG. 3 illustrates an example publish-subscribe mechanism for providing an emergency- stop switch, according to one embodiment;
[0023] FIG. 4 is a diagram of the components of an emergency-stop switch device, according to an embodiment;
[0024] FIG. 5 is a flowchart of a process for providing an emergency- stop switch device for a network-controlled robot or device, according to one embodiment;
[0025] FIG. 6 is a diagram of the components of a network-controlled robot or device, according to an embodiment;
[0026] FIG. 7 is a flowchart of a process for using a heartbeat signal of an emergency- stop switch device, according to one embodiment;
[0027] FIGs. 8A and 8B are diagrams of an emergency- stop switch device, according to one embodiment;
[0028] FIG. 9 is a diagram of hardware that can be used to implement an embodiment;
[0029] FIG. 10 is a diagram of a chip set that can be used to implement an embodiment; and
[0030] FIG. 11 is a diagram of a mobile terminal (e.g., handset) that can be used to implement an embodiment.
DESCRIPTION OF SOME EMBODIMENTS
[0031] Examples of a method, apparatus, and computer program for providing an emergency- stop switch for a network-controlled robot or device are disclosed. In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the embodiments of the invention. It is apparent, however, to one skilled in the art that the embodiments of the invention may be practiced without these specific details or with an equivalent arrangement. In other instances, well-known structures and devices are shown in block diagram form in order to avoid unnecessarily obscuring the embodiments of the invention. [0032] FIG. 1 is a diagram of a system capable of providing an emergency- stop switch for a network-controlled robot or device, according to an embodiment. The various example embodiments described herein relate to safety features of autonomous robots, teleoperated robots, or any other autonomous or network-controlled devices. As a potentially large and powerful mechanical devices, robot operation is associated with risks of injuries, damage to surrounding property, or damage to the robot itself. A mobile robot (or any other similar device such as but not limited to autonomous cars, drones, etc.) can hit people and objects in the way if the robot fails to detect an obstacle or if an obstacle is in the blind spot of the robot. Component failures can also result in unsafe robot operation, or a person unaware of safety procedures may step into the path of a robot that is not designed to avoid obstacles (e.g., a robot 103 designed to operate in confined environment). Likewise, stationary robots (e.g., industrial or manufacturing robots) can pose risks for humans and property in their vicinity. For example, a robotic arm can go awry due to a mechanical, electrical, or software failure (e.g., due to a software bug), misleading sensor input, or unanticipated external force.
[0033] For safety reasons, most robots that are sufficiently large or heavy to pose the stated risks, are equipped with a physical emergency stop switch, sometimes called a “kill switch” or E- stop switch. When pushed, the emergency stop switch will immediately stop all motion in the robot. The switch itself must be designed to be safe and easily engaged in an emergency. Also, if the switch itself fails, the robot must also stop as if the switch is engaged. Typically, the e-stop switches are designed to break a power circuit in the robot when engaged. In other words, when the switch is not engaged, the power circuit of the robot is on, and the power circuit breaks when the switch is engaged. If the switch itself fails, breaking the circuit, the robot will act as if the switch is engaged. Generally, the physical design of the switch is such that it can be pressed by slamming on it, but it is still protected from accidental presses. In one embodiment, once engaged, the procedure to disengage the switch requires a motion that is hard to perform accidentally. A typical motion is twist- and-pull, and the operator is supposed to disengage the switch only after going through the check-list procedure that ensures that the dangerous condition has been cleared.
[0034] A physical emergency stop switch is an important safety feature of any robot and is here to stay (e.g., the example embodiments described herein present do not propose eliminating them). However, in order to engage a traditional physical emergency- stop switch, the operator must be near the switch. This limitation many not be a problem under some circumstances such as for stationary robots (e.g., an assembly line in the factory) or for autonomous cars in which the operator (or a passenger in the latter case) are always near the emergency- stop switch. In mobile unmanned vehicles, the emergency- stop switch may not be accessible to the operator. Consider a vehicle on the ground course running autonomously engaging in an unsafe operation. The person monitoring the operation may be physically far from the robot and may not be following the robot at all, but instead observing the operation on a computer at the remote station (e.g., monitoring the status gauges or the camera view). Engaging the physical emergency- stop switch on the robot may be impossible and by the time the operator runs to the robot’s location it may be too late. Constantly following the robot may be impractical (e.g., impossible to monitor the gauges or other remote vehicle controls from the control room and follow the robot at the same time) and even undesirable (e.g., potential interfering with the robot operation). A remote emergency- switch is the solution for these use cases. For example, the switch operator must be able to engage the emergency switch over a radio or other remote link.
[0035] In general, the radio or remote link should also be designed following similar principles that the traditional physical switch follows such as but limited to the failure of the link must result in robot stopping. One technical problem with the direct radio link is that it limits the range of operation of the robot. For example, the typical range of an unlicensed 900MHz remote-control radio link is about 100m, so the radius of operation is limited by the range of the link.
[0036] In one embodiment, for robots controlled over a packet network (e.g., TCP/IP network), it is possible to implement the robot software such that it must receive a packet stream from the network to operate. This packet stream is commonly referred to as the “heartbeat” packets or signals and are sent to the robot periodically, at some previously defined rate. The lack of heartbeats would result in robot stopping. An alternative way to implement heartbeats is to make the motion commands sent to the robot expire. Whenever the command is sent, it is valid for only specific short time period. If the new command is not sent before the existing one expires, the robot will stop. The various embodiments described herein will refer to these packets as heartbeat packets regardless of whether they are implemented as a separate stream of packets of as part of the motion command stream. When implemented, heartbeats typically come from the same server or set of servers (or any other network-side control unit) that control the robot and engaging the emergency switch is a software command issued from the control station.
[0037] The use case that leads to the need for the approach of the various embodiments described herein is when the robot is network controlled (e.g., when it is possible to implement a heartbeat packet stream as the heartbeat signal), but it is not convenient for the person supervising the robot to be present at the control station where the command to stop the heartbeats can be issued (e.g., a safety person is observing the robot operation from other more convenient spot but is not controlling the robot using the control station). At the same time, it is assumed that the person cannot conveniently or safely follow the robot to be able to reach for the physical emergency- stop switch on the robot, while the dedicated radio link is excluded because of the range limit.
[0038] In summary, physical emergency- stop switch mounted on the robot is the primary implementation on commercially available mobile robots. If the robot needs to be disabled remotely, the emergency switch is implemented using a dedicated radio link as described in the previous section. For network- controlled robots, heartbeat packets are typically dedicated to one robot and they are sent from the same server or a group of servers from which the robot is controlled. Stopping the heartbeats requires issuing an explicit command from the control station (e.g., remote station, server, or client where an operator of the robot issues operational commands to the robot). Accordingly, manufacturers and service providers face significant technical challenges that enables a safety operator to remotely stop a robot (e.g., in emergency conditions) while the safety operator is not near or otherwise has access to the control station of the robot.
[0039] To address these technical challenges, the system 100 of FIG. 1 introduces a capability to provide one or more emergency stop switches or devices lOla-lOln (also collectively referred to as emergency stop devices 101) for robots 103a-103m (also collectively referred to as robots 103) or any other autonomous or remotely operated network-controlled devices (e.g., autonomous cars, drones, etc.). In one embodiment, the emergency- stop device 101 (also referred to as a stop device) can be a hand-held or pocket device with a wireless or wired network interface to a communication network 105 (e.g., typically WiFi, but other network access technologies such as LTE are also an option). The emergency- stop devices lOla-lOln include respective heartbeat sources 107a-107n (also collectively referred to as heartbeat sources 107) that generate the heartbeat signals whose content can include the unique identification of the heartbeat source 107, stop-device 101, and/or the device or robot 103 to which the heartbeats are directed. In one embodiment, The stop devices 101 may be operated manually or automatically (e.g., via artificial intelligence or machine learning trained to recognize and stop potentially dangerous or harmful functions performed by the robots 103).
[0040] In one embodiment, heartbeat signals are sent periodically over a data connection of the communication network 105 (e.g., using a TCP/IP connection, UDP connectionless data flow, etc.). Heartbeats, for instance, can be sent either directly to the robot 103 (using the robot’s IP address) or to a server that controls the robot (e.g., a controller platform 111 or any other equivalent server/device). In one embodiment, the emergency- stop devices lOla-HOn include respective stop switches 113a-113n (also collectively referred to as stop switches 113) which when activated can initiate an emergency stop of the robot 103 or activation/deactivation of any operational function of the robot 103 (e.g., movement, sensor deployment, return to a designated location, etc.). In one embodiment, activating or engaging the stop switch 113 (e.g., a physical or software switch on the emergency- stop device 101) performs an emergency stop by removing the power from the emergency- stop device 101, which causes the heartbeat signal flow from the emergency- stop device 101 to stop. In one embodiment, the robot 103 and/or the controller platform 109 controlling the robot 103 is configured to listen to the heartbeat signals associated with the robot 103 (e.g., monitoring for heartbeat signals whose content includes an identifier or other identification associated with the robot 103). Absence of heartbeats causes the robot 103 to stop completely or stop one or more specified operational functions of the robot 103 (e.g., stop movement only but remain on to receive follow up commands). In one embodiment, the robot 103 (and/or the controller platform 109 controlling the robot 103) can be configured to listen for multiple emergency- stop devices 101 and stop if any of the heartbeats from one or more of the emergency- stop devices 101 are missing. In yet another embodiment, multiple robots 103 (and/or the controller platform 109 controlling the robot) can be configured to listen for heartbeats associated with the same emergency- stop device 101, conveniently allowing one emergency- stop device 101 to stop multiple robots 103.
[0041] In one example use case, a person (e.g., a safety operator separated from the robot 103’s control station) observing the robot 103 can carry the corresponding emergency- stop device 101 in the pocket, and he/she can observe the robot operation from any convenient point (e.g., observation deck) that is not necessarily near the robot 103 or near the main control station (e.g., the controller platform 109). If the robot 103 performs a deemed-unsafe operation, the person breaks the power to the emergency- stop device 101 (e.g., using the stop switch 113) and the robot 103 stops. In this way, the range limit is advantageously eliminated, as long as there is network coverage (e.g., WiFi or LTE) in the area where the robot operator is standing. For network-controlled robots 103 or devices, the availability of the communication network 105 is presumed. Because the robot 103 can be programmed to listen to specific heartbeats, it is also possible to implement a handoff of the transmission of the heartbeat signals from one emergency- stop device 101a to a different emergency-stop device 101b. For example, if the robot 103’s area of operation (e.g., designated by a polygon or other boundary) is large enough to warrant multiple operators to observe the robot operation, the system 100 can define a protocol that informs the robot 103a to start listening to heartbeats from another emergency- stop device 101b once the robot 103 a moves into the area where a different person with a different emergency- stop device 101b is observing the robot 103a’s operation. At the same, the system 100 can reconfigure or reprogram another robot 103b to listen to the emergency- stop device 101a that no longer controls the first robot 103 a.
[0042] While one embodiment of the emergency- stop device 101 is a wireless hand held/pocket device, an alternative embodiment can be emergency- stop switches 101 that are mounted on the wall or other fixed structure and connected over a wired network that can reach the robot 103 over a packet network infrastructure or other equivalent data network (e.g., the communication network 105). In most uses case, because of the mobility of the robot 103 may be connected over a wireless network. However, in cases where mobility is not an issue, the robot 103 may be connected to the communication network 105 using any wireless or wired means. For example, consider a robot 103 that moves from a first room to a second room. Each room can have a stationary emergency- stop switch device 101 mounted on the wall. In the first room, the robot 103 listens to the heartbeats coming from the first emergency- stop device 101a. When the robot 103 moves to the second room, the robot starts to listen to the heartbeats coming from the second emergency- stop device 101b. The principle of operation is the same and engaging the switch is also done by removing the power from the emergency- stop device 101, but the physical design can be different.
[0043] If the emergency- stop device 101 itself fails, that is, if it loses network connectivity or power, the heartbeats will stop, and the robot 103 will consequently stop. This way one safety property is advantageously satisfied (i.e., a failed emergency- stop switch device 101 will stop the robot 103 eliminating the case that the switch engages with no effect.
[0044] In one embodiment, the robot 103 is programmed to receive heartbeats from one or more heartbeat sources 107 over the communication network 105. For example, the robot 103 receives heartbeats from the emergency- stop devices 101 on a pre-defmed communication channel (e.g., a TCP connection or UDP flow), looks at the packet content or packet header or both to identify whether the incoming heartbeats are the ones the robot 103 is programmed to listen to or monitor. In one embodiment, the heartbeat signals can be sent using any operating system or protocol capable of controlling the robot 103 (e.g., Robotic Operating System (ROS) or equivalent). For instance, in an example embodiment in which ROS is used as an operating system, the heartbeats are sent on a communication channel called a topic (essentially a named flow) whose name is configured to be known to the robot 103 and the emergency- stop device 101 or process responsible for sending the heartbeat signals. By way of example, ROS is a software platform (developed at Stanford University) that conveniently allows robotic software modules to be easily developed, reused, and integrated with each other, by means of a publish- subscribe communication model. Although the various embodiments are described with respect to ROS, it is contemplated that any operating or protocol that supports a publish/subscribe mechanism or an equivalent communication channel (e.g., equivalent to a topic or named flow) can also be used in the embodiments described herein.
[0045] In one embodiment, multiple heartbeat sources 107 can send to the same topic or channel, and multiple robots 103 can listen on the same topic. In one embodiment, the heartbeat message or signal contains the source identification (e.g., an identifier associated with the transmitting emergency- stop device 101), and the robot 103 is configured with the list of heartbeat source identifiers that must be present for the robot 103 to run. Each configured heartbeat source identifier can be associated with a timer. In one embodiment, the heartbeat source identifier list is dynamically reconfigurable, so the robot 103 can at any time add one set of heartbeats to listen to or remove another set of heartbeats to listen to.
[0046] In one embodiment, when a heartbeat message arrives on the topic, the robot 103 extracts its identifier and indexes into the table (e.g., tables 115a-115m - collectively referred to as tables 115 - respectively associated robots 103a-103m) of heartbeats that the robot 103 listens to. For example, each table 103 identifies that the heartbeat source 107 (e.g., source ID) that each robot 103 is to listen to. If the source ID in a received heartbeat message is found in the table 115, the robot 103 records the time (e.g., Time Tl, Time T2) when the last heartbeat is for the specified source ID has been received. In one embodiment, the process on the robot 103 responsible for converting the motion commands received from the network (e.g., from the controller platform 109) and driving the actuators (or performing any other operational function of the robot 103 or device) parses through the table 115 each time the new motion command is received and accepts the command only if a difference between the current time 117 and the time recorded for each heartbeat in the table 115 is less than the timer expiration time (process 119). If this condition is violated for any of the configured heartbeats, the incoming motion commands 121 are blocked.
[0047] In one embodiment, when motion commands arriving from the network are blocked, they are not passed to the local motor controller of the robot 103. Within the local motor controller, there is another timer that expires the physical motion commands 121 and effectively stops the robot 103. For example, if the motion commands 121 themselves stop arriving the local motor controller will expire the last command and stop. Likewise, if any of the processes responsible for processing the heartbeats or processing motion commands crashes, the robot 103 will also stop.
[0048] The process described in the previous three paragraphs is illustrated in Fig 1. For example, two robots (e.g., robots 103a and 103m) and three heartbeat sources (e.g., heartbeat sources 101a, 101b, and 101h) are shown in FIG. 1. The first robot 103a is configured to listen to heartbeat sources 107a and 107n as shown in table 115a. An absence of any of these two heartbeats 107a and 107n will stop the robot 103a. The second robot 103m is configured to listen to heartbeat sources 107a and 107b as shown in table 115m. Notice that heartbeat source 107a will stop both robots 103a and 103m, which is an illustrative example of how a single heartbeat stream can control multiple robots. In one embodiment, the logical operation between all heartbeats is “AND”, which means that all heartbeats must be present for the robot to operate. This embodiment illustrates an example where multiple heartbeat sources 107 or stop devices 101 can control one or more robots 101, so that activation of any one of the stop devices 101 can stop the robot(s) 101. By way of example, in ROS or an equivalent robotic operating system protocol, the ability to send the same source of heartbeats to multiple robots can be implemented using the publish-subscribe communication model that ROS is based on. The multiple robots 103 simply subscribe to the same communication channel (topic) to which the heartbeat signals are published.
[0049] When the above-described mechanism for receiving and processing heartbeats is combined with the ability to dynamically reconfigure the robot 103 to listen to specific heartbeats, the resulting system becomes much more flexible than traditional approaches. Consider the group of mobile robots 103 covering a large course moving at the speed that makes it impractical for human observer to follow it. Instead, consider a team of human observers stationed at their locations from which they can see respective sections of the course. Each observer has direct control over the heartbeat source responsible for that specific section of the course. When the robot enters the section of the course, the control plane of the system 100 (dynamically) configures the robot 103 to listen to the heartbeats that correspond to that section. If the human observer observes an unsafe behavior of the robot 103, he/she can need only use one emergency- stop switch device 101 to push, and the robots 103 that are in that section of the course will stop. If the robot 103 leaves said section of the course, the robot 103 starts listening to the new flow of heartbeats, responsible for the new section of the course. In one embodiment, a safely designed system will always listen to at least one heartbeat flow and handing off from one flow to the other is done such that the new flow is added first before dropping the next flow. For example, the robot 103 can have the set of rules programmed to enforce the safe hand-off property. [0050] The operation described above is illustrated in FIG. 2, according to one embodiment. As shown, the robots 103a and 103b are listening to heartbeat source 107a in section 201a of the course 200, while the robot 103c is listening to heartbeat source 107b. As robots 103a-103c move through the course 200, the observers (e.g., respectively associated with heartbeat sources 107a-107c corresponding to respective emergency- stop devices 101) are taking over the responsibility for robots 103 a- 103c in their respective sections 201a-201c and thus the heartbeat sources are handed off.
[0051] In one embodiment, the emergency- stop device 101 can be implemented as a hand held device. By way of example, the implementation can consist of a microcontroller and a wireless network interface. The network interface can be WiFi or any other wireless networking technologies (e.g., LTE, 5G, and/or the like). The emergency- stop device 101 also can use battery power or other portable power sources and can include provisions to charge or replace battery/power source, and a mechanical or software design that enables removal of power from the microcontroller. For example, a power removal can be accomplished using a mechanical switch or designing the device in two parts (battery and other circuitry) with the mechanism that allows separation of the said two parts. In addition, the performance and memory capacity of the microcontroller should be sufficient to accommodate the minimalistic implementation or a network stack (e.g., a TCP/IP, UDP, or equivalent protocol stack).
[0052] When an operating system such as ROS is used, one problem may be that ROS may not exist in a small (microcontroller) footprint. Accordingly, in one embodiment, one way to overcome this problem is to use a proxy node that listens on a previously established network port (e.g., TCP, UDP, or equivalent data port) and receives the heartbeat information from the hand-held emergency- stop device 101. The proxy then publishes the heartbeats on a ROS topic. The robots 103 subscribe to the heartbeat topic and monitor the arrivals of the heartbeats, stopping their motion or other operational function if a timeout condition occurs (e.g., the heartbeats are stopped). The proxy can run on any server that is part of the same network of ROS nodes that control the group of robots 103 of interest. As long as the robot 103 and the emergency- stop device 101 have network connectivity (which do not need to be the same wireless or wired network), the robot 103’s operating reach and the location of the emergency- stop device 101 are not restricted. In one embodiment, because each heartbeat message or signal includes content that uniquely identifies the source emergency- stop device 101, multiple heartbeat sources 107 can share the same ROS topic. It is contemplated that the system 100 can implement any number of different ROS topics and determine which heartbeat sources 107 share which ROS topic.
[0053] FIG. 3 illustrates an example publish-subscribe mechanism for providing an emergency- stop switch, according to one embodiment. More specifically, FIG. 3 illustrates the relationship between the emergency- stop devices 101 that source the heartbeats and device nodes (e.g., respective ROS nodes included in the controller platform 109 and robots 103). There are two heartbeat sources 107a and 107b (e.g., corresponding to hand-held emergency- stop devices 101a and 101b) in the system and both are sending to the ROS proxy 301 on the server (e.g., controller platform 109). Sourced from the ROS proxy 301 there is a heartbeat ROS topic 303 or equivalent channel to which all incoming heartbeats from heartbeat sources 107a and 107b are published. The message stream on the heartbeat ROS topic 303 contains heartbeats of all heartbeat sources 107a and 107b in the system. In one embodiment, each heartbeat message or signal has a unique identification of the heartbeat source (e.g., either heartbeat source 107a or 107b) embedded in it. The three robots 103a-103c subscribe to the heartbeat topic 303. Each robot 103 a- 103c looks for source identifiers that correspond to the source it is configured to listen to.
[0054] In one embodiment, engaging the stop switch 113 on the emergency- stop device 101 breaks the power supply by physically (or virtually) disconnecting the battery or power source from its connector to the emergency- stop device 101. It is contemplated that cutting power to stop the heartbeat signals is provided by way of illustrating and that any means to stop the transmission of heartbeat signals from the emergency- stop device 101 can be used in the embodiments described herein. Once the power is disconnected or the transmission of heartbeats is stopped from the hand-held emergency- stop device 101, the robot 103 also stops. For example, the delay it takes to stop is determined by the heartbeat frequency and timeout value programmed in the robot. In one embodiment, the heartbeat frequency can be varied based on the function or other contextual parameter (e.g., range, available power, weather, visibility, etc.) associated with the robot 103, emergency- stop device 101, and/or the environment in which the devices are operating. In another embodiment, the heartbeat frequency can be based on available network bandwidth or other network availability parameter. In yet another embodiment, the operational functions that can be performed by the robot 103 can be limited based on the available heartbeat frequency. For example, the top speed of the robot 103 can be limited based on how frequently the heartbeat signal can be transmitted which in turn is based on available network bandwidth (e.g., higher frequencies with higher bandwidth availability and lower frequencies with lower bandwidth availability).
[0055] When the power is applied back to the hand-held emergency- stop device 101, the robot 103 continues to move towards its target or continues with its operational function that was interrupted. The delay between reconnecting the power and robot 103 moving again, for instance, is determined by the time it takes the microcontroller of the emergency- stop device 101 to boot up, connect to the network, establish the network (e.g., TCP, UDP, etc.) connection to the ROS proxy and for the subscribed heartbeat messages to start coming to the robot 103. Not surprisingly, this delay is usually longer than the delay to stop the robot 103. Generally, this is not an issue, because releasing the emergency- stop state is typically not a time-critical operation.
[0056] By way of example, as shown in FIG. 4, the emergency- stop device 101 may include one or more components (e.g., circuitry, modules, etc.) for providing an emergency- stop switch according to the embodiments described herein. In one embodiment, emergency- stop switch device 101 includes heartbeat circuitry 401, transmission circuitry 403, switch circuitry 405, and power circuitry 407. As used in this application, the term “circuitry” may refer to one or more of all of the following:
[0057] (a) hardware-only circuit implementations (such as implementation in only analog and/or digital circuitry) and
[0058] (b) combinations of hardware circuits and software, such as (as applicable):
[0059] (i) a combination of analog and/or digital hardware circuit(s) with software/firmware and
[0060] (ii) any portions of hardware processor(s) with software (including digital signal processor(s)), software, and memory(ies) that work together to cause an apparatus (e.g., the emergency- stop switch device 101, mobile phone, or server) to perform various function(s); and [0061] (c) hardware circuit(s) and/or processor(s), such as a microprocessor(s) or a portion of a microprocessor(s), that requires software (e.g., firmware) for operation, but the software may not be present when it is not needed for operation.
[0062] This definition of circuitry applies to all uses of this term in this application, including in any claims. As a further example, as used in this application, the term circuitry also covers an implementation of merely hardware circuit or processor (or multiple processors) or portion of a hardware circuit or processor and its (or their) accompanying software and/or firmware. The term circuitry also covers, for example and if applicable to the particular claim element, a baseband integrated circuit or processor integrated circuit for a mobile device or a similar integrated circuit in a server, a cellular network device, or other computing or network device.
[0063] It is contemplated that the functions of these components may be combined in one or more components or performed by other components with similar functionalities. The above presented components of the emergency- stop switch device 101 can be implemented in hardware, firmware, software, or a combination thereof. Though depicted as a separate entity in FIG. 1, it is contemplated that the emergency- stop switch device 101 may be implemented as a module of any of the components of the system 100. In another embodiment, one or more of the components or circuitry 401-407 may be implemented as a cloud-based service, local service, native application, or combination thereof. The functions of the emergency- stop switch device 101 and its component circuitry 401-407 are discussed above and summarized with respect to FIG. 5 below.
[0064] FIG. 5 is a flowchart of a process for providing an emergency- stop switch for a network-controlled robot or device, according to one embodiment. In one embodiment, the emergency- stop switch 101 and/or any of its component circuitry 401-407 may perform one or more portions of the process 500 and may be implemented in, for instance, a chip set including a processor and a memory as shown in FIG. 10 and a network interface (e.g., a wireless radio interface 1115 as shown in FIG. 11). As such, the emergency- stop switch 101 and/or any of its component circuitry 401-407 can provide means for accomplishing various parts of the process 500. Although the process 500 is illustrated and described as a sequence of steps, it is contemplated that various embodiments of the process 500 may be performed in any order or combination and need not include all of the illustrated steps.
[0065] In step 501, the heartbeat circuitry 401 interacts with the transmission circuitry 403 to cause, at least in part, a transmission of a heartbeat signal, wherein the heartbeat signal is directed to at least one device (e.g., a network-controlled robot or other device 107). In one embodiment, the apparatus (e.g., the emergency- stop switch device 101) is a separate device from at least one control device that operates the at least one device. For example, the at least one device can include but is not limited to an autonomously operated device, a remotely operated device, or a combination thereof.
[0066] In one embodiment, the heartbeat signal includes content specifying an identification of the device (e.g., the robot 103 or other network-controlled device). In addition, the heartbeat signal can also include content identify the heartbeat source or emergency- stop device 101 that transmitted the heartbeat signal.
[0067] As discussed above, the transmission of the heartbeat signal can be sent directly to the robot 103 and/or can be forwarded to the robot 103 by a control device (e.g., a controller platform 109 or other service listening to the heartbeat signal to relay to the robot). In one embodiment, the relay of the transmission of the heartbeat signal can be performed via a publish- subscribe mechanism. For example, the publish-subscribe mechanism can be performed using a ROS topic as described above.
[0068] In step 503, the switch circuitry 405 determines an input at the apparatus (e.g., at the emergency- stop switch device 101) for requesting a stopping of at least one operational function of the at least one device. By way of example, the input can be provided using a physical switch, a software switch, or a combination thereof of the apparatus. When using a physical switch, an operator can engage the physical stop switch 113 on the emergency- stop device 101. Similarly, when using a software switch, the emergency- stop device 101 can be a mobile device (e.g., a smartphone) executing an application that displays a user interface with a representation of the stop switch 113. The user can then interact (e.g., touch, press, select, etc.) with the representation to engage the stop switch 113 or simply stop the application to terminate the heartbeat signal. In other words, the application can be started to initiate the transmission of the heartbeat signal. Then, any interruption of the execution of the application (e.g., closed by the user, unexpected crash, loss of power etc.) in addition to engagement of the stop switch 113 will also stop the transmission of the heartbeat signal.
[0069] In step 505, power circuitry 407 causes, at least in part, a termination of the transmission of the heartbeat signal. For example, the input or detected termination of the heartbeat signal causes, at least in part, a cut-off of a power supply to a transmission circuitry of the apparatus to cause the termination of the transmission of the heartbeat signal. When using a physical switch, for instance, the cut-off of the power supply can be performed by physically interrupting or disconnecting the power supply from the emergency- stop switch device 101 (e.g., by discussing a power connector, battery, power source, etc.). In one embodiment, interrupting the power supply to the emergency- stop device 101 will cause the device 101 to stop transmitting the heartbeat signal (e.g., because the heartbeat circuitry 401 and transmission circuitry 403 would not be able to function without power). As discussed above, a cut-off of the power is only example of terminating the transmission of the heartbeat signal. In other embodiments, the termination of the transmission of the heartbeat signals can be performed by means other than cutting of the power supply. Other examples (while not a robust or fault tolerant as a physical cut off of the power supply) may include but is not limited issuing a command to the transmission circuitry to stop the transmission of the heartbeat signal, stopping the generating of heartbeat signal so that there is no signal to transmit, removing the unique identifier of the heartbeat source 107 and/or robot 103 from the heartbeat signal, unpublishing the heartbeat signal (e.g., unpublish from a ROS topic or equivalent publication channel), and/or the like.
[0070] In one embodiment, as described above, the transmission circuitry 403 can initiate a handover of the transmission of the heartbeat signal to another apparatus (e.g., another emergency- stop switch device 101). In one embodiment, the handover can be initiated by the robot 103 which can decide or select which stop device 101 to monitor or listen to. For example, the robot 103 can be programmed to subscribe a publication channel (e.g., ROS topic) associated with another selected stop switch device 101. In addition or alternatively, the robot 103 can be programmed to open a connection to the other stop switch 101 or to filter on a different heartbeat source identifier (e.g., associated with the other stop switch device 101) from a heartbeat stream sent to all robots 103. In another embodiment, the handover can be performed based on a location of the device, the apparatus, or a combination thereof. For example, the handover of the transmission of the heartbeat signal to another emergency- stop switch device 101 can be initiated based on a network availability status of the robot 103, the emergency- stop device 101, the environment in which the devices are operating, and/or the like. For example, if a first emergency- stop device 101a detects that it has available network bandwidth below a threshold value, the emergency- stop device 101a can initiate a handover of the transmission of heartbeats to another emergency- stop device 101b that has more available network bandwidth (e.g., bandwidth above the threshold value). The handover, for instance, reprograms the robot 103 to listen to a source ID associated with the new emergency- stop device 101b.
[0071] In one embodiment, as described above, the robot 103 can listen multiple heartbeat sources. In other words, the robot(s) 103 can monitor for the heartbeat signal for the first emergency- stop device 101a in addition to at least one other heartbeat signal for another emergency- stop device 101b. In an example use case where the robot 103 is listening to heartbeat signals from the two stop-switch devices 101a and 101b, both a heartbeat signal from the first device 101a and a heartbeat signal from the second device 101b must be received by the robot 103 for the robot 103 to operate (e.g., perform at least one operational function that is controlled by the stop switches 101a and 101b). In other words, the termination or interruption of any one of the heartbeat signals that the robot 103 is programmed to causes the stopping of the at least one operational function of the robot 103 or other device controlled by the stop switches 101a and 101b (described in more detail with respect to FIGs. 6 and 7 below).
[0072] By way of example, as shown in FIG. 6, the robot 103 or other network-controlled device may include one or more components (e.g., circuitry, modules, etc.) for providing an emergency- stop of operations according to the embodiments described herein. In one embodiment, robot 103 or other network-controlled device includes heartbeat circuitry 601, a heartbeat table 603 (e.g., table 115 as shown in FIG. 1 or any other equivalent data structure for storing information on monitored heartbeat signals), processing circuitry 605, and operation termination circuitry 607. It is contemplated that the functions of these components may be combined in one or more components or performed by other components with similar functionalities. The above presented components of the robot 103 or other network-controlled device can be implemented in hardware, firmware, software, or a combination thereof. Though depicted as a separate entity in FIG. 1, it is contemplated that the robot 103 may be implemented as a module of any of the components of the system 100. In another embodiment, one or more of the components or circuitry 601-607 may be implemented as a cloud-based service, local service, native application, or combination thereof. The functions of the robot 103 or other network-controlled device and its component circuitry 601-607 are discussed with respect to FIG. 7 below.
[0073] FIG. 7 is a flowchart of a process for using a heartbeat signal of an emergency- stop switch device, according to one embodiment. In one embodiment, the emergency- stop switch 101 and/or any of its component circuitry 401-407 may perform one or more portions of the process 700 and may be implemented in, for instance, a chip set including a processor and a memory as shown in FIG. 10. As such, the emergency- stop switch 101 and/or any of its component circuitry 401-407 can provide means for accomplishing various parts of the process 700. Although the process 700 is illustrated and described as a sequence of steps, it is contemplated that various embodiments of the process 700 may be performed in any order or combination and need not include all of the illustrated steps. The process 700 is described from the perspective of the robot 103 or other network-controlled device that is receiving heartbeat signals from the emergency- stop device 101.
[0074] In step 701, the heartbeat circuitry 601 causes, at least in part, a monitoring of at least one transmission of at least one heartbeat signal, wherein the heartbeat signal is received from at least one emergency- stop device 101 and stored in the heartbeat table 603. In one embodiment, the apparatus performing the monitoring is a network-controlled device. The at least one- emergency stop device is a separate device from at least one control device that operates the robot 103 or network-controlled device 101 (e.g., a control station, controller platform 109, and/or the like). For example, the network-controlled device may be an autonomous robot, a remotely controlled robot, or a combination thereof. When used in a robot use case, the heartbeat signal is transmitted using a ROS or other equivalent protocol. [0075] In one embodiment, the monitoring of the at least one transmission of the at least one heartbeat signal is performed using a publish-subscribe mechanism. An example of the publish-subscribe mechanism is the ROS-based mechanism that can aggregate and publish heartbeat signals or messages to one or more ROS topics as described above. The robot(s) 103 can then subscribe to the ROS topic to receive the heartbeat signals transmitted from the emergency- stop devices 101. In one embodiment, the heartbeat circuitry 601 can be programmed or configured to listen to specific heartbeat sources 107 (e.g., using a list or table of source IDs stored in the heartbeat table 603). Listening or monitoring includes, for instance, storing the timestamps of the last received heartbeat message identified with a monitored source ID and/or robot/device ID.
[0076] In one embodiment, the at least one transmission of the at least one heartbeat signal to the robot 103 or equivalent can be handed over among a plurality of emergency- stop devices based on a location of the apparatus, a location of the at least one emergency- stop device, or a combination thereof. The handover can be performed by reprogramming the robot 103 or device with the source ID(s) of the new emergency- stop devices 101 that are to be monitored (e.g., the devices 101 to which the handover is made).
[0077] In step 703, the processing circuitry 605 determines whether the heartbeat signal has stopped or otherwise expired. For example, the processing circuitry 605 can compare the timestamps of the received heartbeat messages or signals against expiration criteria (e.g., a timeout value between receipt of any two consecutive heartbeat or control messages). If the heartbeat signal has not expired, the processing circuitry interacts with the heartbeat circuitry 601 to continue monitoring the heartbeat signal(s) and returns to step 701.
[0078] In step 705, the processing circuitry 605 determines that the at least one transmission of the at least one heartbeat signal has terminated. By way of example, the termination of the at least one transmission can be initiated by an input received at the at least one emergency- stop device 101 to cut power to the emergency- stop device 101 and stop the heartbeat transmission. Failure of any component of the emergency- stop device 103, the communication network 105, the robot 103, or any other component of the system 100 can also cause heartbeat signal to be terminated, interrupted, or otherwise not received by the robot 103. Based on the detected termination or interruption, the operation termination circuitry 607 causes, at least in part, a stopping of at least one operational function of the robot 103 or device. By of example, an operational function of the robot 103 can include but is not limited to movement, power state, and/or any other function, activity, or task for which the robot 103 is configured. In one embodiment, stopping of the operational function can include performed a predetermined set of actions or motions. For example, a network-controlled device such as a drone can be programmed to return to a designated location (e.g., home-base or other safe landing location) when the heartbeat signal is stopped by engagement of the stop switch 113 of the emergency- stop device 101.
[0079] In one embodiment, the robot 103 can be configured with one or more actuators (e.g., mechanical components) that interact with an environment in a way that it can cause harm (e.g., to the robot 103, to object/things/people/etc. in the environment, etc.). The operational function that is stopped on engagement of the stop switch 101 can then relate to the actuators, mechanical components, etc. In another embodiment, the operational function or interaction can include any process or means performed by the robot 103 that is deemed or otherwise classified as a dangerous process. It is contemplated that the system 100 can use any means or classification system to classify a process as dangerous (e.g., manual classification, machine-learning based classification, etc.). In this case, the operational function that is stopped on engagement of the stop switch 101 can then relate to the processes/means classified as dangerous (e.g., nuclear reaction, chemical process, temperature, exhaust emissions, etc.).
[0080] FIGs. 8A and 8B are diagrams of example implementations of emergency- stop switch devices, according to one embodiment. FIG. 8A illustrates an example of a physical emergency- stop switch device 800. In this example, the emergency- stop switch device 800 is a physical switch device that includes a physical switch 801 that is engaged to stop the heartbeat signals being transmitted by the emergency- stop switch device 800. The emergency- stop switch device 800 can also be configured with an optional display 803 that indicates which robot 103 (e.g., Robot A) that the emergency- stop switch device 800 is associated can initiate a stop.
[0081] FIG. 8B illustrates an example of an emergency- stop switch device 820 that provides for a software-based stop switch 821. In this example, the emergency- stop switch device 820 is a mobile device (e.g., a smartphone) executing a stop-switch application to provide the software- based stop switch 821 in a user interface (UI) 823. The UI 823, for instance, can indicate which robots 103 (e.g., Robots A, B, and C) to which the emergency- stop switch device 820 applies. To initiate a termination of the heartbeat signals being transmitted by the emergency- stop switch device 820, the user can interact with the software stop switch 821 (e.g., an interactive UI element) to cause the emergency- stop switch application executing on the emergency- stop switch device 820 to stop transmitting the heartbeat signals. By way of example, the emergency- stop software application should be active and running (e.g., as either an active or background process) to continue transmitting the heartbeat signals. Closing or ending the application will be considered as a failure of the emergency- stop device 820 and also terminate the heartbeat signals to initiate stopping of the corresponding robots 103.
[0082] Returning to FIG. 1, in one embodiment and as previously described, the system 100 includes one or more emergency- stop devices 101 and robots 103 configured to listen for heartbeat signals for the devices 101. The emergency- stop devices 101 may be any type of mobile terminal, fixed terminal, or portable terminal including a mobile handset, station, unit, device, multimedia computer, multimedia tablet, Internet node, communicator, desktop computer, laptop computer, notebook computer, netbook computer, tablet computer, personal communication system (PCS) device, personal navigation device, personal digital assistants (PDAs), audio/video player, digital camera/camcorder, positioning device, television receiver, loud speakers, display monitors, radio broadcast receiver, electronic book device, game device, wrist watch, or any combination thereof, including the accessories and peripherals of these devices, or any combination thereof. It is also contemplated that the emergency- stop devices 101 can support any type of interface to the user (such as “wearable” circuitry, etc.) Further, the emergency- stop devices 101 may include various sensors for collecting data associated with a user, a user’s environment, and/or with a device 101, for example, the sensors may determine and/or capture audio, video, images, atmospheric conditions, device location, ambient lighting, device movement speed and direction, and the like. These sensors can be used to determine contextual data for determining when to handover the transmission of heartbeats signals to other emergency- stop devices 101. [0083] In one embodiment, the emergency- stop devices 101 can include a location module/sensor that can determine location data (e.g., a location of the device 101). The emergency- stop device 101 ’s location may be determined by a triangulation system such as a GPS, assisted GPS (A-GPS), Cell of Origin, wireless local area network triangulation, or other location extrapolation technologies. Standard GPS and A-GPS systems can use the one or more satellites to pinpoint the location (e.g., longitude, latitude, and altitude) of the emergency- stop device 101. A Cell of Origin system can be used to determine the cellular tower that a cellular- based emergency- stop device 101 is synchronized with. This information provides a coarse location of the emergency- stop device 101 because the cellular tower can have a unique cellular identifier (cell-ID) that can be geographically mapped. The location module/sensor may also utilize multiple technologies to detect the location of the robot 103. GPS coordinates can provide finer detail as to the location of the robot 103. In another embodiment, the emergency- stop device 101 may utilize a local area network (e.g., LAN, WLAN) connection to determine the emergency- stop device 101 location information, for example, from an Internet source (e.g., a service provider).
[0084] By way of example, the communication network 105 of system 100 includes one or more networks such as a data network, a wireless network, a telephony network, or any combination thereof. It is contemplated that the data network may be any local area network (LAN), metropolitan area network (MAN), wide area network (WAN), a public data network (e.g., the Internet), short range wireless network, or any other suitable packet-switched network, such as a commercially owned, proprietary packet-switched network, e.g., a proprietary cable or fiber-optic network, and the like, or any combination thereof. In addition, the wireless network may be, for example, a cellular network and may employ various technologies including enhanced data rates for global evolution (EDGE), general packet radio service (GPRS), global system for mobile communications (GSM), Internet protocol multimedia subsystem (IMS), universal mobile telecommunications system (UMTS), etc., as well as any other suitable wireless medium, e.g., worldwide interoperability for microwave access (WiMAX), Long Term Evolution (LTE) networks, 5G, code division multiple access (CDMA), wideband code division multiple access (WCDMA), wireless fidelity (WiFi), wireless LAN (WLAN), Bluetooth®, Internet Protocol (IP) data casting, satellite, mobile ad-hoc network (MANET), and the like, or any combination thereof.
[0085] In certain embodiments, the emergency- stop device 101, emergency- stop component of the robot 103, and/or components thereof are implemented as a collection of one or more hardware, software, algorithms, firmware, or combinations thereof. In various embodiments, the emergency- stop device 101 can be maintained on a network server, while operating in connection with the robots 103. By way of example, the emergency- stop devices 101, robots 103, controller platform 109, and/or other components of the system 100 may communicate with each other using well known, new or still developing protocols (e.g., a ROS protocol). In this context, a protocol includes a set of rules defining how the network nodes within the communication network 105 interact with each other based on information sent over the communication links. The protocols are effective at different layers of operation within each node, from generating and receiving physical signals of various types, to selecting a link for transferring those signals, to the format of information indicated by those signals, to identifying which software application executing on a computer system sends or receives the information. The conceptually different layers of protocols for exchanging information over a network are described in the Open Systems Interconnection (OSI) Reference Model.
[0086] Communications between the network nodes are typically effected by exchanging discrete packets of data. Each packet typically comprises (1) header information associated with a particular protocol, and (2) payload information that follows the header information and contains information that may be processed independently of that particular protocol. In some protocols, the packet includes (3) trailer information following the payload and indicating the end of the payload information. The header includes information such as the source of the packet, its destination, the length of the payload, and other properties used by the protocol. Often, the data in the payload for the particular protocol includes a header and payload for a different protocol associated with a different, higher layer of the OSI Reference Model. The header for a particular protocol typically indicates a type for the next protocol contained in its payload. The higher layer protocol is said to be encapsulated in the lower layer protocol. The headers included in a packet traversing multiple heterogeneous networks, such as the Internet, typically include a physical (layer 1) header, a data-link (layer 2) header, an internetwork (layer 3) header and a transport (layer 4) header, and various application (layer 5, layer 6 and layer 7) headers as defined by the OSI Reference Model.
[0087] In one embodiment, the emergency- stop devices 101 and robots 103 may interact according to a client-server model. It is noted that the client-server model of computer process interaction is widely known and used. According to the client-server model, a client process sends a message including a request to a server process, and the server process responds by providing a service. The server process may also return a message with a response to the client process. Often the client process and server process execute on different computer devices, called hosts, and communicate via a network using one or more protocols for network communications. The term “server” is conventionally used to refer to the process that provides the service, or the host computer on which the process operates. Similarly, the term “client” is conventionally used to refer to the process that makes the request, or the host computer on which the process operates. As used herein, the terms “client” and “server” refer to the processes, rather than the host computers, unless otherwise clear from the context. In addition, the process performed by a server can be broken up to run as multiple processes on multiple hosts (sometimes called tiers) for reasons that include reliability, scalability, and redundancy, among others. It is also noted that the role of a client and a server is not fixed; in some situations, a device may act both as a client and a server, which may be done simultaneously, and/or the device may alternate between these roles.
[0088] The processes described herein for providing an emergency- stop switch for a network-controlled robot or device may be advantageously implemented via software, hardware (e.g., general processor, Digital Signal Processing (DSP) chip, an Application Specific Integrated Circuit (ASIC), Field Programmable Gate Arrays (FPGAs), etc.), firmware or a combination thereof. Such exemplary hardware for performing the described functions is detailed below.
[0089] FIG. 9 illustrates a computer system 900 upon which an embodiment of the invention may be implemented. Computer system 900 is programmed (e.g., via computer program code or instructions) to provide an emergency- stop switch for a network-controlled robot or device as described herein and includes a communication mechanism such as a bus 910 for passing information between other internal and external components of the computer system 900. Information (also called data) is represented as a physical expression of a measurable phenomenon, typically electric voltages, but including, in other embodiments, such phenomena as magnetic, electromagnetic, pressure, chemical, biological, molecular, atomic, sub-atomic and quantum interactions. For example, north and south magnetic fields, or a zero and non-zero electric voltage, represent two states (0, 1) of a binary digit (bit). Other phenomena can represent digits of a higher base. A superposition of multiple simultaneous quantum states before measurement represents a quantum bit (qubit). A sequence of one or more digits constitutes digital data that is used to represent a number or code for a character. In some embodiments, information called analog data is represented by a near continuum of measurable values within a particular range.
[0090] A bus 910 includes one or more parallel conductors of information so that information is transferred quickly among devices coupled to the bus 910. One or more processors 902 for processing information are coupled with the bus 910.
[0091] A processor 902 performs a set of operations on information as specified by computer program code related to providing an emergency- stop switch for a network-controlled robot or device. The computer program code is a set of instructions or statements providing instructions for the operation of the processor and/or the computer system to perform specified functions. The code, for example, may be written in a computer programming language that is compiled into a native instruction set of the processor. The code may also be written directly using the native instruction set (e.g., machine language). The set of operations include bringing information in from the bus 910 and placing information on the bus 910. The set of operations also typically include comparing two or more units of information, shifting positions of units of information, and combining two or more units of information, such as by addition or multiplication or logical operations like OR, exclusive OR (XOR), and AND. Each operation of the set of operations that can be performed by the processor is represented to the processor by information called instructions, such as an operation code of one or more digits. A sequence of operations to be executed by the processor 902, such as a sequence of operation codes, constitute processor instructions, also called computer system instructions or, simply, computer instructions. Processors may be implemented as mechanical, electrical, magnetic, optical, chemical or quantum components, among others, alone or in combination. [0092] Computer system 900 also includes a memory 904 coupled to bus 910. The memory 904, such as a random access memory (RAM) or other dynamic storage device, stores information including processor instructions for providing an emergency- stop switch for a network-controlled robot or device. Dynamic memory allows information stored therein to be changed by the computer system 900. RAM allows a unit of information stored at a location called a memory address to be stored and retrieved independently of information at neighboring addresses. The memory 904 is also used by the processor 902 to store temporary values during execution of processor instructions. The computer system 900 also includes a read only memory (ROM) 906 or other static storage device coupled to the bus 910 for storing static information, including instructions, that is not changed by the computer system 900. Some memory is composed of volatile storage that loses the information stored thereon when power is lost. Also coupled to bus 910 is a non-volatile (persistent) storage device 908, such as a magnetic disk, optical disk or flash card, for storing information, including instructions, that persists even when the computer system 900 is turned off or otherwise loses power.
[0093] Information, including instructions for providing an emergency- stop switch for a network-controlled robot or device, is provided to the bus 910 for use by the processor from an external input device 912, such as a keyboard containing alphanumeric keys operated by a human user, or a sensor. A sensor detects conditions in its vicinity and transforms those detections into physical expression compatible with the measurable phenomenon used to represent information in computer system 900. Other external devices coupled to bus 910, used primarily for interacting with humans, include a display device 914, such as a cathode ray tube (CRT) or a liquid crystal display (LCD), or plasma screen or printer for presenting text or images, and a pointing device 916, such as a mouse or a trackball or cursor direction keys, or motion sensor, for controlling a position of a small cursor image presented on the display 914 and issuing commands associated with graphical elements presented on the display 914. In some embodiments, for example, in embodiments in which the computer system 900 performs all functions automatically without human input, one or more of external input device 912, display device 914 and pointing device 916 is omitted.
[0094] In the illustrated embodiment, special purpose hardware, such as an application specific integrated circuit (ASIC) 920, is coupled to bus 910. The special purpose hardware is configured to perform operations not performed by processor 902 quickly enough for special purposes. Examples of application specific ICs include graphics accelerator cards for generating images for display 914, cryptographic boards for encrypting and decrypting messages sent over a network, speech recognition, and interfaces to special external devices, such as robotic arms and medical scanning equipment that repeatedly perform some complex sequence of operations that are more efficiently implemented in hardware.
[0095] Computer system 900 also includes one or more instances of a communications interface 970 coupled to bus 910. Communication interface 970 provides a one-way or two- way communication coupling to a variety of external devices that operate with their own processors, such as printers, scanners and external disks. In general the coupling is with a network link 978 that is connected to a local network 980 to which a variety of external devices with their own processors are connected. For example, communication interface 970 may be a parallel port or a serial port or a universal serial bus (USB) port on a personal computer. In some embodiments, communications interface 970 is an integrated services digital network (ISDN) card or a digital subscriber line (DSL) card or a telephone modem that provides an information communication connection to a corresponding type of telephone line. In some embodiments, a communication interface 970 is a cable modem that converts signals on bus 910 into signals for a communication connection over a coaxial cable or into optical signals for a communication connection over a fiber optic cable. As another example, communications interface 970 may be a local area network (LAN) card to provide a data communication connection to a compatible LAN, such as Ethernet. Wireless links may also be implemented. For wireless links, the communications interface 970 sends or receives or both sends and receives electrical, acoustic or electromagnetic signals, including infrared and optical signals, that carry information streams, such as digital data. For example, in wireless handheld devices, such as mobile telephones like cell phones, the communications interface 970 includes a radio band electromagnetic transmitter and receiver called a radio transceiver. In certain embodiments, the communications interface 970 enables connection to the communication network 105 for providing an emergency- stop switch for a network-controlled robot or device.
[0096] The term computer-readable medium is used herein to refer to any medium that participates in providing information to processor 902, including instructions for execution. Such a medium may take many forms, including, but not limited to, non-volatile media, volatile media and transmission media. Non-volatile media include, for example, optical or magnetic disks, such as storage device 908. Volatile media include, for example, dynamic memory 904. Transmission media include, for example, coaxial cables, copper wire, fiber optic cables, and carrier waves that travel through space without wires or cables, such as acoustic waves and electromagnetic waves, including radio, optical and infrared waves. Signals include man-made transient variations in amplitude, frequency, phase, polarization or other physical properties transmitted through the transmission media. Common forms of computer-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, any other magnetic medium, a CD-ROM, CDRW, DVD, any other optical medium, punch cards, paper tape, optical mark sheets, any other physical medium with patterns of holes or other optically recognizable indicia, a RAM, a PROM, an EPROM, a FLASH-EPROM, any other memory chip or cartridge, a carrier wave, or any other medium from which a computer can read.
[0097] FIG. 10 illustrates a chip set 1000 upon which an embodiment of the invention may be implemented. Chip set 1000 is programmed to provide an emergency- stop switch for a network-controlled robot or device as described herein and includes, for instance, the processor and memory components described with respect to FIG. 9 incorporated in one or more physical packages (e.g., chips). By way of example, a physical package includes an arrangement of one or more materials, components, and/or wires on a structural assembly (e.g., a baseboard) to provide one or more characteristics such as physical strength, conservation of size, and/or limitation of electrical interaction. It is contemplated that in certain embodiments the chip set can be implemented in a single chip.
[0098] In one embodiment, the chip set 1000 includes a communication mechanism such as a bus 1001 for passing information among the components of the chip set 1000. A processor 1003 has connectivity to the bus 1001 to execute instructions and process information stored in, for example, a memory 1005. The processor 1003 may include one or more processing cores with each core configured to perform independently. A multi-core processor enables multiprocessing within a single physical package. Examples of a multi-core processor include two, four, eight, or greater numbers of processing cores. Alternatively or in addition, the processor 1003 may include one or more microprocessors configured in tandem via the bus 1001 to enable independent execution of instructions, pipelining, and multithreading. The processor 1003 may also be accompanied with one or more specialized components to perform certain processing functions and tasks such as one or more digital signal processors (DSP) 1007, or one or more application-specific integrated circuits (ASIC) 1009. A DSP 1007 typically is configured to process real-world signals (e.g., sound) in real time independently of the processor 1003. Similarly, an ASIC 1009 can be configured to performed specialized functions not easily performed by a general purposed processor. Other specialized components to aid in performing the inventive functions described herein include one or more field programmable gate arrays (FPGA) (not shown), one or more controllers (not shown), or one or more other special-purpose computer chips.
[0099] The processor 1003 and accompanying components have connectivity to the memory 1005 via the bus 1001. The memory 1005 includes both dynamic memory (e.g., RAM, magnetic disk, writable optical disk, etc.) and static memory (e.g., ROM, CD-ROM, etc.) for storing executable instructions that when executed perform the inventive steps described herein to provide an emergency- stop switch for a network-controlled robot or device. The memory 1005 also stores the data associated with or generated by the execution of the inventive steps.
[0100] FIG. 11 is a diagram of exemplary components of a mobile terminal (e.g., an emergency- stop device 101 or emergency- stop component of the robot 103/network-controlled device) capable of operating in the system of FIG. 1, according to one embodiment. Generally, a radio receiver is often defined in terms of front-end and back-end characteristics. The front-end of the receiver encompasses all of the Radio Frequency (RF) circuitry whereas the back-end encompasses all of the base-band processing circuitry. Pertinent internal components of the telephone include a Main Control Unit (MCU) 1103, a Digital Signal Processor (DSP) 1105, and a receiver/transmitter unit including a microphone gain control unit and a speaker gain control unit. A main display unit 1107 provides a display to the user in support of various applications and mobile station functions that offer automatic contact matching. An audio function circuitry 1109 includes a microphone 1111 and microphone amplifier that amplifies the speech signal output from the microphone 1111. The amplified speech signal output from the microphone 1111 is fed to a coder/decoder (CODEC) 1113. [0101] A radio section 1115 amplifies power and converts frequency in order to communicate with a base station, which is included in a mobile communication system, via antenna 1117. The power amplifier (PA) 1119 and the transmitter/modulation circuitry are operationally responsive to the MCU 1103, with an output from the PA 1119 coupled to the duplexer 1121 or circulator or antenna switch, as known in the art. The PA 1119 also couples to a battery interface and power control unit 1120.
[0102] In use, a user of mobile station 1101 speaks into the microphone 1111 and his or her voice along with any detected background noise is converted into an analog voltage. The analog voltage is then converted into a digital signal through the Analog to Digital Converter (ADC) 1123. The control unit 1103 routes the digital signal into the DSP 1105 for processing therein, such as speech encoding, channel encoding, encrypting, and interleaving. In one embodiment, the processed voice signals are encoded, by units not separately shown, using a cellular transmission protocol such as global evolution (EDGE), general packet radio service (GPRS), global system for mobile communications (GSM), Internet protocol multimedia subsystem (IMS), universal mobile telecommunications system (UMTS), etc., as well as any other suitable wireless medium, e.g., microwave access (WiMAX), Long Term Evolution (LTE) networks, code division multiple access (CDMA), wireless fidelity (WiFi), satellite, and the like.
[0103] The encoded signals are then routed to an equalizer 1125 for compensation of any frequency-dependent impairments that occur during transmission though the air such as phase and amplitude distortion. After equalizing the bit stream, the modulator 1127 combines the signal with a RF signal generated in the RF interface 1129. The modulator 1127 generates a sine wave by way of frequency or phase modulation. In order to prepare the signal for transmission, an up-converter 1131 combines the sine wave output from the modulator 1127 with another sine wave generated by a synthesizer 1133 to achieve the desired frequency of transmission. The signal is then sent through a PA 1119 to increase the signal to an appropriate power level. In practical systems, the PA 1119 acts as a variable gain amplifier whose gain is controlled by the DSP 1105 from information received from a network base station. The signal is then filtered within the duplexer 1121 and optionally sent to an antenna coupler 1135 to match impedances to provide maximum power transfer. Finally, the signal is transmitted via antenna 1117 to a local base station. An automatic gain control (AGC) can be supplied to control the gain of the final stages of the receiver. The signals may be forwarded from there to a remote telephone which may be another cellular telephone, other mobile phone or a land-line connected to a Public Switched Telephone Network (PSTN), or other telephony networks.
[0104] Voice signals transmitted to the mobile station 1101 are received via antenna 1117 and immediately amplified by a low noise amplifier (LNA) 1137. A down-converter 1139 lowers the carrier frequency while the demodulator 1141 strips away the RF leaving only a digital bit stream. The signal then goes through the equalizer 1125 and is processed by the DSP 1105. A Digital to Analog Converter (DAC) 1143 converts the signal and the resulting output is transmitted to the user through the speaker 1145, all under control of a Main Control Unit (MCU) 1103-which can be implemented as a Central Processing Unit (CPU) (not shown).
[0105] The MCU 1103 receives various signals including input signals from the keyboard 1147. The keyboard 1147 and/or the MCU 1103 in combination with other user input components (e.g., the microphone 1111) comprise a user interface circuitry for managing user input. The MCU 1103 runs a user interface software to facilitate user control of at least some functions of the mobile station 1101 to provide an emergency- stop switch for a network- controlled robot or device. The MCU 1103 also delivers a display command and a switch command to the display 1107 and to the speech output switching controller, respectively. Further, the MCU 1103 exchanges information with the DSP 1105 and can access an optionally incorporated SIM card 1149 and a memory 1151. In addition, the MCU 1103 executes various control functions required of the station. The DSP 1105 may, depending upon the implementation, perform any of a variety of conventional digital processing functions on the voice signals. Additionally, DSP 1105 determines the background noise level of the local environment from the signals detected by microphone 1111 and sets the gain of microphone 1111 to a level selected to compensate for the natural tendency of the user of the mobile station 1101.
[0106] The CODEC 1113 includes the ADC 1123 and DAC 1143. The memory 1151 stores various data including call incoming tone data and is capable of storing other data including music data received via, e.g., the global Internet. The software module could reside in RAM memory, flash memory, registers, or any other form of writable computer-readable storage medium known in the art including non-transitory computer-readable storage medium. For example, the memory device 1151 may be, but not limited to, a single memory, CD, DVD, ROM, RAM, EEPROM, optical storage, or any other non-volatile or non-transitory storage medium capable of storing digital data.
[0107] An optionally incorporated SIM card 1149 carries, for instance, important information, such as the cellular phone number, the carrier supplying service, subscription details, and security information. The SIM card 1149 serves primarily to identify the mobile station 1101 on a radio network. The card 1149 also contains a memory for storing a personal telephone number registry, text messages, and user specific mobile station settings.
[0108] While the invention has been described in connection with a number of embodiments and implementations, the invention is not so limited but covers various obvious modifications and equivalent arrangements, which fall within the purview of the appended claims. Although features of the invention are expressed in certain combinations among the claims, it is contemplated that these features can be arranged in any combination and order.

Claims

CLAIMS WHAT IS CLAIMED IS:
1. An apparatus comprising: at least one processor; and at least one memory including computer program code for one or more programs, the at least one memory and the computer program code configured to, with the at least one processor, cause the apparatus to perform at least the following, cause, at least in part, a transmission of a heartbeat signal, wherein the heartbeat signal is directed to at least one device; determine an input at the apparatus for requesting a stopping of at least one operational function of the at least one device; in response to the input, cause, at least in part, a termination of the transmission of the heartbeat signal; and cause the at least one device to initiate the stopping of the at least one operational function based on detecting the termination of the transmission of the heartbeat signal.
2. The apparatus of claim 1, wherein the apparatus is a separate device from at least one control device that operates the at least one device.
3. The apparatus according to any of claims 1 and 2, wherein the heartbeat signal includes content specifying an identification of the apparatus.
4. The apparatus according to any of claims claim 1-3, wherein the transmission is sent directly to the at least one device, is forwarded to the at least one device by a control device, or a combination thereof.
5. The apparatus according to any of claims 1-4, wherein the at least one device monitors for the heartbeat signal in addition to at least one other heartbeat signal, and wherein a termination of any of the heartbeat signal and the at least one other heartbeat signal causes the stopping of the at least one operational function.
6. The apparatus according to any of claims 1-5, wherein the transmission of the heartbeat signal is performed via a publish-subscribe mechanism.
7. The apparatus according to any of claims 1-6, wherein the at least one device is caused to initiate a handover of a monitoring of the heartbeat signal transmitted from the apparatus to a monitoring of another heartbeat signal transmitted from another apparatus based on a location of the at least one device, the apparatus, the another apparatus, or a combination thereof.
8. The apparatus according to any of claims 1-7, wherein the at least one device is caused to initiate a handover of a monitoring of the heartbeat signal transmitted from the apparatus to a monitoring of another heartbeat signal transmitted from another apparatus based on a network availability status of the at least one device, the apparatus, the another apparatus, or a combination thereof.
9. The apparatus according to any of claims 1-8, wherein the apparatus includes at least one display for identifying the at least one device to which the apparatus is associated.
10. The apparatus according to any of claims 1-9, wherein the input is provided using a physical switch, a software switch, or a combination thereof of the apparatus.
11. The apparatus according to any of claims 1-10, wherein the input causes, at least in part, a cut-off of a power supply to a transmission circuitry of the apparatus to cause the termination of the transmission of the heartbeat signal, an instruction to the transmission circuitry to cause the termination of the transmission of the heartbeat signal, or a combination thereof.
12. The apparatus according to any of claims 1-11, wherein the at least one device includes an autonomously operated device, a remotely operated device, or a combination thereof.
13. A method comprising: causing, at least in part, a transmission of a heartbeat signal by an apparatus, wherein the heartbeat signal is directed to at least one device; determining an input at the apparatus for requesting a stopping of at least one operational function of the at least one device; and in response to the input, causing, at least in part, a termination of the transmission of the heartbeat signal; and cause the at least one device to initiate the stopping of the at least one operational function based on detecting the termination of the transmission of the heartbeat signal.
14. The method of claim 13, wherein the apparatus is a separate device from at least one control device that operates the at least one device.
15. The method according to any of claims 13 and 14, wherein the heartbeat signal includes content specifying an identification of the apparatus.
16. The method according to any of claims 13-15, wherein the transmission is sent directly to the at least one device, is forwarded to the at least one device by a control device, or a combination thereof.
17. The method according to any of claims 13-16, wherein the at least one device monitors for the heartbeat signal in addition to at least one other heartbeat signal, and wherein a termination of any of the heartbeat signal and the at least one other heartbeat signal causes the stopping of the at least one operational function.
18. The method according to any of claims 13-17, wherein the transmission of the heartbeat signal is performed via a publish-subscribe mechanism.
19. The method according to any of claims 13-18, further comprising: initiating a handover of a monitoring of the heartbeat signal transmitted from the apparatus to a monitoring of another heartbeat signal transmitted from another apparatus based on a location of the at least one device, the apparatus, the another apparatus, or a combination thereof.
20. The method according to any of claims 13-19, further comprising: initiating a handover of a monitoring of the heartbeat signal transmitted from the apparatus to a monitoring of another heartbeat signal transmitted from another apparatus based on a network availability status of the at least one device, the apparatus, the another apparatus, or a combination thereof.
21. The method according to any of claims 13-20, wherein the apparatus includes at least one display for identifying the at least one device to which the apparatus is associated.
22. The method according to any of claims 13-21, wherein the input is provided using a physical switch, a software switch, or a combination thereof of the apparatus.
23. The method according to any of claims 13-22, wherein the input causes, at least in part, a cut-off of a power supply to a transmission circuitry of the apparatus to cause the termination of the transmission of the heartbeat signal, an instruction to the transmission circuitry to cause the termination of the transmission of the heartbeat signal, or a combination thereof.
24. The method according to any of claims 13-23, wherein the at least one device includes an autonomously operated device, a remotely operated device, or a combination thereof.
25. A computer-readable storage medium carrying one or more sequences of one or more instructions which, when executed by one or more processors, cause an apparatus to perform a method of any of claims 13-24.
26. An apparatus comprising means for performing at least a method of any of claims 13- 24.
27. An apparatus of claim 26, wherein the apparatus is a mobile device further comprising: user interface circuitry and user interface software configured to facilitate user control of at least some functions of the mobile device through use of a display and configured to respond to user input; and a display and display circuitry configured to display at least a portion of a user interface of the mobile device, the display and display circuitry configured to facilitate user control of at least some functions of the mobile phone.
28. A computer program product including one or more sequences of one or more instructions which, when executed by one or more processors, cause an apparatus to at least perform the steps of at least a method of any of claims 13-24.
29. A method comprising facilitating access to at least one interface configured to allow access to at least one service, the at least one service configured to perform at least a method of any of claims 13-24.
30. A method comprising facilitating a processing of and/or processing (1) data and/or (2) information and/or (3) at least one signal, the (1) data and/or (2) information and/or (3) at least one signal based, at least in part, on at least a method of any of claims 13-24.
31. An apparatus comprising: at least one processor; and at least one memory including computer program code for one or more programs, the at least one memory and the computer program code configured to, with the at least one processor, cause the apparatus to perform at least the following, cause, at least in part, a monitoring of at least one transmission of at least one heartbeat signal, wherein the heartbeat signal is received from at least one emergency- stop device; determine that the at least one transmission of the at least one heartbeat signal has terminated, wherein a termination of the at least one transmission is initiated by an input received at the at least one emergency- stop device; and cause, at least in part, a stopping of at least one operational function based on the determination.
32. The apparatus of claim 31, wherein the apparatus further comprises at least one mechanical component, and wherein the at least one operational function is associated with the at least one mechanical component.
33. The apparatus according to any of claims 31 and 32, wherein the apparatus further comprises at least one process that is classified as a dangerous process, and wherein the at least one operational function is associated with the at least one process.
34. The apparatus according to any of claims 31-33, wherein the monitoring of the at least one transmission of the at least one heartbeat signal is performed using a publish-subscribe mechanism.
35. The apparatus according to any of claims 31-34, wherein a monitoring of the at least one transmission of the at least one heartbeat signal by the apparatus is handed over among a plurality of emergency- stop devices based on a location of the apparatus, a location of the at least one emergency- stop device, or a combination thereof.
36. A method comprising: cause, at least in part, a monitoring of at least one transmission of at least one heartbeat signal, wherein the heartbeat signal is received from at least one emergency- stop device; determine that the at least one transmission of the at least one heartbeat signal has terminated, wherein a termination of the at least one transmission is initiated by an input received at the at least one emergency- stop device; and cause, at least in part, a stopping of at least one operational function based on the determination.
37. The method of claim 36, wherein the apparatus further comprises at least one mechanical component, and wherein the at least one operational function is associated with the at least one mechanical component.
38. The method according to any of claims 36 and 37, wherein the apparatus further comprises at least one process that is classified as a dangerous process, and wherein the at least one operational function is associated with the at least one process.
39. The method according to any of claims 36-38, wherein the monitoring of the at least one transmission of the at least one heartbeat signal is performed using a publish-subscribe mechanism.
40. The method according to any of claims 36-39, wherein a monitoring of the at least one transmission of the at least one heartbeat signal by the apparatus is handed over among a plurality of emergency- stop devices based on a location of the apparatus, a location of the at least one emergency- stop device, or a combination thereof.
41. A computer-readable storage medium carrying one or more sequences of one or more instructions which, when executed by one or more processors, cause an apparatus to perform a method of any of claims 36-40.
42. An apparatus comprising means for performing at least a method of any of claims 36-
40.
43. An apparatus of claim 42, wherein the apparatus is a mobile device further comprising: user interface circuitry and user interface software configured to facilitate user control of at least some functions of the mobile device through use of a display and configured to respond to user input; and a display and display circuitry configured to display at least a portion of a user interface of the mobile device, the display and display circuitry configured to facilitate user control of at least some functions of the mobile phone.
44. A computer program product including one or more sequences of one or more instructions which, when executed by one or more processors, cause an apparatus to at least perform the steps of at least a method of any of claims 36-40.
45. A method comprising facilitating access to at least one interface configured to allow access to at least one service, the at least one service configured to perform at least a method of any of claims 36-40.
46. A method comprising facilitating a processing of and/or processing (1) data and/or (2) information and/or (3) at least one signal, the (1) data and/or (2) information and/or (3) at least one signal based, at least in part, on at least a method of any of claims 36-40.
47. A system comprising: a stop device configured to: cause, at least in part, a transmission of a heartbeat signal, wherein the heartbeat signal is directed to at least one device; determine an input at the apparatus for requesting a stopping of at least one operational function of the at least one device; and in response to the input, cause, at least in part, a termination of the transmission of the heartbeat signal; and a robot configured to initiate the stopping of the at least one operational function based on detecting the termination of the transmission of the heartbeat signal.
48. The system of claim 47, wherein the stop device is a separate device from at least one control device that operates the robot.
49. The system according to any of claims 47 and 48, wherein the heartbeat signal includes content specifying an identification of the stop device.
50. The system according to any of claims claim 47-49, wherein the transmission is sent directly to the robot, is forwarded to the robot by a control device, or a combination thereof.
51. The system according to any of claims 47-50, wherein the robot monitors for the heartbeat signal in addition to at least one other heartbeat signal, and wherein a termination of any of the heartbeat signal and the at least one other heartbeat signal causes the stopping of the at least one operational function.
52. The system according to any of claims 47-51, wherein the transmission of the heartbeat signal is performed via a publish-subscribe mechanism.
53. The system according to any of claims 47-52, wherein the robot is further configured to: initiate a handover of a monitoring of the transmission of the heartbeat signal from the stop device to a monitoring of another heartbeat signal transmitted from another stop device based on a location of the robot, the stop device, the another stop device, or a combination thereof.
54. The system according to any of claims 47-53, wherein the stop device is further configured to: initiate a handover of a monitoring of the transmission of the heartbeat signal from the stop device to a monitoring of another heartbeat signal transmitted from another stop device based on a network availability status of the robot, the stop device, the another stop device or a combination thereof.
55. The system according to any of claims 47-54, wherein the stop device includes at least one display for identifying the robot to which the stop device is associated.
56. The system according to any of claims 47-55, wherein the input is provided using a physical switch, a software switch, or a combination thereof of the stop device.
57. The system according to any of claims 47-56, wherein the input causes, at least in part, a cut-off of a power supply to a transmission circuitry of the stop to cause the termination of the transmission of the heartbeat signal, an instruction to the transmission circuitry to cause the termination of the transmission of the heartbeat signal, or a combination thereof.
58. The system according to any of claims 47-57, wherein the robot is autonomously operated, remotely operated, or a combination thereof.
PCT/IB2019/000912 2019-08-09 2019-08-09 Apparatus and method for providing an emergency-stop switch for a network-controlled robot WO2021028709A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/IB2019/000912 WO2021028709A1 (en) 2019-08-09 2019-08-09 Apparatus and method for providing an emergency-stop switch for a network-controlled robot

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/IB2019/000912 WO2021028709A1 (en) 2019-08-09 2019-08-09 Apparatus and method for providing an emergency-stop switch for a network-controlled robot

Publications (1)

Publication Number Publication Date
WO2021028709A1 true WO2021028709A1 (en) 2021-02-18

Family

ID=74569777

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/IB2019/000912 WO2021028709A1 (en) 2019-08-09 2019-08-09 Apparatus and method for providing an emergency-stop switch for a network-controlled robot

Country Status (1)

Country Link
WO (1) WO2021028709A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116684457A (en) * 2023-08-03 2023-09-01 佛山智能装备技术研究院 Man-machine interaction equipment interface of industrial controller
WO2023170167A1 (en) * 2022-03-08 2023-09-14 Ocado Innovation Limited Control system
WO2024076234A1 (en) * 2022-10-04 2024-04-11 Optiver Ip B.V. Electrical killswitch

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002078913A1 (en) * 2001-04-02 2002-10-10 Abb Ab An industrial robot
EP1782928A1 (en) * 2005-11-08 2007-05-09 Asea Brown Boveri Ab An industrial robot system with more than one TPU
US20150197010A1 (en) * 2014-01-14 2015-07-16 Qualcomm Incorporated Connectivity maintenance using a quality of service-based robot path planning algorithm
US20190105768A1 (en) * 2017-10-10 2019-04-11 Iunu, Inc. Intelligent track and navigation for sensor carrier
US20190132769A1 (en) * 2017-10-26 2019-05-02 Amazon Technologies, Inc. Wireless control of tightly spaced machines

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002078913A1 (en) * 2001-04-02 2002-10-10 Abb Ab An industrial robot
EP1782928A1 (en) * 2005-11-08 2007-05-09 Asea Brown Boveri Ab An industrial robot system with more than one TPU
US20150197010A1 (en) * 2014-01-14 2015-07-16 Qualcomm Incorporated Connectivity maintenance using a quality of service-based robot path planning algorithm
US20190105768A1 (en) * 2017-10-10 2019-04-11 Iunu, Inc. Intelligent track and navigation for sensor carrier
US20190132769A1 (en) * 2017-10-26 2019-05-02 Amazon Technologies, Inc. Wireless control of tightly spaced machines

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023170167A1 (en) * 2022-03-08 2023-09-14 Ocado Innovation Limited Control system
WO2024076234A1 (en) * 2022-10-04 2024-04-11 Optiver Ip B.V. Electrical killswitch
CN116684457A (en) * 2023-08-03 2023-09-01 佛山智能装备技术研究院 Man-machine interaction equipment interface of industrial controller
CN116684457B (en) * 2023-08-03 2023-09-29 佛山智能装备技术研究院 Man-machine interaction equipment interface of industrial controller

Similar Documents

Publication Publication Date Title
WO2021028709A1 (en) Apparatus and method for providing an emergency-stop switch for a network-controlled robot
US11228640B2 (en) Cross device application discovery and control
US11128521B2 (en) Group communication device bypass connectivity
Nunna et al. Enabling real-time context-aware collaboration through 5G and mobile edge computing
EP3055979B1 (en) Method and apparatus for providing coordinated operation of multiple mobile communication devices
US9572184B1 (en) Portable devices paired to share wireless connectivity
KR20170087385A (en) Remote control apparatus and system for a mobile robot, and method thereof
KR20130016317A (en) Enhanced public safety communication system
KR20140031283A (en) Transferring application state across devices
US11233848B2 (en) Device to device grouping of personal communication nodes
CN106605213B (en) System for supporting with intermittent connectivity, corresponding local device and corresponding cloud computing platform
JP2022528885A (en) Methods and Devices for Cellular Internet of Things (CIOT) Data Transfer on Control Planes in Wireless Communities
WO2023284417A1 (en) Method, apparatus and system for network connection, and server and medium
US9854621B2 (en) Wireless connection switching method, wireless terminal, and system thereof
WO2014128755A1 (en) Communication system
EP2978160A1 (en) Method and apparatus for providing an anonymous communication session
CN111770009B (en) Data transmission method and related equipment
EP3225072B1 (en) Virtual sensor apparatus and method
EP2904507A1 (en) Method and apparatus for providing mashup service of component services
EP2863617B1 (en) Cloud attendant processing method, device and system
CN112770410B (en) Connection failure processing method, terminal and network equipment
JP2018097805A (en) Attack notification system and attack notification method
KR20150090552A (en) Method, terminal and computer-readable recording medium for managing emergency situation
CN117812756A (en) Connection method, device, equipment, vehicle and medium of projection equipment
Yue et al. P2P File Transfer System Based on NFC

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19941305

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19941305

Country of ref document: EP

Kind code of ref document: A1