We are doing graduation project and require simulation of the robotic hand to be submitted. And we want to control various parameter in for movement for fingers of robotic hand. We tried it in other software but it was not feasible. After searching on YouTube and Internet we came to know that, simulations can be done on Matlab also.

We somehow imported our CAD assembly inside Matlab. But the problem is that, the software is quite complex. After watching many video we are not able to figure it out what is going on & how to start.

When I imported ONE of the finger of the robotic hand's .xml file and then I ran it it was just rotating. And we are just like wow! it is performing a circus.

So I want to know how to represent tension of the finger created by the string and servo motor to control the motion of finger and its angle simply. Can you provide any idea? Or maybe any tutorial providing such kind of information. I have gone through some official Matlab YouTube video but that didn't help.


I'm afraid I don't have the time at the moment to write a more detailed answer, but if you're trying to alter the behavior of the joint then you can:

  1. Double click the joint,
  2. Go to the axis you're interested in altering (Z Revolute/Prismatic Primitive for Revolute/Prismatic Joints),
  3. Expand the Actuation box,
  4. Change "Torque" (or "Force" for prismatic joints) from "None" to "Provided by Input."

If you previously had "Motion" as "Provided by Input" then you'll need to change it to "Automatically Computed." You can either tell it what the force is or what the (I believe) position is, but not both.

There's no stock servo block, so if you want more detailed actuator simulation then you'll need to model it yourself.

I will say that, frustratingly, only the z-axis can be used for motion. I've already complained to Mathworks about this, but it means you wind up needing to use frame transforms to rotate your joints around until the joint's z-axis coincides with the axis of motion for your system. I think it's an artifact of their use of DH parameters.

Finally, if you're having trouble with unexpected motion, I would double check your CAD model parameters. A lot of modeling software will use generic part properties if you don't assign the materials, which means a metal part might wind up with the density (and mass, moment of inertia) of a plastic part or vice-versa. You may also have a problem if your CAD model used a lazy approximation and has solid parts where they should actually be hollow/shell parts.

| improve this answer | |
  • $\begingroup$ You are awesome!! Can you provide anyone's contact who is expert in this simscape multi body for help or may be someone who is happy to help via e-mail. Though I will not disturb him but to learn things I will send some email often. $\endgroup$ – Creepy Creature Mar 2 '19 at 7:46
  • 1
    $\begingroup$ @CreepyCreature - If you have a specific question about something, you can post questions here. This is your project for your degree, so I don't think it's appropriate to have someone as a contributor to the project. That is, if you have questions about which direction you should take, which actuator to model, performance criteria, etc. - those are all questions your team should be capable of answering. If you're running into specific problems trying to implement the system your team designed, then again please feel free to ask those here :) $\endgroup$ – Chuck Mar 2 '19 at 8:22
  • 1
    $\begingroup$ Feeling confident now. Thanks for guiding me. I will try my best to complete my project. 🙋 $\endgroup$ – Creepy Creature Mar 2 '19 at 9:10
  • $\begingroup$ @CreepyCreature - Glad to help! Good luck with your project, and again, please feel free to bring any specific questions or problems here! $\endgroup$ – Chuck Mar 2 '19 at 9:27

The CAD file which describes the robotic hand is good starting point but for controlling the movement something else is needed. It's called a forward model or system identification which can be realized in Matlab too. It will output the position of the fingers if a certain action is executed in the model. For example, if the model gets the command “finger up”, the simulated hand will produce a movement. The forward model answers the question what the new position of the finger is.

Realizing such a prediction engine can be done in the easy case with a geometrical description. This looks similar to what is used by inverse kinematics solvers. More advanced forward models includes the kinodynamic properties and the grasping of objects. After a forward model is available a planner can bring the robotic hand into a goal position. This is called inverse model. The idea is to define a goal, for example that the finger should be at position (x,y,z) and the model is asked which action will realize this goal. Usually a dedicated solver is used which samples the forward model until the constraints are fulfilled.

| improve this answer | |
  • $\begingroup$ Matlab does this with the Simscape Multibody toolbox, which I think they're using already. The forward dynamics, I mean. $\endgroup$ – Chuck Mar 2 '19 at 7:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.