Skip to content

Integrating a new robot (UR10e) to the roboticstoolbox  #353

@svenkatachalam

Description

@svenkatachalam

I am new to roboticstoolbox and I am working on defining the UR10e robot model in ETS and DH format. As I dont have standard moedl to validate the results, I redescribed ETS of UR10 in a new file and compared with the standard model. For computing forward kinematics the ETS model is working fine.
` E0 = rtb.ET.Rz(0)

# Shoulder pan to Base
E1 = rtb.ET.tz(0.1273)
E2 = rtb.ET.Rz()

# Shoulder link to shoulder pan
E3 = rtb.ET.ty(0.220941) * rtb.ET.Ry(np.pi / 2)
E4 = rtb.ET.Ry()

# Elbow to shoulder link
E5 = rtb.ET.ty(-0.1719) * rtb.ET.tz(0.612)
E6 = rtb.ET.Ry()

# Wrist 1 to Elbow
E7 = rtb.ET.tz(0.5723) * rtb.ET.Ry(np.pi / 2)
E8 = rtb.ET.Ry()

# Wrist 2 to Wrist 1
E9 = rtb.ET.ty(0.1149)
E10 = rtb.ET.Rz()

# Wrist 3 to Wrist 2
E11 = rtb.ET.tz(0.1157)
E12 = rtb.ET.Ry()
E13 = rtb.ET.ty(0.0922) * rtb.ET.Rz(np.pi / 2)

`
And when I tried with computing inverse kinematics (for UR10), the solution is not correct with the provided ETS model. I would like to know, if we can work with ETS definitions for computing inverse kinematics I got the following error:

AttributeError: 'ETS' object has no attribute 'ikine_LM'

I tried with DH representation of the same robot and used same algorithm to compute ik and it worked. The output is still not correct as it prints "success=False" and the max iterations of 100 is reached. As I understand from other posts, this method will provide only the first outcome and not the all possible ik outputs.

I have following questions:

  1. When I printed the number of ETS' from standard UR10 model 'rtb.models.UR10().ets().m', I am getting the value to be 14. And to my model 18. I traced the way the standard UR10 model (rtb.models.UR10()) and wrote the ETS definition for my model. But the result is the same.
  2. Also I couldnt use ETS model for computing ik. I used DH model. But the results on forward kinematics between DH model (I defined) and standard models (rtb.models.UR10()) are differing.
  3. On the new defined UR10 ETS model, I am unable to use the method ik_lm_chan() or ik_lm_wampler() for computing the inverse kinematics. And with DH model, this method is giving output in range of e-270/e-310. Is there any specific way/format to describe this model for using this method, so that inverse kinematics function ik_lm_chan() or ik_lm_wampler() will work.
  4. And how to use URDF_read for a custom URDF model of a robot. By default, it searches for URDF file in "Lib\site-packages\rtbdata\xacro\". I want to read URDF from different folder.

I have attached all the different format of the UR10 description in this post. Other than the representation with DH (test_DH.py) computing the inverse kinematics with other formats doesnt give correct solution.

test_e_ur10.txt
test_ur10.txt
test_ur10_new_ets.txt
test_DH.txt

Metadata

Metadata

Assignees

Labels

bugwe got it wrong, will fixfor next releaseThis fix will be included in the next release

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions