How to make the model not jump away when the floor-feet contact is established ?

Hi there,
i am working on a quadruped robot that has to walk on the floor with simscape multibody. After the walking code via inverse kinematics has been created and using the spatial force contact block to establish the ground-feet contact, when the simulation is run the model jumpes away, even when the damping and stiffness are increased (see attached file). Why is it working like that? How can i make the robot walk smoothly without flying away?
Thanks in advance.

 Accepted Answer

Hi Nayla - there are two changes you should make to your model to make it work. I have have made the changes and attached it here.
  1. The joint angle inputs should only be provided as a single input signal, not three values. If you provide three values, they must be exactly consistent position, velocity, and acceleration. I have changed the model so that only the position is provided, velocity and acceleration are calculated.
  2. Change to a variable step solver.
This is an example of the area that needs to be changed.
Here is an animation of your robot walking.

9 Comments

Hi @Steve Miller, thanks very much for the quick reply and the help!!!
Hi @Steve Miller, in accordance to the previous model, is there a way to switch the position of the endeffector (which in the previous case was at the end of the lower leg)?
I am trying to make the torso execute an up and down move while all the feet are staying on the ground.
But as i set the ,,local" coordinate system at each hip, is there a way to vary its position without taking maybe the prismatic joint into account?
I am thinking about making the origine of every ,,local" coordinate system as the point which changes to a specfic height. Is that possible?
Seems to me you want all four legs to extend simultaneously. Stop the motion of the hip joints and actuate all four knees at the same time.
--Steve
@Steve Miller, by turning off the torque or setting the motion as ,,computed automatically" at each hip?
Also, if doing so (stop the motion) is it possible to combine typical walking + up/down movement and have them in the same simulation?
Sure! Your current simulation is specifying the joint motion as a repeating profile with a bit of a phase delay for different legs. You can have it repeat a few cycles with the phase delay to have it walk, then hold the joint angles constant, then have all legs do the same thing to lift up.
--Steve
@Steve Miller, to hold the joint angles is there a specific block that can be used or is it achieved through the matlab function by programming the corresponding code?
And also thanks for the help!!!
Your model uses function "Desired Trajectory" to plan the location of the foot, and function "Inverse Kinematics" to convert those foot positions to knee and hip joint angles (theta 1 and theta 2 in the leg). You need to figure out how to change the hip and knee angle trajectories. There are switch blocks in Simulink that will let you swap from one source to another after a certain amount of time or after another condition is achieved.
--Steve
alright! Will try that out. Thanks very much
@Steve Miller, hi again.
how can i increase the speed of the walking? i tried it by setting a value in the "revolute joint block" > Specify Velocity Target, but there is no change in the walking speed/ torque.
thanks in advance!

Sign in to comment.

More Answers (1)

Salut! C'est modèle de robot est -il équipe d'un capteur IMU MPU6050 afin de voir les mouvement suivent Pitch, Roll et Yaw? Je cherche un modèle de robot quadrupède spider comme beaucoup le font avec arduino pour MATLAB et son modèle Simulink mais c'est impossible d'en trouver là. Si quelqu'un peut m'aide. Merci d'avance...

Categories

Products

Release

R2022b

Asked:

on 24 Nov 2022

Answered:

on 15 Jul 2024

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!