Method and system for body weight support

09987188 ยท 2018-06-05

Assignee

Inventors

Cpc classification

International classification

Abstract

A body weight support (BWS) system is disclosed. The BWS system includes a harness coupled to a plurality of cables, wherein the harness is worn by a subject, an actuator for each of the plurality of cables, each actuator configured to place a tension on a corresponding cable in response to an electrical signal, at least one force sensor configured to provide an electrical signal corresponding to forces applied to the harness, at least one motion sensor configured to provide an electrical signal corresponding to changes in acceleration of the subject, and a controller configured to control the plurality of actuators.

Claims

1. A body weight support (BWS) system, comprising: a harness coupled to a plurality of cables, wherein the harness is configured to be worn by a subject; an actuator for each of the plurality of cables, each actuator configured to place a tension on a corresponding cable in response to an electrical signal; at least one force sensor configured to provide an electrical signal corresponding to forces applied to the harness; at least one motion sensor configured to provide an electrical signal corresponding to changes in acceleration of the subject; and a controller configured to control the plurality of actuators according to one of two modes: i) a steady state body weight to be algebraically added to or removed from the subject by calculating instantaneous tensions to be placed on each of the plurality of the cables in accordance with the subject's input data, and ii) a transient body weight to be algebraically added to or removed from the subject by calculating instantaneous tensions to be placed on each of the plurality of the cables in accordance with a predetermined dataset, wherein the controller is configured to receive the electrical signal from the at least one force sensor, the electrical signal from the at least one motion sensor, and data associated with one of the two modes (i) and (ii).

2. The BWS system of claim 1, further comprising: a screen configured to display scenes corresponding to the predetermined dataset.

3. The BWS system of claim 1, wherein the controller controls forces applied to the harness based on N degrees of freedom, and at least N+1 cables.

4. The BWS system of claim 3, wherein the controller is configured to solve for tension on each of the plurality of cables based on J.sup.T =w, wherein J is a N+1N Jacobian matrix; is a N+11 vector of calculated cable tensions; and w is a N1 force vector.

5. The BWS system of claim 4, wherein N is 6.

6. The BWS system of claim 4, wherein N is 3.

7. The BWS system of claim 4, wherein N is 1.

8. The BWS system of claim 1, further comprising: a treadmill configured to move in each of X-Y-Z directions, in accordance with a prescribed rate of motion or in accordance with mode (ii).

9. The BWS system of claim 8, further comprising: one or more force sensors disposed between base of the treadmill and a base of an enclosure housing the BWS system, to provide forces in at least the vertical direction.

10. The BWS system of claim 1, further comprising: a foot apparatus configured to be worn by the subject, wherein the apparatus configured to move in each of X-Y-Z directions, in accordance with a prescribed rate of motion or in accordance with mode (ii).

11. A method of providing a body weight support (BWS), comprising: providing a harness coupled to a plurality of cables, wherein the harness is worn by a subject; activating an actuator for each of the plurality of cables, each actuator configured to place a tension on a corresponding cable in response to an electrical signal; sensing forces applied to the harness by at least one force sensor configured to provide an electrical signal corresponding to the sensed forces; measuring acceleration of the subject by at least one motion sensor configured to provide an electrical signal corresponding to changes in the subject's acceleration; and controlling each of the actuators according to one of two modes: i) a steady state body weight to be algebraically added to or removed from the subject by calculating instantaneous tensions to be placed on each of the plurality of the cables in accordance with the subject's input data, and ii) a transient body weight to be algebraically added to or removed from the subject by calculating instantaneous tensions to be placed on each of the plurality of the cables in accordance with a predetermined dataset, wherein the controller receives the electrical signal from the at least one force sensor, the electrical signal from the at least one motion sensor, and data associated with one of the two modes (i) and (ii).

12. The method of claim 11, further comprising: providing a screen configured to display scenes corresponding to the predetermined dataset.

13. The method of claim 11, wherein the controller controls forces applied to the harness based on N degrees of freedom, and at least N+1 cables.

14. The method of claim 13, wherein the controller solves for tension on each of the plurality of cables based on J.sup.T =w, wherein J is a N+1N Jacobian matrix; is a N+11 vector of calculated cable tensions; and w is a N1 force vector.

15. The method of claim 14, wherein N is 6.

16. The method of claim 14, wherein N is 3.

