Techniques for mobile device charging using robotic devices

A method, apparatus, and/or system for providing an action with respect to a mobile device using a robotic device that tracks the user. In accordance with at least one embodiment, a request to perform an action with respect to an electronic device is received. Information may be sent to one or more robotic devices within a proximity of the electronic device. A robotic device of the one or more robotic devices may be selected to perform the action. An indication may be received from the robotic device that indicates that the user has interacted with the robotic device. Instructions may be sent to the robotic device to perform the action with respect to the electronic device. A location of the user may be tracked while charging is performed by the robotic device. The robotic device may be instructed to follow the user at a threshold distance from the user.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present disclosure is related to and incorporates by reference for all purposes the full disclosure of U.S. patent application Ser. No. 14/673,744, filed Mar. 30, 2015, issued as U.S. Pat. No. 9,492,922 on Nov. 15, 2016 and entitled “TECHNIQUES FOR MOBILE DEVICE CHARGING USING ROBOTIC DEVICES”.

BACKGROUND

The general public uses electronic mobile devices such as cell phones, tablets, laptops, or the like to perform a myriad of daily tasks. It can be quite inconvenient to a user when one of these devices runs out of battery power. This is especially true if the user does not have an available charging adapter for the device. Users may find themselves asking friends, or even strangers, to borrow a charging adapter. In some cases, there may not be any charging ports, or power outlets in the immediate vicinity, making charging the device even more cumbersome. Even in cases where charging stations, ports, or outlets are available, a user may have to remain close to the device. For example, charging a phone in a public place may require the user to remain in the general area of the phone to avoid theft. For the aforementioned reasons, conventional techniques can make it difficult to charge electronic devices in a public or semi-public space.

DETAILED DESCRIPTION

Techniques described herein are directed to a charging management system that interacts with a robotic device to provide charging capabilities to a mobile device. In at least one example, a user may enter a public or semi-public space (e.g., an airport, a shopping center, a health-care center, a hotel, a place of business, or an educational institution). While at, for instance, an airport, the user's mobile phone may drop under a threshold of remaining battery power (e.g., 10%). The user may not have a charging cable with him or her, and/or there may not be an electrical outlet nearby. Using a charging application on his or her mobile electronic device, e.g., a smartphone, the user may request that a robotic device (hereinafter referred to as a “robot”) come charge his or her phone. In the following disclosure, a “robot” is meant to include an autonomous, or semi-autonomous, electro-mechanical device that is guided by a computer program and/or electronic circuitry. The request may include at least one of a location of the mobile electronic device, a type of the mobile electronic device, a charge level of the mobile electronic device, or a request time. The request may be received wirelessly by a charging management system that manages mobile device charging via robots.

In response to the request, the charging management system may select a robot from a number of robots and communicate instructions to the robot to cause the robot to travel to the location of the user. Upon arriving at the user's location, the robot may be instructed by the charging management system to present the user with a number of user activities via a user interface (e.g., a touchscreen display, physical buttons located on the robot). “User activities,” as used herein, is meant to refer to actions conducted by the user via the robot including, but is not limited to, viewing an advertisement, participating in a survey, participating in a crowd-sourcing activity that uses human intelligence to perform a task that a computer is incapable of performing, browsing for an item and/or conducting a purchase of the item from an electronic marketplace, using the robot to charge the electronic device (e.g., by attaching the electronic device to a port or other portion of the robotic device), and/or using an interface provided by the robot to pay a fee for charging the user's mobile electronic device, or the like. The user may select a user activity option corresponding to the user activity via the user interface and proceed with conducting various user interactions (e.g., further user interface selections, plugging an electronic device into a charging port of the charging robot, or the like) with the robot related to the selected user activity. In some cases, the user may select more than one user activity option.

The user may participate in the selected user activity in exchange for charging his or her mobile electronic device and/or for entertainment purposes. As used herein, “charge” or “charging” refers to charging of an electronic device by a charging robot, “charge” or “charging” is not intended to refer to a payment of a fee, unless specified otherwise. As an overview, an “item” may be a product, a sellable unit, a good, or a service. As used herein, an “electronic marketplace” includes a computer-facilitated market for participants (e.g., buyers and sellers) to conduct transactions including commercial and/or financial transactions. A user may have an account with the charging management system and/or the electronic marketplace, and may provide credentials that permit the user to utilize the charging features of the robot. Upon completion of at least a portion of the user activity, the charging management system may instruct the robot to provide an interface (e.g., a cable and/or a port) to a power source (e.g., a battery with which the robot is equipped) to charge the user's mobile electronic device for a predetermined amount of time (e.g., 30 minutes). Upon completion of the predetermined charging time, the robot may cease charging automatically, or be instructed by the user and/or the charging management system to cease charging.

As an illustrative example, a user may arrive at an airport to catch a flight. Once there, his laptop may run low on battery power. As a result of the battery power falling below a threshold amount, an application on the laptop may transmit a charging request to the charging management system responsible for managing mobile device charging by charging robots in the airport. A charging request, as used herein, may include, but is not limited to, a location of an electronic device, information associated with the electronic device (e.g., device features, device configuration, etc.) a charging duration, an item request (e.g., an item for purchase accessible to the charging robot), and a start time. A prediction that the battery level will fall below a threshold within a period of time may also trigger transmission of the charging request. In a non-limiting example, the prediction may be determined based on the user's travel itinerary. For example, the user's travel itinerary may indicate that the user is about to embark on a 5-hour flight; however, the user may only have 3 hours of battery life remaining. Electronic travel itinerary information may be obtained via an application running on the laptop, via user input of the itinerary information, or any suitable method for obtaining such information. Given a determination that the remaining battery life is less than the expected flight time, the application on the laptop may transmit a charging request to the charging management system. The charging request may be actively placed by the user, or may be transmitted automatically based on a setting (configuration) of the laptop (e.g., without input from the user).

The charging management system may transmit the charging request to a number of robots, at least one of which may be selected to assist the user in charging the user's laptop. The robots may communicate with one another, directly or through the charging management system, to select the robot that is best suited (e.g., is not currently busy fulfilling another charging request, has a requisite amount of battery power available to fulfill at least a threshold amount of the charging request, is located within a threshold proximity to the user, is located at a location that is a shortest path to the user with respect to other robots, or the like) to assist the user and/or charge the user's mobile device. Alternatively, the charging management device selects the robot best suited to assist the user. In some embodiments, the robot nearest the user is selected due to its proximity to the user. In other embodiments, the robot having the most battery power in reserve is selected. Alternatively, a robot that does not have the most battery power, but at least enough batter power to fulfill the charging request, may be selected. In yet other embodiments, some robots charge a same, or different, set of electronic devices as other robots. Accordingly, the robots that charge a set of electronic devices of which the laptop is a member, may be first identified. The robot that is nearest the user may then be selected from the robots that charge such electronic devices.

Assuming the nearest robot is best suited to charge the user's laptop, the nearest robot may make its way to the user based on the location of the laptop that was included in the charging request. The robot may utilize various sensors to navigate through the airport to the location of the laptop. Once there, the robot may be utilized to charge the user's laptop. As mentioned above, the robot may present a power source interface to which the user can attach his or her own charging adaptor. However, in other embodiments, the robot may carry, in a compartment located on the robot, a number of charging adaptors. The user may then utilize one of the adaptors to charge his or her laptop directly from the robot or from a nearby power source (e.g., a nearby electrical outlet). The user may then return the adaptor to the same or different robot, or to a return station. Alternatively, for a fee, the user may keep the adaptor and submit payment for the fee via the application referenced above or via the robot. In yet another example, the adaptor is configured for a single-use, and thus, may be disposed of in a recycling or other disposal container.

In some embodiments, the user may be assessed a fee for utilizing the robot to charge his or her mobile electronic device and may submit payment of the fee via the application referenced above or via the robot. However, in at least one embodiment, the fee may be waived or otherwise reduced or credited in exchange for conducting a user interaction with the robot and/or the application referenced above. For example, the fee may be waived or reduced in exchange for viewing an advertisement, participating in a survey, etc. via the user interface (e.g., touchscreen display) of the robot. In some embodiments, once the user interaction is concluded and the fee assessed/waived (or at another suitable time), the robot may then be utilized to charge the user's mobile electronic device.

As another example, a user may arrive at a shopping center. Once there, the user's tablet PC may drop below a threshold amount of remaining battery power. The user may issue a charging request to the charging management system responsible for managing mobile charging by robots at the shopping center. A robot may be sent to the user as described in the examples above. In one example, the user may choose to take part in a survey presented via a touchscreen display of the robot in exchange for 30 minutes of charging time. Once the survey is completed, the user may plug her tablet PC into the robot to begin charging the tablet PC. The robot may then alert the charging management system that charging of the tablet PC has commenced. In at least one embodiment, the charging management system may respond to the robot with instructions to “follow” the user (if the user moves to another location(s)) at a threshold distance for the duration of the charging time or for another suitable period of time. The robot may “follow” the user at a threshold distance or at approximately a threshold distance away.

