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