U.S. patent application number 14/476269 was filed with the patent office on 2016-03-03 for walking machines.
The applicant listed for this patent is Disney Enterprises, Inc.. Invention is credited to Gaurav Bharaj, Bernd Bickel, Stelian Coros, Bernhard Thomaszewski.
Application Number | 20160059140 14/476269 |
Document ID | / |
Family ID | 55401370 |
Filed Date | 2016-03-03 |
United States Patent
Application |
20160059140 |
Kind Code |
A1 |
Bickel; Bernd ; et
al. |
March 3, 2016 |
Walking Machines
Abstract
There are provided systems and methods of optimizing walking
machines. The system including a memory storing a software
application and a processor configured to execute the software
application to receive a character from a user, the character
having walking mechanisms, determine optimal design parameters for
the character based on the walking mechanisms, and alter the
walking mechanisms of the character based on the optimal design
parameters to generate altered walking mechanisms, wherein the
optimal design parameters are for use by the character to walk
using the altered walking mechanisms. Generating the altered
walking mechanisms may include at least one of changing locations
for joints on the walking mechanisms, changing the dimensions of
the walking mechanisms, and changing motion timings for the walking
mechanisms.
Inventors: |
Bickel; Bernd; (Zurich,
CH) ; Bharaj; Gaurav; (Zurich, CH) ;
Thomaszewski; Bernhard; (Zurich, CH) ; Coros;
Stelian; (Zurich, CH) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
Disney Enterprises, Inc. |
Burbank |
CA |
US |
|
|
Family ID: |
55401370 |
Appl. No.: |
14/476269 |
Filed: |
September 3, 2014 |
Current U.S.
Class: |
446/353 |
Current CPC
Class: |
A63H 11/20 20130101 |
International
Class: |
A63H 11/20 20060101
A63H011/20 |
Claims
1. A system comprising: a memory storing a software application;
and a processor configured to execute the software application to:
receive a character from a user, the character having walking
mechanisms; determine optimal design parameters for the character
based on the walking mechanisms; and alter the walking mechanisms
of the character based on the optimal design parameters to generate
altered walking mechanisms, wherein the optimal design parameters
are for use by the character to walk using the altered walking
mechanisms.
2. The system of claim 1, wherein the processor is configured to
determine the optimal design parameters by: determining a plurality
of different design parameters for the character; and selecting the
optimal design parameters from the plurality of different design
parameters.
3. The system of claim 2, wherein the processor is configured to
select the optimal design parameters from the plurality of
different design parameters by: simulating a walking motion of the
character using each of the plurality of different design
parameters; measuring a quality for the walking motion of the
character for each of the plurality of different design parameters;
and selecting the optimal design parameters based on the quality of
the walking motion of the character for each of the plurality of
different design parameters.
4. The system of claim 1, wherein the walking mechanisms include
joints and the optimal design parameters include locations for the
joints on the character, and wherein generating the altered walking
mechanisms includes placing the altered walking mechanisms on the
character using the locations for the joints.
5. The system of claim 1, wherein the walking mechanisms include
first dimensions and the optimal design parameters include second
dimensions for the walking mechanisms, and wherein generating the
altered walking mechanisms includes changing the first dimensions
of the walking mechanisms to the second dimensions.
6. The system of claim 1, wherein the optimal design parameters
include a timing for moving each of the walking mechanisms, and
wherein generating the altered walking mechanisms includes
configuring the walking mechanisms using the timing.
7. The system of claim 1, wherein to receive the character from the
user, the processor is configured to: display a user interface
including a plurality of walking mechanisms to the user, wherein
the user uses the user interface to select the walking mechanisms
from the plurality of walking mechanisms and place the walking
mechanisms on the character.
8. The system of claim 1, wherein the processor is further
configured to generate assembly instructions for building the
character using the altered walking mechanisms.
9. The system of claim 8, wherein the processor is further
configured to output illustrations and assembly plans corresponding
to the assembly instructions.
10. The system of claim 1, wherein the processor is further
configured to determine a plurality of different design parameters
using a Stochastic approach.
11. A method for optimizing walking mechanisms for a character, the
method comprising: receiving the character from a user, the
character having the walking mechanisms; determining optimal design
parameters for the character based on the walking mechanisms; and
altering the walking mechanisms of the character based on the
optimal design parameters to generate altered walking mechanisms,
wherein the optimal design parameters are for use by the character
to walk using the altered walking mechanisms.
12. The method of claim 11, wherein the method further comprises:
determining a plurality of different design parameters for the
character; and selecting the optimal design parameters from the
plurality of different design parameters.
13. The method of claim 12, wherein to select the optimal design
parameters from the plurality of different design parameters, the
method comprises: simulating a walking motion of the character
using each of the plurality of different design parameters;
measuring a quality for the walking motion of the character for
each of the plurality of different design parameters; and selecting
the optimal design parameters based on the quality of the walking
motion of the character for each of the plurality of different
design parameters.
14. The method of claim 11, wherein the walking mechanisms include
joints and the optimal design parameters include locations for the
joints on the character, and wherein generating the altered walking
mechanisms includes placing the altered walking mechanisms on the
character using the locations for the joints.
15. The method of claim 11, wherein the walking mechanisms include
first dimensions and the optimal design parameters include second
dimensions for the walking mechanisms, and wherein generating the
altered walking mechanisms includes changing the first dimensions
of the walking mechanisms to the second dimensions.
16. The method of claim 11, wherein the optimal design parameters
include a timing for moving each of the walking mechanisms, and
wherein generating the altered walking mechanisms includes
configuring the walking mechanisms using the timing.
17. The method of claim 11, wherein to receive the character from
the user, the method comprises: displaying a user interface
including a plurality of walking mechanisms to the user, wherein
the user uses the user interface to select the walking mechanisms
from the plurality of walking mechanisms and place the walking
mechanisms on the character.
18. The method of claim 11, the method further comprises:
generating assembly instructions for building the character using
the altered walking mechanisms.
19. The method of claim 18, wherein the method further comprises:
outputting illustrations and assembly plans corresponding to the
assembly instructions.
20. The method of claim 11, the method further comprising:
determining a plurality of different design parameters using a
Stochastic approach.
Description
BACKGROUND
[0001] With the advancement of technology, mechanical characters
and toys are currently capable of a vast array of movements. For
example, a variety of mass-produced toys are now capable of walking
on their own without any user interaction. However, while there
currently exists this variety of mass-produced toys that are
capable of walking, designing such toys remains a difficult and
laborious task that requires significant engineering expertise. As
such, ordinary users that want to design and build these toys are
not able to do so.
SUMMARY
[0002] The present disclosure is directed to optimizing walking
machines, substantially as shown in and/or described in connection
with at least one of the figures, as set forth more completely in
the claims.
BRIEF DESCRIPTION OF THE DRAWINGS
[0003] FIG. 1 presents a system for optimizing walking machines,
according to one implementation of the present disclosure.
[0004] FIG. 2 presents an example of a user interface used to
design walking machines, according to one implementation of the
present disclosure.
[0005] FIG. 3 presents an example of altering the parameters of a
walking machine, according to one implementation of the present
disclosure.
[0006] FIG. 4 shows a flowchart illustrating a method for
optimizing walking machines, according to one implementation of the
present disclosure.
DETAILED DESCRIPTION
[0007] The following description contains specific information
pertaining to implementations in the present disclosure. The
drawings in the present application and their accompanying detailed
description are directed to merely exemplary implementations.
Unless noted otherwise, like or corresponding elements among the
figures may be indicated by like or corresponding reference
numerals. Moreover, the drawings and illustrations in the present
application are generally not to scale, and are not intended to
correspond to actual relative dimensions.
[0008] FIG. 1 presents a system for optimizing walking machines,
according to one implementation of the present disclosure. System
100 of FIG. 1 includes user device 110 and user 150. User device
110 includes processor 111, display 112, speakers 113, memory 114,
and input interface 115. Memory 114 includes machine software
application 120, which includes user interface 121, simulation 124,
optimization 126, and character assembly 136. User interface 121
includes mechanisms 122 and character design 123. Simulation 124
includes constraints 125, which includes joint constraints 139,
motor constraints 140, and frictional constraints 141. Optimization
126 includes methods 127, parameters 131, and optimized character
design 135. Methods 127 include Stochastic approach 128,
gradient-based approach 129, and hybrid approach 130. Parameters
131 include joints 132, dimensions 133, and timing 134. Character
assembly 136 includes assembly operations 137 and assembly
instructions 138. User 150 includes user input 151.
[0009] User device 110 may comprise a personal computer, a server,
a mobile phone, a tablet, or any other device capable of executing
machine software application 120 in memory 114. As shown in FIG. 1,
user device 110 includes display 112 and input interface 115. Input
interface 115 may comprise, for example, a keyboard, a mouse, a
game controller, a touch-screen input, a thermal and/or electrical
sensor, or any other device capable of accepting user input 151 for
use with user device 110. Display 112 may comprise a liquid crystal
display (LCD) screen built into user device 110. In alternative
implementations of the present disclosure, display 112 may be
another type of display hardware, such as cathode-ray tubes (CRT)
monitors. In yet other implementations, display 112 may also be
touch sensitive and may serve as input interface 115.
[0010] User device 110 further includes processor 111 and memory
114. Processor 111 may be configured to access memory 114 to store
received input or to execute commands, processes, or programs
stored in memory 114, such as machine software application 120.
Processor 111 may correspond to a processing device, such as a
microprocessor or similar hardware processing device, or a
plurality of hardware devices. However, in other implementations
processor 111 refers to a general processor capable of performing
the functions required of user device 110. Memory 114 is a
sufficient memory capable of storing commands, processes, and
programs for execution by processor 111. Memory 114 may be
instituted as ROM, RAM, flash memory, or any sufficient memory
capable of storing a set of commands. In other implementations,
memory 114 may correspond to a plurality memory types or
modules.
[0011] As illustrated in FIG. 1, user device 110 includes machine
software application 120. User 150 of user device 110 may utilize
machine software application 120 to design machines or toys that
are capable of walking in a stable manner. Machine software
application 120 allows user 150 to design walking machines by first
providing user 150 with user interface 121, where user interface
121 allows user 150 to build character design 123 using mechanisms
122.
[0012] Character design 123 may include an initial design built by
user 150 for a walking machine or toy. To build character design
123, user 150 selects mechanisms 122 to add to character design
123. Mechanisms 122 may include, but are not limited to, mechanical
assemblies, gears, linkages, and geometric shapes that connect
together to build character design 123. For example, user 150 may
be utilizing machine software application 120 to design a toy dog
that is capable of walking in a stable manner. In such an example,
user 150 may select the head, body, tail, and legs for the toy dog
from mechanisms 122. Furthermore, user 150 may also select gears
and linkages (such as joints) from mechanisms 122, where gears and
linkages are used to hold the parts of the toy dog together so that
the toy dog is able to walk in a stable manner.
[0013] Also illustrated in FIG. 1, machine software application 120
includes simulation 124. As will be discussed below, machine
software application 120 automatically optimizes parameters 131 for
character design 123 so that character design 123 is able to walk
in a stable manner. When optimizing character design 123, machine
software application 120 utilizes simulation 124 to measure the
quality of the walking motion for character design 123 using
various parameters 131. For example, and using the example above
where user 150 is using machine software application 120 to design
a toy dog as character design 123, after user 150 has designed the
toy dog, machine software application 120 determines and applies
different parameters 131 to the toy dog and simulates a walking
motion of the toy dog using the different parameters 131 as
simulation 124.
[0014] Also illustrated in FIG. 1, simulation 124 includes
constraints 125. When simulating character design 123 using
simulation 124, machine software application 120 models joints,
virtual motors, and frictional contacts using different constraints
125, such as joint constraints 139, motor constraints 140, and
frictional constraints 141. Joints that allow a pair of rigid body
components to rotate relative to each other about a pre-specified
axis include two sets of joint constraints 139. First, joints
include a vector-valued constraint that ensures that each joint on
character design 123 coincides in a world space. Second, joints
include a second vector-valued constraint that ensures the two
rigid bodies connected by each joint rotate relative to each other
only about the pre-specified axis.
[0015] Motor constraints 140 are used to mimic the effect of
physical actuators (or motors) used in the motion of character
design 123. For example, it may be assumed that each limb of
character design 123 has an input crank that operates relative to
the main body of character design 123. Since joints already employ
joint constraints 139 between each limb and the main body, motor
constraints 140 directly measure the difference between their
relative orientation and a target motor angle, where the target
motor angles are specified by phase profile functions.
[0016] Contacts are used by character design 123 to move around
simulated environments, where each contact for character design
includes three frictional constraints 141. The first constraint for
frictional constraints 141 specifies that a penetration distance,
measured along a contact normal, should be equal to zero. The
second constraint for frictional constraints 141 specifies
frictional forces acting in a tangential direction from the contact
normal, where a pyramid approximation to a friction cone is used to
model the frictional forces. Finally, the third constraint for
frictional constraints 141 includes inequality constraints for the
magnitude of the tangential forces, which ensure that the
tangential forces remain within the friction pyramid.
[0017] Also illustrated in FIG. 1, machine software application 120
includes optimization 126. As discussed above, machine software
application 120 automatically optimizes parameters 131 for
character design 123 so that character design 123 is able to walk
in a stable manner. As such, machine software application 120
utilizes optimization 126 to both determine different parameters
131 that can be applied to character design 123 so that character
design 123 can walk in a stable manner, and to generate optimized
character design 135, where optimized character design 135
corresponds to character design 123 which as been altered using
optimal parameters from the different parameters 131. The optimal
parameters used to alter character design 123 when generating
optimized character design 135 correspond to the parameters that
give character design 123 the best quality walking motion, such
that character design 123 is able to walk using an upright, smooth,
and stable motion.
[0018] For example, and using the example above where user 150 is
using machine software application 120 to design a toy dog as
character design 123, machine software application 120 may utilize
optimization 126 to determine different parameters 131 that can be
utilized to alter the toy dog so that the toy dog can walk in a
stable manner. Machine software application 120 may then utilize
simulation 124 to measure the quality of the walking motion for the
toy dog when each of the different parameters 131 is applied to the
toy dog. After measuring the quality of the walking motions of the
toy dog using each of the different parameters 131, machine
software application 120 may determine optimal parameters from the
different parameters 131, where the optimal parameters correspond
to the parameters from the different parameters 131 that give the
toy dog the best quality walking motion. Finally, machine software
application 120 may alter the toy dog using the optimal parameters
to generate optimized character design 135.
[0019] In order to determine different parameters 131 that can be
applied to character design 123 so that character design 123 can
walk in a stable manner, optimization 126 utilizes different
methods 127, where methods 127 include, but are not limited to,
stochastic approach 128, gradient-based approach 129, and hybrid
approach 130. Stochastic approach 128 generates random parameters
131 that may be utilized to alter character design 123.
Gradient-Based approach 129 generates a set of poses for character
design 123 and requires that character design 123 is as stable as
possible using certain simulation states, which are described
below. Hybrid approach 130 uses stochastic approach 128 to generate
random parameters 131 for character design 123, but then utilizes
gradient-based approach 129 to optimize walking stability.
[0020] Parameters 131 that may be altered on character design 123
by optimization 126 to generate optimized character design 135
include joints 132, dimensions 133, and timing 134. Joints 132
correspond to the joints that attach each of the walking mechanisms
of character design 123 to the body of character design 123. For
example, joints may be used to attach the legs (or walking
mechanisms) of the toy dog discussed above to the body of the dog.
As such, parameters 131 for joints 132 may include a location of
where the joints for the walking mechanisms actually attach to the
body. For example, optimization 126 may determine optimal
parameters 131 for joints 132 on character design 123, where
optimal parameters 131 for joints 132 specify a location for the
joints that hold the walking mechanisms of character design 123 to
the body of character design 123 such that character design 123 is
able to walk using a balanced and stable motion.
[0021] Dimensions 133 correspond to the dimensions of the walking
mechanisms of character design 123. For example, dimensions 133 for
the toy dog discussed above may specify that that the legs (or
walking mechanisms) of the toy dog should each be three inches
vertically and two inches horizontally. As such, parameters 131 for
dimensions 133 may include dimensions for the walking mechanisms of
character design 123 such that character design 123 is able to walk
using a balanced and stable motion.
[0022] Timing 134 may used to control the relative phase between
the walking mechanisms of character design 123 by specifying the
phase profile functions of the virtual actuators (or motors) that
move the walking mechanisms. For example, timing 124 for the toy
clog discussed above may specify different timings for the legs (or
walking mechanisms) of the toy dog. In such an example, the
different timings may specify the phase profile functions of the
motors that move each of the legs. As such, parameters 131 for
timing 134 may include the phase profile functions of the virtual
actuators such that character design 123 is able to walk using a
balanced and stable motion.
[0023] It should be noted that as discussed above, when changing
parameters 131 for character design 123, machine software
application 120 utilizes simulation 124 to determine a quality for
the walking motion of character design 123 using each of the
different parameters 131. To determine the quality of the walking
motion, machine software application 120 may use different
simulation states. The simulation states may include, but are not
limited to, the distance traveled, how long the character was able
to walk, the smoothness of the walking motion, the effort required
by the character to walk, and how close the design is with the
changed parameters to original character design 123.
[0024] The distance traveled by character design 123 includes how
far character design 123 was able to travel, where a better quality
character design 123 will travel further distances than a design
that is of low quality. The time character design 123 was able to
walk includes how long character design 123 walked while remaining
upright on the walking mechanisms, where a better quality character
design 123 will walk for a greater period of time than a design
that is of lower quality. The smoothness of the walking motion of
character design 123 includes how smooth the walking motion was,
where a better quality character design 123 will walk using a
smoother walking motion than a design that is of lower quality. The
effort required for character design 123 to walk includes how much
force is needed to both move the walking mechanisms of character
design 123 and keep character design 123 in an upright position,
where a better quality character design 123 will require less
effort than a design that is of lower quality. Finally, a better
quality optimized character design 135 will include a design that
is more similar to the original character design 123 designed by
user 150, than a design that is of lower quality and drastically
different than the original character design 123.
[0025] For example, and using the example above where user 150 is
designing a toy dog as character design 123, each time machine
software application 120 changes parameters 131 for the toy dog,
machine software application 120 measures the quality of the
walking motion for the toy dog using the changed parameters 131. In
such an example, machine software application 120 may measure how
far the toy dog walked and how long the toy dog was walking during
the simulation, where a better quality design for the toy dog will
walk a farther distance for a greater amount of time. Machine
software application 120 may further measure how smooth the walking
motion of the toy dog was during the simulation, where a better
quality design has a smooth walking motion. Further, machine
software application 120 may measure how much effort was needed for
the toy dog to walk during the simulation, where a better quality
design will require less force to both walk and stay upright.
Finally, machine software application 120 may measure how close the
toy dog is with parameters 131 changed to the original character
design 123 for the toy dog from user 150, where a better quality
toy dog is as close as possible to original character design
123.
[0026] Also illustrated in FIG. 1, machine software application 120
includes character assembly 136. After generating optimized
character design 135, machine software application 120 may utilize
character assembly 136 in order to give user 150 instructions on
how to build optimized character design 135. As such, character
assembly 136 includes assembly operations 137 and assembly
instructions 138. Assembly operations 137 includes a set of
instructions that user 150 can follow to build optimized character
design 135, where there may be more than one set of instructions.
Assembly instructions 138 may be utilized by machine software
application 120 to actually instruct user 150 on how to build
optimized character design 135 using both illustrations and
assembly plans displayed on display 112, and also audible
instructions using speaker 113. For example, machine software
application 120 may utilize assembly instructions 138 to audibly
instruct user 150 on how to build optimized character design 135
through speakers 113, and assembly instructions may use
illustrations and assembly plans to instruct user 150 how to build
optimized character design 135 using display 112. In such an
example, the instructions on how to build optimized character
design 135 come from assembly operations 137.
[0027] It should be noted that in one implementation, user device
110 may be connected to a machine (not shown) that automatically
builds optimized character design 135. For example, after machine
software application 120 determines assembly operations 137 for
building optimized character design 135, machine software
application 120 may transmit assembly operations 137 to a machine
that builds a walking machine using assembly operations 137. In
such an example, the machine may be connected to user device 110
using any wired or wireless technology. For example, user device
110 may transmit assembly operations 137 to a machine using the
Internet.
[0028] FIG. 2 presents an example of a user interface used to
design walking machines, according to one implementation of the
present disclosure. FIG. 2 includes user device 210, which includes
display 212. Display 212 includes user interface 221, which
includes mechanisms 222 and character design 223. Mechanisms 222
include mechanisms 260a, mechanism 260b, and mechanism 260c. With
regard to FIG. 2, it should be noted that user device 210, display
212, user interface 221, mechanisms 222, and character design 223
correspond respectively to user device 110, display 112, user
interface 121, mechanisms 122, and character design 123 from FIG.
1.
[0029] As illustrated in FIG. 2, a user, such as user 150 from FIG.
1, has been presented with user interface 221. As discussed above,
user interface 221 may be utilized by the user to design mechanical
characters, such as character design 223. The user designs the
mechanical characters by selecting different mechanisms and placing
the selected mechanisms on the mechanical character. For example,
the user may select either mechanism 260a, mechanism 260b, or
mechanism 260c from mechanisms 222 to place on character design
223. As illustrated in FIG. 2, the user has selected a first
mechanism 260a and placed it on the back of character design 223,
and selected a second mechanism 260a and placed it on the front of
character design 223.
[0030] It should be noted that FIG. 2 only illustrates mechanisms
222 as including different walking mechanisms (or legs) for
character design 223, however, the present disclosure is not
limited to the implementation of FIG. 2. In one implementation,
mechanisms 222 may include any of the features that make up a
mechanical character. For example, in such an implementation,
mechanisms 222 may include all of the features that make up
character design 223, such as the head, body, tail, arms, ears,
nose, or neck of character design 223. In such an example, the user
would utilize user interface 221 to select and place each of the
different features for character design 223.
[0031] It should further be noted that when placing mechanisms 222
on character design 223, the user is able to place each of
mechanisms 222 at any location on character design 223. For
example, the user may have placed each of the selected mechanisms
222 at the front of character design 223 such that character design
223 has two front legs and no back legs. Furthermore, in another
example, the user may have placed the back mechanism higher up than
the front mechanism. In such an example, the back legs of character
design 223 would not hang as low as the front legs of character
design 223.
[0032] FIG. 3 presents an example of altering the parameters of a
walking machine, according to one implementation of the present
disclosure. FIG. 3 includes character design 323 and optimized
character design 335a, optimized character design 335b, and
optimized character design 335c, collectively referred to as
optimized character designs 335. Character design 323 includes
joint 332a, joint 332h, mechanism 360a, and mechanism 360b.
Optimized character design 335b includes joint 332a, joint 332b,
mechanism 360a, and mechanism 360b. Optimized character design 335c
includes joint 332a, joint 332h, mechanism 360a, mechanism 360b,
timing 340a and timing 340b.
[0033] With regard to FIG. 3 it should be noted that joint 332a and
joint 332b will collectively be referred to as joints 332,
mechanism 360a and mechanism 360b will collectively be referred to
as mechanisms 360, and timing 334a and timing 334 will collectively
be referred to as timing 334. Furthermore, with respect to FIG. 3,
character design 323, joints 332, timing 334, and each of optimized
character designs 335 correspond respectively to character design
123, joints 132, timing 134, and optimized character design 135
from FIG. 1. Finally, character design 323 and each of mechanisms
360 correspond respectively to character design 223 and mechanism
260a from FIG. 2.
[0034] As illustrated in FIG. 3, character design 323 includes the
original character design 223 designed by the user using user
interface 221 from FIG. 2. After the user is done designing
character design 323, a machine software application, such as
machine software application 120 from FIG. 1, may optimize
character design 323 using different parameters so that character
design 323 is able to walk using a stable motion. As such, the
machine software application may have altered character design 323
into one of optimized character designs 335 by changing the
parameters of character design 323.
[0035] Optimized character design 335a includes the same mechanisms
as character design 323, however, a location for each of the joints
332 for optimized character design 335a has been changed as
compared to character design 323. As illustrated in FIG. 3, joint
332a and mechanism 360a have been moved to the left on optimized
character design 335a, and joint 332b and mechanism 360b have been
moved to the right on optimized character design 335a. By changing
a location for each of joints 332 and mechanisms 360 on character
design 323 to generate optimized character design 335a, the machine
software application may have generated a more stable walking
machine.
[0036] Optimized character design 335b includes the same mechanisms
as character design 323, however, dimensions for each of mechanisms
360 for optimized character design 335b has been changed as
compared to character design 323. As illustrated in FIG. 3, a
dimension for each of mechanisms 360 has been changed so that each
of mechanisms 360 is longer on optimized character design 335b. By
changing the dimensions for each of mechanisms 360 on character
design 323 to generate optimized character design 335b, the machine
software application may have generated a more stable walking
machine.
[0037] Optimized character design 335c includes the same mechanisms
as character design 323, however, optimized character design 335c
now includes timing 334 for mechanisms 360. As discussed above, a
machine software application can change timing 334 parameters which
are used to control the relative phase between the walking
mechanisms of character design 323 by specifying the phase profile
functions of the virtual actuators. For example, and using FIG. 1,
machine software application 120 may change timing 134 from
parameters 131 to control the relative phase between the walking
mechanisms of character design 123. By changing timing 334 for
mechanisms 360 on character design 323 to generate optimized
character design 335c, the machine software application may have
generated a more stable walking machine.
[0038] It should be noted that the implementation of FIG. 3 only
illustrated changing one parameter for each of optimized character
designs 335, however, the present disclosure is not limited to the
implementation of FIG. 3. In other implementations, a machine
software application, such as machine software application 120 from
FIG. 1, may change more than one parameter to generate an optimal
character design. For example, a machine software application may
change both the location of joints and the dimensions of the
walking mechanisms on character design 323 to generate an optimal
character design.
[0039] FIG. 4 shows a flowchart illustrating a method for
optimizing walking machines, according to one implementation of the
present disclosure. The approach and technique indicated by
flowchart 400 are sufficient to describe at least one
implementation of the present disclosure, however, other
implementations of the disclosure may utilize approaches and
techniques different from those shown in flowchart 400.
Furthermore, while flowchart 400 is described with respect to FIG.
1, the disclosed inventive concepts are not intended to be limited
by specific features shown and described with respect to FIG. 1.
Furthermore, with respect to the method illustrated in FIG. 4, it
is noted that certain details and features have been left out of
flowchart 400 in order not to obscure the discussion of inventive
features in the present application.
[0040] Referring now to flowchart 400 of FIG. 4, flowchart 400
includes displaying a user interface to a user for designing a
character (410). For example, processor 111 of user device 110 may
execute machine software application 120 to display user interface
121 to user 150 for designing character design 123. As discussed
above, user interface 121 includes mechanisms 122 and character
design 123. User 150 can thus design a character by selecting
different mechanisms from mechanisms 122 and placing the selected
mechanisms on character design 123.
[0041] Flowchart 400 also includes receiving the character from the
user, the character including walking mechanisms (420). For
example, processor 111 of user device 110 may execute machine
software application 120 to receive character design 123 from user
150, where character design 123 includes walking mechanisms from
mechanisms 122. As discussed above and as illustrated in FIG. 2,
user 150 may select and place each mechanism (corresponding to the
legs of character design 223) at any place on character design
223.
[0042] Flowchart 400 also includes determining optimal design
parameters for the character based on the walking mechanisms (430).
For example, processor 211 of user device 210 may execute machine
software application 120 to determine optimal parameters from
parameters 131 for character design 123 based on the walking
mechanisms. As discussed above, machine software application 120
may utilize optimization 126 to determine different parameters 131
that can be applied to character design 123, where optimization 126
determines the different parameters 131 using methods 127. Machine
software application 120 may then utilize simulation 124 to
simulate a walking motion for character design 123 using each of
the different parameters 131 and measure a quality for each walking
motion. Finally, machine software application 120 may select the
optimal parameters from parameters 131 based on the quality of the
walking motions for each of the different parameters 131.
[0043] Flowchart 400 also includes altering the walking mechanisms
of the character based on the optimal design parameters to generate
altered walking mechanisms, wherein the optimal design parameters
are for use by the character to walk using the altered walking
mechanisms (440). For example, processor 111 of user device 110 may
execute machine software application 120 to alter the walking
mechanisms of character design 123 based on the optimal design
parameters from parameters 131 to generate optimized character
design 135 (which includes the altered walking mechanisms), wherein
the optimal design parameters are for use by optimized character
design 135 to walk.
[0044] Optionally, flowchart 400 may include generating assembly
instructions for building the character using the altered walking
mechanisms (450). For example, processor 111 of user device 110 may
execute machine software application 120 to generate assembly
operations 137 for building optimized character design 135, where
optimized character design 135 includes the altered walking
mechanisms. As discussed above, machine software application 120
may further use assembly instructions 138 to audibly provide user
150 with assembly operations 137 using speakers 113.
[0045] From the above description it is manifest that various
techniques can be used for implementing the concepts described in
the present application without departing from the scope of those
concepts. Moreover, while the concepts have been described with
specific reference to certain implementations, a person of ordinary
skill in the art would recognize that changes can be made in form
and detail without departing from the scope of those concepts. As
such, the described implementations are to be considered in all
respects as illustrative and not restrictive. It should also be
understood that the present application is not limited to the
particular implementations described above, but many
rearrangements, modifications, and substitutions are possible
without departing from the scope of the present disclosure.
* * * * *