17. The method of claim 14, wherein N is 1.

18. The method of claim 11, further comprising: providing a treadmill configured to move in each of X-Y-Z directions, in accordance with a prescribed rate of motion or in accordance with mode (ii).

19. The method of claim 18, further comprising: providing one or more force sensors disposed between base of the treadmill and a base of an enclosure housing the BWS system to provide forces in at least the vertical direction.

20. The method of claim 11, further comprising: providing a foot apparatus configured to be worn by the subject, wherein the apparatus configured to move in each of X-Y-Z directions, in accordance with a prescribed rate of motion or in accordance with mode (ii).

Description

BRIEF DESCRIPTION OF DRAWINGS

(1) FIG. 1 is a schematic drawing of a body weight support (BWS) system, according to one embodiment of the present disclosure, including a number of actuators.

(2) FIG. 2 is a schematic of a control scheme, including a controller for controlling the actuators of FIG. 1.

(3) FIG. 3 is a data flowchart associated with data paths controlled by the controller of FIG. 2.

(4) FIG. 4 is a schematic drawing of how a one-dimensional solution is derived.

(5) FIG. 5 is a high-level diagram showing the components of the exemplary data-processing system.

(6) FIG. 6 is a prior art approach for a cable-driven BWS system.

DETAILED DESCRIPTION

(7) For the purposes of promoting an understanding of the principles of the present disclosure, reference will now be made to the embodiments illustrated in the drawings, and specific language will be used to describe the same. It will nevertheless be understood that no limitation of the scope of this disclosure is thereby intended.

(8) In the present disclosure, the term about can allow for a degree of variability in a value or range, for example, within 10%, within 5%, or within 1% of a stated value or of a stated limit of a range.

(9) In the present disclosure, the term substantially can allow for a degree of variability in a value or range, for example, within 90%, within 95%, or within 99% of a stated value or of a stated limit of a range.

(10) A novel method and system that can provide selective positive and negative counterweight forces to a subject during gait rehabilitation and other situations is provided. Referring to FIG. 1, a schematic drawing of a body weight support (BWS) system 100, according to one embodiment of the present disclosure, is shown. The BWS system 100 includes support beam 101 supporting a subject 102 and terminating at a first and second support disks 104a and 104b, housing load cells 105-1-105-7. The load cells 105-1-105-7 can also be integrated into each of the cables (discussed below), preferably near the end of the cables terminating at the support disks 104a and 104b. A load cell is intended to measure the tension in a cable. Therefore, each cable is to have one load cell. The subject 102 is supported by a harness 106 which is worn on the subject's torso or other parts of the subject 102 as appropriate for the training or rehabilitation program. The word harness in the present disclosure simply refers to an apparatus that is coupled to the subject 102 and which can support or exert forces to the subject in various directions. The word support in the present disclosure refers to either removing weight from the subject for a steady-state or instantaneous negative weight compensation with applying a force with X-Y-Z directional components, or for exerting a steady state or instantaneous positive weight compensation with applying a force with X-Y-Z directional components upon the subject where the subject feels a weight higher than his/her own weight. The harness 106 includes an accelerometer 108, capable of providing acceleration vectors in three directions a.sub.x, a.sub.y, and a.sub.z in a Cartesian coordinate system, or as appropriate in cylindrical or spherical coordinate systems. It should also be understood that the accelerometer can be replaced by motion sensors capable of measuring motion such as position, velocity and calculate acceleration, accordingly, as known to a person having ordinary skill in the art. While only one accelerometer 108 is depicted in FIG. 1, it should be appreciated that more than one accelerometer may be used to ascertain acceleration of different parts of the subject's body.

(11) The harness 106 is supported by seven cables 110-1, 110-2, 110-3, 110-4, 110-5, 110-6, and 110-7 to provide active control in six degrees of freedom. Each of the cables 110-1, 110-2, and 110-3 are coupled to the support disk 104b at one end and to a respective actuator 112-1, 112-2, 112-3 at a second end. In between the support disk 104b and the respective actuators 112-1-112-3, the cables 110-1-110-3 are further supported by pulleys (not called out to avoid over-cluttering FIG. 1) or other devices known to a person having ordinary skill in the art. Each of the cables 110-4, 110-5, 110-6, and 110-7 are coupled to the support disk 104a at one end and to a respective actuator 112-4, 112-5, 112-6, and 112-7 at a second end. In between the support disk 104a and the respective actuators 112-4-112-7, the cables 110-4-110-7 are further supported by pulleys (not called out to avoid over-cluttering FIG. 1) or other devices known to a person having ordinary skill in the art.

