US20160059140A1 - Walking Machines - Google Patents
Walking Machines Download PDFInfo
- Publication number
- US20160059140A1 US20160059140A1 US14/476,269 US201414476269A US2016059140A1 US 20160059140 A1 US20160059140 A1 US 20160059140A1 US 201414476269 A US201414476269 A US 201414476269A US 2016059140 A1 US2016059140 A1 US 2016059140A1
- Authority
- US
- United States
- Prior art keywords
- character
- walking mechanisms
- design parameters
- walking
- mechanisms
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63H—TOYS, e.g. TOPS, DOLLS, HOOPS OR BUILDING BLOCKS
- A63H11/00—Self-movable toy figures
- A63H11/18—Figure toys which perform a realistic walking motion
- A63H11/20—Figure toys which perform a realistic walking motion with pairs of legs, e.g. horses
Definitions
- 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.
- FIG. 1 presents a system for optimizing walking machines, according to one implementation of the present disclosure.
- FIG. 2 presents an example of a user interface used to design walking machines, according to one implementation of the present disclosure.
- FIG. 3 presents an example of altering the parameters of a walking machine, according to one implementation of the present disclosure.
- FIG. 4 shows a flowchart illustrating a method for optimizing walking machines, according to one implementation of the present disclosure.
- 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 .
- 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 .
- 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 .
- display 112 may be another type of display hardware, such as cathode-ray tubes (CRT) monitors.
- display 112 may also be touch sensitive and may serve as input interface 115 .
- 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.
- 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 .
- 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 .
- 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 .
- 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.
- machine software application 120 includes simulation 124 .
- 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.
- machine software application 120 utilizes simulation 124 to measure the quality of the walking motion for character design 123 using various parameters 131 .
- 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 .
- simulation 124 includes constraints 125 .
- 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 .
- joints include a vector-valued constraint that ensures that each joint on character design 123 coincides in a world space.
- 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.
- Motor constraints 140 are used to mimic the effect of physical actuators (or motors) used in the motion of character design 123 .
- 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.
- 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.
- 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.
- machine software application 120 includes optimization 126 .
- 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.
- 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.
- 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.
- 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.
- machine software application 120 may alter the toy dog using the optimal parameters to generate optimized character design 135 .
- 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.
- 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 .
- joints may be used to attach the legs (or walking mechanisms) of the toy dog discussed above to the body of the dog.
- parameters 131 for joints 132 may include a location of where the joints for the walking mechanisms actually attach to the body.
- 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.
- Dimensions 133 correspond to the dimensions of the walking mechanisms of character design 123 .
- 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.
- 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.
- Timing 134 may be 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.
- timing 124 for the toy clog discussed above may specify different timings for the legs (or walking mechanisms) of the toy dog.
- the different timings may specify the phase profile functions of the motors that move each of the legs.
- 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.
- machine software application 120 when changing parameters 131 for character design 123 , utilizes simulation 124 to determine a quality for the walking motion of character design 123 using each of the different parameters 131 .
- 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 .
- 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.
- 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 .
- machine software application 120 measures the quality of the walking motion for the toy dog using the changed parameters 131 .
- 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.
- 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 .
- machine software application 120 includes character assembly 136 .
- machine software application 120 may utilize character assembly 136 in order to give user 150 instructions on how to build optimized character design 135 .
- 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 .
- 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 .
- the instructions on how to build optimized character design 135 come from assembly operations 137 .
- user device 110 may be connected to a machine (not shown) that automatically builds 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 .
- the machine may be connected to user device 110 using any wired or wireless technology.
- user device 110 may transmit assembly operations 137 to a machine using the Internet.
- 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 260 a , mechanism 260 b , and mechanism 260 c .
- 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 .
- a user such as user 150 from FIG. 1
- 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.
- the user may select either mechanism 260 a , mechanism 260 b , or mechanism 260 c from mechanisms 222 to place on character design 223 .
- the user has selected a first mechanism 260 a and placed it on the back of character design 223 , and selected a second mechanism 260 a and placed it on the front of character design 223 .
- 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 .
- mechanisms 222 may include any of the features that make up a mechanical character.
- 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 .
- the user would utilize user interface 221 to select and place each of the different features for character design 223 .
- each of mechanisms 222 is able to place each of mechanisms 222 at any location on character design 223 .
- 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.
- 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 .
- 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 335 a , optimized character design 335 b , and optimized character design 335 c , collectively referred to as optimized character designs 335 .
- Character design 323 includes joint 332 a , joint 332 h , mechanism 360 a , and mechanism 360 b .
- Optimized character design 335 b includes joint 332 a , joint 332 b , mechanism 360 a , and mechanism 360 b .
- Optimized character design 335 c includes joint 332 a , joint 332 h , mechanism 360 a , mechanism 360 b , timing 340 a and timing 340 b.
- joint 332 a and joint 332 b will collectively be referred to as joints 332
- mechanism 360 a and mechanism 360 b will collectively be referred to as mechanisms 360
- timing 334 a and timing 334 will collectively be referred to as timing 334
- 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 .
- character design 323 and each of mechanisms 360 correspond respectively to character design 223 and mechanism 260 a from FIG. 2 .
- character design 323 includes the original character design 223 designed by the user using user interface 221 from FIG. 2 .
- 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.
- 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 .
- Optimized character design 335 a includes the same mechanisms as character design 323 , however, a location for each of the joints 332 for optimized character design 335 a has been changed as compared to character design 323 . As illustrated in FIG. 3 , joint 332 a and mechanism 360 a have been moved to the left on optimized character design 335 a , and joint 332 b and mechanism 360 b have been moved to the right on optimized character design 335 a . By changing a location for each of joints 332 and mechanisms 360 on character design 323 to generate optimized character design 335 a , the machine software application may have generated a more stable walking machine.
- Optimized character design 335 b includes the same mechanisms as character design 323 , however, dimensions for each of mechanisms 360 for optimized character design 335 b 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 335 b . By changing the dimensions for each of mechanisms 360 on character design 323 to generate optimized character design 335 b , the machine software application may have generated a more stable walking machine.
- Optimized character design 335 c includes the same mechanisms as character design 323 , however, optimized character design 335 c now includes timing 334 for mechanisms 360 .
- 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 335 c , the machine software application may have generated a more stable walking machine.
- a machine software application such as machine software application 120 from FIG. 1
- 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.
- 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 .
- 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 .
- 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.
- flowchart 400 includes displaying a user interface to a user for designing a character ( 410 ).
- 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 .
- 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 .
- Flowchart 400 also includes receiving the character from the user, the character including walking mechanisms ( 420 ).
- 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 .
- user 150 may select and place each mechanism (corresponding to the legs of character design 223 ) at any place on character design 223 .
- Flowchart 400 also includes determining optimal design parameters for the character based on the walking mechanisms ( 430 ).
- 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.
- 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.
- 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 .
- 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 ).
- 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.
- flowchart 400 may include generating assembly instructions for building the character using the altered walking mechanisms ( 450 ).
- 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.
- machine software application 120 may further use assembly instructions 138 to audibly provide user 150 with assembly operations 137 using speakers 113 .
Landscapes
- Toys (AREA)
Abstract
Description
- 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.
- 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.
-
FIG. 1 presents a system for optimizing walking machines, according to one implementation of the present disclosure. -
FIG. 2 presents an example of a user interface used to design walking machines, according to one implementation of the present disclosure. -
FIG. 3 presents an example of altering the parameters of a walking machine, according to one implementation of the present disclosure. -
FIG. 4 shows a flowchart illustrating a method for optimizing walking machines, according to one implementation of the present disclosure. - 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.
-
FIG. 1 presents a system for optimizing walking machines, according to one implementation of the present disclosure.System 100 ofFIG. 1 includes user device 110 and user 150. User device 110 includesprocessor 111,display 112,speakers 113,memory 114, andinput interface 115.Memory 114 includesmachine software application 120, which includes user interface 121,simulation 124,optimization 126, andcharacter assembly 136. User interface 121 includesmechanisms 122 andcharacter design 123.Simulation 124 includesconstraints 125, which includesjoint constraints 139,motor constraints 140, andfrictional constraints 141.Optimization 126 includes methods 127,parameters 131, and optimizedcharacter design 135. Methods 127 includeStochastic approach 128, gradient-based approach 129, andhybrid approach 130.Parameters 131 includejoints 132, dimensions 133, and timing 134.Character assembly 136 includesassembly operations 137 andassembly instructions 138. User 150 includes user input 151. - 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 inmemory 114. As shown inFIG. 1 , user device 110 includesdisplay 112 andinput 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 asinput interface 115. - User device 110 further includes
processor 111 andmemory 114.Processor 111 may be configured to accessmemory 114 to store received input or to execute commands, processes, or programs stored inmemory 114, such asmachine 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, inother 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 byprocessor 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. - As illustrated in
FIG. 1 , user device 110 includesmachine software application 120. User 150 of user device 110 may utilizemachine 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 buildcharacter design 123 usingmechanisms 122. -
Character design 123 may include an initial design built by user 150 for a walking machine or toy. To buildcharacter design 123, user 150 selectsmechanisms 122 to add tocharacter design 123.Mechanisms 122 may include, but are not limited to, mechanical assemblies, gears, linkages, and geometric shapes that connect together to buildcharacter design 123. For example, user 150 may be utilizingmachine 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 frommechanisms 122. Furthermore, user 150 may also select gears and linkages (such as joints) frommechanisms 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. - Also illustrated in
FIG. 1 ,machine software application 120 includessimulation 124. As will be discussed below,machine software application 120 automatically optimizesparameters 131 forcharacter design 123 so thatcharacter design 123 is able to walk in a stable manner. When optimizingcharacter design 123,machine software application 120 utilizessimulation 124 to measure the quality of the walking motion forcharacter design 123 usingvarious parameters 131. For example, and using the example above where user 150 is usingmachine software application 120 to design a toy dog ascharacter design 123, after user 150 has designed the toy dog,machine software application 120 determines and appliesdifferent parameters 131 to the toy dog and simulates a walking motion of the toy dog using thedifferent parameters 131 assimulation 124. - Also illustrated in
FIG. 1 ,simulation 124 includesconstraints 125. When simulatingcharacter design 123 usingsimulation 124,machine software application 120 models joints, virtual motors, and frictional contacts usingdifferent constraints 125, such asjoint constraints 139,motor constraints 140, andfrictional 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 ofjoint constraints 139. First, joints include a vector-valued constraint that ensures that each joint oncharacter 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. -
Motor constraints 140 are used to mimic the effect of physical actuators (or motors) used in the motion ofcharacter design 123. For example, it may be assumed that each limb ofcharacter design 123 has an input crank that operates relative to the main body ofcharacter design 123. Since joints already employjoint 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. - Contacts are used by
character design 123 to move around simulated environments, where each contact for character design includes threefrictional constraints 141. The first constraint forfrictional constraints 141 specifies that a penetration distance, measured along a contact normal, should be equal to zero. The second constraint forfrictional 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 forfrictional constraints 141 includes inequality constraints for the magnitude of the tangential forces, which ensure that the tangential forces remain within the friction pyramid. - Also illustrated in
FIG. 1 ,machine software application 120 includesoptimization 126. As discussed above,machine software application 120 automatically optimizesparameters 131 forcharacter design 123 so thatcharacter design 123 is able to walk in a stable manner. As such,machine software application 120 utilizesoptimization 126 to both determinedifferent parameters 131 that can be applied tocharacter design 123 so thatcharacter design 123 can walk in a stable manner, and to generate optimizedcharacter design 135, where optimizedcharacter design 135 corresponds tocharacter design 123 which as been altered using optimal parameters from thedifferent parameters 131. The optimal parameters used to altercharacter design 123 when generating optimizedcharacter design 135 correspond to the parameters that givecharacter design 123 the best quality walking motion, such thatcharacter design 123 is able to walk using an upright, smooth, and stable motion. - For example, and using the example above where user 150 is using
machine software application 120 to design a toy dog ascharacter design 123,machine software application 120 may utilizeoptimization 126 to determinedifferent 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 utilizesimulation 124 to measure the quality of the walking motion for the toy dog when each of thedifferent parameters 131 is applied to the toy dog. After measuring the quality of the walking motions of the toy dog using each of thedifferent parameters 131,machine software application 120 may determine optimal parameters from thedifferent parameters 131, where the optimal parameters correspond to the parameters from thedifferent 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 optimizedcharacter design 135. - In order to determine
different parameters 131 that can be applied tocharacter design 123 so thatcharacter 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-basedapproach 129, andhybrid approach 130.Stochastic approach 128 generatesrandom parameters 131 that may be utilized to altercharacter design 123. Gradient-Basedapproach 129 generates a set of poses forcharacter design 123 and requires thatcharacter design 123 is as stable as possible using certain simulation states, which are described below.Hybrid approach 130 usesstochastic approach 128 to generaterandom parameters 131 forcharacter design 123, but then utilizes gradient-basedapproach 129 to optimize walking stability. -
Parameters 131 that may be altered oncharacter design 123 byoptimization 126 to generate optimizedcharacter design 135 includejoints 132, dimensions 133, and timing 134.Joints 132 correspond to the joints that attach each of the walking mechanisms ofcharacter design 123 to the body ofcharacter 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 forjoints 132 may include a location of where the joints for the walking mechanisms actually attach to the body. For example,optimization 126 may determineoptimal parameters 131 forjoints 132 oncharacter design 123, whereoptimal parameters 131 forjoints 132 specify a location for the joints that hold the walking mechanisms ofcharacter design 123 to the body ofcharacter design 123 such thatcharacter design 123 is able to walk using a balanced and stable motion. - 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 ofcharacter design 123 such thatcharacter design 123 is able to walk using a balanced and stable motion. - 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 thatcharacter design 123 is able to walk using a balanced and stable motion. - It should be noted that as discussed above, when changing
parameters 131 forcharacter design 123,machine software application 120 utilizessimulation 124 to determine a quality for the walking motion ofcharacter design 123 using each of thedifferent 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 tooriginal character design 123. - The distance traveled by
character design 123 includes howfar character design 123 was able to travel, where a betterquality character design 123 will travel further distances than a design that is of low quality. Thetime character design 123 was able to walk includes howlong character design 123 walked while remaining upright on the walking mechanisms, where a betterquality 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 ofcharacter design 123 includes how smooth the walking motion was, where a betterquality character design 123 will walk using a smoother walking motion than a design that is of lower quality. The effort required forcharacter design 123 to walk includes how much force is needed to both move the walking mechanisms ofcharacter design 123 and keepcharacter design 123 in an upright position, where a betterquality character design 123 will require less effort than a design that is of lower quality. Finally, a better quality optimizedcharacter design 135 will include a design that is more similar to theoriginal character design 123 designed by user 150, than a design that is of lower quality and drastically different than theoriginal character design 123. - For example, and using the example above where user 150 is designing a toy dog as
character design 123, each timemachine software application 120changes parameters 131 for the toy dog,machine software application 120 measures the quality of the walking motion for the toy dog using the changedparameters 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 withparameters 131 changed to theoriginal character design 123 for the toy dog from user 150, where a better quality toy dog is as close as possible tooriginal character design 123. - Also illustrated in
FIG. 1 ,machine software application 120 includescharacter assembly 136. After generating optimizedcharacter design 135,machine software application 120 may utilizecharacter assembly 136 in order to give user 150 instructions on how to build optimizedcharacter design 135. As such,character assembly 136 includesassembly operations 137 andassembly instructions 138.Assembly operations 137 includes a set of instructions that user 150 can follow to build optimizedcharacter design 135, where there may be more than one set of instructions.Assembly instructions 138 may be utilized bymachine software application 120 to actually instruct user 150 on how to build optimizedcharacter design 135 using both illustrations and assembly plans displayed ondisplay 112, and also audibleinstructions using speaker 113. For example,machine software application 120 may utilizeassembly instructions 138 to audibly instruct user 150 on how to build optimizedcharacter design 135 throughspeakers 113, and assembly instructions may use illustrations and assembly plans to instruct user 150 how to build optimizedcharacter design 135 usingdisplay 112. In such an example, the instructions on how to build optimizedcharacter design 135 come fromassembly operations 137. - 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, aftermachine software application 120 determinesassembly operations 137 for building optimizedcharacter design 135,machine software application 120 may transmitassembly operations 137 to a machine that builds a walking machine usingassembly 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 transmitassembly operations 137 to a machine using the Internet. -
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 includesdisplay 212.Display 212 includes user interface 221, which includesmechanisms 222 andcharacter design 223.Mechanisms 222 includemechanisms 260 a,mechanism 260 b, andmechanism 260 c. With regard toFIG. 2 , it should be noted that user device 210,display 212, user interface 221,mechanisms 222, andcharacter design 223 correspond respectively to user device 110,display 112, user interface 121,mechanisms 122, andcharacter design 123 fromFIG. 1 . - As illustrated in
FIG. 2 , a user, such as user 150 fromFIG. 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 ascharacter 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 eithermechanism 260 a,mechanism 260 b, ormechanism 260 c frommechanisms 222 to place oncharacter design 223. As illustrated inFIG. 2 , the user has selected afirst mechanism 260 a and placed it on the back ofcharacter design 223, and selected asecond mechanism 260 a and placed it on the front ofcharacter design 223. - It should be noted that
FIG. 2 only illustratesmechanisms 222 as including different walking mechanisms (or legs) forcharacter design 223, however, the present disclosure is not limited to the implementation ofFIG. 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 upcharacter design 223, such as the head, body, tail, arms, ears, nose, or neck ofcharacter design 223. In such an example, the user would utilize user interface 221 to select and place each of the different features forcharacter design 223. - It should further be noted that when placing
mechanisms 222 oncharacter design 223, the user is able to place each ofmechanisms 222 at any location oncharacter design 223. For example, the user may have placed each of the selectedmechanisms 222 at the front ofcharacter design 223 such thatcharacter 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 ofcharacter design 223 would not hang as low as the front legs ofcharacter design 223. -
FIG. 3 presents an example of altering the parameters of a walking machine, according to one implementation of the present disclosure.FIG. 3 includescharacter design 323 andoptimized character design 335 a, optimizedcharacter design 335 b, andoptimized character design 335 c, collectively referred to as optimized character designs 335.Character design 323 includes joint 332 a, joint 332 h,mechanism 360 a, andmechanism 360 b.Optimized character design 335 b includes joint 332 a, joint 332 b,mechanism 360 a, andmechanism 360 b.Optimized character design 335 c includes joint 332 a, joint 332 h,mechanism 360 a,mechanism 360 b, timing 340 a and timing 340 b. - With regard to
FIG. 3 it should be noted that joint 332 a and joint 332 b will collectively be referred to as joints 332,mechanism 360 a andmechanism 360 b will collectively be referred to as mechanisms 360, and timing 334 a and timing 334 will collectively be referred to as timing 334. Furthermore, with respect toFIG. 3 ,character design 323, joints 332, timing 334, and each of optimized character designs 335 correspond respectively tocharacter design 123,joints 132, timing 134, andoptimized character design 135 fromFIG. 1 . Finally,character design 323 and each of mechanisms 360 correspond respectively tocharacter design 223 andmechanism 260 a fromFIG. 2 . - As illustrated in
FIG. 3 ,character design 323 includes theoriginal character design 223 designed by the user using user interface 221 fromFIG. 2 . After the user is done designingcharacter design 323, a machine software application, such asmachine software application 120 fromFIG. 1 , may optimizecharacter design 323 using different parameters so thatcharacter design 323 is able to walk using a stable motion. As such, the machine software application may have alteredcharacter design 323 into one of optimized character designs 335 by changing the parameters ofcharacter design 323. -
Optimized character design 335 a includes the same mechanisms ascharacter design 323, however, a location for each of the joints 332 for optimizedcharacter design 335 a has been changed as compared tocharacter design 323. As illustrated inFIG. 3 , joint 332 a andmechanism 360 a have been moved to the left on optimizedcharacter design 335 a, and joint 332 b andmechanism 360 b have been moved to the right onoptimized character design 335 a. By changing a location for each of joints 332 and mechanisms 360 oncharacter design 323 to generate optimizedcharacter design 335 a, the machine software application may have generated a more stable walking machine. -
Optimized character design 335 b includes the same mechanisms ascharacter design 323, however, dimensions for each of mechanisms 360 for optimizedcharacter design 335 b has been changed as compared tocharacter design 323. As illustrated inFIG. 3 , a dimension for each of mechanisms 360 has been changed so that each of mechanisms 360 is longer on optimizedcharacter design 335 b. By changing the dimensions for each of mechanisms 360 oncharacter design 323 to generate optimizedcharacter design 335 b, the machine software application may have generated a more stable walking machine. -
Optimized character design 335 c includes the same mechanisms ascharacter design 323, however, optimizedcharacter design 335 c 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 ofcharacter design 323 by specifying the phase profile functions of the virtual actuators. For example, and usingFIG. 1 ,machine software application 120 may change timing 134 fromparameters 131 to control the relative phase between the walking mechanisms ofcharacter design 123. By changing timing 334 for mechanisms 360 oncharacter design 323 to generate optimizedcharacter design 335 c, the machine software application may have generated a more stable walking machine. - 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 ofFIG. 3 . In other implementations, a machine software application, such asmachine software application 120 fromFIG. 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 oncharacter design 323 to generate an optimal character design. -
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 byflowchart 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 inflowchart 400. Furthermore, whileflowchart 400 is described with respect toFIG. 1 , the disclosed inventive concepts are not intended to be limited by specific features shown and described with respect toFIG. 1 . Furthermore, with respect to the method illustrated inFIG. 4 , it is noted that certain details and features have been left out offlowchart 400 in order not to obscure the discussion of inventive features in the present application. - 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 executemachine software application 120 to display user interface 121 to user 150 for designingcharacter design 123. As discussed above, user interface 121 includesmechanisms 122 andcharacter design 123. User 150 can thus design a character by selecting different mechanisms frommechanisms 122 and placing the selected mechanisms oncharacter design 123. -
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 executemachine software application 120 to receivecharacter design 123 from user 150, wherecharacter design 123 includes walking mechanisms frommechanisms 122. As discussed above and as illustrated inFIG. 2 , user 150 may select and place each mechanism (corresponding to the legs of character design 223) at any place oncharacter design 223. -
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 executemachine software application 120 to determine optimal parameters fromparameters 131 forcharacter design 123 based on the walking mechanisms. As discussed above,machine software application 120 may utilizeoptimization 126 to determinedifferent parameters 131 that can be applied tocharacter design 123, whereoptimization 126 determines thedifferent parameters 131 using methods 127.Machine software application 120 may then utilizesimulation 124 to simulate a walking motion forcharacter design 123 using each of thedifferent parameters 131 and measure a quality for each walking motion. Finally,machine software application 120 may select the optimal parameters fromparameters 131 based on the quality of the walking motions for each of thedifferent parameters 131. -
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 executemachine software application 120 to alter the walking mechanisms ofcharacter design 123 based on the optimal design parameters fromparameters 131 to generate optimized character design 135 (which includes the altered walking mechanisms), wherein the optimal design parameters are for use byoptimized character design 135 to walk. - 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 executemachine software application 120 to generateassembly operations 137 for building optimizedcharacter design 135, where optimizedcharacter design 135 includes the altered walking mechanisms. As discussed above,machine software application 120 may further useassembly instructions 138 to audibly provide user 150 withassembly operations 137 usingspeakers 113. - 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.
Claims (20)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US14/476,269 US20160059140A1 (en) | 2014-09-03 | 2014-09-03 | Walking Machines |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US14/476,269 US20160059140A1 (en) | 2014-09-03 | 2014-09-03 | Walking Machines |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| US20160059140A1 true US20160059140A1 (en) | 2016-03-03 |
Family
ID=55401370
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US14/476,269 Abandoned US20160059140A1 (en) | 2014-09-03 | 2014-09-03 | Walking Machines |
Country Status (1)
| Country | Link |
|---|---|
| US (1) | US20160059140A1 (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20180318648A1 (en) * | 2017-05-04 | 2018-11-08 | The Trustees Of The University Of Pennsylvania | Robotic physical therapy systems and data analysis of user interactions |
-
2014
- 2014-09-03 US US14/476,269 patent/US20160059140A1/en not_active Abandoned
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20180318648A1 (en) * | 2017-05-04 | 2018-11-08 | The Trustees Of The University Of Pennsylvania | Robotic physical therapy systems and data analysis of user interactions |
| US11090528B2 (en) * | 2017-05-04 | 2021-08-17 | The Trustees Of The University Of Pennsylvania | Robotic physical therapy systems and data analysis of user interactions |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US20230334744A1 (en) | Method and apparatus for generating walk animation of virtual role, device and storage medium | |
| JP7324932B2 (en) | dynamic planning controller | |
| CN110827383B (en) | Attitude simulation method and device of three-dimensional model, storage medium and electronic equipment | |
| De Giorgio et al. | Human-machine collaboration in virtual reality for adaptive production engineering | |
| Cheng et al. | Design and implementation of human-robot interactive demonstration system based on Kinect | |
| Xia et al. | A new type haptics-based virtual environment system for assembly training of complex products | |
| US9135392B2 (en) | Semi-autonomous digital human posturing | |
| US20160375360A1 (en) | Methods, apparatuses, and systems for remote play | |
| US20170177077A1 (en) | Three-dimension interactive system and method for virtual reality | |
| Joseph | Learning Robotics using Python: Design, simulate, program, and prototype an autonomous mobile robot using ROS, OpenCV, PCL, and Python | |
| CN105205860A (en) | Display method and device for three-dimensional model scene | |
| CN114638158A (en) | Method and device for constructing satellite simulation environment, computer equipment and storage medium | |
| WO2017190213A1 (en) | Dynamic motion simulation methods and systems | |
| US20160059140A1 (en) | Walking Machines | |
| Roach et al. | Computer aided drafting virtual reality interface | |
| Bellas et al. | Robobo: the next generation of educational robot | |
| US12073511B2 (en) | Simulation of rigid bodies | |
| KR102580138B1 (en) | Character motion generating method for moving to target position and computer apparatus | |
| US9111391B2 (en) | Image generating device, image generating method, and non-transitory information storage medium | |
| Greggio et al. | Simulation of small humanoid robots for soccer domain | |
| Luckey | Interactive Assembly Simulation in an Immersive Virtual Environment | |
| US9600921B2 (en) | Interactive design system for character crafting | |
| US20250061638A1 (en) | Rigid body simulation by relative sleeping | |
| Lima et al. | Realistic behaviour simulation of a humanoid robot | |
| Salazar et al. | Multiple Character Motion Adaptation in Virtual Cities Using Procedural Animation |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| AS | Assignment |
Owner name: DISNEY ENTERPRISES, INC, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:THE WALT DISNEY COMPANY (SWITZERLAND) GMBH;REEL/FRAME:033661/0935 Effective date: 20140819 Owner name: THE WALT DISNEY COMPANY (SWITZERLAND) GMBH, SWITZE Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BICKEL, BERND;BHARAJ, GAURAV;THOMASZEWSKI, BERNHARD;AND OTHERS;SIGNING DATES FROM 20140818 TO 20140902;REEL/FRAME:033661/0429 |
|
| STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- AFTER EXAMINER'S ANSWER OR BOARD OF APPEALS DECISION |