ros-industrial / kuka_experimental

Experimental packages for KUKA manipulators within ROS-Industrial (http://wiki.ros.org/kuka_experimental)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

KR10r1420 support file

MBaranPeker opened this issue · comments

Hi,
I am trying to create a support file for kuka kr10r1420 robot. Unfortunately when I try to run on Rviz links moves separately. when I move joint_1 all links moves together as it should be. When I move joint_2 except link_1 other links move. I could not figure out what is the problem with that. I will appreciate if anybody could help.
Additional Informations ;

I set link information same as datasheet.(Checked twice)
In xacro file i set for each link. Because I don't know how to calculate it.
Collision Links same as visual links I didn't crate new collision cad files.
while creating new support file I reference kr10r1100sixx robot.

Original Link locations in Blender.

Screenshot from 2021-05-24 16-32-11

Rviz

Screenshot from 2021-05-24 16-20-27
Screenshot from 2021-05-24 16-16-02

You need to move the origin of each mesh to (0,0,0).

@tingelst do you mean for each joint origin should be (0,0,0) in stl files?

@tingelst do you mean for each joint origin should be (0,0,0) in stl files?

Yes

@tingelst Thanks.

@tingelst
Hi,
This is the result If I make orijin of each joint (0,0,0) in stl files.(Geometry to orijin)
Screenshot from 2021-05-25 08-20-16
This is how I did that. (Geometry to orijin)
Screenshot from 2021-05-25 08-23-41

<joint name="${prefix}joint_a1" type="revolute">
  <origin xyz="0 0 0.450" rpy="0 0 0"/>
  <parent link="${prefix}base_link"/>
  <child link="${prefix}link_1"/>
  <axis xyz="0 0 -1"/>
  <limit effort="0" lower="${-DEG2RAD * 170}" upper="${DEG2RAD * 170}" velocity="${DEG2RAD * 220}"/>
</joint>
<joint name="${prefix}joint_a2" type="revolute">
  <origin xyz="0.150 0 0" rpy="0 0 0"/>
  <parent link="${prefix}link_1"/>
  <child link="${prefix}link_2"/>
  <axis xyz="0 1 0"/>
  <limit effort="0" lower="${-DEG2RAD * 185}" upper="${DEG2RAD * 65}" velocity="${DEG2RAD * 210}"/>
</joint>
<joint name="${prefix}joint_a3" type="revolute">
  <origin xyz="0.610 0 0" rpy="0 0 0"/>
  <parent link="${prefix}link_2"/>
  <child link="${prefix}link_3"/>
  <axis xyz="0 1 0"/>
  <limit effort="0" lower="${-DEG2RAD * 137}" upper="${DEG2RAD * 163}" velocity="${DEG2RAD * 270}"/>
</joint>
<joint name="${prefix}joint_a4" type="revolute">
  <origin xyz="0 0 0.020" rpy="0 0 0"/>
  <parent link="${prefix}link_3"/>
  <child link="${prefix}link_4"/>
  <axis xyz="-1 0 0"/>
  <limit effort="0" lower="${-DEG2RAD * 185}" upper="${DEG2RAD * 185}" velocity="${DEG2RAD * 381}"/>
</joint>
<joint name="${prefix}joint_a5" type="revolute">
  <origin xyz="0.660 0 0" rpy="0 0 0"/>
  <parent link="${prefix}link_4"/>
  <child link="${prefix}link_5"/>
  <axis xyz="0 1 0"/>
  <limit effort="0" lower="${-DEG2RAD * 120}" upper="${DEG2RAD * 120}" velocity="${DEG2RAD * 311}"/>
</joint>
<joint name="${prefix}joint_a6" type="revolute">
  <origin xyz="0.080 0 0" rpy="0 0 0"/>
  <parent link="${prefix}link_5"/>
  <child link="${prefix}link_6"/>
  <axis xyz="-1 0 0"/>
  <limit effort="0" lower="${-DEG2RAD * 350}" upper="${DEG2RAD * 350}" velocity="${DEG2RAD * 492}"/>
</joint>
<joint name="${prefix}joint_a6-tool0" type="fixed">
  <parent link="${prefix}link_6"/>
  <child link="${prefix}tool0"/>
  <origin xyz="0 0 0" rpy="0 ${DEG2RAD * 90} 0"/>
</joint>

<!-- ROS base_link to KUKA $ROBROOT coordinate system transform -->
<link name="${prefix}base" />
<joint name="${prefix}base_link-base" type="fixed">
  <origin xyz="0 0 0" rpy="0 0 0"/>
  <parent link="${prefix}base_link"/>
  <child link="${prefix}base"/>
</joint>

</xacro:macro>

You cannot use geometry to origin, as that will place the origin of the mesh in its centre of mass (ie: in the middle of "all the pixels/faces/vertices"). That's not what @tingelst meant to say.

The origins of the meshes should be in the same location as the origins of the joints in the real robot.

So for base_link, its origin should be at the bottom of the link, right where the joint_a1 axis intersects with the bottom face of mesh.

It may be helpful to open some of the meshes of the other models. That may give you more of an idea.

Once you get that sorted out, you'll want to set the origin elements of each visual to 0 0 0, as they then don't need any additional transformation to be rendered in the correct place.

Again: looking at some of the existing models and their meshes may be informative.

@MBaranPeker: did you get things to work?

If yes: would you be willing to contribute your variant to the kuka_kr10_support package?

commented

I am actually setting up RSI to work with a KR10 R1420 so would be very much willing to help on this, if this could be a good first PR, if @MBaranPeker can provide anything I could support or help out, otherwise I will have something in the next couple of weeks which I could submit.

@gavanderhoorn No, I had another robot to use and time was short, so that I couldn't continue developing support file for KR10-R1420.
@aatb-ch thank you, It would be perfect for the community.

commented

Alright no problem, would you mind sharing your existing files? I'm fine starting over from scratch but it could be helpful references.

@aatb-ch I do have stl files( had some problems). I can share them with you. But I could not find urdf files( also had some problems ). I suggest you to download it from KUKA website to be sure.

commented

Sure, understood. Will start clean then, thank you.

commented

submitted PR #216