(12) While seven cables 110-1-110-7 and seven actuators 112-1-112-7 are shown in FIG. 1 to generate six degrees of freedom, a smaller number of cables and actuators can be used in other embodiments (not shown) for a reduced number of degrees of freedom. For example, for a three degrees of freedom implementation, four cables and four actuators are needed. Generally, for n degrees of freedom, n+1 cables and actuators are needed. In one embodiment, the angular relationship between the cables 110-1-110-7 in each subgroup (i.e., cables 110-1-110-3 and 110-4-110-7, respectively), cab be substantially the same (i.e., cables 110-1-110-3 each separated by about 120, and cables 110-4-110-7 each separated by about 90). However, other angular relationship can also be implemented as long the desired number of degrees of freedom can be realized.

(13) The BWS system 100, further includes a force sensor 114 disposed in the support beam 101. Additionally, force sensors 116 and 118 are disposed between treadmill 120 and base 126 of enclosure 124. While two force sensors (116 and 118) are depicted in FIG. 1 between the treadmill and the base 126, there can be four force sensors, one on each corner of the treadmill. All the force sensors are typically 3-axis force sensors (although sensors with more or less axes are also possible). Each of them can measure the force in three orthogonal directions. These force sensors provide force measurements at various positions. For example, the force sensor 114 in the support beam 101 provides F.sub.X, F.sub.y, and F.sub.z vectors in X, Y, and Z directions representing those force vectors being applied to the support beam 101. The treadmill 120 can be a typical treadmill operating in horizontal or inclined positions with respect to the base 126; or alternatively, a treadmill that can move in all three dimensions (i.e., horizontally, inclined, and laterally) with respect to the base 126. The latter can simulate a shifting landscape. The enclosure 124 is an exemplary enclosure. Other structures can also be implemented.

(14) The BWS system 100 also includes a visual input via a screen 122. The screen 122, provides scenes that the subject 102 can use to determine upcoming situations. The scenes on the screen 122 are controlled by an exemplary data processing system 1000, described in FIG. 5. The screen 122 can be of various sizes and angular disposition with respect to the subject 102 to provide a desirable life-like scene for the subject.

(15) The data processing system 1000 can be configured to control in one or both of two modes: 1) to provide an active control of the actuators 112-1-112-7 such that these actuators maintain a minimum selectable tension on the cables 110-1-110-7, respectively; or 2) to provide an active control of the actuators 112-1-112-7 such that these actuators provide tensions on the cables according to a predetermined dataset, where in both modes (i.e., minimum selectable tension, or a predetermined dataset), the data processing system 1000 takes into account and compensates any disturbance introduced by the subject 102. These disturbances are identified by the accelerometer 108 and the force sensors 114, 116, and 118.

