How to set home position for robot created in Matlab to that of actual robot?

31 次查看(过去 30 天)
Hello,
I have created a 6-DOF robot using RigidBodyTree() method and modified D-H parameters using robotics toolbox. I have followed the example here: https://www.mathworks.com/help/robotics/ref/robotics.rigidbodytree-class.html#bvet6e8
The modified DH parameters for the robot are as follows:
Modified_DH.PNG
To bring the robot to its actual home position (position of the real robot where encoder values read 0), I have to pass specific theta (DH Parameter) values: [0 -pi/2 0 0 0 pi]
To specify home position for each joints, I have used:
jnt6.HomePosition = pi % Home position for joint 6 is 180 degrees
jnt2.HomePOsition = -pi/2 % Home position for joint 2 is -90 degrees
I can verify that the correct home position is set by using following commands:
config = homeConfiguration(abb_irb140_mdh)
thetaHome = [config(1).JointPosition config(2).JointPosition config(3).JointPosition config(4).JointPosition config(5).JointPosition config(6).JointPosition]
This results in a vector [0 -pi/2 0 0 0 pi]
However, there are discrepancies in the joint values for home position of robot created using DH parameters and that of the actual robot
For actual robot and its simulators, passing a joints value of [0 0 0 0 0 0] gets to the home position.
The visulaization of robot created using robotics toolbox using DH parameters and that of the simulator are shown below:
This creates problems during inverse kinematics. For the same home position (4X4 homogeneous transformation matrix), the joint angles are different for real robot simulator and robot created using modified DH parameters ([0 0 0 0 0 0] vs [0 -pi/2 0 0 0 pi])
The DH parameter method ignores theta values when creating robot. How can I match the home configuration of the robot created in Matlab to the real robot?
  1 个评论
Ehtisham  Ul Hassan
Ehtisham Ul Hassan 2020-3-18
Sir, i have also imported my robot from solidworks. i have observed that joints may change or an extra joint appears. Now if i remove those joints then does it affects the inverse kinematics of robot. i am working on 7-dof Franka emika panda, i think i have imported file correctly but after inverse kinematics the robot do not reach desired position. if you can answer me you can contact me at ehtishamulhassan25@gmail.com and if couldn't understand then i can email you my files as well.

请先登录,再进行评论。

回答(1 个)

Sridhar Reddy Abbireddy
Matlab ignore theta in DH parameters. So, please try this
Config = homeConfiguration(robot)
show(robot)
config(2).JointPosition =pi/2
show(robot,config)

类别

Help CenterFile Exchange 中查找有关 Robotics 的更多信息

产品


版本

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by