Referring now to the drawings, in which like reference numerals represent like parts,FIG. 1is a pictorial diagram illustrating an example environment100suitable for implementing aspects of a charging management system102, in accordance with at least one embodiment. A user106, upon occupying a portion of public space managed by charging management system102, may utilize, for example, an electronic device (e.g., tablet PC104) on network108.

In at least one example, the user106notices that her electronic device, in this example, tablet PC104, is in need of charging. At such time, user106may navigate, on tablet PC104, to an application running on tablet PC104. Using the application, user106may request charging from the charging management system102. Charging management system102, in communication via network108, may determine a charging robot110to carry out the user's request.

FIG. 2is a block diagram illustrating an example architecture200for the charging management system102, in accordance with at least one embodiment. In architecture200, one or more users202may utilize user computing devices204(1)-(N) (e.g., the tablet PC ofFIG. 1) to access a charging application206and/or a charging management engine210of the charging management system102via one or more networks208. The charging management system102may include one or more computers that host, manage, and/or otherwise provide computing resources. The charging management system102may, in some examples, provide computing resources such as, but not limited to, client entities, low latency data storage, durable data storage, data access, management, virtualization, hosted computing (e.g., “cloud”) based software solutions, electronic content performance management, etc. The charging management system102may also be operable to provide web hosting, computer application development, and/or implementation platforms, combinations of the foregoing, or the like to the one or more users202, in addition to the charging management features described herein. The charging management system102may include any suitable type of computing devices such as, but not limited to, a mobile phone, a smart phone, a personal digital assistant (PDA), a laptop computer, a desktop computer, a server computer, a thin-client device, a tablet PC, etc. The multiple devices of the charging management system102may be arranged in a cluster of servers, as a server farm, or as individual servers not associated with one another. These servers may implement the charging management described herein as part of an integrated, distributed computing environment. Alternatively, or in addition, the charging management system102may be implemented with one more virtual machines implemented in a hosted computing environment. The hosted computing environment may include one or more rapidly provisioned and released computing resources, which computing resources may include computing, networking, and/or storage devices. A hosted computing environment may also be referred to as a “cloud” computing environment.

In some examples, the charging management system102may be in communication with the user computing devices204and/or other service providers via the networks208or via other network connections. In some examples, the networks208(e.g., the network108ofFIG. 1) may include any one or a combination of many different types of networks, such as cable networks, the Internet, wireless networks, cellular networks, and other private and/or public networks. While the illustrated example represents the users202accessing the charging management system102over the networks208, the described techniques may equally apply in instances where the users202interact with the charging management system102via the one or more user computing devices204over a landline phone, via a kiosk, or in any other suitable manner. It should be appreciated that the described techniques may apply in other client/server arrangements (e.g., set-top boxes, etc.), as well as in non-client/server arrangements (e.g., locally stored applications, peer-to-peer arrangements, etc.).

Client application206, operating on user computing devices204, may enable the users202to interact with the charging management system102such as to access information associated with the robots managed by charging management system102and/or the electronic devices being charged by the robots. The client application206may be capable of handling requests from many users202and presenting, in response, various user interfaces that can be rendered at the user computing devices204. For example, client application206may present information related to charging robots (e.g., the charging robot110), such as location, charging capabilities, charging capacity, item purchase availability, user activity availability, display information, or the like. Client application206may present such information to the users202via a graphical user interface as well as process and transmit user interaction information related to actions taken by the user with respect to the graphical user interfaces. The charging management system102may cause client application206to present any suitable type of network site that supports user interaction.

The user computing devices204may be any suitable type of computing device such as, but not limited to, a mobile phone, a smart phone, a personal digital assistant (PDA), a laptop computer, a desktop computer, a thin-client device, a tablet PC, an electronic book (e-book) reader, etc. In some examples, the user computing devices204may be in communication with the charging management system102via the networks208, or via other network connections. Additionally, the user computing devices204may be part of a distributed system managed by, controlled by, or otherwise part of the charging management system102.

In one illustrative configuration, the user computing devices204may include at least one memory212and one or more processing units (or processor(s))214. The processor(s)214may be implemented as appropriate in hardware, firmware, or as hardware or firmware implementing computer-executable instructions executed by hardware, firmware, or as hardware or firmware executing computer-executable or machine-executable instructions written in any suitable programming language to perform the various functions described.

The memory212may store program instructions that are loadable and executable on the processor(s)214, as well as data generated during the execution of these programs. Depending on the configuration and type of user computing device, the memory212may be volatile (such as random access memory (RAM)) and/or non-volatile (such as read-only memory (ROM), flash memory, etc.). The user computing devices204may also include additional removable storage and/or non-removable storage including, but not limited to, magnetic storage, optical disks, and/or tape storage. The disk drives and their associated non-transitory computer-readable media may provide non-volatile storage of computer-readable instructions, data structures, program modules, and other data for the computing devices. In some implementations, the memory212may include multiple different types of memory, such as static random access memory (SRAM), dynamic random access memory (DRAM), or ROM.

Turning to the contents of the memory212in more detail, the memory212may include an operating system and one or more application programs, modules, or services for implementing the features disclosed herein including the client application206or dedicated applications (e.g., smart phone applications, tablet applications, etc.). The client application206may receive, store, and/or display a network page or other interface for interacting with the charging management system102. Memory216of the charging management system102may store access credentials and/or other user information such as, but not limited to, user IDs, passwords, one or more images, radio frequency identification information, and/or other user information. In some examples, the user information may include information for authenticating an account access request such as, but not limited to, a device ID, a cookie, an IP address, a location, a bar code (2- or 3-dimensional), an image, an electronic user code, (e.g., that can be stored in an a radio frequency ID tag) or the like.

Returning to the charging management system102, in one illustrative configuration, a device included in the charging management system102may include at least one memory216and one or more processing units (or processor(s))218. The processor(s)218may be implemented as appropriate in hardware, firmware, or as hardware or firmware implementing computer-executable instructions executed by hardware, firmware, or as hardware or firmware executing computer-executable or machine-executable instructions written in any suitable programming language to perform the various functions described.

The memory216may store specific computer-executable instructions that are loadable and executable on the processor(s)218, as well as data generated during the execution of these instructions. Depending on the configuration of the charging management system102, the memory216may be volatile (such as RAM) and/or non-volatile (such as ROM, flash memory, etc.). Devices of the charging management system102may also include additional storage220, which may include removable storage and/or non-removable storage. The additional storage220may include, but is not limited to, magnetic storage, optical disks and/or tape storage. The disk drives and their associated non-transitory computer-readable media may provide non-volatile storage of computer-readable instructions, data structures, program modules, and other data for the devices of the charging management system102. In some implementations, the memory216may include multiple different types of memory, such as SRAM, DRAM, or ROM.

The memory216, the additional storage220, both removable and non-removable, are all examples of non-transitory computer-readable storage media. For example, computer-readable storage media may include volatile or non-volatile, removable or non-removable media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules, or other data. The memory216and the additional storage220are all examples of computer storage media. Additional types of non-transitory computer-readable storage media may include, but are not limited to, PRAM, SRAM, DRAM, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, DVD or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by the charging management system102. Combinations of any of the above should also be included within the scope of non-transitory computer-readable media.

Devices of the charging management system102may also contain communications connection(s)222that allow communication with a stored database, another computing device or server, user terminals and/or other devices on the networks208. Devices of the charging management system102may also include I/O device(s)224, such as a keyboard, a mouse, a pen, a voice input device, a touch input device, a display, speakers, a printer, etc.

As will be discussed in further detail inFIG. 4, the memory216may include an operating system226, one or more data stores228, and/or one or more application programs, modules, or services for implementing the features disclosed herein including the charging management engine210.

FIG. 3is an example architecture of a charging robot110utilized by the charging management system102, in accordance with at least one embodiment. It should be noted thatFIG. 3is meant only to provide a generalized illustration of various components of charging robot110, any or all of which may be utilized as appropriate. Moreover, the various components of the charging robot110may be implemented in a relatively separated or relatively more integrated manner.

The charging robot110is shown comprising hardware elements that can be electrically coupled via a bus302(or may otherwise be in communication, as appropriate). The hardware elements may include a processing unit(s)303which can include without limitation one or more processors (which may, in some embodiments include, digital signal processors (DSPs), application specific integrated circuits (ASICs), and/or the like), and/or other processing units, which can perform one or more of the methods described herein.

The charging robot110might also include a wireless communication interface304, which can include without limitation a modem, a network card, an infrared communication device, a wireless communication device, and/or a chipset (such as a Bluetooth device, an IEEE 802.11 device, an IEEE 802.15.4 device, a Wi-Fi device, a WiMax device, cellular communication facilities, etc.), and/or the like. The wireless communication interface304may permit data to be exchanged with a network, wireless access points, other computer systems, and/or any other electronic devices described herein. The communication can be carried out via one or more wireless communication antenna(s)306that send and/or receive wireless signals308. In at least one embodiment, charging robot110may communicate with charging management system102via the wireless communication interface304.

