Patent Publication Number: US-9889559-B2

Title: Robotic system for updating devices

Description:
FIELD 
     The present disclosure relates to a robotic system for updating devices. 
     BACKGROUND 
     As it is expected that the number of connected Internet of Things (IoT) devices will grow, the cost and efficacy considerations are likely going to dictate that many embedded devices will never have permanent connectivity—often because they have to run on a battery or other limited energy source (e.g. solar, wind, water flow, etc.). These devices may contain critical bugs, they can be compromised, etc., and it is therefore important that they receive firmware/software updates. For unconnected embedded devices (like toasters, plant watering devices, valves, locks, etc.) or those designed to only provide one-way upstream communications (like weather records, various meters/sensors, etc.) the problem of updating may become critical. For example, a battery-operated lock may have a security problem which may be fixed via a firmware update. Or a robotic vacuum may get a software update to improve the cleaning algorithms and prolong per-charge cleaning cycles. Or an electric meter may use outdated cryptography functions which must be refreshed to maintain confidentiality. 
     Many modern system-on-chip (SoC) designs (for example, SoC suppliers like Samsung (http://www.samsung.com/global/business/semiconductor/news-events/press-releases/detail?newsId=13741), Texas Instruments (http://www.ti.com/product/trf7970A), etc.) contain a CPU with a flash storage updateable via near-field communications (NFC). However, delivering updates to a multitude of such home or industrial IoT devices is problematic, even if NFC allows updating without physically disassembling the device. The problems lay in finding all devices (can be dozens in a home environment and up to thousands in a factory or millions in a city) that require updating and then fetching and applying correct updates. With a growing number of unconnected devices a scalable automated updating solution will be required. There are no known solutions for this problem—unconnected devices generally stay un-updated (with the assumption that their factory testing is adequate for indefinite use and so the algorithms in firmware will stay permanently adequate). General (but incorrect) assumption is that unconnected devices are primitive and therefore fully testable at the factory, and are at low risk of attack and may be cheaply replaced—hence, there is no need to invest in updating them. These assumptions are not always correct, and there is growing understanding that most electronic devices may be required to be updatable (or have limited lifetime; which may be wasteful and inefficient). 
    
    
     
       BRIEF DESCRIPTION OF DRAWINGS 
       Features and advantages of the claimed subject matter will be apparent from the following detailed description of embodiments consistent therewith, which description should be considered with reference to the accompanying drawings, wherein: 
         FIG. 1  illustrates a robotic update system consistent with several embodiments of the present disclosure; 
         FIG. 2  illustrates a flowchart of operations of a robotic update system according to one embodiment of the present disclosure; 
         FIG. 3  illustrates a flowchart of operations of a robotic update system according to another embodiment of the present disclosure; 
         FIG. 4  illustrates a flowchart of operations of a robotic update system according to another embodiment of the present disclosure; and 
         FIG. 5  illustrates an example environment for a robotic update system consistent with at least one embodiment of the present disclosure. 
     
    
    
     Although the following Detailed Description will proceed with reference being made to illustrative embodiments, many alternatives, modifications, and variations thereof will be apparent to those skilled in the art. 
     DETAILED DESCRIPTION 
     The present disclosure relates to a mobile robot system for updating/servicing devices. In some examples described herein, a robot (e.g., ground based and/or flying robot) is configured to move close to a target device and interrogate the device to determine if the device needs updating, and if so, obtain appropriate update code, and communicate the update to the target device. The communication between the robot and the target device may be accomplished using near-field communication (NFC) techniques, remote communications techniques, direct coupling, etc. The target device may be a device that is not equipped with network communication abilities and/or may only be capable of one-way communication. In addition, the target devices may be physically moved (e.g., by a human or by machine), or they may have a built-in capability to move, so the exact location of each target device is not always known. The robot may be configured to generate a map of one or more target devices within an area of interest using, for example, GPS coordinates, {x,y} coordinates, {x,y,z} coordinates, etc. to enable the robot to periodically move to the one or more target devices for updating. In some examples, the robot may be configured to receive a map of an area of interest from a remote source. The robot system described herein may be deployed in a home environment to provide updating of target devices within and around the home. In addition, the robot system described herein may be configured for large-scale deployment in industrial areas (e.g., oil fields, warehouses, etc.), government installations (e.g., municipal water systems, electric grids, sewer installations, road grids, military/defense areas, etc.), etc. 
       FIG. 1  illustrates a robotic update system  100  consistent with several embodiments of the present disclosure. The system  100  includes a robot  102 , at least one target device  104 , and a base station  140 . The robot  102  is generally configured to move toward the target device  104  and provide an update to the target device  104 , as will be described in detail below. The target device  104  may include a system engine  126  that, at least in some embodiments described herein, is capable of being updated. “Update” and “update data”, as used herein, may be generally defined as one or more instructions that a target device  104  may utilize, for example, to improve the overall functionality of the target device  104  and/or to bring the target device  104  (or a portion thereof) up-to-date. Such an update may include, for example, software/firmware instructions for security, functionality and/or performance enhancements for the target device  104 . In addition, in some embodiments an update may also include recharging of a power source (e.g., batteries, not shown) associated with the target device  104 . In the examples described herein, the target device  104  may be generally updatable, but may not have the ability to receive updates from conventional sources, e.g., via a WiFi/Internet connection. In other words, the target device  104  may be unconnected from conventional communications sources, and thus, does not have the inherent ability to receive an update. The target device  104  may include any type of electronic device, for example, a valve, lock, meter, sensor, etc., and of course, these are provided only as a small example of the types of target devices that may be utilized by the description herein, and the present disclosure is not intended to be limited to any particular type of target device  104 . 
     The target device may include a system engine  126  that may include, for example, one or more system-on-chip (SoC) devices that include flash memory  127  that is updatable using, for example, a near-field communication (NFC) protocol and/or other short-range, medium-range or long-range wireless communications protocol. The system engine  126 , during operation may emit electromagnetic signals (e.g., strobe signals, clock pulse signals, etc.) that may be sensed by the robot  102  to identify the system engine  126  as an updatable device, using for example, a NFC protocol. Such electromagnetic signals may be used to uniquely identify the type of target device, and may further be used to provide information as to how the target device  104  may be updated. In some embodiments, the target device  104  may emit a modulated visible, infrared or high-energy signal which carries information related to the type of system engine  126 . Such information may include, for example, device identification, manufacturer, model, serial number, service identifier, release time, etc. In some embodiments, the target device  104  may include a beacon circuitry  128  configured to generate a beacon signal to assist and/or enable the robot  102  to home in on the location of the target device  104 . The beacon signal generated by the beacon circuitry  128  may include identifier information and/or location information and in some embodiments, may include information as to the capabilities and/or status of the target device  102 . 
     The robot  102  may include a movement circuitry  134  to enable the robot  102  to move within a defined area. The movement circuitry  134  may include, for example, controller systems for propulsion systems (e.g., motor, gas/liquid/reactive propulsion, etc.), controller systems for one or more wheels/tracks (e.g., in the case of a ground-based robot) and/or one or more rotors/propellers (e.g., in the case of a flying robot (e.g., quad-copter drone, etc.)), and/or other systems and/or sub-systems to enable the robot  102  to move within a defined area. The robot  102  may also include a power source circuitry  136  to deliver energy to various systems and/or subsystems of the robot  102 , such as, for example, the movement circuitry  134  and/or other circuitry described herein. In some embodiments, the power source circuitry  136  may include one or more rechargeable energy sources like, for example, battery systems (which may include associated controller circuitry, etc.). 
     The robot  102  may also include a mapping circuitry  106  configured to host map data  108  of a defined area for the robot  102 . In some embodiments, the mapping circuitry may be configured to generate the map data  108  based on, for example, movement within a defined area. In other embodiments, the mapping circuitry  108  may be configured to receive the map data  106  from a remote and/or external source (such as from network  150  and/or base station  140 , described below). In some embodiments, the map data  108  may provide a general defined area within which the robot  102  will move within, and as one or more target devices  104  are discovered by the robot  102 , the mapping circuitry  106  is configured to augment the map data  108  with the location of the discovered one or more target devices  104 . Mapping circuitry  106  is also configured to generate movement instructions to the movement circuitry  134  to enable the robot  102  to move to a general and/or specified location. Depending on, for example, the specifications of the robot  102 , the mapping circuitry  106  may generate map data  108  in a two-dimensional format (e.g., using {x, y} coordinates) and/or a three-dimensional format (e.g., using {x, y, z} coordinates) and/or other coordinate system such as global positioning system (GPS) coordinates, etc. For example, the mapping circuitry  106  may provide instructions to the movement circuitry  134  to move within the defined area on a random basis or pseudo-random basis to enable the robot  102  to discover one or more target devices  104 , and/or to move to specified locations of known and/or previously-mapped target devices  104  within the defined area. In some embodiments the map data  108  may be received from the device  104 , while in other embodiments the mapping circuitry  106  may generate the map data  108  based on, for example, GPS data, route details, distance traveled from a base station, velocity, timing, direction of movements, etc. Once a target device  104  is discovered (described in more detail below), the mapping circuitry  106  may augment the map data  108  with the coordinates of the target device  104 , so that the robot  102  may be enabled to acquire a target device  104  more efficiently in the future. In addition, the mapping circuitry  106  may provide instructions to the movement circuitry  132  to move the robot to within a defined distance from a target device  104 , to enable, for example, discovery of and/or communication with the target device  104 . In some examples, one or more target devices  104  within a defined area may be programmed to move around within the defined area to, for example, one or more defined or pre-programmed locations. In such examples, the mapping circuitry  106  may also be configured, during successive discovery of a target device  104 , to track the movement of one or more target devices  104  and may also be configured to anticipate where a given target device  104  will be at a given time, based on, for example, movement pattern recognition, etc. In other embodiments, the map data  108  may be provided to the robot  102  (e.g., from a base station, remote network server, etc., as described below) that includes the location and/or coordinates and/or timing of one or more target devices  104  within a defined roaming area for the robot  102 . Map data  108  may also include information related to the update status of at least one device  104 . 
     The robot  102  may also include device discovery circuitry  114  configured to discover one or more target devices and to communicate with one or more target devices  104 . In one example embodiment, the device discovery circuitry  114  may include local communications circuitry  120  configured to discover at least one target device and communicate with at least one target device based on a short-range communication protocol. In some examples provided herein, the local communications circuitry  120  may include circuitry that complies or is compatible with a near-field communications (NFC) protocol, such as radio-frequency identifications (RFID) standards (e.g., ISO/IEC 14443, ISO/IEC 18092, ECMA-340, ISO/IEC 21481, ECMA-352, FeliCa, etc.) to enable the robot  102  to discover one or more target devices  104  and to communicate an update to one or more target devices  104 . In other embodiments, the local communication circuitry  120  may be configured to communicate with a target device  104  using other wireless communication techniques such as, infra-red link, optical link, sound waves, etc., and/or wired communication techniques such as an electrical/mechanical connection interface, etc. In some embodiments, to provide discovery of at least one target device  104 , the local communications circuitry  120  may be configured to sense the operation of at least a portion of the system engine  126  of the target device  104 . For example, as described above, the local communications circuitry  114  may be configured to sense electromagnetic signals emitted by the target device  104  to identify the location of the target device  104 , identify the type of target device  104 , etc. To that end, the local communications circuitry  120  may provide instructions to the mapping circuitry  106  to indicate that the local communications circuitry  120  has detected a target device  104 . In some examples, and depending on the range to the target device  104  and/or signal strength of the local communications circuitry  120 , once a target device  104  is potentially identified, the mapping circuitry  106  may provide instructions to the movement circuitry  134  to move the robot  102  closer to the target device  104  to allow, for example, the local communications circuitry  120  to “home in” on the target device and establish a stable communication link with the target device  104 . If the location of the target device  104  is not already known and mapped by the mapping circuitry  106 , the local communications circuitry  114  may instruct the mapping circuitry  106  to augment the map data  108  with the location of the discovered target device  104  to enable, for example, the robot  102  to move directly to discovered target device  104  in the future. 
     While the local communications circuitry  120  as described above may be adequate for discovering target devices in certain locations and having certain features, there may be instances where the local communications circuitry  120  is unable to properly discover a target device  104  (if, for example, the target device is partially hidden, or is in an area with competing electronic noise, etc.). Therefore, in one embodiment, the device discovery circuitry  114  may include an RF detection system  122  configured to detect RF signals of at least one target device  104 . The RF detection system  122  may include an RF sensor (not shown) and related control circuitry (also not shown) to detect an RF signal that may be emitted by a target device  104 . To that end, as described above, the beacon circuitry  128  of the target device  104  may emit an RF signal that is sensed by the RF detection system  122  to identify the type and location of the target device  104 . In one embodiment, the RF emissions of the target device may allow the robot  102  to pinpoint its location via triangulation method in which multiple robots may cooperatively create a mesh and determine the location of the device  104  by measuring relative distances through signal strength or via propagation latencies. In another embodiment, the device discovery circuitry  114  may include an optical detection system  124  configured to detect at least one target device  104  based on optical information. The optical detection system  122  may include an optical sensor (e.g., camera, not shown) and related control circuitry (also not shown) to detect a target device  104  based on an image of the target device  104  and/or the surrounding environment of the target device  104 . The optical detection system  122  may also include a device recognition system (not shown) configured to parse image data and determine if a target device  104  is contained within an image based on, for example, device size, device shape, surrounding environment, etc. In another embodiment, the device discovery circuitry  114  may include an infrared (IR) detection system  134  configured to detect at least one target device  104  based on IR information. The IR detection system  134  may include an IR sensor (not shown) and related control circuitry (also not shown) to detect a target device  104  based on an IR signature of the target device  104  and/or the surrounding environment of the target device  104 . The device discovery circuitry  120  may also be configured to provide the mapping circuitry  106  with the location of any discovered target devices. In some embodiments the robot  102  may recognize the target device  104  by analyzing its visual image (e.g. size, color, labels, barcode, QR-code, etc.) captured via any suitable visual sensor or by recognizing the properties of the device  104  communications (e.g., spectrum, transmission packet appearance and content) as well as its environment (e.g. an electric meter device may be discoverable near electric wires). 
     The robot  102  may also include an update circuitry  112  configured to update one or more target devices  104  with update data  113 . The update circuitry  112  may store one or more updates for one or more target devices  104 . In operation, when the robot  102  is moved to within the communication range of the device discovery circuitry  114 , the update circuitry  112  may begin to communicate the update data  113  to the target device  104 . The update circuitry  112  may instruct the device discovery circuitry  120  to communicate with the target device  104  using a communications protocol that complies with the target device  104 . The update circuitry  112  may be configured to receive update data  113  from the network  150  and/or from the base station  140 , as described below. 
     The device discovery circuitry  114  may also be configured to determine if the at least one target device  104  is battery operated, and if so, if the energy source of the at least one target device  104  is rechargeable. If rechargeable, the update circuitry  112  may generate update data  113  that includes instructions for recharging the target device  104  by applying an energy transfer from the power source circuitry  138  to the target device  104  to recharge (at least in part) one or more energy sources (batteries, capacitors, etc.) of the target device  104 . To that end, the device discovery circuitry  114  may also include charging circuitry (not shown) to enable recharging of the target device  104 . The charging circuitry may include, for example, inductor-coupling wireless charging, physical connection charging, etc. The charging circuitry may include controller circuitry to control a specific type of energy source associated with the target device  104 . 
     The robot  102  may also include a network communications circuitry  116  configured to communicate with a network  150 . The network communications circuitry  116  and the network  150  may communicate with each other using a switched fabric communications protocol, for example, an Ethernet communications protocol. The Ethernet communications protocol may be capable of providing communication using a Transmission Control Protocol/Internet Protocol (TCP/IP). The Ethernet protocol may comply or be compatible with the Ethernet standard published by the Institute of Electrical and Electronics Engineers (IEEE) titled “IEEE 802.3 Standard”, published in March, 2002 and/or later versions of this standard, for example, the IEEE 802.3 Standard for Ethernet, published 2012. Of course, in other embodiments, the network communications circuitry  116  may communicate with network  150  using other network protocols which may include a custom and/or proprietary network communications protocol and/or other communication protocols (e.g. GSM, 3G, LTE, 4G, Bluetooth, NFC, etc.). The network  150  may include (or may be connected to) an update server  130  and/or a map server  132 . The update server  130  may include one or more updates for one or more target devices  104 . The map server  132  may include map data  108  (or portions thereof) for use by the mapping circuitry  106 . The map data  108  may include location information for one or more target devices  104  and/or a generalized area within which the robot  102  may roam. 
     The system  100  may also include a base station  140  that may generally be used as a docking point and/or launch point for the robot  102 . The base station  140  may include a robot interface circuitry  142  configured to interface with the robot  102  to enable, for example, exchange of commands and data with the robot  102 , battery charging, etc. The robot interface circuitry  142 , in some embodiments may include a wireless interface to communicate with the robot  102 . In other embodiments, the robot interface circuitry  142  may include physical and electrical connection points to electronically couple the base station  140  to the robot  102 . Similarly, the robot  102  may include a corresponding base station interface circuitry  110  to enable wireless and/or physical coupling between the robot  102  and the base station  140 . The base station  140  may also include a battery charging circuitry  144  to provide charging and recharging of the power source circuitry  136  of the robot  102 . The battery charging circuitry  144  may include, for example, inductive (wireless) based charging circuitry, or charging through a physical connection of the robot interface circuitry  142 . In one embodiment the robot  102  may be configured to charge/recharge the power source circuitry  136  from the environment via solar panel(s), wind, etc. The base station  140  may also include a network communication circuitry  146 , similar to network communication circuitry  116 , to enable the base station  140  to exchange commands and data with the network  150 . In operation, the base station  120  may provide map data  108  to the robot  102  that includes the location of the base station  140 . This may enable, for example, the robot  102  to roam within a defined area (as defined by map data  108 ) until the power source is close to being depleted, and the mapping circuitry  106  may then instruct the robot  102  to return to the base station  140  for recharging of the power source circuitry  136 . In one embodiment, the map circuitry  106  may include one or more rules to determine how far from the base station  140  the robot  102  is allowed to roam (depending on for example, the map data  108 , e.g., the density of the target devices  104  near the robot  102  and/or the most efficient or “best” route to undertake to visit the target devices  104 ) to allow safe return for recharging. In addition, while “docked” with the base station  140 , the base station  140  may load update data  113  into the robot. In addition, the base station  140  may be configured to download information from the robot  102 , such as information related to the identity and type of one or more discovered target devices  104 , update status of one more target devices  104 , power consumption for the robot  102  to complete or partially complete one or more target devices  104  within the defined roaming area, coordinate information related to one or more target devices  104  within the defined roaming area, coordinate with other robots (which may share the same base station  140  or operate from their own in any suitable manner) etc. In another embodiment the mobile robot  102  may be used to deliver energy to target devices  104 . Recharging devices  104  by the robot  102  may be accomplished via a wired connection or wirelessly. The map data  108  may carry meta-data about the target devices  104  specifying their battery capacity and/or expected/predicted level of charge. The map circuitry  108  may also include rules to plan a route to prioritize the devices  104  which need charging. 
       FIG. 2  illustrates a flowchart  200  of example operations of a robotic update system consistent with one embodiment of the present disclosure. In this embodiment, an update robot moves within a defined area to provide at least one update to a target device with a known location. With continued reference to  FIG. 1 , operations of this embodiment may include charging a robot at a base station  202 , and determining if the charge level is sufficient for roaming operations within a defined area  204 . Sufficiency of charge may be determined, for example, by power requirement data received from the update robot for previous trips within the defined area, anticipated power requirements for the number of target devices within a defined area, complete battery charge, etc. If charge level is insufficient, operations may include determining, for one or more known and mapped target devices if updates are available  206 , and/or determining if a map update is available  208  for one or more target devices. If the charge level is sufficient  204 , operations may include parsing map data to determine if there are coordinates for pre-defined and/or previously-mapped target devices  210 , and if so, at  212  operations may include providing the robot instructions to move to one or more pre-defined and/or previously mapped coordinates. In this example, movement of the robot may be in a plane for a ground-based robot and/or in three dimensions for a flying robot. Operations of this embodiment may also include attempting to discover the target device  214  to determine if the target device is available for an update, once the robot is within, for example, a predefined proximity to the target device. Discovery of a target device may be based on, for example, NFC communications between the robot and the target device and/or additional discovery techniques such as RF discovery, IR discovery, optical discovery, etc. Communication between the robot and the target device may include an NFC protocol and/or other short-range communication protocol. If the device is undiscoverable (e.g., off-line or otherwise unavailable) at the specified coordinates  214 , operations may include reporting a problem of a failed communication  216 . The robot may be configured to report the problem to the base station and/or to a server system in communication with the robot. A failed communication may mean that the target device is not operational or that the target device has moved. In either case, the map may be augmented to note the problem with the target device. If the device is available  214 , operations may include applying an update to the target device  218  by communicating the update to the target device. Once the update is complete, operations may also include determining if the target device is operational  220 , and if not, operations may also include reporting a problem with the target device  222 , similar to operation  216 . If the device is operational after the update  220 , operations may also include augmenting the map  224  to note that the target device has a current update applied. In this case, map augmentation may include, for example, a time/date stamp of when an update is applied to the target device, and/or version of the update applied to the target device, etc. Operations may further include repeating the operations  212 - 224  for additional, mapped target devices within the mapped area  226 . Operations may also include returning to the base station  228 , for example, when all of the mapped target devices have been visited and serviced, to recharge the batteries, etc. 
       FIG. 3  illustrates a flowchart  300  of example operations of a robotic update system consistent with another embodiment of the present disclosure. In this embodiment, an update robot moves randomly (and/or pseudo-randomly) within a defined area to discover at least one target device and to provide at least one update to at least one target device within the defined area. With continued reference to  FIG. 1 , operations of this embodiment may include charging a robot at a base station  302 , and determining if the charge level is sufficient for roaming operations within a defined area  304 . Sufficiency of charge may be determined, for example, by power requirement data received from the update robot for previous trips within the defined area, anticipated power requirements for the number of target devices within a defined area, complete battery charge, etc. The required charge level of the robot may also account for the need to recharge at least one target device. If charge level is insufficient, operations may include determining, for one or more known and mapped target devices if updates are available  306 , and/or determining if a map update is available  308  for one or more target devices. If the charge level is sufficient  304 , operations may include randomly moving within a pre-defined map area  310 . In this example, movement of the robot may be in a plane for a ground-based robot and/or in three dimensions for a flying robot. Operations of this embodiment may also include attempting to discover the target device  312  to determine if the target device is available for an update, once the robot is within, for example, a predefined proximity to the target device. Discovery of a target device may be based on, for example, NFC communications between the robot and the target device and/or additional discovery techniques such as RF discovery, IR discovery, optical discovery, etc. Discovery of a target device may yield device identification characteristics such as the type of updatable firmware, manufacturer information, battery state information, etc. Communication between the robot and the target device may include an NFC protocol and/or other short-range communication protocol. If no target device is discovered  312 , operations may include continuing random movement within the map area to attempt to discover a target device. If a target device is discovered  312 , operations may also include obtaining an update for the discovered target device  314 . To that end, the robot may be configured to communicate with an update server and/or with the base station to obtain an update for the discovered target device. If an update is found for the discovered target device, operations may also include applying the update to the target device  316  by communicating the update to the target device. Once the update is complete, operations may also include determining if the target device is operational  318 , and if not, operations may also include reporting a problem of a failed target device  320 . The robot may be configured to report the problem to the base station and/or to a server system in communication with the robot. If the target device is operational after the update  318 , operations may also include augmenting the map  322  to note that the location of the discovered target device and that the target device has a current update applied. In this case, map augmentation may include, for example, coordinates of the device, time/date stamp and/or version of the update, etc. Operations may further include repeating the operations  310 - 322  to discover additional target devices within the mapped area  324 . Operations may also include returning to the base station  326 , for example, upon complete investigation of the defined area (or subset thereof), to recharge the batteries, etc. 
       FIG. 4  illustrates a flowchart  400  of example operations of a robotic update system consistent with another embodiment of the present disclosure. This embodiment provides updating at least one target device in a defined area. With continued reference to  FIG. 1 , operations of this embodiment include moving a robot within a defined area  402 . Operations of this embodiment may also include discovering, by the robot, the at least one target device  404 . Operations may also include providing, by the robot, an update to the at least one target device  406 . Operations may also include augmenting map data of the defined area to include information associated with the location of the discovered target device and information associated with the update data communicated to the discovered target device  408 . 
     While  FIGS. 2-4  illustrate operations according to specific embodiments, it is to be understood that not all of the operations depicted in  FIGS. 2, 3 and/or 4  are necessary for other embodiments. Indeed, it is fully contemplated herein that in other embodiments of the present disclosure, the operations depicted in  FIGS. 2-4  and/or other operations described herein may be combined in a manner not specifically shown in any of the drawings, but still fully consistent with the present disclosure. Thus, claims directed to features and/or operations that are not exactly shown in one drawing are deemed within the scope and content of the present disclosure. 
       FIG. 5  illustrates an example environment  500  for a robotic update system consistent with at least one embodiment of the present disclosure. The system of this embodiment depicts a robot  102 ′, in this example a flying robot (e.g., quad-copter, etc.), roaming in an environment that includes a table  202  and a first target device  104 A (e.g., toaster) and a second target device  104 B (e.g., telephone). In the example environment, the robot  102 ′ is positioned in proximity to the telephone  104 B and communicating with the telephone  104 B using an NFC communications protocol. The robot  102 ′ provides update data to the telephone  104 ′. The robot  102 ′ records the time and date of an update provided to the toaster  104 A, and also monitors the updating status of the telephone  104 B (depicted at  204 ). For example, while being recharged at a docking station, the mobile robot  102 ′ may receive a push update (e.g. via WiFi) for the firmware of the phone  104 B and this event may cause the robot  102 ′ to initiate a service update of the phone  104 B. 
     While the foregoing description and drawings depict a single update robot for updating one or more target devices, it is to be understood that multiple robots may be used in a given map area/environment. In such an embodiment, the robots may be configured to communicate with one another to coordinate updating of devices within the defined area. Such data sharing may be useful for robots operating in overlapping areas. In addition, while the mapping circuitry  106  may provide “course” and “fine” movement instructions to the movement circuitry  134  to enable the robot to “home in” on a target device  104 , there may be instances where environmental conditions prevent such movement (for example, an obstruction, etc.). Accordingly, the robot  102  may also include movement sensor circuitry (not shown) to provide movement feedback to the movement circuitry  134 . In such an example, the movement sensor circuitry may include visual and/or IR sensors to sense environmental conditions, accelerometers, position sensors, etc., and/or other systems and/or subsystems to enable the robot to identify and possibly overcome specific environmental conditions. In addition, an update, as described herein generally includes a software/firmware update and/or a power source charge/recharge. However, in other embodiments, an update may include services of a target device, for example, adding fuel/oil, tightening/loosening nuts/bolts, and/or other service items that may be accomplished by a robot. 
     “Circuitry”, as used in any embodiment herein, may comprise, for example, singly or in any combination, hardwired circuitry, programmable circuitry such as computer processors comprising one or more individual instruction processing cores, state machine circuitry, and/or firmware that stores instructions executed by programmable circuitry. The circuitry may include a processor and/or controller configured to execute one or more instructions to perform one or more operations described herein. The instructions may be embodied as, for example, an application, software, firmware, etc. configured to cause the circuitry to perform any of the aforementioned operations. Software may be embodied as a software package, code, instructions, instruction sets and/or data recorded on a computer-readable storage device. Firmware may be embodied as code, instructions or instruction sets and/or data that are hard-coded (e.g., nonvolatile) in memory devices. The circuitry may, collectively or individually, be embodied as circuitry that forms part of a larger system, for example, an integrated circuit (IC), an application-specific integrated circuit (ASIC), a system on-chip (SoC), desktop computers, laptop computers, tablet computers, servers, smart phones, etc. 
     Any of the operations described herein may be implemented in a system that includes one or more storage devices having stored thereon, individually or in combination, instructions that when executed by one or more processors perform one or more operations. Also, it is intended that operations described herein may be distributed across a plurality of physical devices, such as processing structures at more than one different physical location. The storage devices may include any type of tangible device, for example, any type of disk including hard disks, floppy disks, optical disks, compact disk read-only memories (CD-ROMs), compact disk rewritables (CD-RWs), and magneto-optical disks, semiconductor devices such as read-only memories (ROMs), random access memories (RAMs) such as dynamic and static RAMs, erasable programmable read-only memories (EPROMs), electrically erasable programmable read-only memories (EEPROMs), flash memories, Solid State Disks (SSDs), magnetic or optical cards, or any type of media suitable for storing electronic instructions. Other embodiments may be implemented as software executed by a programmable control device. As described herein, various embodiments may be implemented using hardware elements, software elements, or any combination thereof. Examples of hardware elements may include processors, microprocessors, circuits, circuit elements (e.g., transistors, resistors, capacitors, inductors, and so forth), integrated circuits, application specific integrated circuits (ASIC), programmable logic devices (PLD), digital signal processors (DSP), field programmable gate array (FPGA), logic gates, registers, semiconductor device, chips, microchips, chip sets, and so forth. 
     Reference throughout this specification to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment. Thus, appearances of the phrases “in one embodiment” or “in an embodiment” in various places throughout this specification are not necessarily all referring to the same embodiment. Furthermore, the particular features, structures, or characteristics may be combined in any suitable manner in one or more embodiments. 
     EXAMPLES 
     Examples of the present disclosure include subject material such as a method, means for performing acts of the method, a device, or of an apparatus or system related to robotic updating, as discussed below. 
     Example 1 
     According to this example there is provided a robotic updating apparatus. The apparatus includes mapping circuitry to provide movement instructions, the mapping circuitry including map data; wherein the map data includes a defined area for the robotic updating apparatus; movement circuitry to receive the movement instructions and to control movement of the robotic apparatus within the defined area; wherein movement is based on, at least in part, the movement instructions; device discovery circuitry to discover at least one target device within the defined area; and update circuitry to provide update for at least one target device; wherein the device discovery circuitry also to communicate the update to the at least one target device. 
     Example 2 
     This example includes the elements of example 1, and further includes network communication circuitry to communicate with at least one network server to obtain at least one of the map data or data associated with the update. 
     Example 3 
     This example includes the elements of example 1, wherein device discovery circuitry includes local communications circuitry to discover and communicate with the at least one target device using a Near Field Communication (NFC) communications protocol; wherein the NFC communications protocol to detect signals associated with the operation of the at least one target device. 
     Example 4 
     This example includes the elements according to any one of examples 1 through 3, wherein the device discovery circuitry includes a radio frequency (RF) detection system to detect a radio frequency of the at least one target device. 
     Example 5 
     This example includes the elements according to any one of examples 1 through 3, wherein the device discovery circuitry includes an optical detection system to detect an optical characteristic of the at least one target device. 
     Example 6 
     This example includes the elements according to any one of examples 1 through 3, wherein the device discovery circuitry includes an infrared (IR) detection system to detect an infrared characteristic of the at least one target device. 
     Example 7 
     This example includes the elements according to any one of examples 1 through 6, further comprising power source circuitry to provide power, at least in part, to the movement circuitry. 
     Example 8 
     This example includes the elements according to example 1, wherein the update includes information related to at least one of a security, functionality and/or performance enhancements associated with the at least one target device. 
     Example 9 
     This example includes the elements according to any one of examples 1 through 8, wherein the device discovery circuitry also to determine at least one of a type of updatable firmware associated with the at least one target device, manufacturer information associated with the at least one target device, or battery state information associated with the at least one target device. 
     Example 10 
     This example includes the elements of example 1, wherein the device discovery circuitry to detect the at least one target device using at least one of infrared detection, radio frequency detection or optical detection. 
     Example 11 
     This example includes the elements of example 10, wherein the optical features include bar code information. 
     Example 12 
     According to this example there is provided a method for updating at least one target device in a defined area. This method includes moving a robot within the defined area; discovering, by the robot, the at least one target device; providing, by the robot, an update to the at least one target device; and augmenting map data of the defined area to include information associated with the location of the discovered target device and information associated with the update communicated to the discovered target device. 
     Example 13 
     This example includes the elements according to example 12, wherein the discovering includes detecting, by the robot, signals from an updatable system engine associated with the at least one target device. 
     Example 14 
     This example includes the elements according example 12, wherein the discovering includes detecting, by the robot, the at least one target device using at least one of infrared detection, radio frequency detection or optical detection. 
     Example 15 
     This example includes the elements of example 12, wherein movement of the robot within the defined area is based on random movement. 
     Example 16 
     This example includes the elements of example 12, wherein movement of the robot is based on coordinates of the at least one target device included with the map data. 
     Example 17 
     This example includes the elements according example 12, and further includes determining the status of the discovered target device after the update data is communicated to the discovered target device. 
     Example 18 
     This example includes the elements according example 12, and further includes communicating with at least one network server to obtain the map data and data associated with the update. 
     Example 19 
     This example includes the elements according example 12, wherein the update includes information related to at least one of a security, functionality and/or performance enhancements associated with the at least one target device. 
     Example 20 
     This example includes the elements according example 12, wherein the at least one target device includes a rechargeable energy source and the update includes a transfer of energy to recharge the rechargeable energy source of the at least one target device. 
     Example 21 
     This example includes a computer readable storage device having stored thereon instructions that when executed by one or more processors result in the following operations including: 
     the method according to any one of example 12 to 20. 
     Example 22 
     This example includes a system including at least one device arranged to perform the method of any one of claims  12  to  20 . 
     Example 23 
     This example includes a device that includes means to perform the method of any one of claims  12  to  20 . 
     Example 24 
     According to this example there is provided a robotic update system. The system includes a robot including: mapping circuitry to provide movement instructions, the mapping circuitry including map data; wherein the map data includes a defined area for the robot; movement circuitry to receive the movement instructions and to control movement of the robot within the defined area; wherein movement is based on, at least in part, the movement instructions; device discovery circuitry to discover at least one target device within the defined area; update circuitry to provide update for at least one target device; wherein the device discovery circuitry also to communicate the update to the at least one target device; and power source circuitry to provide power to the mapping circuitry, movement circuitry, update circuitry and local communications circuitry; and a base station to couple to the robot to provide, at least in part, recharging of the power source circuitry. 
     Example 25 
     This example includes the elements of example 24, wherein the discovering includes detecting, by the robot, signals from an updatable system engine associated with the at least one target device. 
     Example 26 
     This example includes the elements of example 24, and further includes network communication circuitry to communicate with at least one network server to obtain the map data or data associated with update. 
     Example 27 
     This example includes the elements of example 24, wherein device discovery circuitry includes local communications circuitry to discover and communicate with the at least one target device using a Near Field Communication (NFC) communications protocol; wherein the NFC communications protocol to detect signals associated with the operation of the at least one target device. 
     Example 28 
     This example includes the elements of example 24, wherein the update includes information related to at least one of a security, functionality and/or performance enhancements associated with the at least one target device. 
     Example 29 
     This example includes the elements of example 24, wherein the at least one target device includes a rechargeable energy source and the update includes a transfer of energy to recharge the rechargeable energy source of the at least one target device. 
     Example 30 
     This example includes the elements of example 24, wherein the device discovery circuitry to detect the at least one target device using at least one of infrared detection, radio frequency detection or optical detection. 
     Example 31 
     This example includes the elements according to example 24, wherein the device discovery circuitry includes a radio frequency (RF) detection system to detect a radio frequency of the at least one target device. 
     Example 32 
     This example includes the elements according to example 24, wherein the device discovery circuitry includes an optical detection system to detect an optical characteristic of the at least one target device. 
     Example 33 
     This example includes the elements according to example 24, wherein the device discovery circuitry includes an infrared (IR) detection system to detect an infrared characteristic of the at least one target device. 
     Example 34 
     This example includes the elements according example 24, wherein the device discovery circuitry also to determine at least one of a type of updatable firmware associated with the at least one target device, manufacturer information associated with the at least one target device, or battery state information associated with the at least one target device. 
     Example 35 
     This example provides a computer readable storage device having stored thereon instructions that when executed by one or more processors result in the following operations comprising: 
     provide movement of a robot within the defined area; 
     discover, by the robot, the at least one target device; 
     provide, by the robot, an update to the at least one target device; and 
     augment map data of the defined area to include information associated with the location of the discovered target device and information associated with the update communicated to the discovered target device. 
     Example 36 
     This example includes the elements according to example 35, wherein the discovering includes detect, by the robot, signals from an updatable system engine associated with the at least one target device. 
     Example 37 
     This example includes the elements according example 35, wherein the discovering includes detect, by the robot, the at least one target device using at least one of infrared detection, radio frequency detection or optical detection. 
     Example 38 
     This example includes the elements of example 35, wherein movement of the robot within the defined area is based on random movement. 
     Example 39 
     This example includes the elements of example 35, wherein movement of the robot is based on coordinates of the at least one target device included with the map data. 
     Example 40 
     This example includes the elements according example 35, wherein the instructions that when executed by one or more processors results in the following additional operations including determine the status of the discovered target device after the update data is communicated to the discovered target device. 
     Example 41 
     This example includes the elements according example 35, wherein the instructions that when executed by one or more processors results in the following additional operations including communicate with at least one network server to obtain the map data and data associated with the update. 
     Example 42 
     This example includes the elements according example 35, wherein the update includes information related to at least one of a security, functionality and/or performance enhancements associated with the at least one target device. 
     Example 43 
     This example includes the elements according example 35, wherein the at least one target device includes a rechargeable energy source and the update includes a transfer of energy to recharge the rechargeable energy source of the at least one target device. 
     Various features, aspects, and embodiments have been described herein. The features, aspects, and embodiments are susceptible to combination with one another as well as to variation and modification, as will be understood by those having skill in the art. The present disclosure should, therefore, be considered to encompass such combinations, variations, and modifications.