Forums Niryo One Programming Niryo One Niryo One Coordinate Frames

Viewing 10 posts - 1 through 10 (of 10 total)
  • Author
    Posts
  • wyojustin
    Participant
    Post count: 16

    Been playing with jevois and Niryo locating ArUco codes in 3-space and discovered a strange z-axis offset of 12-15mm below the table to which NiryoOne is mounted. I wonder if this is a calibration issue or a coordinate frame definition issue. Can you please provide a diagram of the XYZ coordinate frame reference point and orientation? By this I mean the frame to which set_pose refers to.

    Thanks so much for NiryoOne!

    Justin

    Edouard Renard
    Keymaster
    Post count: 152

    Hi Justin,

    When you use the move_pose functionality, the TCP (Tool Center Point) frame used is this one:

    If you want to see it moving in 3D, launch the desktop simulation with Rviz, and choose the options like I did on the photo.

    Also:

    Here you can download the mechanical specs and see the dimensions.

    Here you can see the URDF file used for creating the ROS 3D model. You can also find all links and joints with the distance between them.

    Note that the frame used for pose functionalities is always the same, you’ll have to provide a correct offset if you add a tool.

    I hope this helps!

    wyojustin
    Participant
    Post count: 16

    Yes!  That is my point exactly.  The modeled xy-plane does not agree with the actual xy-plane.  This is on two separate arms, so I think the problem is systemic. The top image below shows that the modeled xy-plane is level with the base. The bottom image shows that the actual position is over a cm below the base.

     

    xy-plane modeled

    xy-plane actual

    • This reply was modified 3 weeks, 3 days ago by  wyojustin.
    Edouard Renard
    Keymaster
    Post count: 152

    Thanks for the photos, we’ll investigate this issue and will update the dimensions on the software if needed!

    I’ll post a follow up here once we have found something.

    wyojustin
    Participant
    Post count: 16

    Thanks! Looking forward to get update.

    wyojustin
    Participant
    Post count: 16

    Ok, I think I’ve cracked it! From the Mechanical Spec, I compute that the neutral position (all joints set to zero) of the tool connector is:

    x = 41.5 + 180 + 23.7 = 245.2 and
    z = 103 + 80 + 210 + 30 – 5.5 = 417.5

    When I command Niryo RVis simulation to set the neutral position and call niryo.get_arm_pose() I get this:

    position:
    x: 0.237907495458
    y: -4.02967428798e-06
    z: 0.417474425233
    rpy:
    roll: -6.90657038956e-05
    pitch: 4.93150197529e-05
    yaw: -1.60822293274e-05

    which is off by about 7mm in x.

    Checking in Rvis:
    TF->hand_link-> Relative position, I see the x offset is set to 16.4mm in stead of 23.7mm. That account for the descrepency.

    • This reply was modified 3 weeks, 2 days ago by  wyojustin.
    FindingNiryo
    Participant
    Post count: 54

    Nice catch.

    Looks like
    niryo_one_ros/niryo_one_description/urdf/v2/niryo_one.urdf.xacro
    <xacro:property name=”distance_wrist_hand_x” value=”0.0164″ />

    should be
    <xacro:property name=”distance_wrist_hand_x” value=”0.0237″ />
    yes?

    Edouard Renard
    Keymaster
    Post count: 152

    Thanks guys for the help!

    I have checked again the values, but the values in URDF seem to be correct.

    In the mechanical specifications, the distance between the joint 5 (axis 5) and the tool joint is 23.7mm, or 0.0237 m.

    In URDF, you can find “distance_wrist_hand_x” at 0.0164, but also you have “distance_hand_tool” at 0.0073. The sum of the 2 is 0.0237.

    In fact (software related only), the robot doesn’t have 6 joints, but 7. The 7th joint is a fixed joint just for defining the distance between the hand base and the tool base, and putting an easier-to-use orientation for the user.

    I have just made some tests in simulation and with a real robot, and found correct results.

    See here the result for Pose command (pos.x: 0.2, pos.y: 0.0, pos.z: 0.0, rot.x: 0.0, rot.y: 1.57, rot.z: 1.57) done from Niryo One Studio.

    I get the exact same position with the real robot.

    @wyojustin could you check again with those settings ? Also what command tool (Niryo One Studio, Python API, …) did you use so you get your result with the position issue ?

     

    wyojustin
    Participant
    Post count: 16

    Thanks for checking. I will repeat the experiment when I return home tomorrow.

    wyojustin
    Participant
    Post count: 16

    Ok, I can confirm that BACK of the tool connector is the reference point. Thanks for looking into this! Issue is closed.

Viewing 10 posts - 1 through 10 (of 10 total)

You must be logged in to reply to this topic.