Simscape model robot direct dynamics
48 views (last 30 days)
Show older comments
I'm trying to use output of an inverse dynamics model of a robot for getting actuation torques required for a given planned motion and input them onto a direct dynamics model for verifying its correctness. At present I'm not able to keep two simulations aligned for more than some second fraction with a stepsize suitable for a reasonable simulation time, and I despair getting down with stepsize would not be helpful. Is it just matter of numerical errors or am I doing something wrong? Waiting for your suggestions.
Soldà Enrico
1 Comment
Yifeng Tang
on 15 Aug 2024 at 14:46
I can see how integrating the sensed torque to get hte planned motion can be tricky. It's like integrating an acceleration to get the displacement. And all numerical integration is susceptible to "drifting". The tolerance in numerical integration can lead to larger error in the 2nd integral for sure. Also, the sensed torque itself isn't "exact" but within numerical tolerance, so that's another possible source of discrepancy.
The sensed torque you get from the planned motion exercise, I think, is a great way to find out about the required sizing of components, e.g. the ratings of a motor. Then in reality, one would control the inputs to the actuator to get to the desired position. I wonder if you can try something similar: control the torque to get to the desired position at each time interval. Then compare the torque input into the joints to the previous sensed one, as well as the motion trajectory. I would expect with a reasonable controller, the trajectory will be similar, and the force be close but not exact. I think I've seen the forces/torques tends to be more "spikey" as the controller try to follow the desired positions.
Answers (1)
Pratyush
on 13 Aug 2024 at 9:20
Hi Enrico,
To align your inverse and direct dynamics simulations, consider the following steps:
- Ensure both models share the same parameters, initial conditions, and assumptions.
- Start with a smaller time step and gradually increase it to balance accuracy and simulation time.
- Use higher-order methods like ode45 or stiff solvers like ode15s for better stability.
- Adjust relative and absolute error tolerances in your ODE solver.
- Print intermediate results to identify where divergence occurs.
Hope this helps.
See Also
Categories
Find more on Multibody Dynamics in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!