Depending on desired functionality, the wireless communication interface304can include separate transceivers to communicate with base transceiver stations (e.g., base transceiver stations of a cellular network) and access points. These different data networks can include, an Orthogonal Frequency-Division Multiple Access (OFDMA), Code Divisional Multiple Access (CDMA), Global System for Mobile Communications (GSM)), and/or other types of networks.

The charging robot110can further include sensor(s)310. Such sensors can include, without limitation, one or more accelerometer(s) and/or gyroscope(s)312, infra-red device(s)313, laser(s)314, magnetic device(s)315, imaging device(s) (e.g., camera(s))316, radio frequency identification (RFID) device(s)317, sonar device(s)318, or the like. At least a subset of the sensor(s)310can provide readings used by charging robot110for navigation, user authentication, user interaction, or image detection as described herein. In at least one example, sensor(s)310of charging robot110may be used to collect authentication data for authenticating a user (e.g., via a retina scan, via finger print scan, via an image of the user, via a radio frequency, or the like). Sensor(s)310may also be used to collect interaction data indicating a user interaction with the charging robot110(e.g., physical and/or audible interaction including motions made by the user and/or sounds made by the user.). Sensors may also be used to collect user navigation data for obtaining a location of the user (e.g., GPS coordinates, sonar reading, infra-red readings, etc.). Sensor(s)310may be used to collect device navigation data for obtaining a location of the charging robot110. Sensor(s)310may also be used to identify one or more obstacles falling within a threshold distance of a traversal path (e.g., a sequence of headings between two locations) of the charging robot110. In accordance with at least one embodiment, sensor(s)310may be used, by the charging management system102, to track or determine the location of the user and/or to track or determine the location of the robotic device. Sensor data collected by sensor(s)310may be utilized by the charging management system102when determining a particular charging robot (e.g., the charging robot110) to select to fulfill a charging request, when determining a traversal path for the charging robot110, or when causing the charging robot110to maintain a threshold distance with the user (e.g., to “follow” the user).

Embodiments of charging robot110may also include a Global Positioning System (GPS) receiver320capable of receiving signals322from one or more GPS satellites using a GPS antenna324. Such positioning can be utilized to complement and/or incorporate the techniques described herein. The GPS receiver320can receive satellite data that can be transmitted via wireless communications interface304or stored in memory330. The satellite data can be information sufficient to allow the GPS receiver320to determine a geographic location of the charging robot110based on the satellite data. It can be noted that, as used herein, a GPS may include any combination of one or more global and/or regional navigation satellite systems and/or augmentation systems, and GPS signals may include GPS or GPS-like signals. The charging robot110may further include or be in communication with a memory330. The memory330is an example of a non-transitory computer-readable storage media. In at least one example, non-transitory computer-readable storage media include volatile or non-volatile, removable or non-removable, media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules, or other data. Additional types of non-transitory computer-readable storage media that may be included in the charging robot110may include, but are not limited to, PRAM, SRAM, DRAM, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, DVD or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by the charging robot110. Combinations of any of the above should also be included within the scope of non-transitory computer-readable media. Memory330can further be used to store sensor data for any combination of sensors310in data store332. Additionally, or alternatively memory330may be used to store user information obtained via a user interface(s)340of the charging robot110.

Turning to the contents of the memory330in more detail, the memory330, in at least one embodiment, includes an operating system334and one or more application programs, modules, or services for implementing the features of the charging robot110or dedicated applications. In at least one example embodiment, the charging robot110receives, stores, and/or displays content and presents the user interface(s)340for interacting with the charging management system102ofFIG. 2and/or one or more users (e.g., users202ofFIG. 2). Additionally, the memory330may store access credentials and/or other user information such as, but not limited to, user IDs, passwords, one or more images, radio frequency identification information, and/or other user information. In some examples, the user information includes information for authenticating an account access request such as, but not limited to, a device ID, a cookie, an IP address, a location, an image, an RFID code, or the like. The memory330of the charging robot110also can include device drivers, executable libraries, application programs, computer programs, and/or other code that may be designed to implement methods, and/or configure systems, as described herein.

The charging robot110may also include a user interface(s)340. Components of the user interface(s)340may include display(s)342, microphone(s)344, audio component(s)346, tactile component(s)348, or keyboard(s)349. The user interface(s)340may enable a user (e.g., user106ofFIG. 1) to interact with the charging robot110and/or the charging management system102ofFIG. 2. In one example, tactile component is348may include a refreshable braille display and/or braille keyboard to provide the user an interface with which to read braille. Display(s)342may include a monitor, a touchscreen display device, a projector, or any suitable device for visually displaying information to a user.

The charging robot110may also include power source(s)370. In at least one embodiment, charging robot110may operate under battery control. For example, the power source(s)370may include any combination of a flow battery, a fuel cell battery, a lead-acid battery, a lithium air battery, a lithium-ion battery, a nickel-based battery, a polymer-based battery, a potassium-based battery, a silicon-based battery, a silver-based battery, a sodium-based battery, and/or any suitable rechargeable battery. In accordance with at least one embodiment, the charging robot110includes charging port(s)360. Charging port(s)360may be configured to charge a number of electronic devices. For example, charging port(s) may include any suitable combination of one or more USB charging ports, one or more inductive couplers, one or more capacitive couplers, one or more magneto-dynamic couplers, one or more A/C outlets, or any suitable port(s)/outlet(s) configured to receive one end of a charging cable utilized to charge an electronic device. The charging robot110can provide A/C power through the one or more A/C outlets even though it is not connected to an A/C source, by way of a power inverter that may convert the D/C power from the power source(s)370to A/C power for the charging port(s)360. In some embodiments, the power source(s)370and/or charging port(s)360of the charging robot110are configured to provide rapid charging of the electronic device being charged. The electronic device being charged may include any combination of batteries, such as those described above. The charging port(s)360may transfer electrical current from the power source(s)370to one or more batteries located on an electronic device while the electronic device is connected to the robot via the charging port(s)360(e.g., via a USB cable). Additionally, or alternatively, the charging port(s)360may include a charging pad, or other suitable wireless power transfer device, capable of wirelessly transferring electrical power from the power source(s)370to a battery located on an electronic device (e.g., via capacitive couplers, via electromagnetic inductive couplers, via inductive couplers, etc.). Thus, the battery located on the electronic device may be charged merely by being located within a threshold proximity of the charging port(s)360.

In accordance with at least one embodiment, charging robot110includes a software module (control module350) for controlling components of drive unit355. In at least one example, control module350may be included in memory330or as a separate module. Control module350may execute operations to control various motors and/or actuators contained in drive unit355located on charging robot110. Motors and actuators are both intended to refer to a device that converts energy (e.g., electrical) into physical motion. Typically, “motors” refer to devices that convert energy into linear motion (e.g., cause the robot to move to a different location), while “actuators” typically convert energy into rotational motion (e.g., allow a robot hand to rotate on an axis, for example, to rotate a doorknob). Such motors and/or actuators contained in drive unit355may be responsible for movement of the robot. Control module350may execute operations that coordinate movement between various motors and actuators in order to propel, halt, or otherwise move various portions of the robot in a coordinated manner (e.g., move the robot to another location, move an appendage of the robot, rotate a “head”, etc.). Control module350may execute operations to control various functions of charging robot110, such as those functions pertaining to any suitable component or module described inFIG. 3.

In accordance with at least one embodiment, charging robot110includes a clock375. Clock375may be used to generate a time stamp for each of the data observations generated by the sensor(s)310. The time stamps may be used by the processing unit(s)303in the analysis of sensor data, and facilitate pattern recognition and improved capacity for determining the operational environment of the charging robot110. The clock375may be used to ascertain a time at which the charging port(s)360are disabled. The clock375can also be used by the processing units303for alarms and other standard clock functions.

FIG. 4is a block diagram illustrating an example computer architecture400for a charging management engine210that may be implemented by the charging management system102(e.g., the charging management system102ofFIGS. 1 and 2) including a plurality of modules404that may carry out various embodiments. The modules404may be software modules, hardware modules, or a combination thereof. If the modules404are software modules, the modules404can be embodied on a non-transitory computer readable medium and processed by a processor in any of the computer systems described herein. It should be noted that any module or data store described herein, may be, in some embodiments, a service responsible for managing data of the type required to make corresponding calculations. The modules404may be configured in the manner suggested inFIG. 4or the modules404may exist as separate modules or services external to the charging management engine210.

In the embodiment shown in the drawings, a user profile data store406, a map data store408, a charging request data store410, an inventory data store412, an advertisement data store414, and a survey data store415are shown, although data can be maintained, derived, or otherwise accessed from various data stores, either remotely or locally, to achieve the functions described herein. The charging management engine210, shown inFIG. 4, includes various modules such as a graphical user interface416, the application programming interface418, content selection engine420, a robot coordination manager422, a charging request manager424, a payment engine426, a display manager428, a tracking manager430, and an authentication engine438. Some functions of the modules416,418,420,422,424,426,428,430and438are described below. However, for the benefit of the reader, a brief, non-limiting description of each of the modules is provided in the following paragraphs.