(16) In the case of control based on a predetermined dataset, the data processing system 1000 can be configured to provide visual inputs to the subject 102 based on scenes displayed on the screen 122. In either approach, the BWS system 100 can then be used in a variety of different applications. For example, the BWS system 100 can be used to train astronauts. In such an application, the BWS system 100, can simulate a lower gravity than Earth (e.g., moon's gravity) by controlling the actuators 112-1-112-7 to provide the appropriate amount of tension in the cables 110-1-110-7 such that the astronaut in training experiences a smaller than Earth gravity force, while compensating for any disturbances introduced by the astronaut in X and Y directions (where the Z direction represents gravity). Furthermore, the BWS system 100 can be configured to control the actuators 112-1-112-7 to provide the appropriate amount of tension in the cables 110-1-110-7 in accordance with scenes on the screen 112. There again, the BWS system 100 compensates for any disturbances introduced by the astronaut in X and Y directions (where the Z direction represents gravity).

(17) In another exemplary situation, an athlete can be trained indoors for various sports. For example, a skier can be trained using the BWS system 100. In this type of situation, not only the BWS system 100 controls the actuators 112-1-112-7 to provide tension in cables 110-1-110-7 in accordance with a predetermined dataset for selectively controlling acceleration in X, Y, and Z directions (i.e., providing continuously changing forces to the skier in training in all three directions) in accordance to the scenes provided on the screen 122, but also compensate the control of the actuators 110-1-110-7 as the skier makes movements in any or all three directions thereby generating counter forces in all three directions. This level of dynamic force generation and compensation creates a real-life simulation of skiing down a hill while providing forces to the subject 102.

(18) In addition to controlling actuators 110-1-110-7, the data processing system 1000 is also capable of controlling the treadmill 120 to provide horizontal motion, vertical motion, as well as lateral motion, in accordance with the same modes described above (i.e., minimum selectable tension, or a predetermined dataset) in cooperation with control of the actuators 112-1-112-7. The treadmill 120 can also be replaced with other attachments, e.g., a skier's boots and skis, with corresponding actuators (not shown) also configured to generate forces in the X-Y-Z directions at the feet of the subject 102.

(19) The data processing system 1000 (shown in FIG. 5), controls the actuators 110-1-110-7 based on a control scheme 200 depicted in FIG. 2. During a training regimen, the acceleration of the subject's body is measured through an accelerometer (e.g., 108 in FIG. 1) coupled to the subject's body. The controller scheme 200 of the data processing system 1000 controls the cable-driven BWS system 100 by calculating the amount of positive/negative body weight support required, based on the subject's body acceleration, a user's input 208, and/or requirements from the predetermined dataset 206. A system controller 202 electronically sends commands to a cable-driven manipulator 204 which provides an appropriate signal to the actuators 110-1-110-7 which deliver the appropriate body weight support. Consequently, the subject's body 102 is supported or acted on by the cable-driven manipulator 204, which is actively controlled using an acceleration-feedback strategy. Acceleration feedback has the advantages of a relatively rapid response because the acceleration of a human body can be measured while the subject is in motion. For example, a subject with a body weight of 70 Kg may be able to support 40 Kg of body weight, based on a diagnosis of a health care professional. If the subject is accelerating upwards with an acceleration of 2 m/s.sup.2, then the BWS system will provide a support of (70-40)(9.8+2)=354 Newtons in the vertical direction, where 9.8 is the magnitude of the gravity acceleration. In other words, the cable-driven BWS system compensates both part of the body mass (30 Kg) and the inertia force of the compensated body mass generated due to the motion of the subject. In this way, the cable-driven BWS system can provide the same dynamic characteristics (i.e., same dynamic response) as if a part of his or her body mass were physically removed. With such a force control capability, the cable-driven BWS system will allow the subject to experience as though he or she were having a reduced body mass dynamically, regardless how he or she moves (e.g., walking, jogging, jumping, etc.) during the training.

(20) Referring to FIG. 3 a data flowchart 300 is depicted. The mass (m) to be manipulated (a negative number if m is to be negated from the subject, e.g., for situations where the subject cannot support his or her own weight, or to simulate a lighter weight; and a positive number if m is to be added to the subject, e.g., for situations where the subject is to feel a higher weight) is specified by a user as described above (block 302). The acceleration of the subject's body is measured using an accelerometer, denoted as a (block 304), which is a vector with components in all three directions (i.e., a.sub.x, a.sub.y, and a.sub.z). Earth's gravity is denoted as g (block 306). The controller 202 (FIG. 2) calculates m that results in forces to be provided by the cables 110-1-110-7 (FIG. 1) as m(a+g) (block 308). It should be appreciated that this support is a three-dimensional force vector (to provide three-dimensional support for the subject). The dynamics model of the cable-driven manipulator is represented by J.sup.T =w (block 310),

(21) where J is a 76 Jacobian matrix of the cable-driven manipulator;

(22) is a 71 vector of calculated cable tensions; and

(23) w is a 61 force vector (six degrees of freedom) generated by the set of cable tensions represented by .

(24) Replacing the first three force components of w with m(a+g), the set of cable tensions required to generate the needed support m(a+g) can be determined. For each cable 110-1-110-7 (FIG. 1), the required tension will be compared with its current tension (acquired from the load cells 105-1-105-7 attached to the cable 110-1-110-7). If there is any difference, then the corresponding actuator (112-1-112-7) is actuated (block 312) until the cable tension is changed to the required cable tension. With all cables having achieved the required tensions, the BWS System 100 reaches equilibrium (i.e., providing the correct support). These changes to the actuators are made in real time. The mass to be manipulated (block 302) is determined in accordance of the two modes described above (i.e., minimum selectable tension, or a predetermined dataset), and based on disturbances generated by the subject's movements.

(25) Referring to FIG. 4, a one-dimensional determination of the J.sup.T =w is provided. A.sub.1 and B.sub.1 are the two attaching points of cable #1 (e.g., 110-1) on a corresponding actuator and harness 106, respectively. A.sub.2 and B.sub.2 are the two attaching points of cable #2 on a corresponding actuator and harness 106, respectively. The positions of the four attaching points are represented by a.sub.1,a.sub.2,b.sub.1 and b.sub.2, respectively. The center of mass of the harness (with the subject therein) is marked as the reference point, denoted by point P. The length of cable #1 is represented by q.sub.1 and the length of cable #2 is represented by q.sub.2.

(26) The position of the reference point P can be described as
p=a.sub.1q.sub.1b.sub.1(1)
p=a.sub.2q.sub.2b.sub.2(2)
Solving q.sub.1 from (1) and q.sub.2 from (2), one has
q.sub.1=a.sub.1b.sub.1p(3)
q.sub.2=a.sub.2b.sub.2p(4)
Differentiating (3) and (4) with respect to time, one obtains
{dot over (q)}.sub.1={dot over (p)}(5)
{dot over (q)}.sub.2={dot over (p)}(6)
which can be rewritten into the following matrix form
{dot over (q)}=J{dot over (p)}(8)
where J denotes the 21 Jacobian matrix

(27) q . = [ q . 1 q . 2 ] and J = [ - 1 - 1 ] ( 9 )
The Jacobian matrix is a constant matrix for this 1-degree of freedom (DOF) 2-cable manipulator. The dynamics model of the cable manipulator can be written as
Af=w(10)
where

(28) A J T = [ - 1 - 1 ] ; f = [ f 1 f 2 ] ( 11 )
.sub.1 and .sub.2 are cable tensions in cables #1 and #2, respectively. w is the external force (along y axis) exerted on the harness.

(29) The general solution of (10) includes two parts, namely, a homogeneous solution and a particular solution. The homogeneous solution is the solution for
Af=0(12)
This homogeneous solution can be used to maintain the minimum cable tension. As long as .sub.1 and .sub.2 have the same magnitude but opposite directions, they satisfy (12). The particular solution is the solution of (10) for a particular w. The general solution of (10) can be expressed as

(30) f = [ - 0.7071 0.7071 ] + [ - 1 0 ] w ( 12 )
where

(31) [ - 0.7071 0.7071 ]
and

(32) [ - 1 0 ] w
are the homogeneous solution and the particular solution of (10) can be calculated using numerical processing systems, known to a person having ordinary skill in the art (e.g., MATLAB). is a scalar to scale the homogeneous solution as needed.

(33) Assuming a subject has a body mass of 100 Kg and the acceleration of gravity is 9.8 m/s.sup.2, and a user wants to take off 50% of his or her body mass, then the 1-DOF cable-driven BWS system needs to provide a support of 100*9.8*0.5=490 N in the vertical direction. The particular solution of (10) for w=490 N is

(34) [ - 1 0 ] w = [ - 490 0 ] .
Assume the minimum cable tension is 10 N, then

(35) = 10 0.7071 = 14.1423 .
The homogeneous solution is

(36) [ - 0.7071 0.7071 ] = [ - 10 10 ] .
Therefore, the general solution of (10) is .sub.1=10490=500 N and .sub.2=10+0=10 N. The forces applied on the end-effector by cables #1 and #2 have opposite directions.

(37) The kinematics notation of a 6-degrees of freedom (DOF)7-cable manipulator is next described. A.sub.i and B.sub.i are two attaching points of the i.sup.th cable on the base (or the corresponding pulley or actuator, respectively, as shown in FIG. 1) and the harness (or the corresponding support disk, as shown in FIG. 1), respectively. The positions of the attaching points are represented by vectors a.sub.i and b.sub.i, respectively. a.sub.i is a constant vector in a reference frame mounted on the base and b.sub.i is a constant vector in a reference frame mounted on the harness. q.sub.iR.sup.3, is the vector along the ith cable and has the same length as the cable (between attaching points A.sub.i and B.sub.i). The length of the ith cable is represented by scalar q.sub.i.Math.u.sub.i is the unit vector (dimensional vector) along the ith cable. Based on the kinematics notation, the position of the harness can be described as
p=a.sub.iq.sub.ib.sub.i for i=1,2, . . . ,7
from which one has
q.sub.i.sup.2=[a.sub.ipb.sub.i].sup.T[a.sub.ipb.sub.i] for i=1,2, . . . ,7
Differentiating the latter with respect to time, and then assembling the seven resulting equations into matrix form, the following matrix-based equation is achieved:
{dot over (q)}=Jt
where vector {dot over (p)} represents the linear velocity of the harness; vector is the angular velocity of the harness; and t represents the twist vector in R.sup.6 which includes both the linear and angular velocities of the harness. J is the 76 Jacobian matrix of the cable manipulator

(38) The dynamics model of such a 6-DOF 7-cable manipulator can be written as:
Af=w
where
AJ.sup.T
f[.sub.1.sub.2 . . . .sub.7].sup.T
where .sub.i (i=1, 2, . . . , 7) is the cable tension in the i.sup.th cable. w is the resultant external forces and torques exerted on the harness.

(39) The general solution of Af=w includes two part, namely, a homogeneous solution and a particular solution. The homogeneous solution is the solution for
Af=0
This homogeneous solution can be used to maintain the minimum cable tension. The particular solution is the solution of Af=w for a particular w. The general solution of Af=w can be expressed as
f=f.sub.0+f.sub.w
where f.sub.0 is the homogeneous solution and f.sub.w is a particular solution of Af=w. is a scalar to scale the homogeneous solution as needed (e.g., to keep all cables in tension or to achieve a minimum tension requirement for all cables).

(40) Referring to FIG. 5, a high-level diagram showing the components of the exemplary data-processing system 1000 for analyzing data and performing other analyses described herein, and related components. The system includes a processor 1086, a peripheral system 1020, a user interface system 1030, and a data storage system 1040. The peripheral system 1020, the user interface system 1030 and the data storage system 1040 are communicatively connected to the processor 1086. Processor 1086 can be communicatively connected to network 1050 (shown in phantom), e.g., the Internet or a leased line, as discussed below. The imaging described in the present disclosure may be obtained using imaging sensors 1021 and/or displayed using display units (included in user interface system 1030) which can each include one or more of systems 1086, 1020, 1030, 1040, and can each connect to one or more network(s) 1050. Processor 1086, and other processing devices described herein, can each include one or more microprocessors, microcontrollers, field-programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), programmable logic devices (PLDs), programmable logic arrays (PLAs), programmable array logic devices (PALS), or digital signal processors (DSPs).

