visual3d:tutorials:modeling:bicycle_pedal_and_crank
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
visual3d:tutorials:modeling:bicycle_pedal_and_crank [2024/07/12 14:09] – created sgranger | visual3d:tutorials:modeling:bicycle_pedal_and_crank [2025/05/07 17:58] (current) – [Create virtual targets and landmarks] wikisysop | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== | + | ====== |
Given a c3d file with one marker on each pedal of a stationary bicycle, create crank and pedal segments. | Given a c3d file with one marker on each pedal of a stationary bicycle, create crank and pedal segments. | ||
Line 8: | Line 8: | ||
Open the file Pedal_Motion.c3d | Open the file Pedal_Motion.c3d | ||
- | {{PedalTutorial1.jpg}} | + | {{:PedalTutorial1.jpg}} |
Note that there are only two markers. | Note that there are only two markers. | ||
- | {{PedalTutorial2.jpg}} | + | {{:PedalTutorial2.jpg}} |
Highlight the path of the markers as trails. | Highlight the path of the markers as trails. | ||
Select the TARGET u1 with a right mouse click. | Select the TARGET u1 with a right mouse click. | ||
Select the option "Draw Target Properties" | Select the option "Draw Target Properties" | ||
- | {{PedalTutorial3.jpg}} | + | {{:PedalTutorial3.jpg}} |
Select the options to draw the trail and specify the color. | Select the options to draw the trail and specify the color. | ||
- | {{PedalTutorial4.jpg}} | + | {{:PedalTutorial4.jpg}} |
The circular path of each marker should be drawn in the animation. | The circular path of each marker should be drawn in the animation. | ||
===== Create the Model ===== | ===== Create the Model ===== | ||
- | {{PedalTutorial5.jpg}} | + | {{:PedalTutorial5.jpg}} |
==== Apply the Model Template ==== | ==== Apply the Model Template ==== | ||
Apply the model template pedal.mdh that was part of the zip file downloaded | Apply the model template pedal.mdh that was part of the zip file downloaded | ||
- | {{PedalTutorial9.jpg}} | + | {{:PedalTutorial9.jpg}} |
Note that there are only two landmarks | Note that there are only two landmarks | ||
- | {{PedalTutorial8.jpg}} | + | {{:PedalTutorial8.jpg}} |
Note that there are 6 segments, but none of them has been built because of missing information. | Note that there are 6 segments, but none of them has been built because of missing information. | ||
- | {{PedalTutorial6.jpg}} | + | {{:PedalTutorial6.jpg}} |
There should be many error messages at this point. | There should be many error messages at this point. | ||
We will add in the missing information using pipeline commands. | We will add in the missing information using pipeline commands. | ||
- | {{PedalTutorial7.jpg}} | + | {{:PedalTutorial7.jpg}} |
===== Create virtual targets and landmarks ===== | ===== Create virtual targets and landmarks ===== | ||
Line 51: | Line 51: | ||
Second, create TARGETS for the center of the path of each marker and for a marker 0.1 meters along the normal to that path. | Second, create TARGETS for the center of the path of each marker and for a marker 0.1 meters along the normal to that path. | ||
- | **Create_Target** | + | < |
+ | Create_Target | ||
/ | / | ||
! / | ! / | ||
Line 57: | Line 58: | ||
! / | ! / | ||
! / | ! / | ||
- | **;** | + | ; |
+ | </ | ||
This command uses the Evaluate_Expression function Best_Fit_Circle(TARGET:: | This command uses the Evaluate_Expression function Best_Fit_Circle(TARGET:: | ||
- | {{PedalTutorial10.jpg}} | + | {{:PedalTutorial10.jpg}} |
Third, based on the location of these targets in the movement trial, create associated landmarks. | Third, based on the location of these targets in the movement trial, create associated landmarks. | ||
- | **Add_Landmark** | + | < |
+ | Add_Landmark | ||
/ | / | ||
! / | ! / | ||
Line 81: | Line 85: | ||
! / | ! / | ||
! / | ! / | ||
- | **;** | + | ; |
+ | </ | ||
This command takes advantage of the @Eval() function in the pipeline parameters. The command evaluates the expression based on the data in the active movement file, then assigns the values to the Add_Landmark command. | This command takes advantage of the @Eval() function in the pipeline parameters. The command evaluates the expression based on the data in the active movement file, then assigns the values to the Add_Landmark command. | ||
- | **Add_Landmark** | + | < |
+ | Add_Landmark | ||
/ | / | ||
! / | ! / | ||
Line 101: | Line 108: | ||
! / | ! / | ||
! / | ! / | ||
- | **;** | + | ; |
- | **Add_Landmark** | + | |
+ | Add_Landmark | ||
/ | / | ||
! / | ! / | ||
Line 119: | Line 127: | ||
! / | ! / | ||
! / | ! / | ||
- | **;** | + | ; |
- | **Add_Landmark** | + | |
+ | Add_Landmark | ||
/ | / | ||
! / | ! / | ||
Line 137: | Line 146: | ||
! / | ! / | ||
! / | ! / | ||
- | **;** | + | ; |
- | **Add_Landmark** | + | |
+ | Add_Landmark | ||
/ | / | ||
! / | ! / | ||
Line 155: | Line 165: | ||
! / | ! / | ||
! / | ! / | ||
- | **;** | + | ; |
- | **Add_Landmark** | + | |
+ | Add_Landmark | ||
/ | / | ||
! / | ! / | ||
Line 173: | Line 184: | ||
! / | ! / | ||
! / | ! / | ||
- | **;** | + | ; |
+ | </ | ||
Lastly Build the Model | Lastly Build the Model | ||
- | **Build_Model** | + | < |
+ | Build_Model | ||
! / | ! / | ||
! / | ! / | ||
! / | ! / | ||
- | **;** | + | ; |
+ | </ | ||
The resulting model and movement trial are: | The resulting model and movement trial are: | ||
- | {{PedalTutorial11.jpg}} | + | {{:PedalTutorial11.jpg}} |
- | {{PedalTutorial12.jpg}} | + | {{:PedalTutorial12.jpg}} |
===== Modeling Details ===== | ===== Modeling Details ===== | ||
- | {{PedalTutorial13.jpg}} | + | {{:PedalTutorial13.jpg}} |
Two IK chains were constructed, | Two IK chains were constructed, | ||
Note that the root segment of the chain has all translations and rotations constrained. The problem is that we don't want the pedal constrained to the LAB, but to the location of the marker on the pedal. | Note that the root segment of the chain has all translations and rotations constrained. The problem is that we don't want the pedal constrained to the LAB, but to the location of the marker on the pedal. | ||
We specified this using Motion Constraints. Selected the Properties Tab | We specified this using Motion Constraints. Selected the Properties Tab | ||
- | {{PedalTutorial14.jpg}} The origin of the reference for the crank is placed just above the center of the marker path and rotated 180 degrees about the vertical axis of the lab. | + | {{:PedalTutorial14.jpg}} The origin of the reference for the crank is placed just above the center of the marker path and rotated 180 degrees about the vertical axis of the lab. |
The crank and pedal are then given one degree of freedom about the X-axis, and one tracking marker. | The crank and pedal are then given one degree of freedom about the X-axis, and one tracking marker. |
visual3d/tutorials/modeling/bicycle_pedal_and_crank.1720793340.txt.gz · Last modified: 2024/07/12 14:09 by sgranger