In accordance with at least one embodiment, a process is enabled for utilizing charging management system102. For example, a user (e.g., user106ofFIG. 1) may utilize user device432(e.g., user device(s)204ofFIG. 2) to interact, via network434(e.g., network(s)208ofFIG. 2) with charging management system102to receive a charging request. As part of a charging management process, or at any suitable time, a charging request may be received by the charging management engine210via application programming interface418and graphical user interface416, both components of the charging management engine210. It should be appreciated that the networks434may be the same or similar as the networks208described in connection withFIG. 2. Application programming interface418and/or graphical user interface416may be utilized in any suitable example described herein as a means for receiving information by the charging management engine210.

In accordance with at least one embodiment, charging request manager424(a component of the charging management engine210) receives a charging request. A charging request may include information including, but not limited to, any suitable combination of information associated with the user106(e.g., user ID, a location associated with the user), an electronic device type, a charging level associated with the electronic device, a duration, a distance, a traversal path, or a request time. Upon receipt of such a charging request, charging request manager424may store the charging request in charging request data store410, which stores such change requests. In at least one example, charging request manager424determines an order with which to process stored change requests. This order may be based, at least in part, on a time at which the charging request was received. Additionally, or alternatively, the order may be based, at least in part, on the charging level associated with the electronic device. Upon processing a charging request, charging request manager424may communicate the charging request to content selection engine420.

In accordance with at least one embodiment, robot coordination manager422(a component of the charging management engine210) sends, via the application programming interface418, information related to the charging request to one or more charging robots (e.g., the charging robot110ofFIG. 1). Additionally, or alternatively, robot coordination manager422may receive, via application programming interface418, information from one or more charging robots. For example, upon receiving a charging request from the charging request manager424, robot coordination manager422may transmit information related to the charging request to a charging robot110. Charging robot110may respond with an indication of whether it is able to process the charging request. Charging robot110may determine its ability to process the charging request based, at least in part, on the charging level of the electronic device and/or an amount of charge requested as indicated in the charging request. For example, if the charging level indicates that the electronic device is in need of a charge amount that exceeds an amount the charging robot110is currently able to provide, the charging robot110may respond with an indication that it is not the best suited charging robot to process the charging request. For example, the charging robot110may currently have a battery level that, aside from operating the charging robot110itself, is insufficient to charge a battery of the electronic device up to a threshold amount of the electronic device battery's full capacity or to the requested amount of charge. Such threshold may be user or developer specified and/or determined by one or more rules of the charging management engine210.

In accordance with at least one embodiment, robot coordination manager422may receive a number of responses from one or more charging robots. Upon receipt of a response from the one or more charging robots, Robot coordination manager422may select a particular charging robot (e.g., the charging robot110) with which to carry out the charging request. While communicating with a one or more charging robots, robot coordination manager422may receive information associated with user input collected by the charging robot110, display data to present on the charging robot110, sensor data received from the charging robot110, navigation information transmitted to and received from the charging robot110, or any suitable information capable of being exchanged with the one or more charging robots. It should be noted, that information may be exchanged between robot coordination manager422and the charging robot110and/or between the robot coordination manager422and any suitable component of the charging management engine210. As a non-limiting example, robot coordination manager422may communicate payment information of the user (e.g., entered via user interface(s)340) to payment engine426in order to complete a purchasing transaction. As a further example, robot coordination manager422may communicate information to be displayed on the charging robot110to display manager428. In yet another example, robot coordination manager422may communicate locational information related to the robot and/or the user to map data store408for storage or other suitable processing.

In accordance with at least one embodiment, robot coordination manager422may coordinate movement of one or more charging robots (e.g., the charging robot110). For example, robot coordination manager422may utilize a map (e.g., an electronic representation of an area) obtained from map data store408. The map may include data describing an area surrounding the charging robot110and/or the user (e.g., the location of walls, egress/ingress paths, obstacles, locations of places and/or objects within a map region, distances between elements (objects/places) of the map, etc.). The robot coordination manager422may utilize the map data and sensor data collected from sensor(s)310to identify walls, egress/ingress routes, doors, obstacles between the charging robot110and the user, as the user and/or the charging robot110change position. In a non-limiting example, laser(s)314ofFIG. 3may be used to determine a location and proximity of a user with respect to the charging robot110. Additionally, sensor data collected using laser(s)314may be used to determine location and proximity of people and objects other than the user. Sensor data collected by the laser(s)314may be used to determine and/or update the charging robots110traversal path (e.g., a sequence of headings between two locations). The traversal path may be a determined using an initial location of the charging robot110and the user and/or destination location. Additionally, the traversal path may be periodically updated by the robot coordination manager422, for example, based on collected sensor data (e.g., indicating a location, speed, heading, etc. of a user). In accordance with at least one embodiment, the robot coordination manager422may utilize any suitable combination of map data, information from one or more charging requests, and/or sensor data to calculate a traversal path for the charging robot110to follow (e.g., to travel from an initial location of the charging robot110to the location of the user of the charging request).

