You are viewing the documentation for OpenSim 3.x. Are you looking for the latest OpenSim 4.0 Documentation?

From the Ground Up: Building a Passive Dynamic Walker Model

Objectives

Model development, reduction, and validation are key components in the construction of a meaningful simulation study. In this exercise, you will build a simple model for use in a passive dynamic simulation of walking. For the past few decades, passive dynamic systems have been created to study the fundamental principles of locomotion. By studying passive dynamic systems, researchers aim to understand how the geometric and inertial properties of a system influence the occurrence and stability of low-energy gaits. Proper selection of passive system dynamics can reduce the demand of a control system and allow locomotion to be achieved by modulating a small set of signals. The knowledge gained by studying passive dynamic walking can help improve the designs of autonomous legged robots and rehabilitation robots for locomotion.

In this exercise, you will create an un-actuated, four-link walker model using the C++ OpenSim API. This simple model could be useful for exploring control and optimization strategies in the OpenSim API.

The objectives of this exercise are to

  • Learn the basics of using CMake to create a C++ project;
  • Learn how to create models using the OpenSim API;
  • Learn how to describe the kinematic relationships between bodies; and
  • Learn how to create basic model components, such as Bodies, Forces, and ContactGeometry.

Acknowledgements

The original exercise was created by Daniel Jacobs.

Model Description

The model you will create in this exercise consists of a rigid platform and a four-link walker. The platform is connected to the ground by a pin joint that permits rotation about the Z-axis (out of the screen as shown in the image at left). The angle of the platform is used to control the amount of potential energy added to the system after each stride. To maintain a stable motion, energy must be added into the system to overcome losses from ground contact. The pelvis of the walker is connected to the platform by a FreeJoint object, which allows 6-degree-of-freedom (i.e., unconstrained) motion between the pelvis and the platform. PinJoint objects are used to connect the thighs to the pelvis and the shanks to the thighs. ContactSphere elements are attached to the walker and a ContactHalfSpace element is attached to the platform. When these elements collide, contact forces are applied to the walker according to the Hunt–Crossley contact model.

 

 

 

 

 

 

Background

The following slides were created for the Developer's Week July 2012 workshop. The main page can be found under Workshops → Developer's Week July 2012 → Dev Week Lecture Slides.

OpenSim API Lecture Slides

Simbody Lecture Slides

 

Plugin Lecture Slides

 

 

References

  1. Sherman, M.A., Seth, A., Delp, S.L. (2011). Simbody: multibody dynamics for biomedical research. Procedia IUTAM 2:241–261.
  2. Seth, A., Sherman, M.A., Eastman, P., Delp, S.L. (2010). Minimal formulation of joint motion for biomechanisms. Nonlinear Dynamics 62:291–303.

 

OpenSim is supported by the Mobilize Center , an NIH Biomedical Technology Resource Center (grant P41 EB027060); the Restore Center , an NIH-funded Medical Rehabilitation Research Resource Network Center (grant P2C HD101913); and the Wu Tsai Human Performance Alliance through the Joe and Clara Tsai Foundation. See the People page for a list of the many people who have contributed to the OpenSim project over the years. ©2010-2024 OpenSim. All rights reserved.