SYSTEMS AND METHODS TO ASSIST BALANCING OF HUMAN-SUPPORTED VEHICLES
20210269111 · 2021-09-02
Inventors
Cpc classification
A63B2071/0638
HUMAN NECESSITIES
A63B24/0087
HUMAN NECESSITIES
B62H7/00
PERFORMING OPERATIONS; TRANSPORTING
A63B22/0605
HUMAN NECESSITIES
A63B2225/50
HUMAN NECESSITIES
A63B69/16
HUMAN NECESSITIES
A63B2069/164
HUMAN NECESSITIES
International classification
B62H7/00
PERFORMING OPERATIONS; TRANSPORTING
A63B69/16
HUMAN NECESSITIES
Abstract
Vehicle simulators assist a rider with balancing a human-supported vehicle (e.g., bicycle, motorcycle, scooter, skateboard, etc.) by laterally displacing two pivot points supporting the vehicle without longitudinally moving the vehicle. The lateral displacement may be human-controlled, and need not require a wheel rolling on a belt or roller. The vehicle simulators feature mechanisms to laterally translate a front portion (e.g., a front wheel) and a rear portion (e.g., a rear wheel) of the vehicle such that a rider may balance the vehicle by steering. Advantageously, embodiments allow the vehicle to be laterally translated such that the rider may balance the vehicle in the same manner as when riding on a road, thereby providing a more realistic experience than prior-art simulators (e.g., stationary bicycle trainers) that do not allow the vehicle to be laterally translated and therefore do not require the rider to balance the vehicle.
Claims
1. A vehicle simulator to assist balancing of a vehicle, comprising: a front translation mechanism having a front surface that supports a front wheel of the vehicle, the front surface being longitudinally moveable to rotate the front wheel such that the front wheel, when rotating, laterally translates along the moving front surface in response to steering of the vehicle, wherein the front wheel, when laterally translating, changes a heading of a rear wheel of the vehicle; a rear translation mechanism having a rear surface that supports the rear wheel and is longitudinally moveable by the rear wheel, when rotating, such that the rear wheel laterally translates along the moving rear surface in response to the change of heading; and a longitudinal restraint mechanism configured to physically couple with the vehicle to longitudinally constrain the vehicle.
2. (canceled)
3. The vehicle simulator of claim 1, further comprising a linear guide that restrains movement of the longitudinal restraint mechanism to a lateral guide axis.
4. The vehicle simulator of claim 3, further comprising a drive belt mechanically coupled to move the front surface at a longitudinal speed similar to a longitudinal speed of the rear surface.
5. The vehicle simulator of claim 3, further comprising: a motor physically coupled to longitudinally move the front surface; a rear speed sensor that outputs a rear longitudinal speed signal in response to the rear surface moving; a front speed sensor that outputs a front longitudinal speed signal in response to the front surface moving; and a controller that receives the front and rear longitudinal speed signals and controls the motor to move the front surface according to the front and rear longitudinal speed signals.
6. The vehicle simulator of claim 5, the controller being configured to control the motor to move the front surface such that the front longitudinal speed signal follows the rear longitudinal speed signal.
7. The vehicle simulator of claim 5, further comprising a resistance generator that resists longitudinal motion of the rear surface.
8. The vehicle simulator of claim 7, the resistance generator comprising an electric motor physically coupled with the rear surface and controllable, by the controller, in a motoring mode and a generator mode.
9. The vehicle simulator of claim 8, further comprising a torque sensor that outputs a torque signal in response to a torque of the electric motor, wherein the controller is configured to control the electric motor such that the torque signal follows a torque setpoint.
10. The vehicle simulator of claim 9, the controller being further configured to algorithmically select the torque setpoint according to a model of a rolling resistance force between the rear wheel and a surface such that the torque simulates the rolling resistance force.
11. The vehicle simulator of claim 10, the controller being further configured to algorithmically select the torque setpoint according to a model of a drag force such that the torque simulates the drag force.
12. The vehicle simulator of claim 3, the vehicle being a bicycle and the longitudinal restraint mechanism comprising: an arm having a variable length; a top joint coupled with a top end of the arm and configured to physically couple with the bicycle, the top joint having a top axis parallel to a lean axis of the bicycle; a bottom joint physically coupled with a bottom end of the arm and having a bottom axis parallel to the lean axis; and a turntable that supports the linear guide and the bottom joint, and is rotatable about a vertically-oriented turntable axis in response to the changing heading; wherein, when the bicycle leans, the arm pivots at the top axis and the bottom axis, and the length of the arm changes to allow the arm to remain parallel to a plane of the rear wheel.
13. The vehicle simulator of claim 12, wherein the turntable axis is aligned with a ground contact point of the rear wheel.
14. The vehicle simulator of claim 13, the top joint being configured to physically couple with an axle of the rear wheel.
15. The vehicle simulator of claim 13, the top joint being configured to physically couple with a frame of the bicycle.
16. The vehicle simulator of claim 13, the front surface comprising a front roller; and further comprising an adjustable spacer that longitudinally positions the front roller to support a ground contact point of the front wheel.
17-20. (canceled)
21. A vehicle simulator to assist balancing of a vehicle, comprising: a front translation mechanism that supports a front portion of the vehicle and laterally translates the front portion to change a heading of a rear portion of the vehicle in response to steering of the vehicle, the front translation mechanism comprising: a front carriage having a front joint configured to support the front portion, rotate about a front lean axis, and rotate about a front heading axis; a steering sensor that senses a front heading angle of the front joint about the front heading axis; and a front actuator that laterally translates the front carriage; a rear translation mechanism that supports the rear portion and laterally translates the rear portion in response to the change of heading, the rear translation mechanism comprising: a rear carriage having a rear joint configured to support the rear portion, rotate about a rear lean axis, and rotate about a rear heading axis; and a rear actuator that laterally translates the rear translation mechanism; a longitudinal restraint mechanism configured to physically couple with the vehicle to longitudinally constrain the vehicle; and a controller configured to algorithmically determine front and rear lateral velocities based on the front and rear heading angles, respectively, and a nominal forward speed; wherein the controller, in response to the steering of the vehicle, controls the front and rear actuators to laterally translate the respective front and rear carriages according to the respective front and rear lateral velocities.
22. The vehicle simulator of claim 21, further comprising a front lean sensor that measures a front lean angle of the front joint around the front lean axis; the controller being further configured to algorithmically determine a front lateral acceleration based on the front lean angle, and to control the front actuator to laterally accelerate the front carriage according to the front lateral acceleration.
23. The vehicle simulator of claim 22, further comprising a rear lean sensor that measures a rear lean angle of the rear joint around the rear lean axis; the controller being further configured to algorithmically determine a rear lateral acceleration based on the rear lean angle, and to control the rear actuator to laterally accelerate the rear carriage according to the rear lateral acceleration.
24. The vehicle simulator of claim 23, the controller including a switch that responds to an external signal to transition operation of the controller between an acceleration-based control mode and a velocity-based control mode.
25. The vehicle simulator of claim 21, wherein: the vehicle is a bicycle; the front joint is configured to support a front wheel of the bicycle; and the rear joint is configured to support a rear wheel of the bicycle.
26. The vehicle simulator of claim 21, wherein: the vehicle is a bicycle; the front joint is configured to support a front fork of the bicycle; and the rear joint is configured to support the rear portion of the bicycle via dropouts of the bicycle.
27-48. (canceled)
Description
BRIEF DESCRIPTION OF THE FIGURES
[0061]
[0062]
[0063]
[0064]
[0065]
[0066]
[0067]
[0068]
[0069]
[0070]
[0071]
[0072]
[0073]
[0074]
[0075]
[0076]
[0077]
[0078]
[0079]
[0080]
DETAILED DESCRIPTION OF THE EMBODIMENTS
[0081] Balancing an Inverted Pendulum
[0082]
[0083] The above technique to balance inverted pendulum 102 moves cart 104 laterally back-and-forth, according to the direction in which inverted pendulum 102 begins to topple. Thus, a lateral velocity of cart 104 changes in time, resulting in a lateral acceleration. Cart 104 must laterally accelerate to balance inverted pendulum 102.
[0084]
[0085] Wheel 202 is unstable when not rolling and cart 204 is stationary. That is, wheel 202 will be rotated around contact point 206 by a gravitationally-induced torque so as to topple. Wheel 202 may be balanced by laterally moving cart 204 to position contact point 206 beneath a center-of-mass of wheel 202, thereby eliminating the gravitationally-induced torque by eliminating its moment arm. Thus, balancing of wheel 202 is like balancing of inverted pendulum 102 of
[0086]
[0087] Three types of wheel rotation are referred to herein: (1) rotation of a wheel about its axle, (2) rotation of a wheel to change its heading angle, and (3) rotation of a wheel to change its lean angle. Unless otherwise indicated, rotation of a wheel refers the first type. For example, wheel 202 undergoes this first type of rotation when rolling along flat surface 210, as shown in
[0088]
[0089]
[0090] Bicycle 600 may be balanced by laterally moving (e.g., accelerating) front and rear wheels 602, 604 to position respective contact points 614, 616 beneath the corresponding wheels. Each wheel 602, 604 of bicycle 600 follows the dynamics of wheel 202, as discussed for
[0091] In the example of
[0092] Bicycle 600 is longitudinally stationary (i.e., v.sub.x=0) when used with the embodiments described herein. To balance bicycle 600 with some embodiments, front and rear heading angles θ.sub.f, θ.sub.r may be measured to determine the corresponding lateral velocities v.sub.y.sup.(f)=v×sin θ.sub.f and v.sub.y.sup.(r)=v×sin θ.sub.r, for a given speed v. Front and rear wheels 602, 604 may then be laterally moved according to the corresponding front and rear lateral velocities v.sub.y.sup.(f) and v.sub.y.sup.(r). Bicycle 600 can then be balanced by steering handlebars 622 to change the front heading angle θ.sub.f, in turn (i) generating a front lateral acceleration that laterally moves front wheel 602, and (ii) changing the rear heading angle θ.sub.r to generate a rear lateral acceleration that laterally moves rear wheel 604. When θ.sub.f and θ.sub.r are small (e.g., limited to a range of ±10°), v.sub.r.sup.(f) may be approximated by v×θ.sub.f, and v.sub.y.sup.(f) may be approximated by v×θ.sub.r.
[0093] Embodiments without Rotating Wheels
[0094]
[0095] Vehicle simulator 800 also includes a rear translation mechanism 812(2) that supports a rear portion of bicycle 850 and laterally translates the rear portion in response to a heading of the rear portion of bicycle 850. Rear translation mechanism 812(2) includes a rail 802(2) aligned such that a rear carriage 804(2) is laterally movable along rail 802(2) in the y direction. In the example of
[0096] Each of adapters 806(1) and 806(2) includes a joint that allows bicycle 850 to lean. That is, bicycle 850 is not supported laterally and may topple sideways when not balanced or stabilized. Furthermore, front adapter 806(1) is rotatable about a vertical front support axis parallel to the z direction (e.g., front support axis 610 of
[0097] A controller 820 controls front and rear actuators 808(1) and 808(2) to laterally move carriages 804(1) and 804(2) along rails 802(1) and 802(2), respectively. Fork carriage 818 has a front heading sensor 810(1) that senses a front heading angle of fork 814. Rear carriage 804(2) has a rear heading sensor 810(2) that senses a rear heading angle of frame 854. Thus, heading sensors 810 effectively measure the heading angles of front and rear wheels of bicycle 850, as if the front and rear wheels were affixed to bicycle 850 in the conventional manner. That is, the heading angle of fork 814 corresponds to the front heading angle θ.sub.f of front wheel 602 of
[0098] Controller 820 includes a processor, memory, and interface hardware that controls actuators 808 and receives sensed heading angles from sensors 810. An algorithm 822 (e.g., see algorithm 2832 in
[0099] As an example of algorithm 822, when handlebars 852 are turned clockwise (about the z-axis, as viewed from above) the heading angle sensed by front heading sensor 810(1) decreases, causing controller 820 to control actuator 808(1) to move front carriage 804(1) in the negative y direction (see coordinate system 120). As front carriage 804(1) moves, the heading angle sensed by rear heading sensor 810(2) also decreases and thus controller 820 controls rear actuator 808(2) to also move rear carriage 804(2) in the negative y direction.
[0100] Controller 820 may also store and/or determine the speed v. In one embodiment, a user (e.g., a rider of bicycle 850) enters the speed v to controller 820, where it is stored in memory and used by algorithm 822 to determine the lateral velocities v.sub.y.sup.(f) and v.sub.y.sup.(r). The user may enter the speed v to controller 820 via a graphical user interface of controller 820, or wirelessly (e.g., via Bluetooth or Wi-Fi) via a remote computing device (e.g., see remote computing device 2824 of
[0101] A scalar distance between where adapters 806(1) and 806(2) affix to bicycle 850 (i.e., front and rear dropouts of bicycle 850) is fixed by a geometry of bicycle 850. A longitudinal distance between rails 802(1) and 802(2) in the x direction is also fixed. In the example of
[0102] In one embodiment, front adapter 806(1) includes a flexible material that bends to position front adapter 806(1) longitudinally behind front rail 802(1), wherein front adapter 806(1) connects directly to front carriage 804(1) without longitudinal rail 816 and fork carriage 818. The flexible material may be a vertically-oriented spring that bends longitudinally with the heading angle of frame 854. In another embodiment, rear adapter 806(2) includes a flexible material that bends to position rear adapter 806(2) longitudinally ahead of rear rail 802(2), thereby reconciling the two distance constraints. In another embodiment, both adapters 806(1), (2) include a flexible material to longitudinally shift respective adapters 806(1), (2).
[0103]
[0104] A pin 904 rotatable around a vertical rotation axis (i.e., along the z direction) protrudes from a top surface of fork carriage 818 and includes a pivot 905 that couples with adapter 806(1) and rotates around a horizontal rotation axis. Front heading sensor 810(1) couples with both fork carriage 818 and pin 904 to measure an angle of pin 904 in the x-y plane relative to the positive x direction, thereby measuring the front heading angle θ.sub.f of fork 814.
[0105] Actuators 808 may be any type of linear actuator known in the art. For example, actuators 808 may be pneumatic actuators using a gas (e.g., air), hydraulic actuators using a liquid, or linear motors. In the example of
[0106] In one embodiment, front translation mechanism 812(1) includes a front lean sensor 911 that measures a front lean angle (pf of fork 814 with respect to the z direction. That is, lean sensor 911 senses an angle by which pivot 905 rotates. Algorithm 822 of controller 820 may include additional machine-readable instructions that, when executed by the processor of controller 820, control the processor to: (i) determine a front lateral acceleration based on the front lean angle (pf received from front lean sensor 911, and (ii) control front actuator 808(1) to move front carriage 804(1) according to the front lateral acceleration. In another embodiment, rear translation mechanism 812(2) includes a rear lean sensor (not shown) that senses a rear lean angle φ.sub.r of frame 854 with respect to the z direction. Algorithm 822 may include additional machine-readable instructions that, when executed by the processor of controller 820, control the processor to: (i) determine a rear lateral acceleration based on the sensed rear lean angle φ.sub.r, and (ii) control rear actuator 808(2) to move rear carriage 804(2) according to the rear lateral acceleration.
[0107] In one embodiment, algorithm 822 includes additional machine-readable instructions that, when executed by the processor of controller 820, control front and rear actuators 808(1) and 808(2) to laterally accelerate respective carriages 804(1) and 804(2) according to the respective front and rear lean angles φ.sub.f, φ.sub.r, to stabilize the front and rear lean angles φ.sub.f, φ.sub.r at zero degrees. That is, algorithm 822 and controller 820 cooperate with actuators 808(1) and 808(2), carriages 804(1) and 804(2), and lean sensors (e.g., front lean sensor 911) to form two feedback loops that balance bicycle 850 without a rider, and therefore without steering. This mode of operation of simulator 800, referred to herein as “acceleration-based control”, is analogous to the balancing of inverted pendulum 102 of
[0108] In some embodiments, simulator 800 switches between acceleration-based control and velocity-based control. For example, at the beginning of a simulation, a rider may enable acceleration-based control to assist the rider with balancing bicycle 850 before the rider begins pedaling. After the rider has mounted bicycle 850 and begins pedaling, simulator 800 then switches to velocity-based control to more accurately simulate riding of bicycle 850, for example, on a road. When the rider has finished the simulation, simulator 800 then switches back to acceleration-based control, balancing bicycle 850 to assist the rider with dismounting bicycle 850. In one embodiment, the transition between acceleration-based control and velocity-based control is determined by an action of the rider, such as pedaling. For example, when the rider begins pedaling bicycle 850, controller 820 detects the pedaling (e.g., with a pedaling sensor connected to bicycle 850) and switches from acceleration-control mode to velocity-control mode in response to the pedaling. In another embodiment, controller 820 switches from velocity-control mode to acceleration-control mode when controller 820 detects that the pedaling has stopped. To prevent controller 820 from inadvertently switching to acceleration-based control while the rider is coasting, controller 820 may implement a time delay such that controller 820 switches to velocity-control mode after controller 820 has detected that the pedaling has stopped for a specified time duration (e.g., 10 seconds). In one embodiment, the rider commands controller 820 to switch between acceleration-based and velocity-based modes via a button or switch electrically coupled to controller 820. Alternatively, the rider may command controller 820 to switch between modes via a graphical user interface of a remote computing device (see remote computing device 2824 of
[0109]
[0110]
[0111] While
[0112] While the example of
[0113]
[0114] In one embodiment, method 1200 includes a delay step 1208 to wait for a predefined period. In one example of step 1208, controller 820 waits for 100 milliseconds. In another embodiment, method 1200 repeats steps 1202 through 1210 to periodically control the actuator to laterally move the carriage based on a changing speed v and/or heading angle θ. For example, as a rider changes the heading angle θ, method 1200 may periodically determine the heading angle θ, update the lateral velocity v.sub.y according to the determined heading angle θ, and control the actuator according to the updated lateral velocity v.sub.y.
[0115]
[0116] Although simulator 800 assists with balancing bicycle 850, the ease of balancing bicycle 850 is reduced as compared to balancing a bicycle with wheels rolling on a flat surface (e.g., bicycle 600 of
[0117] In one embodiment, simulator 800, when used with bicycle 850, includes a spinning mass 910 that produces a torque to replicate the torque produced by a spinning bicycle wheel when the bicycle wheel is affixed to front fork 814 in the conventional manner. In the example of FIG. 9, spinning mass 910 rotates around an axle 912 that connects to one side of adapter 806(1). A motor 914, controllable by controller 820, connects to the axle to rotate spinning mass 910.
[0118] Spinning mass 910 may have any diameter, width, weight, and shape to replicate the torque produced by a spinning bicycle wheel. In the example of
[0119] While
[0120] In another embodiment, simulator 1100, when used with bicycle 600, includes at least one spinning mass, similar to spinning mass 910, that produces a torque to replicate the torque produced by front wheel 602 when front wheel 602 is spinning. The examples, configurations, and usage of spinning mass 910 described above for
[0121] As appreciated, actuators 808 may be controlled to simulate various levels of stability and control, far beyond those available on a real bicycle. In one embodiment, algorithm 822 controls actuators 808 to simulate a bicycle with front and/or rear wheel steering.
[0122] Embodiments with Moving Surfaces
[0123]
[0124] Simulator 1400 includes a front roller 1402 with a front surface 1420 that supports front wheel 602 of bicycle 600 at front contact point 614. Front roller 1402 rotates about a laterally-oriented front rotation axis 1414 to move front surface 1420 longitudinally at front contact point 614, thereby rotating front wheel 602. When rotating, front wheel 602 laterally translates along moving front surface 1420 in response to steering of bicycle 600. That is, as bicycle 600 is steered (i.e., the front heading angle θ.sub.f of front wheel 602 is changed), front wheel 602 laterally accelerates to translate laterally along moving front surface 1420.
[0125] Simulator 1400 also includes a rear drum 1404 with a rear surface 1422 that supports rear wheel 604 of bicycle 600 at rear contact point 616. Rear drum 1404 is rotatable about a laterally-oriented rear rotation axis 1416 parallel to front rotation axis 1414. When rear wheel 604 is rotated by pedaling, rear wheel 604 longitudinally moves rear surface 1422 at rear contact point 616 by applying a torque to rear surface 1422 at rear contact point 614 that rotates rear drum 1404 around rear rotation axis 1416.
[0126] Lateral motion of front wheel 602 moves fork 606 likewise, changing a heading of frame 608 by rotating rear wheel 604 around a vertical support axis that coincides with rear support point 616 (see rear support axis 612 in
[0127] In
[0128] Simulator 1400 also includes a longitudinal restraint mechanism 1408 that longitudinally restrains bicycle 600 such that front wheel 602 remains in contact with front surface 1420, and rear wheel 604 remains in contact with rear surface 1422. Longitudinal restraint mechanism 1408 prevents bicycle 600 from moving longitudinally off of front roller 1402 and rear drum 1404.
[0129] Longitudinal restraint mechanism 1408 includes an arm 1410 having a length extendable along a direction 1418. When bicycle 600 is upright (i.e., rear wheel 604 has a zero lean angle, as shown in
[0130] Longitudinal restraint mechanism 1408 also includes a turntable 1436 that supports bottom joint 1430. Turntable 1436 is rotatable in a direction 1438 about a vertical turntable axis parallel to the z direction. In one embodiment, the vertical turntable axis coincides with rear contact point 616 such that the turntable axis and the rear support axis (e.g., rear support axis 612 of
[0131] Longitudinal restraint mechanism 1408 also includes first and second carriages 1502(1) and 1502(2) that support turntable 1436 and are moveable along first and second linear guide rails 1406(1) and 1406(2), respectively. Thus, as rear wheel 604 laterally translates along rear surface 1422, longitudinal restraint mechanism 1408 laterally translates along guide rails 1406 likewise (see direction 1424). While the example of
[0132] When bicycle 600 is steered by a rider, turntable 1436 rotates in direction 1438 such that bottom rotation axis 1448 of bottom joint 1430 remains parallel to lean axis 702. Furthermore, top joint 1426 rotates along direction 1428, bottom joint 1430 rotates along direction 1432, and arm 1410 changes length along direction 1418, such that arm 1410 rotates about bottom rotation axis 1448. Thus, arm 1410 follows the motion and orientation of rear wheel 604 while preventing bicycle 600 from moving longitudinally (i.e., in the x direction).
[0133]
[0134] Longitudinal restraint mechanism 1708 includes an arm 1714 with a first end having a joint 1716 that couples to linear guide 1706. Linear guide 1706 is a cylindrical bar with a guide axis 1704 oriented parallel to front and rear rotation axes 1414, 1416 such that joint 1716 is laterally moveable along linear guide 1706 in direction 1724 (e.g., the y direction). Joint 1716 allows arm 1714 to (i) rotate in a direction 1722 around guide axis 1704, (ii) twist in a direction 1718 around a longitudinal axis 1802 of arm 1714, and (iii) pivot in a direction 1720 around a pivot axis 1804 lying in the x-z plane. Pivot axis 1804 is perpendicular to longitudinal axis 1802 and guide axis 1704. When bicycle 600 does not lean and rear wheel 604 has a zero heading angle θ.sub.r, longitudinal axis 1802 and guide axis 1704 are perpendicular. When bicycle 600 leans and/or rear wheel 604 has a non-zero heading angle θ.sub.r, longitudinal axis 1802 and guide axis 1704 may be not perpendicular.
[0135] A second end of arm 1714 has a rolling-element bearing 1710 that connects to bicycle 600 such that arm 1714 is rotatable in a direction 1712 about a rotation axis 1902 of rear wheel 604. In
[0136] When bicycle 600 is steered by a rider in response to leaning, arm 1714: (i) laterally translates along linear guide 1706, (ii) twists around longitudinal axis 1802, (iii) rotates around rotation axis 1902 of rear wheel 604, (iv) rotates around guide axis 1704, and (v) pivots around pivot axis 1804, such that arm 1714 remains approximately parallel to a rotation plane of rear wheel 604. Thus, arm 1714 follows the motion and orientation of rear wheel 604 while preventing bicycle 600 from moving longitudinally (i.e., in the x direction).
[0137] A length of arm 1714 remains fixed during operation of simulator 1700. To accommodate different sizes of bicycle 600 and rear wheel 604, the length of arm 1714 may be adjusted. As shown in
[0138] In
[0139] In
[0140] Front surface 1420, whether implemented as a roller or belt, may be longitudinally moved by a motor 1440 controlled by a controller 1434. In the examples of
[0141] Controller 1434 includes a processor, memory, and interface hardware that controls motor 1440. Controller 1434 may store a value for the speed v. In one embodiment, a user (e.g., a rider of bicycle 600) enters a value of the speed v to controller 1434, where it is stored in the memory and used to control motor 1440 such that front surface 1420 moves longitudinally according to the speed v. The user may enter the speed v to controller 1434 via a graphical user interface of controller 1434, or wirelessly (e.g., Bluetooth or Wi-Fi) via a remote computing device (e.g., see remote computing device 2824 of
[0142] In some embodiments, controller 1434 controls motor 1440 to rotate front roller 1402 such that front surface 1420 moves faster than the speed v when a rider of bicycle 600 begins pedaling, advantageously assisting the rider in balancing bicycle 600 without the use of side rails and/or balance rails. In one such embodiment, where front and rear surfaces 1420, 1422 start at rest, the rider signals to controller 1434 to begin operation of simulator 1400, at which time motor 1440 angularly accelerates front roller 1402. After controller 1434 has detected, via front rotation sensor 1446, that the speed of front surface 1420 has reached the speed v, controller 1434 stops accelerating front roller 1402 to maintain front surface 1420 moving at the speed v. Controller 1434 then indicates to the rider (e.g., audibly with a tone, or visibly with a light) that front surface 1420 has reached the speed v. After receiving the indication, the rider may then begin pedaling bicycle 600 to move rear surface 1422, thereby angularly accelerating rear drum 1404. Thus, the rider begins balancing of bicycle 600 with front wheel 602 already rotating, assisting the rider with steering bicycle 600 while the rider subsequently rotates rear wheel 604 to accelerate rear surface 1422 up to the speed v.
[0143] In the above example, motor 1440 accelerates front surface 1420 to the speed v. In other embodiments, motor 1440 accelerates front surface 1420 to a speed greater than v. A rear rotation sensor 1444 may be connected to sense a rotation rate of rear drum 1404; when controller 1434 determines, via rear rotation sensor 1444, that the speed of rear surface 1422 has reached v, controller 1434 may then control motor 1440 to decelerate front surface 1420. When controller 1434 determines that the speed of front surface 1420 has slowed to v, controller 1434 then stops decelerating front roller 1402 to maintain front surface 1420 moving at speed v.
[0144] In another embodiment, a drive belt 1504 connects rear drum 1404 with front roller 1402 such that rear drum 1404 rotates front roller 1402 instead of motor 1440. When rear drum 1404 and front roller 1402 have the same diameter, drive belt 1504 rotates front roller 1402 at the same rotation rate as rear drum 1404, thereby ensuring that front and rear surfaces 1420, 1422 move at the same longitudinal speed (i.e., front surface 1420 moves at a longitudinal speed similar to a longitudinal speed of rear surface 1422).
[0145] In some embodiments, a resistance generator is used to resist longitudinal motion of rear surface 1422, thereby replicating drag, wind resistance, rolling resistance, and other effects acting on bicycle 600, and/or a rider thereon, when bicycle 600 is ridden outside on a road. In the example of
[0146] In another embodiment, electric motor 1442 rotates rear drum 1404 to rotate rear wheel 604 to assist the rider with balancing bicycle 600 while mounting and/or dismounting bicycle 600. For example, at the beginning of a simulation, controller 1434 may operate electric motor 1442 in motoring mode to rotate rear drum 1404 such that the rider mounts bicycle 600 with rear wheel 604 already rotating. After the rider begins pedaling, controller 1434 operates electric motor 1442 in the generator mode to apply a torque to rear drum 1404 that simulates a resistance force when riding bicycle 600 outside on a road. Controller 1434 may detect the pedaling (e.g., with a pedaling sensor connected to bicycle 600) to switch from the motoring mode to the generator mode in response to the pedaling.
[0147] Although not shown in
[0148]
[0149] Method 2000 also includes a step 2008 to generate a value of the drag force F.sub.D from the speed v. In one example of step 2008, controller 1434 implements the model of drag by (i) squaring the value of the speed v, and (ii) multiplying the squared speed by a value of α. Method 2000 includes a step 2010 to provide a value of α. As one example of step 2010, controller 1434 accesses a value of α stored in the memory of controller 1434.
[0150] Method 2000 also includes a step 2012 to generate a value of simulated-drag torque τ.sub.D from the drag force F.sub.D. In one example of step 2012, controller 1434 multiplies the value of drag force F.sub.D by the value of the radius r.sub.RD of rear drum 1404. Method 2000 includes a step 2014 to provide the value of r.sub.RD. As one example of step 2014, controller 1434 accesses the value of r.sub.RD stored in the memory of controller 1434.
[0151] Method 2000 also includes a step 2016 to control electric motor 1442 according to the value of the simulated-drag torque τ.sub.D. In one example of step 2016, the processor of controller 1434 controls a digital-to-analog converter of controller 1434 that feeds a motor drive circuit (e.g., a pulse-width modulation (PWM) circuit) of controller 1434, the output of the motor drive circuit being electrically connected to electric motor 1442.
[0152] In one embodiment, method 2000 repeats steps 2002 through 2016 to periodically update the simulated-drag torque τ.sub.D according to a changing speed v. In another embodiment, method 2000 includes a delay step 2018 to wait before repeating steps 2002 through 2016. In one example of step 2018, controller 1434 waits for 100 milliseconds. In other embodiments, step 2008 generates a value of drag force F.sub.D according to a model of drag that includes higher-order velocity terms (e.g., v.sup.3, v.sup.4, etc.), wherein the memory of controller 1434 stores additional coefficients for implementing the model. The user/rider may communicate the values of the friction coefficient α and/or the radius r.sub.RD of rear drum 1404 to controller 1434 via a graphical user interface of controller 1434, front panel controls of controller 1434, or a remote computing device wirelessly coupled with controller 1434 (e.g., see remote computing device 2824 of
[0153] In another embodiment, method 2000 includes controlling electric motor 1442 to simulate a headwind and/or tailwind. For example, a value for a longitudinal wind speed u may be stored in the memory of controller 1434, a positive value of u corresponding to a tailwind and a negative value of u corresponding to headwind. One model of drag that accounts for a headwind and tailwind represents the drag force F.sub.D by F.sub.D=α(v−u).sup.2. In one example of step 2008, controller 1434 implements this model by (i) adding the wind speed u to the measured speed v to generate a relative speed, (ii) squaring the relative speed, and (iii) multiplying the squared relative speed by the value of α. In this embodiment, method 2000 includes a step 2020 to provide the value of the wind speed u. As one example of step 2020, controller 1434 accesses a value of u stored in the memory of controller 1434.
[0154]
[0155] Method 2100 includes a step 2102 to generate a value of the rolling resistance force F.sub.R. In one example of step 2102, controller 1434 implements the rolling resistance model by multiplying the values of coefficient C and normal force N to generate a value of the rolling resistance force F.sub.R. Method 2100 also includes a step 2104 to provide a value of N, and a step 2106 to provide a value of coefficient C. As one example of step 2104, controller 1434 accesses a value of N stored in the memory of controller 1434. As one example of step 2106, controller 1434 accesses a value of C stored in the memory of controller 1434.
[0156] Method 2100 includes a step 2108 to generate a value of rolling resistance torque τ.sub.R from the rolling resistance force F.sub.R. In one example of step 2108, controller 1434 multiplies the value of rolling resistance force F.sub.R by the value of the radius r.sub.RD of rear drum 1404. Method 2100 also includes a step 2110 to provide the value of r.sub.RD. As one example of step 2110, controller 1434 accesses the value of r.sub.RD stored in the memory of controller 1434.
[0157] Method 2100 includes a step 2112 to control electric motor 1442 according to the value of the rolling resistance torque τ.sub.R. In one example of step 2112, the processor of controller 1434 controls a digital-to-analog converter of controller 1434 that feeds a motor drive circuit (e.g., a PWM circuit) of controller 1434, the output of the motor drive circuit being electrically connected to electric motor 1442.
[0158]
[0159] Method 2200 includes a step 2208 that adds the drag force F.sub.D and rolling resistance force F.sub.R to generate a total resistance force F.sub.T. In one example of step 2208, the processor of controller 1434 adds a value of resistance force F.sub.R stored in the memory of controller 1434 and a value of the drag force F.sub.D stored in the memory of controller 1434. The processor may then store the resulting value of total resistance force F.sub.T in the memory of controller 1434.
[0160] Method 2200 includes a step 2210 to generate a total resistance torque τ.sub.T from the total resistance force F.sub.T. In one example of step 2210, controller 1434 multiplies the total resistance force F.sub.T by the value of the radius r.sub.RD of rear drum 1404. Step 2012 of method 2000 and step 2108 of method 2100 are examples of step 2210. Method 2200 also includes a step 2212 to control electric motor 1442 according to the total resistance torque τ.sub.T. Step 2016 of method 2000 and step 2112 of method 2100 are examples of step 2212.
[0161] In one embodiment, method 2200 repeats steps 2202 through 2212 to periodically update the drag force F.sub.D according to a changing speed v. When rolling resistance force F.sub.R depends neither on the speed v nor any other quantity that changes with time, rolling resistance force F.sub.R need not be recalculated with each iteration of method 2200. For example, a value for rolling resistance force F.sub.R may be calculated once and stored in the memory of controller 1434; step 2206 may then access the value of rolling resistance force F.sub.R from the memory of controller 1434 with each iteration of method 2200. Method 2200 may also include a delay step 2214 to wait before repeating steps 2202 through 2212. In one example of step 2214, controller 1434 waits for 100 milliseconds between iterations of method 2200.
[0162] Models of drag, headwind/tailwind, and rolling resistance presented above are representative of the types of physical forces that may act on bicycle 600, and the rider thereon, when bicycle 600 is ridden outside on a road. These models are not intended to be limiting, and models of other physical phenomena may be similarly simulated without departing from the scope hereof. For example, the resistance generator may be used to simulate forces due to cross-winds and/or riding bicycle 600 at an incline. In certain embodiments, when simulating physical forces that would accelerate bicycle 600 (e.g., a tailwind, or riding downhill), controller 1434 may at times operate electric motor 1442 in motoring mode to accelerate rear surface 1422 accordingly. While method 2200 is shown simultaneously simulating a drag force F.sub.D and a rolling resistance force F.sub.R, method 2200 may simulate any number and/or types of resistance forces, wherein step 2208 sums the resistance forces.
[0163]
[0164] Method 2300 includes a step 2302 to retrieve the next value of the inclination angle. In one example of step 2302, controller 1434 accesses the next value of the inclination angle stored in the memory of controller 1434. Method 2300 also includes a step 2306 to generate a value of a motional force F.sub.M according to the inclination angle. In one example of step 2306, controller 1434 multiplies a weight of bicycle 600 and the rider mounted thereon by the sine of the inclination angle. Method 2300 also includes a step 2308 that provides a value of the weight. As one example of step 2308, controller 1434 accesses a value of the weight stored in the memory of controller 1434.
[0165] Method 2300 also includes a step 2310 to generate a value of motional torque τ.sub.M from the motional force F.sub.M. In one example of step 2310, controller 1434 multiplies the value of motional force F.sub.M by the value of the radius r.sub.RD of rear drum 1404. Method 2300 includes a step 2312 to provide the value of r.sub.RD. As one example of step 2312, controller 1434 accesses the value of r.sub.RD stored in the memory of controller 1434.
[0166] Method 2300 also includes a step 2314 to control electric motor 1442 according to the value of the motional torque τ.sub.M. In one example of step 2314, the processor of controller 1434 controls a digital-to-analog converter of controller 1434 that feeds a motor drive circuit (e.g., a PWM circuit) of controller 1434, the output of the motor drive circuit being electrically connected to electric motor 1442.
[0167] In one embodiment, method 2300 repeats steps 2302 through 2314 to periodically update the motional torque τ.sub.M according to a different value of inclination angle. Method 2300 may also include a delay step 2316 to wait before repeating steps 2302 through 2314. In one example of step 2316, controller 1434 delays for 100 milliseconds. In another example of step 2316, controller 1434 monitors the speed of rear surface 1422 (e.g., the rotation rate of rear drum 1404) and computes a simulated distance traveled by the rider on bicycle 600; controller 1434 delays until the simulated distance has reached a value stored in the memory of controller 1434, wherein controller 1434 delays according to the simulated speed of bicycle 600, as generated by the rider.
[0168]
[0169] Embodiments with Bicycle Trainers
[0170]
[0171]
[0172] Rear translation mechanism 2504 also includes a turntable 2604 rotatable around a vertical turntable axis 2702, and a rolling-element bearing 2606 rotatable around a lean axis 2608. Turntable 2604 and rolling-element bearing 2606 are laterally centered such that turntable axis 2702 and lean axis 2608 intersect. Furthermore, transfer wheel 2704 is positioned to coincide with turntable axis 2702 beneath lean axis 2608, as shown in
[0173] Simulator 2500 includes front roller 1402, described above for simulators 1400 and 1700 of
[0174] Lateral motion of front wheel 602 moves fork 606 likewise, changing a heading of frame 608, stationary trainer 2502, and platform 2506 by rotating transfer wheel 2704, via turntable 2604, around turntable axis 2702. Transfer wheel 2704, when rotating about its axle, laterally translates along a longitudinally-moving rear surface 2618 of rear drum 2612 in response to the change of heading. That is, transfer wheel 2704 laterally accelerates along moving rear surface 2618.
[0175] Rear translation mechanism 2504 includes carriages 2610 that support turntable 2604 and are moveable along first and second linear guide rails 2602(1) and 2602(2). Thus, as transfer wheel 2704 laterally translates along rear surface 2618, rear translation mechanism 2504 laterally translates likewise along guide rails 2602 while preventing bicycle 600, stationary trainer 2502, and platform 2506 from moving longitudinally.
[0176] In one embodiment, rear translation mechanism 2504 includes a plurality of springs 2614 that provide a restoring force to return platform 2506 to a horizontal orientation (i.e., zero lean angle), thereby assisting the rider of bicycle 600 with balancing. In the example of
[0177]
[0178] To accurately replicate riding of bicycle 600 on a surface, stationary trainer 2502 may be positioned on platform 2506 such that a support axis of rear wheel 604 (see rear support axis 612 of
[0179] While
[0180] In some embodiments, simulator 2500 excludes rear drum 2612 and transfer wheel 2704, advantageously eliminating the need for motor 2616 to rotate rear drum 2612. In these embodiments, rear translation mechanism 2504 is supported only by guide rails 2602 via carriages 2610, and laterally translates along guide rails 2602 due to oscillatory leaning of bicycle 600 caused by pedaling. Specifically, when a rider pedals bicycle 600, the rider may control bicycle 600 to lean left-and-right in an oscillatory way that is synchronized with the rider's cadence. This oscillatory leaning can be observed, for example, when a cyclist rides out of the saddle during a sprint. By changing the amplitude of the oscillatory leaning (i.e., how far to the left and right the rider causes bicycle 600 to lean with each pedal stroke), the rider can control frame 608 to laterally translate, in turn causing the front heading angle of bicycle 600 to change. In response to this change of the front heading angle, rotating front wheel 602 laterally translates along moving front surface 1420. Thus, bicycle 600 can be balanced without steering, similarly to how a rider steers and balances a bicycle when riding without hands.
[0181] Electronics
[0182]
[0183] Controller 2800 includes a first sensor input circuit 2812 that receives a first sensor signal 2813 from a first sensor, and a second sensor input circuit 2814 that receives a second sensor signal 2815 from a second sensor. Each sensor may be an angle sensor (e.g., front and rear heading sensors 810(1), (2), front lean sensor 911), rotation sensor (e.g., rotation sensors 1446 and 1444), torque sensor (e.g., torque sensor 1452), orientation sensor (e.g., accelerometer), or other type of sensor. While
[0184] Controller 2800 also includes a first controller circuit 2816 that outputs a first control signal 2817 to a first actuator, and a second control circuit 2818 that outputs a second control signal 2819 to a second actuator. Each actuator may be a linear actuator (e.g., front and rear actuators 808(1), (2) of
[0185] Sensor input circuits 2812 and 2814 may amplify, filter, and/or digitize respective sensor signals 2813 and 2815. Depending on the type of sensor, each of sensor input circuits 2812 and 2814 may be configured for two-terminal sensing, four-terminal Kelvin sensing, a Wheatstone bridge, or another type of impedance, voltage, or current measurement technique. Sensor input circuits 2812 and 2814 may include difference amplifiers, instrumentation amplifiers, and/or similar components for analog signal conditioning. In some embodiments, sensor input circuits 2812 and 2814 include filters to reject noise and/or interference from respective sensor signals 2813 and 2815. When sensor signals 2813 and 2815 are analog signals, sensor input circuits 2812 and 2814 may include analog-to-digital converters (ADCs) to digitize respective sensor signals 2813 and 2815. When sensor signals 2813 and 2815 are digital signals, sensor input circuits 2812 and 2814 may include receivers to receive respective digital signals 2813 and 2815.
[0186] Depending on the type of actuator, each of controller circuits 2816 and 2818 may be configured to output an analog voltage or current, wherein the corresponding control signals 2817 and 2819 are analog control signals. Each of controller circuits 2816 and 2818 may be configured to output a digital signal, wherein the corresponding control signals 2817 and 2819 are digital control signals. In one embodiment, each of controller circuits 2816 and 2818 is a PWM circuit configured to drive a motor. In another embodiment, when each of controller circuits 2816 and 2818 is configured to output an analog signal, controller circuits 2816 and 2818 include a digital-to-analog converter (DAC) to generate corresponding analog control signals 2817 and 2819.
[0187] RF transceiver circuit 2820 may use one or more wireless protocols, such as Bluetooth, Wi-Fi, and ZigBee. In certain embodiments, RF transceiver circuit 2820 transmits wireless communication 2836 to remote device 2824 using any of several protocols that stream data over networks, such as User Datagram Protocol (UDP), Transmission Control Protocol (TCP), Hypertext Transfer Protocol (HTTP), Real-Time Streaming Protocol (RTSP), and Real-Time Transport Protocol (RTP). In certain embodiments, RF transceiver circuit 2820 may implement a Bluetooth profile such as Human Interface Device Profile (HID), Hands-Free Profile (HFP), LAN Access Profile (LAP), and a Bluetooth Advanced Audio Distribution Profile (A2DP). For example, RF transceiver circuit 2820 may use A2DP to stream front and rear heading angles θ.sub.f and θ.sub.r via a single wireless channel to remote device 2824.
[0188] Microprocessor circuit 2804 may include at least one central processing unit (CPU), graphics processing unit (GPU), digital signal processor (DSP), field-programmable gate array (FPGA), or other type of integrated circuit capable of performing logic, control, and input/output operations. Microprocessor circuit 2804 may include a mixed-signal integrated circuit, such as a System-on-Chip (SoC) or microcontroller unit (MCU), that combines a processor, memory, and input/output interfaces on a single chip. Microprocessor circuit 2804 may also include a memory controller, bus controller, graphics processing unit, and/or other components that manage data flow between microprocessor circuit 2804, memory 2806, and other components communicatively coupled with bus 2802.
[0189] Memory 2806 may include both volatile memory (e.g., RAM, SRAM, etc.) and nonvolatile memory (e.g., ROM, FLASH, etc.). Instructions 2808 include machine-readable instructions that, when executed by microprocessor circuit 2804, control operation of controller 2800. Instructions 2808 may include at least one algorithm 2832, as well as operating system instructions. Algorithm 2832 is selected based on desired functionality of controller 2800, as described in further detail below.
[0190] In
[0191] Microprocessor circuit 2804 executes instructions 2808 (e.g., algorithm 2832) to compute values of front and rear lateral velocities v.sub.y.sup.(f) and v.sub.y.sup.(r) from speed v and respective heading angles θ.sub.f and θ.sub.r. Microprocessor circuit 2804 then sends values of front and rear lateral velocities v.sub.y.sup.(f) and v.sub.y.sup.(r) over bus 2802 to respective controller circuits 2816 and 2818, which output corresponding control signals 2817 and 2819 according to the received values of front and rear lateral velocities v.sub.y.sup.(f) and v.sub.y.sup.(r), respectively. In one embodiment, microprocessor circuit 2804 sends values of lateral velocities v.sub.y.sup.(f) and v.sub.y.sup.(r) and/or heading angles θ.sub.f and θ.sub.r over bus 2802 to RF transceiver circuit 2820 for transmission, via antenna 2822, to remote device 2824 as wireless communication 2836.
[0192] Controller 2800 may wirelessly transmit to remote device 2824 data stored in memory 2806. Remote device 2824 receives data in wireless communication 2836 and may display the received data to a user via a display 2838 of remote device 2824. In certain embodiments, remote device 2824 may store the received data for future processing and/or display. For example, controller 2800 may wirelessly transmit to remote device 2824 values of speed v of rear moving surface 1422, and corresponding values of time at which each value of speed v was sensed (e.g., by one of sensor input circuits 2812 and 2814); remote device 2824 may display these values on display 2838 as a rolling chart such that a rider may monitor speed v over time. When controller 2800 operates with a resistance generator, controller 2800 may wirelessly transmit to remote device 2824 values of the torque applied to electric motor 1442, along with corresponding values of time at which each torque was generated by electric motor 1442; remote device 2824 may display these values on display 2838 as a rolling chart such that a rider may observe changes in the simulated resistance force over time, thereby monitoring a level of effort required to overcome the resistance force.
[0193] In certain embodiments, RF transceiver circuit 2820 may also wirelessly receive, from remote device 2824 via antenna 2822, instructions and/or data to store in memory 2806. For example, the user may interact with an app running on remote device 2824 to modify values stored in data 2810. For example, when data 2810 includes values for a resistance model (e.g., a model of wind resistance or rolling resistance), the user may enter values for the normal force N, friction coefficient α, and/or coefficient C into remote device 2824, which wirelessly transmits the values to controller 2800 for storage in data 2810.
[0194] In some embodiments, controller 2800 is further configured such that a rider may participate in a massively multiplayer online game (MMOG), such as a massively multiplayer online racing (MMOR) game. As shown in the example of
[0195] Changes may be made in the above methods and systems without departing from the scope hereof. It should thus be noted that the matter contained in the above description or shown in the accompanying drawings should be interpreted as illustrative and not in a limiting sense. The following claims are intended to cover all generic and specific features described herein, as well as all statements of the scope of the present method and system, which, as a matter of language, might be said to fall therebetween.