In accordance with at least one embodiment, robot coordination manager422may coordinate movement of one or more charging robots (e.g., the charging robot11) using a video feed. For example, video feed information may be received by robot coordination manager422. Once received, the video feed information may be analyzed (e.g., utilizing image recognition techniques) to identify a user. Based on a map of the surrounding area of the user (e.g., an electronic floor plan of an airport), a location of the user may be determined by comparing data from the video feed (e.g., information of the identified user's surroundings) and map data. For example, the video feed may depict the user standing next to a merchant store. The merchant store may have a sign that is visible in the video feed. Text recognition techniques may be utilized to analyze the video feed to determine the name of the store. The name of the store may be used to identify a location on the map. Additionally, distance may be determined from the video feed by determining a known frame of reference (e.g., a sign that is known to be 20 feet away from the device used to capture the video feed). The known frame of reference may be used to compare size of an object (e.g., at a particular angle) depicted in the video feed. An estimated distance may be computed (e.g., by the robot coordination manager422) based on such a comparison. It should be noted that video feed information may be used separately, or in conjunction with sensor data collected by sensor(s)310on the charging robot110to track a user and/or a robotic device.

In accordance with at least one embodiment, content selection engine420(a component of the charging management engine210) receives, via the application programming interface418and robot coordination manager422, user information from one or more charging robots (e.g., the charging robot110ofFIG. 1). As a non-limiting example, a user may enter, at a graphical user interface on the charging robot110, user login information related to an electronic marketplace. Upon receipt of such login information, the content selection engine420may use the login information to interact with user profile data store406in order to obtain user profile information with which to determine one or more user activity options to provide to the user. The term “user activity options” is intended to refer to one or more graphical interface elements that, upon selection by the user, enable the user to participate in one or more user activities using the robot (e.g., viewing an advertisement, participating in a survey, participating in a human intelligence task, browsing for and/or conducting a purchase of an item from an electronic marketplace, charging an electronic device, paying a fee to charge an electronic device, or the like). User profile data store406may store user profile information associated with a user of an electronic marketplace. Such user profile information may include, but is not limited, user demographic information, past purchase history, past viewed items, or the like.

As a non-limiting example, the content selection engine420may obtain user profile data from user profile data store406using the user login information received from charging robot110as discussed above. Content selection engine420may utilize user profile data in order to select, for example, an option to present to the user to view an advertisement (e.g., an advertisement featuring an item offered on an electronic marketplace, a service, a marketing campaign, or the like) in exchange for charging time with the charging robot110. In such cases, the content selection engine420may interact with advertisement data store414that stores a number of electronic advertisements. In at least one example, the content selection engine420may determine that a number of electronic advertisements exist that are related to an item or an item category of an item that has been previously purchased by the user. In response to the determination, the content selection engine420may provide the user with the option to view the advertisement in exchange for charging time with the charging robot110.

As a further example, the content selection engine420may interact with inventory data store412that stores information related to a number of items in inventory, the items being accessible by the charging robot110ofFIG. 1. Items, in this sense, may include electronic items (e.g., electronic games) or tangible goods. The content selection engine420may determine that one or more items are accessible by the charging robot110and may present the user with the user activity option to purchase one or more items in exchange for charging time with the charging robot110. The determination to offer the one or more items in exchange for charging time may further be based on the login information/user profile information previously obtained. For example, the content selection engine420may determine the one or more items to present to the user based on accessibility with respect to the charging robot110and/or previous purchase information of the user. In at least one example, a user may have previously purchased an electronic device from an electronic marketplace. Further, a charger for the electronic device may be accessible (e.g., current on-board the charging robot110, or accessible by the charging robot110) to the charging robot110. Thus, the content selection engine420may determine that a user activity option for purchasing the charger may be presented to the user via the charging robot110based on the previous purchase information and/or the accessibility of the charger with respect to the charging robot110.

In other non-limiting examples, content selection engine420may determine one or more surveys, stored in survey data store415, to present to the user as a user activity option. Additionally, or alternatively, content selection engine420may determine a number of possible user activity options based on at least one of user profile data, available advertisements, available surveys, available item inventory accessible to charging robot110, or a predetermined number of possible user activity options. Predetermined user activity options may include, but are not limited to, viewing a network page of an electronic marketplace, participating in a crowd-sourcing activity, or the like. Such predetermined user activity options may be selected without consideration to profile information of the user.

In accordance with at least one embodiment, display manager428(a component of the charging management engine210) causes information to be displayed on the charging robot110. For example, display manager428may receive possible user activity information from content selection engine420(e.g., survey identifier(s), advertisement identifier(s), inventory item identifier(s)). Display manager428may interact with survey data store415, inventory data store412, or advertisement data store414in order to provide display instructions to communicate user activity options directly to charging robot110, or alternatively, via robot coordination manager422.

In accordance with at least one embodiment, tracking manager430(a component of the charging management engine210) receives, via application programming interface, sensor data from one or more charging robots (e.g., the charging robot110ofFIG. 1). Sensor data may include any readings taken by one or more of sensor(s)310ofFIG. 3. Tracking manager430may estimate a user location based on the sensor data. Tracking manager430may further communicate, via application programming interface418, or alternatively, robot coordination manager422, data related to the estimated user location.

In accordance with at least one embodiment, payment engine426(a component of the charging management engine210) receives, via application programming interface418, payment information associated with the user. For example, payment engine426may receive indication from service provider computers436that the user has purchased an item from an electronic marketplace. Additionally, or alternatively, payment engine426may receive information indicating that the user wishes to purchase an item accessible to the charging robot110. Payment engine426may process payment information in order to complete a purchase or lease.

In accordance with at least one embodiment, authentication engine438(a component of the charging management engine210) receives, via application programming interface418, authentication information associated with the user. For example, authentication engine438may receive a radio frequency associated with a RFID device (e.g., the RFID device(s)317ofFIG. 3). In at least one example, authentication engine438may receive authentication data in the form of a picture or video captured by, for example, imaging device(s)316ofFIG. 3. Additionally, or alternatively, authentication engine438may receive authentication data from the user via user interface(s) (e.g., user interface(s)340ofFIG. 3). The authentication engine438may authenticate the user by utilizing information contained in a data store (e.g., user profile data store406). In at least one example, authentication data may be processed using image recognition techniques or audio recognition techniques.

FIG. 5is a pictorial diagram of an example robotic device502(e.g., the charging robot110ofFIG. 1) utilized by charging management system102ofFIG. 1. The robotic device502is merely one example of a robotic device capable of being utilized by user106or charging management system102, and thus, should not be construed as limiting. It should be noted that the following features depicted inFIG. 5are not necessarily to scale.

In accordance with at least one embodiment, the robotic device502includes a variety of features, including but not limited to the features described below and/or above in connection withFIG. 3. The robotic device502may take any variety of forms. For example, the robotic device502may be a ball robot, a cart-based robot, a multi-legged robot, a quadruped robot, a wheeled robot, a modular snake robot, a humanoid robot, or the like. Moreover, the charging robots managed by the charging management system102may be the same type or form of robot, or may include robots of different types or forms.

In the example depicted inFIG. 5, the robotic device502is a ball robot. A “ball robot,” as used herein, is intended to refer to a mobile robot designed to balance on a single spherical wheel (e.g., a ball). Through a single contact point with the ground, a ball robot is omnidirectional and thus exceptionally agile, maneuverable, and organic in motion compared to other ground vehicles. Its spherical wheel enables navigability in narrow and crowded environments. A ball robot works on the same principle as that of an inverted pendulum.

The robotic device502may include a touchscreen display504(e.g., an example of user interface(s)340). The robotic device502may further include a number of charging ports506(e.g., the charging ports360ofFIG. 3). Additionally, the robotic device502may include sensor(s)508(e.g., one or more of sensor(s)310ofFIG. 3). The robotic device502may include a storage compartment510. Storage compartment510may be utilized to house one or more stored items512that may be offered to and/or purchased by a user. In an illustrative, non-limiting example, stored items512include a charging cable, an electronic device such as a mobile phone, or a stick of gum. In at least one embodiment, stored items512may include one or more items that may be purchased from an electronic marketplace and/or one or more items that may be purchased directly from the charging robot110. Thus, any suitable item offered for sale or lease may be stored within storage compartment510, including items that may be purchased/leased from the electronic marketplace. Storage compartment510may, in some cases, be locked, requiring the user to enter a code via touchscreen display504. The robotic device502may further include a projector514(e.g., an example of display(s)342ofFIG. 3). Projector514may project an electronic advertisement516received from charging management system102ofFIG. 1in accordance with methods described herein.

FIG. 6is a pictorial diagram600of another example robotic device602(e.g., the charging robot110ofFIG. 1). Robotic device602is merely one example of a robotic device capable of being utilized by user106or charging management system102, and thus should not be construed as limiting. It should be noted that the following features depicted inFIG. 6are not necessarily to scale. In the example depicted inFIG. 6, the robotic device602is a luggage trolley robot. A “luggage trolley robot,” as used herein, is intended to refer to a luggage trolley fitted with at least one motor (e.g., an actuator) capable of moving the luggage trolley, the motor being controlled by a processor unit (e.g., the processing unit(s)303ofFIG. 3).

The robotic device602may include a touchscreen display604(e.g., an example of user interface(s)340). The robotic device602may further include a number of charging ports606(e.g., the charging ports360ofFIG. 3). Additionally, the robotic device602may include sensor(s)608(e.g., one or more of sensor(s)310ofFIG. 3) located, in this example, in handle bar610. The robotic device602may include storage compartment612and storage compartment614. The storage compartment612may, in some cases, be configured to store a mobile device while charging. In some cases, charging ports606may be accessible to the mobile device stored in storage compartment612. The storage compartment614may be utilized to house one or more stored items616. In an illustrative, non-limiting example, stored items616include a charging cable, an electronic device such as a mobile phone, or a stick of gum. Any suitable item offered for sale or lease may be stored within the storage compartment614. The storage compartment612and the storage compartment614may, in some cases, be locked, requiring the user to enter a code via touchscreen display604. It should be appreciated that the storage compartment612and the storage compartment614are illustrative in nature, and that such storage compartments may exist in other locations on charging robot602.

FIG. 7is a pictorial diagram700of yet another example robotic device702. The robotic device702is merely one example of a robotic device capable of being utilized by the user106or charging management system102, and thus, should not be construed as limiting. It should be noted that the following features depicted inFIG. 7are not necessarily to scale. In accordance with at least one embodiment, the robotic device702includes a variety of features. In the example depicted inFIG. 7, the robotic device702is a humanoid robot. A “humanoid robot,” as used herein, is intended to refer to is a robot with a body shape built to resemble that of the human body. Typically, humanoid robots rely on bipedal locomotion, though other methods for movement may be utilized. In general, humanoid robots have a torso, a head, two arms, and two legs, though some forms of humanoid robots may model only part of the body, for example, from the waist up. Some humanoid robots may also have heads designed to replicate human facial features such as eyes and mouths.

In accordance with at least one embodiment, the robotic device702includes a touchscreen display704(e.g., an example of user interface(s)340). The robotic device702may further include a number of charging ports (e.g., the charging ports360ofFIG. 3) located within hand706. Additionally, the robotic device702may include sensor(s)708(e.g., one or more of sensor(s)310ofFIG. 3) located, in this example, in the head piece of charging robot702. The robotic device702may include a storage compartment710. Storage compartment710may be utilized to house one or more stored items712. In an illustrative, non-limiting example, stored items712include similar items as discussed above in connections to stored items512ofFIG. 5. Storage compartment710may, in some cases, be locked, requiring the user to enter a code via touchscreen display704. It should be appreciated that storage compartment710is illustrative in nature, and that such storage compartments may exist in other locations on charging robot702.

FIG. 8is a schematic diagram illustrating an example method800for providing electronic mobile device charging by a charging management system (e.g., by the charging management system102ofFIGS. 1 and 2) using a using a robotic device (e.g., the charging robot110ofFIG. 1) managed by the charging management system102, in accordance with at least one embodiment.FIG. 8is intended to illustrate a use case in which the charging request information is provided directly to one or more robotic devices, including the charging robot110, for a particular robotic device to be selected from determinations made collectively by the one or more robotic devices. The method begins at802, where a user106(utilizing a computing device, such as the user computing devices204inFIG. 1) a may send a charging request to the charging management system102. At803, the charging management system102may receive the request. As indicated above, the charging request may include information associated with the user106(e.g., user ID, a location associated with the user), an electronic device type, and a time. Information related to the charging request may be sent by charging management system102to one or more robotic devices (e.g., the charging robot110) at804.

As an illustrative, non-limiting example of the process for selecting a charging robot110to handle the charging request, multiple charging robots (including the charging robot110) may communicate charging capability information to other charging robots on a network. Each charging robot may execute instructions that compare received charging capabilities of another charging robot to the charging capabilities of charging robot110. For example, charging robot110compares its own charging capabilities against charging capabilities of other robots to determine if one or more of the other robots is better suited to fulfilling the charging request than the charging robot110. As an example, a charging robot (robot A) may be capable of charging an electronic device associated with a charging request to 20% capacity. The robot A may be located a distance that will take approximately five minutes for robot A to reach the user at the user's location. Another charging robot (robot B) may be capable of charging the electronic device associated with the charging request to 100% capacity. Robot B may be located at a distance that would require 2 minutes travel time for robot B to travel to the user's location. Robot A may receive charging capabilities associated with robot B and execute operations that determine 1) that robot B may charge the electronic device to a greater extent than robot A could, and/or 2) that robot B is closer to the user than robot A. Based on such determinations, robot A may execute operations that determine that robot A should not handle the charging request. Similarly, robot B, upon receiving charging capabilities associated with robot A, may execute operations that determine that robot B is best suited to fulfill the charging request due to 1) a determination that robot B is able to charge the electronic device to a greater extent than robot A, and/or 2) a determination that robot B is closer to the user than robot A. The determinations discussed above may be based, at least in part, on one or more rules associated with charging capabilities of various robots, locational rules, configuration specification of various robots, or the like. At805, robot B, upon a determination that it is the best suited charging robot to complete the charging request, may execute operations that communicate to the charging management system102that robot B will fulfill the charging request.