(41) Processor 1086 can implement processes of various aspects described herein. Processor 1086 can be or include one or more device(s) for automatically operating on data, e.g., a central processing unit (CPU), microcontroller (MCU), desktop computer, laptop computer, mainframe computer, personal digital assistant, digital camera, cellular phone, smartphone, or any other device for processing data, managing data, or handling data, whether implemented with electrical, magnetic, optical, biological components, or otherwise. Processor 1086 can include Harvard-architecture components, modified-Harvard-architecture components, or Von-Neumann-architecture components.

(42) The phrase communicatively connected includes any type of connection, wired or wireless, for communicating data between devices or processors. These devices or processors can be located in physical proximity or not. For example, subsystems such as peripheral system 1020, user interface system 1030, and data storage system 1040 are shown separately from the data processing system 1086 but can be stored completely or partially within the data processing system 1086.

(43) The peripheral system 1020 can include one or more devices configured to provide digital content records to the processor 1086. For example, the peripheral system 1020 can include digital still cameras, digital video cameras, cellular phones, or other data processors. The processor 1086, upon receipt of digital content records from a device in the peripheral system 1020, can store such digital content records in the data storage system 1040.

(44) The user interface system 1030 can include a mouse, a keyboard, another computer (connected, e.g., via a network or a null-modem cable), or any device or combination of devices from which data is input to the processor 1086. The user interface system 1030 also can include a display device, a processor-accessible memory, or any device or combination of devices to which data is output by the processor 1086. The user interface system 1030 and the data storage system 1040 can share a processor-accessible memory.

