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.
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.
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
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.
As illustrated in
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.
Also illustrated in
Also illustrated in
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.
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.
Also illustrated in
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.
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.
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.
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.
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.
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.
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.
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.
Also illustrated in
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.
As illustrated in
It should be noted that
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.
With regard to
As illustrated in
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
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
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
It should be noted that the implementation of
Referring now to flowchart 400 of
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
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.
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.
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.
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.