As a further non-limiting example, upon receipt of the charging request, each charging robot110may transmit its location to the other charging robots. Upon receipt of a transmitted location, a charging robot (e.g., the charging robot110) may compare its location to the received location. If the charging robot110ascertains that it is closer to the user106than the received location it may self-assign itself to carry out the charging request. In at least one example, after a period of time has elapsed during which no additional locations are received, the charging robot110may send information related to its identification to the charging management system102at805indicating that the charging robot110has been selected to fulfill the charging request.

At806, the charging management system102may send instructions to the identified charging robot110to carry out the charging request utilizing, for example, robot coordination manager422of the charging management engine210may send instructions to dispatch the charging robot110to a user. In at least one example, robot coordination manager422may delay dispatching the charging robot110based on a number of other charging requests. This may be the case when there is no available charging robot available (e.g., all charging robots are busy fulfilling other charging requests). Additionally, or alternatively, robot coordination manager422may delay dispatching the charging robot110based on a prioritization scheme associated with the charging requests. For example, a user that requesting 60 minutes of charging time may have a charging robot dispatched at an earlier time than a user who made a charging request at substantially the same time but who requesting only 20 minutes of charging time. The user requesting the longer charging time may be provided faster service given an assumption that the user will exchange more value (monetary or via participating in user activities) than the user requesting a shorter charging time. In some cases, for example, when there is high demand for the charging robots, users requesting shorter charging times may be given priority so as to provide more users access to the charging robots. The prioritization scheme utilized by the charging management system102may take into account various factors that are identifiable from information included in the charging request including, but not limited to, a duration of charging time, a type of electronic device to be charged, purchase information regarding an item (good or service), to name a few. Such instructions may additionally include information related to the user's location (e.g., in the event that the user has moved since issuing the request).

At807, the robotic device may navigate to the user's location as indicated in the instructions at806. Once in the user's presence, the charging robot110may request user information at808. For example, charging robot110may present, via a user interface provided by display manager428of the charging management engine210, a request for the user to enter login information associated with an electronic marketplace account. As previously discussed, login information may be utilized to obtain user profile information (e.g., past purchase information, return history, browsing history, etc.) in order to determine one or more user activity options to present to the user. Additionally, the obtained user profile information may be used to access billing and/or shipping information of the user. In at least one example, the user may enter such login information at the user interface. In some examples, the charging robot110may collect user information (e.g., biometric information to be used for login purposes) using an imaging device or RFID. Login information may also be utilized to authenticate the user and confirm that the charging robot110has arrived at and is being utilized by the user who initiated the charging request. Charging robot110may forward such user information to the charging management system102at810. At811, the charging management system102may authenticate the user using the forwarded user information. In at least one example, image recognition techniques or audio recognition techniques may be utilized to authenticate the user.

At812, charging management system102may determine one or more user activity options to present to the user, utilizing, for example, the user login information and/or the user information collected using an imaging device or RFID described above. The content selection engine420of the charging management engine210may obtain user profile information (e.g., from user profile data store406) using the user login information and/or user information collected using an imaging device or RFID. In one non-limiting example, the content selection engine420may utilize the obtained user profile information to ascertain past purchase information associated with the user in order to determine one or more user activity options (e.g., an option to view an advertisement) to present to the user via the robot. Information related to the determined user activity options (e.g., the one or more advertisements from the example above) may be sent to the charging robot110. At813, charging robot110may present the user activity options using display manager428of the charging management engine210. At814, the user106may cause an indication of user interaction to be sent to the charging robot110. As a non-limiting example, the user106may select a user activity option (e.g., by selecting a displayed hyperlink, clicking a graphical or physical button, touching a touch screen, speaking out load, or the like). As a result of the user's selection, information about the user's selection may be sent to charging robot110. For example, consider the option selected was to browse an electronic marketplace via an interface provided on the charging robot110. In this example, the user's browsing activity may cause the indication of user interaction at814. Other examples of indications of user interactions include button clicks, keyword search activity, completion of a purchase, plugging an electronic device into a charging port of the charging robot110, or the like.

In at least one example, the charging robot110may use one or more of sensor(s)310to ascertain that the user is interacting in the appropriate manner according to the user activity being conducted. In such an example, user interactions include movements of the user (e.g., an eye movement, a hand wave, a head movement, etc.). For example, if the user is required to view a video in exchange for his charging time, an imaging device on charging robot110may be utilized to “watch” the eye movements of user. Facial recognition and/or image processing techniques may be utilized to determine that the user is, in fact, watching the video (e.g., based on an estimated viewing angle of the user with respect to the robotic device, a threshold number of eye movements over a period of time, movement of suitable portion of the user, etc.). In yet other embodiments, facial recognition and or/image processing techniques (or other biometric data) may be utilized to authenticate the user and confirm that the charging robot arrived at and/or is being utilized by the intended user. In at least one example, sensor(s)310may be used to collect interaction data indicating a user interaction with the robotic device (e.g., movement by the user, proximity of the user with respect to the robotic device, or the like.). Such a determination would also send the indication of user interaction discussed above. The charging robot110may forward the indication of user interaction to the charging management system102at815.

As a non-limiting example, upon user selection of the user activity option (e.g., an option to view an advertisement), charging management system102may select one or more advertisements (e.g., from advertisement data store414ofFIG. 4) to be presented to the user based on, for example, a relevancy score between the past purchase information and the advertisement. Charging management engine102may assign a relevancy score to advertisements of the advertisement data store414based on a comparison between an item featured in the advertisement and one or more items that have been purchased by the user. As a non-limiting example, an advertisement featuring a toy for children may be assigned a higher relevancy score than an advertisement featuring a piece of jewelry due to the past purchase information indicating that the user has purchased children's toys more often than purchasing jewelry. A relevancy score may be based on a comparison of item features/details (e.g., a featured electronic item in an advertisement having a similar feature, for example, an high definition feature, as an electronic item previously purchased by the user on an electronic marketplace). A relevancy score may be based on comparison of an item category (e.g., the featured item being associated with a same, or similar, category as a category, for example “housewares,” from which the user has purchased items in the past). Any suitable user profile information may be utilized to determine relevancy scores including, but not limited to, browsing information of the user, return history of the user, user-specified preferences associated with preferred advertisement categories, or the like.

Upon receipt of the indication of user activity (e.g., the user submits payment information, the user completes a survey, the user views an advertisement, or completion of any user activity provided in exchange for charging an electronic device from the power source(s)370of the charging robot110, etc.) charging management system102may authorize the charge of the electronic device at816. In at least one example, the authorization indicates to the charging robot110a period during which the user is authorized to charge the electronic device. Any suitable charging period may be authorized and, in some cases, may depend on the user activity, the user interaction, the number of users currently requesting a charge, and other relevant considerations.

