Spatial-Temporal Motion Control via Composite Cam-follower Mechanisms


Yingjie Cheng1,2       Yucheng Sun1,2       Peng Song2       Ligang Liu1

1 University of Science and Technology of China     2 Singapore University of Technology and Design    

SIGGRAPH Asia 2021, technical paper

 


Figure 1

Figure 1: We present a computational technique to model, design, and optimize composite cam-follower mechanisms for personalized automata, and showcase our technique on a diverse set of examples including (from left to right): drawing on a non-planar surface, displaying realistic toy motion, and walking according to a user-specified gait. Our technique enables users to control an automaton’s spatial-temporal motion by specifying the target trajectories and timings (see the two spatial curves and corresponding time sliders in the right example).




Abstract

Motion control, both on the trajectory and timing, is crucial for mechanical automata to perform functionalities such as walking and entertaining. We present composite cam-follower mechanisms that can control their spatialtemporal motions to exactly follow trajectories and timings specified by users, and propose a computational technique to model, design, and optimize these mechanisms. The building blocks of our mechanisms are a new kind of cam-follower mechanism with a modified joint, in which the follower can perform spatial motion on a planar, cylindrical, or spherical surface controlled by the 3D cam’s profile. We parameterize the geometry of these cam-follower mechanisms, formulate analytical equations to model their kinematics and dynamics, and present a method to combine multiple camfollower mechanisms into a working mechanism. Taking this modeling as a foundation, we propose a computational approach to designing and optimizing the geometry and layout of composite cam-follower mechanisms, with an objective of performing target spatial-temporal motions driving by a small motor torque. We demonstrate the effectiveness of our technique by designing different kinds of personalized automata and showing results not attainable by conventional mechanisms.



Download

Paper PDF(~25M)
Supplementary(~2.2M)



Video





Results


Figure 2

Figure 2: Six classes of camMechs that we have modeled, where the follower can perform (a) 1-DOF translation, (b) 1-DOF oscillation, (c) 1-DOF rotation, (d) 2-DOF translation, (e) 1-DOF translation & 1-DOF rotation, and (f) 2-DOF rotation. For each camMech, the 3D cam’s pitch curve and the follower trajectory are colored in green and purple respectively. The follower-support joint as well as its allowed motion are shown at the bottom right of each camMech.


Figure 2

Figure 3: Experiment to evaluate the kinematic performance for realizing a target curve T-Rex. (a) The target curve; (b) our designed camMech_2R; (c&d) 3D printed camMech and its component parts, where a small green ball is used as the follower end-effector; (e) tracking the green ball in the video images (see the green rectangles); and (f) comparing the tracked curve (in yellow) and the target curve projected onto the image (in magenta).




Figure 2

Figure 4: Two mechanical toys designed by our approach: (top) a Boxer in a fight and (bottom) a Frog catching a bug. The user input is shown on the left.




Figure 2

Figure 5: A 6-leg walking robot designed by our approach. (Top) The user input and three samples of simulated walking poses. (Bottom) Our 3D printed result and three walking poses.





Acknowledgments

We thank the reviewers for their valuable comments. This work was supported by the SUTD Start-up Research Grant (Number: SRG ISTD 2019 148), the National Natural Science Foundation of China (62025207), and Zhejiang Lab (NO. 2019NB0AB03).




Bibtex

@article {Cheng-2021-3DCamMech,
    author   = {Yingjie Cheng and Yucheng Sun and Peng Song and Ligang Liu},
    title        = {Spatial-Temporal Motion Control via Composite Cam-follower Mechanisms},
    journal   = {ACM Transactions on Graphics (SIGGRAPH Asia 2021)},
    volume = {40},
    number = {6},
    pages   = {270:1 -- 270:15},
    year      = {2021}}