I developed a five-body multibody dynamics model of a Professor Fregly’s soccer kicking motion as part of the MECH 310 (Rigid Body Dynamics) final project using MotionGenesis and MATLAB. The project used experimental joint-angle data to perform inverse dynamics, estimate hip and knee torques, and run a forward dynamics simulation to reproduce the kicking motion. The model was validated using R² metrics and a mechanical energy check.
Body A: torso
Body BR: right thigh, connected to the torso at the right hip joint
Body CR: right shank, connected to the right thigh at the right knee
Body BL: left thigh, fixed relative to the torso
Body CL: represents the left shank, fixed relative to the left thigh
The left foot is planted rigidly against the ground, constraining left leg motion.
q1: Right hip flexion/extension angle
q2: Right hip adduction/abduction angle
q3: Right hip internal/external rotation angle
q4: Right knee flexion/extension angle
THRz: Right hip flexion/extension torque
THRx: Right hip adduction/abduction torque
THRy: Right hip internal/external rotation torque
TKRz: Right knee flexion/extension torque
ql1 to ql6: Fixed left leg angles (planting)
Approach
Model Development
Created a simplified five-body rigid-body model with a fixed plant leg and rotational joints at the right hip and knee.
Inverse Dynamics
Used experimental joint-angle data to calculate the required right-hip and right-knee torques over the kicking motion.
Workflow
Key Takeaways and Contributions
This project gave me a much better understanding of how much setup goes into running even a simplified multibody dynamics simulation. One of the biggest challenges for me (That cost me hours upon hours) was writing and organizing the MotionGenesis code so that the reference frames, rotation sequences, joint constraints, inertias, position vectors, velocities, and applied torques all matched the physical system correctly. Small mistakes in frame definitions or torque directions quickly led to incorrect equations and large energy drifts, so the model required careful checking throughout the process. My work for this project included:
Writing and refining the MotionGenesis model for the kicking system, including the rigid bodies, rotational joints, inertias, kinematics, and applied hip/knee torques.
Processing the experimental kicking data in MATLAB and using polynomial curve fitting to generate smooth joint-angle trajectories.
Computing inverse dynamics torques for the right hip and knee, then fitting those torque profiles for use in the forward dynamics simulation.
Running the forward dynamics simulation using MATLAB’s ODE45 workflow and comparing the simulated motion against the fitted reference motion.
Using R² metrics and a mechanical energy check to evaluate whether the model was behaving correctly. The final model showed strong agreement between the fitted and simulated joint-angle trajectories.
Summary
This project modeled a simplified biomechanical soccer kick using a five-body rigid-body system consisting of the torso, right thigh, right shank, left thigh, and left shank. The left leg was treated as a fixed planted support, while the right leg was modeled with three rotational degrees of freedom at the hip and one rotational degree of freedom at the knee. The system was driven by three right-hip torques and one right-knee torque, allowing the model to represent the major joint motions involved in the kicking motion.
I used MotionGenesis to define the reference frames, body rotations, inertias, position vectors, velocities, angular velocities, applied torques, and dynamic equations for the multibody system. I then used MATLAB to process experimental kicking data, fit the right-leg joint-angle trajectories, calculate joint torques through inverse dynamics, and run a forward dynamics simulation using the fitted torque profiles.
The final simulation compared the forward dynamics response to the fitted experimental motion and validated the model using R² metrics and a mechanical energy check. The joint-angle fits had an average R² of 0.9839, the fitted torque profiles had an average R² of 0.9998, and the forward dynamics simulation matched the fitted joint-angle trajectories with an average R² of 0.9999.
Model Overview
Multibody Dynamics Simulation of a Soccer Kick
Forward Dynamics
Fit the calculated torque histories and used them as inputs to a forward dynamics simulation in MATLAB.
Validation
Compared simulated joint angles to fitted reference trajectories and checked mechanical energy conservation when applied torques were removed.
Simulation Results
Rice Robotics Club - University Rover Challenge
Rice Robotics Club - Lunar Rover
Bubble CPAP Monitoring for Neonates
AUV Trim Weight System Design and Analysis
Analog and Digital Control of an Inverted Pendulum
Multi-body Dynamics Simulation of a Soccer Kick
Chess GPT: The Self Playing Chessboard
Custom DC Motor