(45) In various aspects, processor 1086 includes or is connected to communication interface 1015 that is coupled via network link 1016 (shown in phantom) to network 1050. For example, communication interface 1015 can include an integrated services digital network (ISDN) terminal adapter or a modem to communicate data via a telephone line; a network interface to communicate data via a local-area network (LAN), e.g., an Ethernet LAN, or wide-area network (WAN); or a radio to communicate data via a wireless link, e.g., WiFi or GSM. Communication interface 1015 sends and receives electrical, electromagnetic or optical signals that carry digital or analog data streams representing various types of information across network link 1016 to network 1050. Network link 1016 can be connected to network 1050 via a switch, gateway, hub, router, or other networking device.

(46) Processor 1086 can send messages and receive data, including program code, through network 1050, network link 1016 and communication interface 1015. For example, a server can store requested code for an application program (e.g., a JAVA applet) on a tangible non-volatile computer-readable storage medium to which it is connected. The server can retrieve the code from the medium and transmit it through network 1050 to communication interface 1015. The received code can be executed by processor 1086 as it is received, or stored in data storage system 1040 for later execution.

(47) Data storage system 1040 can include or be communicatively connected with one or more processor-accessible memories configured to store information. The memories can be, e.g., within a chassis or as parts of a distributed system. The phrase processor-accessible memory is intended to include any data storage device to or from which processor 1086 can transfer data (using appropriate components of peripheral system 1020), whether volatile or nonvolatile; removable or fixed; electronic, magnetic, optical, chemical, mechanical, or otherwise. Exemplary processor-accessible memories include but are not limited to: registers, floppy disks, hard disks, tapes, bar codes, Compact Discs, DVDs, read-only memories (ROM), erasable programmable read-only memories (EPROM, EEPROM, or Flash), and random-access memories (RAMS). One of the processor-accessible memories in the data storage system 1040 can be a tangible non-transitory computer-readable storage medium, i.e., a non-transitory device or article of manufacture that participates in storing instructions that can be provided to processor 1086 for execution.

