orocos / orocos_kinematics_dynamics

Orocos Kinematics and Dynamics C++ library
710 stars 409 forks source link

some problem about orocos_kdl/examples/chainiksolverpos_lma_demo.cpp #483

Open zilong-ding opened 2 weeks ago

zilong-ding commented 2 weeks ago

i changed the robot model whih is puma560 to test my own robot model,but the result is almost 10% cases failed. is that possible

Chain ABB6700() {
        Chain ABB;
        // joint0
        ABB.addSegment(Segment("base",Joint(Joint::None),
            Frame::DH_Craig1989(0.0, 0.0, 0.780, 0.0)
        ));
        // joint1
        ABB.addSegment(Segment(Joint(Joint::RotZ),
            //Frame::DH_Craig1989(0.0, 0.0, 0.780, 0.0)
            Frame::DH_Craig1989(0.0, 0.0, 0.0, 0.0)
        ));
        // joint2
        ABB.addSegment(Segment(Joint(Joint::RotZ),
            Frame::DH_Craig1989(0.320, -PI_2, 0.0, -PI_2)
        ));
        // joint3
        ABB.addSegment(Segment(Joint(Joint::RotZ),
            Frame::DH_Craig1989(1.125, 0.0, 0.0, 0.0)
        ));
        // joint4
        ABB.addSegment(Segment(Joint(Joint::RotZ),
            Frame::DH_Craig1989(0.200, -PI_2, 1.1425, 0.0)
        ));
        // joint5
        ABB.addSegment(Segment(Joint(Joint::RotZ),
            Frame::DH_Craig1989(0.0, PI_2, 0.0, -PI)
        ));
        //joint6
        ABB.addSegment(Segment(Joint(Joint::RotZ),
            Frame::DH_Craig1989(0.0, PI_2, 0.200, 0.0)
        ));
        // joint7
        ABB.addSegment(Segment(Joint(Joint::RotZ),
            Frame::Identity()
        ));

        return ABB;
    };

DRobot Tye:IRB6700_200260 idistance umit:mm iangle umit:degree DRx(alpha)Tx(a)Rz(theta)Tz(d) KinematicBaseFrame:[[1000][0100][0 010][0 0 0.78 1]] D[D Theta A Alpha] Frame1:[0.0,0,0.0,0] Frame 2:[0.0,-90,320.0,-90] Frame 3:[0.0,0,1125.0,0] Frame 4:[1142.5,0,200.0,-90] Frame 5:[0.0,-180,0.0,90] Frame 6:[200.0,0,0.0,90]