For example, particular user activities may receive more or less charging time than other user activities. For example, a user who purchases/leases an item from an electronic marketplace, or alternatively, from the charging robot110, may receive more authorized charging time (e.g., 30 minutes of charging time) than a user who completed a user activity of watching a number of advertisements using the charging robot110(e.g., 10 minutes of charging time). Purchasing a stick of gum from the charging robot may result in less charging time than, for example, purchasing a charging device from the charging robot110. In accordance with at least one embodiment, charging time may be based on a monetary purchase threshold (e.g., 30 minutes of charging time for purchasing an item for a price greater or equal to $2.00, 45 minutes of charging time for purchasing an item priced greater or equal to $5.00, etc.). Items may be purchased/leased from an electronic marketplace and delivered by the charging robot110or items may be purchased/leased directly from the charging robot110. The amount of charging time allotted may be additionally, or alternatively, based on an amount of time that it takes the user, or an assumed amount of time that it will take the user, to complete a user activity. For example, charging time may be given on charging robot110for as long as the user continues to interact with the charging robot110(e.g., while using a user interface on charging robot110to browse an electronic marketplace). In some examples, charging time may be allotted only on completion of a user activity (e.g., completion of a survey) or based on a predetermined allotment of time (e.g., 30 minutes has been predetermined to be allotted upon completion of a human intelligence task such as identifying text in a picture). In at least one example, the user may simply pay a predetermined fee in exchange for a period of charging time (e.g., 30 minutes of charging time for $5.00). The fee may vary depending on the period of charging time purchased. Such payments may be processed by submission of payment information at a user interface of the charging robot110. Payment information may be transmitted to payment engine426of the charging management engine210. Upon completion of payment, the charging management system102may authorize the charging robot110to provide the charge to the electronic device of the user causing the charging robot110to provide the charge to the electronic device at817. Fee payment(s) may be conducted at an electronic marketplace (e.g., a user buys 60 minutes of charging time to user now or at a later date). Charging time may, in some cases, be discounted as the amount of purchased charging time increases (e.g., $2.00 for 10 minutes, $5.00 for 30 minutes, $7.00 for 60 minutes, etc.).

In at least one example, while the charging robot110is charging the device, the user may utilize the user interfaces of the charging robot110to peruse an electronic marketplace, to view items stored on the charging robot110that are available for purchase, to view advertisements, to play a game, to access electronic content (e.g., music, movies, and television), or the like. The charging robot110may display a percentage of charge, and/or charge time remaining to charge the electronic device. The user, in some cases, may be provided the option to purchase rapid charging time. For example, a user may purchase or otherwise exchange user interaction for charging time using a 2-amp capable charger. The user may additionally, or alternatively, choose to purchase, or otherwise exchange user interaction for charging time using a 5-amp capable charger. The 5-amp capable charger may charge the electronic device at a faster rate than the 2-amp capable charger and, in some cases, may be purchased and/or exchanged for more monetary or user activity value than the 2-amp capable charger. In at least one embodiment, the charging robot110may throttle, or otherwise control, the electrical current used by a charging port(s)360of the charging robot110so as to control the rate of electrical current flowing to the electronic device. At818, in accordance with at least one embodiment, the charging management system102may determine (e.g., utilizing clock375ofFIG. 3) that the authorized period has passed. Based on such a determination, the charging management system102may revoke charging authorization at819causing, at820, the charging robot110to discontinue charging the electronic device. In at least one example, charging robot110may take a remedial action upon receipt of the authorization revocation. For example, charging robot110may alert the user106, either audibly or visually that charging has ceased. Additionally, or alternatively, the charging robot110may physically detach the electronic device upon receiving authorization revocation. The charging robot110, in some cases, may discontinue the charging of the electronic device, with or without an alert to the user.

FIG. 9is a flow chart illustrating another example method900for providing electronic mobile device charging by a charging management system (e.g., the charging management system102ofFIGS. 1 and 2) using a robotic device (e.g., the charging robot110ofFIG. 1), in accordance with at least one embodiment.FIG. 9is intended to illustrate a use case in which the charging management system102determines a particular charging robot (e.g., the charging robot of110) from a group of charging robots. The method may begin at block902where a request to charge an electronic device is received by the charging management system102from a user computing devices204utilized by the user.

At block904, a particular charging robot (e.g., the charging robot110ofFIG. 1) of a number of charging robots may be selected by the charging management system102to perform a charge of the electronic device indicated in the request (e.g., a subset of known operational charging robots). As an illustrative, non-limiting example, multiple charging robots may communicate charging capability information to the charging management system102. Such information may be stored by, for example, the robot coordination manager422ofFIG. 4. A component of the charging management system102(e.g., the robot coordination manager422) may compare received charging capabilities of the various charging robots to determine a particular charging robot to assign the charging request. These comparisons may be used to determine, for example, an best suited charging robot for completing the charging request. As an example, the charging robot110(robot A for this example) may be capable of charging an electronic device associated with a charging request to 20% capacity. The robot A may be located a distance that will take approximately five minutes for robot A to reach the user at the user's location (e.g., included in the charging request). Another charging robot (robot B) may be capable of charging the electronic device associated with the charging request to 100% capacity. Additionally, robot B may be located at a distance that would require 2 minutes travel time for robot B to travel to the user's location. The charging management system102may score, or otherwise assess, the capabilities of robot A and robot B. Scores may be calculated based on, a charging configuration of each charging robot (e.g., what charging port(s) are available on the charging robot), a charging rate (e.g., a 2-amp charging capability) of the charging robot, a location of the charging robot, a location of the user, an electronic device to be charged, an inventory located on or accessible to the charging robot, a location of inventory accessible to the charging robot, a remaining charge on the charging robot, a location of a charging station where the charging robot may recharge itself, a specification of the space the user and/or the charging robot (e.g., a map of an airport at which the user and the charging robot are currently located), or the like. The determinations discussed above may be based on one or more rules associated with charging capabilities of various robots, locational rules, configuration specification of various robots, or the like.

At block906, information related to the request may be sent to the selected charging robot in order to dispatch the selected charging robot to the user's location. At block908, after selection of a robotic device as described above, a robotic device (e.g., the selected robotic device) may be dispatched. At block910, an indication of a user interaction with the charging robot110may be received (e.g., utilizing an interface presented to the user by the robotic device). The indication of user interaction with the robot B may include any example discuss herein, including completing a survey, viewing an advertisement, accessing electronic content, playing a game, or the like. While the charging robot110is charging the device, the user may utilize the user interfaces of the charging robot110to peruse an electronic marketplace, to view items stored on the charging robot110that are available for purchase, to view advertisements, to play a game, to access electronic content (e.g., music, movies, and television), or the like. At block912, the charging request may be authorized based on the indication of the user interaction.

At block914, the charging management system102may detect completion of the charging request. In at least one example, detection may constitute an alarm or other indication of time elapse (e.g., the user was allotted 30 minutes and the charging management system102has detected that 30 minutes have elapsed). Detection may additionally, or alternatively, constitute receipt of an indication of completion of the charging request from robot B. Upon detection of completion of the charging request, the charging management system102may communicate instructions to the charging robot that cause the charging robot to cease charging of the electronic device. Additionally, the charging management system102may communicate instructions that cause the charging robot to alert the user of the completion of the charging request and/or to provide the user with an option to continue charging (e.g., in exchange for a fee or completion of a user activity).

At block916, the charging management system102may update information (e.g., robot availability, charging capabilities, location, etc.) associated with the robotic device according to the completion of the charging request. In some cases, for example, if the robotic device is below a predetermined battery level threshold, the charging management system102may communicate instructions to the robotic device that cause the robotic device to seek charging of its internal power sources (e.g., power source(s)370ofFIG. 3).

FIG. 10is a schematic diagram illustrating yet another example method1000for providing electronic mobile device charging by a charging management system (e.g., the charging management system102ofFIG. 1andFIG. 2) using a robotic device (e.g., charging robot110ofFIG. 1), in accordance with at least one embodiment.FIG. 10is intended to illustrate a use case in which the charging management system102determines a particular charging robot (e.g., the charging robot of110) from a group of charging robots based on location. The method1000may begin at block1002, where a user106sends a charging request to the charging management system102. At1003, the charging management system102receives the request (e.g., via application programming interface418and charging request manager424ofFIG. 4). As indicated above, the charging request may include information associated with the user106(e.g., user login information, a location associated with the user), an electronic device type, and a time. Such information associate with the user may be used to access user information including, but not limited to, billing and/or shipping information, past purchase information, return history, etc. The information associated with the user may be used to authenticate the user.

In accordance with at least one embodiment, the charging management system102determines one or more locations of one or more charging robot110at1004. For example, the charging management system102sends a request to a subset of the charging robots requesting available devices to respond. Additionally, or alternatively, the charging management system102consults, for example, a mapping indicating available charging robots. Further, charging management system102may determine the subset based on which charging robots are capable of charging an electronic device of the type indicated in the charging request. “Capable”, as used herein, is intended to mean that the charging robot is operational, the charging robot has a charging configuration that is enabled to charge electronic devices of the same type as the electronic device, the charging robot is not otherwise occupied (e.g., already charging an electronic device or otherwise being used), the charging robot has over a threshold amount of battery power remaining, and in some cases, the charging robot is within a threshold distance of the user, or any combination above. At1005, charging management system102may select a charging robot to carry out the charging request, in this case, by determining a charging robot nearest to the user's location. At1006, charging management system102may send information about the charging request to the selected charging robot utilizing, for example, the robot coordination manager422ofFIG. 4.

