This patent relates generally to the field of controllable machines, and in particular to systems and methods for controlling a controllable machine through the use of motion available to a user.
Machines can assist people who do not have the ability to walk. Certain machines, like manual wheelchairs, allow a person to move by pushing the wheels of the chair with their arms. Powered wheelchairs allow a person to move using a powered motor. A powered wheelchair may have a joystick, which directs the movement of the wheelchair. This allows the user to move the wheelchair without relying on the user's strength from his or her arms.
Some people are paralyzed, and have suffered the partial or total loss of use of all their limbs and torso. Some people with tetraplegia retain the limited use of the upper portion of their torso, but may not be able to use their arms to move a joystick of a powered wheelchair.
People with tetraplegia often retain some level of mobility of the upper body. A person's residual mobility may be used to enable control of computers, wheelchairs and other assistive devices. A control device is needed based on wearable sensors that adapt their functions to the users' abilities.
In the prior art, one system uses cameras to track infrared light sources to control a machine for a tetraplegic user. However, fluctuations in ambient and natural light compromise the functionality of the system. Another system is known in the prior art that relies on a single sensor placed on the head of the machine user. However, that system is compromised by head movements that affect the direction of gaze, does not rely on the residual mobility in the upper body of the machine user, which is usually more robust than the mobility of the head alone.
A method for controlling a powered wheelchair is disclosed. The method may comprise receiving first information from at least one user sensor coupled to a user of the wheelchair, said first information indicating the movement of the user; receiving second information from a reference sensor coupled to the wheelchair, said second information indicating the movement of the wheelchair; using the first information and the second information to prepare at least one instruction to move the wheelchair; and using the at least one instruction to move the wheelchair.
A tangible storage medium storing a program having instructions for controlling a processor to control a powered wheelchair is also disclosed, the instructions comprising receiving first information from at least one user sensor coupled to a user of the wheelchair, said first information indicating the movement of the user; receiving second information from a reference sensor coupled to the wheelchair, said second information indicating the movement of the wheelchair; using the first information and the second information to prepare at least one instruction to move the wheelchair; and using the instruction to cause the wheelchair to move.
This patent discloses a device that facilitates operation of a machine, such as a wheelchair, by a user. The user dons a wearable item. User sensors are attached to the wearable item. One reference sensor is attached to the machine. The user sensors and reference sensor measure motion. The sensors are connected to a computing device. The computing device uses data collected from the sensors to move the machine in a desired direction. Feedback provides the user with the state of each control command, as well as indicating the direction the machine is moving in response to information from the sensors. Examples of feedback include a monitor mounted to the machine, or feedback provided through a vibrating actuator on the user's sleeve. The above description is intended to be an illustrative guide to the reader, and should not be read to limit the scope of the claims.
Controller 102 may be configured to provide processing or computing resources to computing device 10. For example, controller 102 may be responsible for executing control module 110 described herein to cause movement of machine 30. Controller 102 may also be responsible for executing other control modules or other modules such as application programs.
Computing device 10 may comprise memory 104 coupled to the controller 102. In various embodiments, memory 104 may be configured to store one or more modules to be executed by the controller 102.
Although memory 104 is shown in
Computing device 10 may comprise an input/output (I/O) interface 106 coupled to the controller 102. The I/O interface 106 may comprise one or more I/O devices such as a serial connection port, an infrared port, integrated Bluetooth® wireless capability, and/or integrated 802.11x (WiFi) wireless capability, to enable wired (e.g., USB cable) and/or wireless connection between computing device 10 and sensors 50 or between computing device 10 and machine 30. In the exemplary embodiment, the I/O interface 106 may additionally comprise a PhidgetAnalog 4-Output (Phidgets Inc., Alberta, Canada). I/O interface 106 takes digital information from controller 102 and outputs it in the form of analog voltage signals. Output from I/O interface 106 may be used to control machine 30.
The system described herein may further comprise a wearable item that assists the user in controlling the machine 30. In one embodiment, wearable item may take the form of a vest 60 shown at
In embodiments of the system described herein, control commands 25 used for moving machine 30 are defined by body movements of the user 40. In one embodiment, user sensors 52 comprise inertial measurement units (IMUs) (sold under the name XTi, from Xsens (Culver City, Calif.)) placed in front and behind each shoulder of user 40 as shown in
User 40 may be tetraplegic or have a similar condition that prevents him or her from using a standard I/O interface 106 such as a joystick to control machine 30. In one embodiment, I/O interface 106 is used to convert information from user sensors 52 into control commands 25 sent to computing device 10 causing machine 30 to move, such that a joystick is not needed.
Control module 110 may comprise a set of instructions that may be executed on controller 102 to cause machine 30 to move. In one embodiment, control module 110 makes use of the greatest ranges of motion available to user 40. For instance, in case of arm paralysis due to a stroke, user 40 is unable to make a particular motion, control module 110 will not use that motion to control machine 30. In one embodiment, the control module 110 utilizes a control space with eight dimensions, with each dimension representing either roll or pitch changes, from four user sensors 52, due to user 40 movements over time.
The steps in
In 510, when the user has completed the training dance, control module 110 prepares a weighing matrix WM that weighs the values of the instantaneous position information (discussed in more detail below). In one embodiment, WM is prepared with a statistical technique known in the art as Principal Component Analysis (PCA), using the information collected during training phase 500 from user sensors 52. This transformation is defined in such a way that the first principal component accounts for as much of the variability in the information received from each measure (such as roll or pitch) from each user sensor 52, and each succeeding component in turn has the highest variance possible under the constraint that it be orthogonal to (i.e., uncorrelated with) the preceding principal components. Control module 110 performs orthogonal transformation to convert the set of information collected from user sensors 52 during the training phase 500 into weighing matrix WM. In one embodiment, WM consists of a 2×8 matrix, where each 1×8 vector in WM represents one of two principal components: a first component to control the translational movement of machine 30 and a second component to control the rotational movement of machine 30. Table A reflects possible WM values for one user 40 of the system. It should be understood that other users 40 will have different ranges of movement, and so their WM values would likely differ from those set forth in Table A.
In other embodiments, WM may be more generally represented as an m×n matrix, where m is the number of desired principal components and n is the number of inputs from user sensors 52. In other embodiments, WM may be more generally represented as an m×n matrix, where m is number of control signals 25 sent to machine 30 and n is the number of inputs from user sensors 52. In other embodiments, additional principal components could be used to control machine 30 in supplementary modes, for example, to have machine 30 take a different action (such as a mouse click). In one embodiment, WM may be altered to encourage user 40 to make movements that may have some rehabilitative benefits. For example, if user 40 has a motor disorder that impairs one side of the body more than the other, the specific components of WM can be altered so as to encourage the user 40 to use the weaker side of their body more when controlling machine 30. This embodiment serves the dual purposes of controlling machine 30 while also providing some rehabilitative benefits for user 40.
In 602, control device 10 is turned on and control module 110 is executed. In one embodiment, control module 110 is executed through Matlab. In 604, user sensors 52 send information regarding roll and pitch measures (or other appropriate measures) to control device 10 for receipt by control module 110. Also in 604, reference sensors 54 also send information regarding roll and pitch measures (or other appropriate measures) to control device 10 for receipt by control module 110. In 606, control module 110 prepares an unadjusted instantaneous position matrix uIM. In one embodiment, uIM is an 8×1 vector including roll values and pitch values from each of the four user sensors 52. In other embodiments, uIM may be more generally represented as an m×1 matrix, where m is the number of measures received from user sensors 52. In 608, control module 110 prepares a machine position matrix mIM from the values of measures sent by reference sensors 54. In 610, having mIM and uIM, control module 110 prepares an instantaneous position matrix IM, which is the user 40 movements, represented in the inertial frame of the machine 30. In 612, control module 110 determines position matrix PM by multiplying WM by IM. In one embodiment, PM is a 2×1 matrix.
Control module 110 uses PM to determine the appropriate control commands 25 to move machine 30. PM is multiplied by a scalar value to normalize it against the appropriate commands to send to machine 30.
In one embodiment, computing device 10 is coupled to a visual display, such as monitor 90. In one embodiment, monitor 90 is a 7-inch computer monitor mounted to machine 30. An embodiment of monitor 90 is shown at
Machine 30 may be operated using control commands 25. In one embodiment, control commands 25 comprise rotational command 25a and translational command 25b. In one embodiment using control module 110, user 40 can manipulate the orientation of his or her shoulders to adjust rotational command 25a and translational command 25b independently.
In one embodiment, the neutral position of control module 110 represents the position that causes the machine 30 to remain stationary. The neutral position of control module 110 is taken to be the mean posture during the training dance 506 during training phase 500. At this position, in the current embodiment, the rotational command 25a and the translational command 25b are held at 2.5 volts. In other embodiments, the control commands 25 are held at a voltage that for which the machine 30 remains stationary. Shoulder movements away from this mean posture, as measured by user sensors 52, cause control module 110 to change PM. Changes to PM are translated to changes in the voltages sent by the I/O interface 106 to machine 30. This causes machine 30 to move in a desired trajectory, defined by the movements of user 40.
In another embodiment the neutral position of I/O interface 106 represents the position that causes machine 30 to remain stationary. The neutral position of I/O interface 106 is taken to be the mean posture during the training phase 70, and is mapped to the center of the monitor 90. At this position, rotational command 25a and translational command 25b are held at 2.5 volts. Shoulder movements away from the mean posture cause machine 30 to move in a direction defined by that movement. In one embodiment, movements that cause the control commands 25 to change from the neutral position cause machine 30 to move forward or turn left. Opposite movements cause machine 30 to move backwards or right. To remove the effect of small involuntary body movements, for example breathing, a dead zone was enforced that spanned roughly 15% of the maximum possible movement along each direction. In other words, for each control command 25 if command signal 25 was within 15% of the maximal movement from the resting posture, command signal 25 would be held at 2.5 volts causing machine 30 to remain stationary. Implementing a dead zone also allows the user 40 to execute translation-only or rotation-only movements. Therefore, the user has the possibility to stop more easily correct erroneous movements while the cursor is still located in the dead zone. The remaining portions of the movements were linearly mapped to the output voltages as can be seen in
Driving Control. In one embodiment, the control commands 25 used for moving machine 30 are defined by body movements. User sensors 52 that measure orientation using tri-axis accelerometers and gyroscopes are placed on the shoulders of user 40. User sensors 52 are used to measure changes in shoulder motion, for example, changes in the roll and pitch of each of the user sensors 52. In other embodiments, sensors may be other body parts. For instance, if a user 40 has substantial upper arm mobility, the sensors 52 may be places on the upper arm.
In one embodiment, machine 30 may be a motorized wheelchair known as the Quantum Q6 Edge (Pride Mobility Products, Exeter, Pa.). However, it should be understood that the use of this particular embodiment was chosen merely for convenience, and a broad range of other machines could be used in its place in accordance with the systems and methods described in our patent. The two control commands 25 needed to move machine 30 are analog voltages, which range from 1.1 to 3.9 volts shown in
The charts and diagram shown in
In one embodiment, after processing by control module 110, the control commands 25 were generated using I/O interface 106. This small hardware device allows for output of four independent analog voltages that can range between −10 to 10 Volts. In one embodiment only the first three outputs were used. The first output (output 0) was set to be static at 2.45 Volts. This signal was reqired by machine 30 to ensure that the I/O interface 106 was functioning properly. Analog outputs 1 and 2 were set to rotational command 25a and translational command 25b respectively. Communication between I/O interface 106 and computing device 10 were accomplished using the MATLAB libraries provided by Phidget Inc. In one embodiment the pin-out of the analog device was wired to an 8 pin header shown in
Quantum Q-Logic Controller. In another embodiment, the pin-out of the analog device was wired to a DB9 connector so it could easily interface with the enhanced display of the Quantum power wheelchair.
Wheelchair Movement Compensation. In one embodiment, machine 30 is able to measure changes in the roll and pitch of user 40 in a moving reference frame without the use of magnetometers, which do not allow the user to appropriately function when the user is in an elevator or in buildings with strong magnetic fields, or when sensors 50 are too close to the magnetic field created by the motors (not shown) of machine 30.
For our applications magnetometers, which act as a compass and measure the magnetic field of the Earth, are unreliable in many environments. Specifically, any environment that exhibits a changing magnetic field or large moving metallic objects will render the signals from the magnetometer unreliable. For this reason, the magnetometers were turned off. Because the sensors 50 are unable to detect magnetic north, the sensors 50 instead define an x-axis that is the projection of the sensor's 50 x-axis into the plane perpendicular to the global z-axis (direction of gravity). For this reason, the reference frames for sensors 50 are not perfectly aligned. However, because the vertical axis can be easily found by measuring gravity using the accelerometers, the reference frames of sensors 50 all share the same z-axis with different x- and y-axes. An example of two reference frames for two different sensors 50 is shown in
To account for this misalignment, control module 110 measures the angle θ. To find the θ between any two-sensor reference frames, control module 110 uses Equation (1), where the vectors {right arrow over (a)} and {right arrow over (b)} are vectors whose components are roll and pitch as measured by each of sensors 50. In one embodiment, vector {right arrow over (a)} is from a user sensor 52 on the user 40's front left shoulder and vector {right arrow over (b)} is from the reference sensor 54. The reference sensor 54 could be on machine 30, for example. (In this embodiment, for every sensor 50 there exists a vector containing the roll and pitch as measured by that sensor 50.)
Using θ, control module 110 constructs a rotation matrix R12 using Equation (2) that may be used to rotate the angles as measured by a first sensor 50a into the reference frame of a second sensor 50b. Control module 110 then projects the measurements from a reference sensor 54 (which may be mounted to machine 30 and only measure angle changes that are a result of machine 30 motion) into the reference frame for each of the sensors 50. The signals will now be in the same reference frame, so control module 110 subtracts the rotated signal of the reference sensor 54 from the measurements of the other sensors 50 to remove components of machine's 30 motions from sensors 50.
Using the rotation matrix with respect to each user sensor 52, control module 110 projects the measurements from the reference sensor 54 into the frame of each of the user sensors 52. By subtracting the projected reference sensor 54 measurements from the measurements of the user sensor 52, control module 110 eliminates the effects of movements from machine 30 alone. Although the systems and methods described in this patent can be used by tetraplegic users to control a motorized wheelchair, it should be understood that other uses are readily available.
This application is a non-provisional that claims benefit to U.S. Provisional Patent Application No. 62/019,162 filed on Jun. 30, 2014, which is herein incorporated by reference in its entirety.
The invention was made with government support under contracts R21 HD053608 and R01 HD072080 awarded by the National Institutes of Health. The government has certain rights in the invention.
Number | Date | Country | |
---|---|---|---|
62019162 | Jun 2014 | US |