(48) In an example, data storage system 1040 includes code memory 1041, e.g., a RAM, and disk 1043, e.g., a tangible computer-readable rotational storage device such as a hard drive. Computer program instructions are read into code memory 1041 from disk 1043. Processor 1086 then executes one or more sequences of the computer program instructions loaded into code memory 1041, as a result performing process steps described herein. In this way, processor 1086 carries out a computer implemented process. For example, steps of methods described herein, blocks of the flowchart illustrations or block diagrams herein, and combinations of those, can be implemented by computer program instructions. Code memory 1041 can also store data, or can store only code.

(49) Various aspects described herein may be embodied as systems or methods. Accordingly, various aspects herein may take the form of an entirely hardware aspect, an entirely software aspect (including firmware, resident software, micro-code, etc.), or an aspect combining software and hardware aspects. These aspects can all generally be referred to herein as a service, circuit, circuitry, module, or system.

(50) Furthermore, various aspects herein may be embodied as computer program products including computer readable program code stored on a tangible non-transitory computer readable medium. Such a medium can be manufactured as is conventional for such articles, e.g., by pressing a CD-ROM. The program code includes computer program instructions that can be loaded into processor 1086 (and possibly also other processors), to cause functions, acts, or operational steps of various aspects herein to be performed by the processor 1086 (or other processor). Computer program code for carrying out operations for various aspects described herein may be written in any combination of one or more programming language(s), and can be loaded from disk 1043 into code memory 1041 for execution. The program code may execute, e.g., entirely on processor 1086, partly on processor 1086 and partly on a remote computer connected to network 1050, or entirely on the remote computer.

(51) While the BWS system 100 (FIG. 1) shows seven cables 110-1-110-7 coupled to the harness 106 and each terminating at a corresponding one of seven actuators 112-1-112-7 in order to generate a six degrees of freedom control for the harness 106 and the subject, it is well within the scope of the present disclosure to have control based on a smaller or larger number of degrees of freedom over the harness 106. In one exemplary embodiment (not shown), the number of degrees of freedom is 1 resulting in two cables and two actuators. In another exemplary embodiment (not shown), the number of degrees of freedom is 2 resulting in three cables and three actuators. In general, it is within the scope of the present disclosure to establish control over the harness 106 based on N degrees of freedom using a minimum of N+1 cables and N+1 actuators.

(52) Those having ordinary skill in the art will recognize that numerous modifications can be made to the specific implementations described above. The implementations should not be limited to the particular limitations described. Other implementations may be possible.