This disclosure relates generally to massage robots.
Many people enjoy receiving massage and enjoy the health benefits of massage. However, in most cases, people receive massage at a massage parlor or other type of studio. To do this, people typically must make appointments in advance, must leave their homes and travel to the studio and must spend time to find a good studio and masseuse. If the studio closes or the masseuse leaves, the person must start over and find another acceptable provider of massage treatment. Treatments and their quality may also vary from one studio to the next, and even between masseuses within a studio. In addition, if the person is not using the same masseuse and studio on a regular basis, there may be no past history about the person and his massage treatments, and the masseuse may not perform massage according to the person's personal preferences or to address the person's specific idiosyncrasies or problem spots.
Thus, there is a need for better and more convenient approaches to provide massage.
The present disclosure overcomes the limitations of the prior art by providing a massage robot that uses machine vision to locate treatment spots for massage. In one approach, a massage robot includes one or more robotic arms, an image sensor and a control system. The image sensor captures images of the user. The control system includes an image processing module and a motion controller. The image processing module processes the images to locate a treatment spot on the user. The motion controller controls the robotic arm to perform a massage procedure on the identified treatment spot.
The massage can be personalized by selecting the massage procedure based on the identity of the user, for example based on the user's past history of massages, on the user's personal preferences or on instructions from a massage professional treating the user.
Sensors other than machine vision can also be used. Examples include ultrasound sensors, touch sensors, pressure sensors, and temperature sensors. In some designs, the robotic arm can be fitted with different end effectors, which are selected based on the desired massage procedure.
Other aspects include components, devices, systems, improvements, methods, processes, applications, computer readable mediums, and other technologies related to any of the above.
Embodiments of the disclosure have other advantages and features which will be more readily apparent from the following detailed description and the appended claims, when taken in conjunction with the examples in the accompanying drawings, in which:
The figures and the following description relate to preferred embodiments by way of illustration only. It should be noted that from the following discussion, alternative embodiments of the structures and methods disclosed herein will be readily recognized as viable alternatives that may be employed without departing from the principles of what is claimed.
Different types of robotic arms can be used, with different degrees of freedom. Typically, the robotic arm will have from 3-7 degrees of freedom. Example degrees of freedom include shoulder, elbow, wrist, finger/hand manipulators, and telescoping upper arm or forearm. If the robotic arm can be fitted with different end effectors, the control system 150 may also select the appropriate end effector and control the robotic arm to automatically change to the correct end effector. Examples of end effectors include those with fingers (typically from one to five, with or without thumb) or pad without fingers.
The massage robot 100 may also include other sensors 135. Examples include an ultrasound sensor to capture ultrasound images, a pressure sensor to sense the pressure exerted by the robotic arm on the treatment spot, a touch sensor to detect the hardness or firmness of the treatment spot, and a temperature sensor to detect the temperature of the treatment spot. Information from these sensors can also be processed 137 by the control system 150 and used by the motion controller 155 to control the robotic arm.
A personalization module 140 is used to personalize the massage procedure for the user. It first identifies the user. For example, the user may be identified when he logs into his user account for the massage robot or for a home network connected to the robot. Alternately, the user may be identified by face recognition or other techniques. Once the user is identified, the personalization module 140 determines the appropriate massage procedure based on the user's identity. For example, the massage procedure may be selected based on the user's profile 142. Perhaps the user has specified certain types of massage on specific days of the week. Alternately, the massage procedure may be defined by a massage professional treating the user. The professional's instructions specifying certain types of massage for the user may be stored somewhere and retrieved by the massage robot 100.
Alternately, the massage robot 100 may determine or suggest a massage procedure based on the user's prior history 143 of massages. If in the past the user has received upper back massage on Tuesday and Thursday and whole body massage on Saturday, and today is Saturday, then the massage robot 100 may assume whole body massage or may ask the user whether he would like a whole body massage. The massage procedure may also be selected based on the user's medical record, such as a record of back pain at certain locations.
The massage procedure may also be determined based on the user's pose. If the user is lying face down with exposed back, legs and arms, the massage robot 100 may determine that the user would like a whole body massage. If the user is sitting with back facing the robot 100, the robot may determine that some sort of back massage is appropriate.
Returning to
User: “Assistant, may I please have a beer?”
Assistant retrieves a beer from the refrigerator and delivers it to User. Assistant's camera captures images of User, and determines that she is sitting in her favorite chair and watching TV. Assistant also knows that User has requested a beer. Based on this pattern and User's past history, Assistant asks, “I see today is Wednesday and you look tired. Would you like a back massage?”
User: “Yes. That would be good.”
Assistant: “Please move to the massage chair and prepare for back massage.”
User moves to the massage chair, where her face is facing the chair back and her back is exposed.
Assistant determines from its captured images that User is sitting in the massage chair and that the back is exposed ready for massage, but the pose is not quite right. Assistant instructs, “Please sit straight and move slightly to the left.” Assistant also determines that User is still drinking beer. Assistant warns, “Drinking while receiving massage is not recommended. Please put down your beer.”
User follows Assistant's instructions. Assistant determines that User's pose is now ready for massage. From User's profile and past history, Assistant selects a general 15-minute massage of the upper back and also notices that User recently has had an especially tight right trapezius. Assistant: “I will perform your usual upper back massage. Is your right side still bothering you?”
User: “15-minute back massage is fine. My right side is not painful, but still tight. Better than last time.”
Assistant begins the massage of the upper back. The vision system guides the end effector of the robotic arm to carry out a specific pattern of massage and/or to address specific problem areas. The image processing module 132 determines the location of the upper back, possibly including anatomical landmarks such as the spinal column, neck and trapezius muscles. Massage is applied to different treatment spots based on the captured images. The massage may be applied with different size pressure areas and different amounts of pressure. The motion controller 155 preferably controls the location of the massage, the pressure of the massage, and the speed and/or length of massage strokes.
In this example, Assistant changes the end effector of the robotic arm to a long broad end effector and begins the massage by applying massage oil to User's back and stroking from the spine outwards in order to emulate a general back massage by a masseuse's forearm.
Assistant then changes to a tennis-ball sized end effector with more of a pressuring motion rather than a stroking motion to emulate pressure by a masseuse's palm. The amount of pressure is based on the pressures recorded for User's last massage. Assistant works a pattern of palm pressures across User's back. During this pattern, sensors in the end effector detect a small knot on the left side and note the location for later treatment. As another example where the massage robot itself may detect problem areas, if the image sensor is a thermal camera, the image processing module 132 may process the thermal images to identify unusually hot spots or temperature peaks for treatment.
Assistant then changes to a smaller size end effector to emulate a more localized pressure massage by fingers and thumbs. Assistant starts by applying pressure to both sides of the spinal column, working up and down the spinal column. It then massages specific spots, including the identified knot. Assistant applies concentrated pressure to the knot area. User yells, “Ouch. That hurts.”
Assistant stops and asks, “Is that too much pressure?”
User: “No. It is okay. Just a little sensitive.”
Assistant continues with the same amount of pressure, but with more of a kneading motion rather than just direct pressure.
Assistant: “How is that?”
User: “Better. Thank you.”
Assistant: “I am going to add some heat. OK?”
User: “OK.”
Assistant increases the temperature of the end effector and finishes treatment of the knot in this manner. In some cases, the massage time may be a predetermined time period: five minutes for example. Alternately, the Assistant may massage the knot until sensors indicate the knot has been released or until User instructs the Assistant to stop.
Assistant then moves to the right trapezius. Assistant changes to opposing end effectors. The opposing end effectors may be either on the same robotic arm or on different robotic arms. Opposing end effectors may be used to emulate pinching or squeezing motions. Assistant uses the opposing end effectors to massage the right trapezius.
When this part of the procedure is completed, Assistant states, “Massage is completed.” User replies, “Good. Thanks.”
In another aspect, the massage robot may be part of a home network.
The home devices 410 are household devices that are made available to the different persons associated with the residential environment 400. Examples of other home devices 410 include HVAC devices (e.g., air conditioner, heater, air venting), lighting, powered window and door treatments (e.g., door locks, power blinds and shades), powered furniture or furnishings (e.g., standing desk, recliner chair), audio devices (e.g., music player), video device (e.g., television, home theater), environmental controls (e.g., air filter, air freshener), kitchen appliances (e.g., rice cooker, coffee machine, refrigerator), bathroom appliances, and household robotic devices (e.g., vacuum robot, robot butler). The home devices 410 can include other types of devices that can be used in a household.
The resident profiles 430 typically include information about the different residents, such as name, an identifier used by the system, age, gender, and health information. The resident profiles 430 can also include settings and other preferences of the home devices 410 selected by the different residents.
The network 420 provides connectivity between the different components of the residential environment 400 and allows the components to exchange data with each other. The term “network” is intended to be interpreted broadly. It can include formal networks with standard defined protocols, such as Ethernet and InfiniBand. In one embodiment, the network 420 is a local area network that has its network equipment and interconnects managed within the residential environment 400. The network 420 can also combine different types of connectivity. It may include a combination of local area and/or wide area networks, using both wired and/or wireless links. Data exchanged between the components may be represented using any suitable format. In some embodiments, all or some of the data and communications may be encrypted.
The functionality described above can be physically implemented in the individual massage robot (one of the home devices 410), in a central hub for the home network, in a cloud-based service or elsewhere accessible by the massage robot via the network 420, or in combinations of any of the above.
Although the detailed description contains many specifics, these should not be construed as limiting the scope of the invention but merely as illustrating different examples. It should be appreciated that the scope of the disclosure includes other embodiments not discussed in detail above. Various other modifications, changes and variations which will be apparent to those skilled in the art may be made in the arrangement, operation and details of the method and apparatus disclosed herein without departing from the spirit and scope as defined in the appended claims. Therefore, the scope of the invention should be determined by the appended claims and their legal equivalents.
Alternate embodiments are implemented in computer hardware, firmware, software, and/or combinations thereof. Implementations can be implemented in a computer program product tangibly embodied in a machine-readable storage device for execution by a programmable processor; and method steps can be performed by a programmable processor executing a program of instructions to perform functions by operating on input data and generating output. Embodiments can be implemented advantageously in one or more computer programs that are executable on a programmable system including at least one programmable processor coupled to receive data and instructions from, and to transmit data and instructions to, a data storage system, at least one input device, and at least one output device. Each computer program can be implemented in a high-level procedural or object-oriented programming language, or in assembly or machine language if desired; and in any case, the language can be a compiled or interpreted language. Suitable processors include, by way of example, both general and special purpose microprocessors. Generally, a processor will receive instructions and data from a read-only memory and/or a random access memory. Generally, a computer will include one or more mass storage devices for storing data files; such devices include magnetic disks, such as internal hard disks and removable disks; magneto-optical disks; and optical disks. Storage devices suitable for tangibly embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM disks. Any of the foregoing can be supplemented by, or incorporated in, ASICs (application-specific integrated circuits) and other forms of hardware.
The term “module” is not meant to be limited to a specific physical form. Depending on the specific application, modules can be implemented as hardware, firmware, software, and/or combinations of these. Furthermore, different modules can share common components or even be implemented by the same components. There may or may not be a clear boundary between different modules, even if drawn as separate elements in the figures.