At1007, after being dispatched by the charging management system102, the charging robot110may navigate to the user's location as indicated in the instructions at806. Once in the user's presence, the charging robot110may provide user106(e.g., according to instructions received and/or determined by display manager428ofFIG. 4) a number of user activity options (e.g., determined by content selection engine420ofFIG. 4) at1008. At1009, user106may cause an indication of user interaction (e.g., a button-click, selection, or other interface element selection) to be sent to the charging robot110in a similar manner as described above in connection withFIG. 8. The charging robot110may send the indication of user interaction to charging management system102at1010.

Upon receipt of the indication of user interaction, charging management system102may authorize the charge at1012. In at least one example, the authorization indicates to the charging robot110a period of time during which the user is authorized to charge the electronic device. As discussed above, any suitable period of time may be authorized and, in some cases, may depend on the type of user activity, a number of users currently requesting a charge, and other considerations. In at least one example, if a number of charging requests exceeds a threshold amount (e.g., indicating that X number of users are waiting) charging times allowed may be decreased for one or more users to increase charging robot availability. Alternatively, the number of charging requests may be ignored, and any suitable charging period of time may be allowed to users completing particular user activities. As a non-limiting example, a user who pays for the charging time may not have his time decreased (e.g., as a result of high charging time demand), while a user who is viewing an advertisement in exchange for charging time may have his time decreased (e.g., as a result of high charging time demand). As previously mentioned, completion of some user activities result in more or less charging time than other completion of other user activities. The charging robot110may commence charging the electronic device at1013.

In accordance with at least one embodiment, the charging robot110“follows” the user while charging the electronic device. Consider the case where the user106has purchased a period of charging time and is shopping (e.g., in a shopping center). Once charging commences, the charging robot110may utilize any suitable combination of sensor(s)310to determine that the user106is moving. Such data may be sent to charging management system102at1014. Upon receipt of such data, charging management system102(e.g., the tracking manager430ofFIG. 4) may, for example, utilize a map (e.g., digital floor plans of the shopping center obtained from map data store408ofFIG. 4) and/or sensor data indicating obstacles between the charging robot and the user. The charging management system102may utilize the map and the sensor data to track the user through the shopping center. As the charging management system102tracks the user106through the shopping center, instructions may be sent periodically to charging robot110indicating instructions to maintain a threshold distance between the charging robot110and user106. Such instructions may include operations that cause the charging robot110to increase or decrease speed, to change or maintain a heading, or the like. Such instructions may be based on sensor data and the map. This tracking process may continue until the user stops moving, until the electronic device is disconnected from charging robot110, upon user specification, or at any suitable time.

FIG. 11is a block diagram illustrating still one further example method1100for providing electronic mobile device charging by a charging management system (e.g., the charging management system102ofFIG. 1andFIG. 2) using a robotic device (e.g., charging robot110), in accordance with at least one embodiment.FIG. 11is intended to illustrate a use case in which the charging management system102provides instructions to the robotic device to maintain a threshold distance with respect to the user. The method may begin at block1102, where a request charge an electronic device may be received. In at least one example, the request may be received from the user utilizing a client application (e.g., the client application206ofFIG. 2) running on the electronic device. In another example, a request may be sent automatically by an application running on the electronic device, the request being initiated, for example, in response to a determination by the application that the battery power of the electronic device is below a threshold value (e.g., under 10% remaining). The request may indicate a location of the user. In yet another example, the request may indicate that the robotic device is to provide the user with an item (e.g., stored on the robotic device).

At block1104, a robotic device may be selected to perform a charge of the electronic device, the robotic device being selected from a plurality of robotic devices within a proximity of the location of the user. For example, robotic devices located within a proximity of the location of the user may be determined by utilizing location information of each of the robotic devices (e.g., using GPS coordinates, map data, or the like) and the location of the user (e.g., using GPS coordinates, map data, or the like). In accordance with at least one embodiment, information related to the request may be sent to one or more robotic devices of the plurality of robotic devices within a proximity of the location of the user. For example, robotic devices that are located within the proximity of the location of the user may first be identified. The request may then be sent only to those identified robotic devices. As discussed above, the robotic devices may communicate with one another to determine a best suited robotic device for fulfilling the charging robot. The selected device may communicate the self-assignment to the charging management system102. Alternatively, the charging management system102may select the robotic device to perform the charge by utilizing information including, but not limited to location data of the robotic device and the user and capability information of the robotic devices.

At block1106, the robotic device may be dispatched to the location of the user. For example, charging management system102may send instructions to the robotic device that, when executed, cause the robotic device to travel to the user. In another example, charging management system102may provide a location of the user and the robotic device may calculate a traversal path to the user.

At block1108, an indication of user interaction with the selected robotic device is received (e.g., by the charging management system102). As discussed above, the indication of user interaction may include, but is not limited to, button clicks, keyword search activity, completion of a purchase or lease, sensor data, to name a few.

At block1110, instructions are sent to the selected robotic device (e.g., by the charging management system102). The instructions, when executed, cause the charging of the electronic device to commence, the instructions may be sent based on the received indication of user interaction.

At block1116, the location of the user is tracked while the robotic device is performing the charge of the electronic device. For example, sensor(s)310on the robotic device, map data, video feed (e.g., provided by a source other than the robotic device), or any suitable combination of the above, may be utilized to track the location of the user as described in the examples above.

At block1114, the robotic device may be instructed to follow the user at a threshold distance from the user. For example, charging management system102may transmit instructions to the robotic device that, when executed, cause the robotic device to follow the user at a threshold distance from the user. In another example, charging management system102may provide periodic location updates with respect to the user and the robotic device may calculate a traversal path each location update.

FIG. 12is a block diagram illustrating an example method1200for leasing an electronic device by a user using a charging management system (e.g., the charging management system102) and a robotic device, in accordance with at least one embodiment.FIG. 12is intended to illustrate a use case in which the user may lease an electronic device at one location and return the electronic device at another location. The flow may begin at1202where a request to lease an electronic device is received by the charging management system102from a user at a first location (e.g., a departure airport). In at least one example, the request to lease may pertain to an electronic device (e.g., a tablet PC preloaded with one or more movies).

At block1204, information related to the request may be sent by the charging management system102to one or more robotic devices of a plurality of robotic devices at the first location (e.g., the departure airport). At1206, an indication of a user interaction with a first robotic device of a plurality of robotic devices may be received by the charging management system102. Such an indication may be received using an interface presented to the user by the first robotic device.

At block1208, instructions for the first robotic device to provide the electronic device (e.g., the preloaded tablet PC) to the user may be sent by the charging management system102. At block1210, a request to return the electronic device provided by the first robotic device may be received by the charging management system102from the user (e.g., the user's electronic device) at a second location (e.g., an arrival airport). In at least one example, the request to return the electronic device may be sent from the electronic device or another electronic device. At block1212, information related to the return request may be sent by the charging management system102to one or more robotic devices of a plurality of robotic devices available at the second location (e.g., the arrival airport).

At block1214, instructions may be provided to the user (e.g., via a user interface presented on a second robotic device) to return the electronic device to the second robotic device. At block1216, an indication may be received from the second robot indicating that the electronic device has been returned.

FIG. 13is a block diagram illustrating an example method1300for performing an action with respect to an electronic device by a charging management system (e.g., the charging management system102) using a robotic device, in accordance with at least one embodiment.

At block1302, a request to perform an action (e.g., charging of an electronic device) may be received. At block1304, information related to the request may be sent to one or more robotic devices of a plurality of robotic devices. In at least one example the one or more robotic devices may be within a proximity of a location of the user (e.g., within 300 yards).

At block1306, a robotic device of the plurality of robotic devices is determined to be responding to the request to perform the action with respect to the electronic device. For example, a charging robot (e.g., the charging robot110ofFIG. 1) may transmit information indicating that the charging robot110is responding to the request. In another example, the charging management system102may determine the charging robot110is responding to the request based on (e.g., based on GPS information indicating that the charging robot110is traveling to the user and/or that the charging robot110is within a threshold distance of the user).

At block1308, an indication that the user has interacted with the robotic device is received. At block1310, instructions to perform the action with respect to the electronic device are sent to the robotic device (e.g., the charging robot110).

Examples included in the present disclosure have included electronic charging examples. It should be noted that the charging management system102described herein may provide services other than electronic charging. For example, the charging management system102, in a similar manner as described in connection to the figures above, may provide additional, or alternative services such as any combination of the following: software updates, virus scanning, content downloads, video game playing (e.g., utilizing the display/interfaces of the robot and/or utilizing the robot as an opponent), item retrieval (e.g., luggage retrieval), storage space (e.g., locked and/or unlocked), item transport (e.g., luggage carrying), handicap assistance (e.g., attaching to and pulling a wheelchair to a designated location), travel information (e.g., flight times, tourism information, etc.), or the like.

In the description above, various embodiments of the present disclosure have been described. For purposes of explanation, specific configurations and details have been set forth in order to provide a thorough understanding of the embodiments. However, it will also be apparent to one skilled in the art that the embodiments may be practiced without the specific details. Furthermore, well-known features may have been omitted or simplified in order not to obscure the embodiment being described.