@@ -2586,6 +2586,17 @@ void iCubEye::allocate(const string &_type)
2586
2586
pushLink (new iKinLink ( 0.0 , 0.034 , -M_PI/2.0 , 0.0 , -35.0 *CTRL_DEG2RAD, 15.0 *CTRL_DEG2RAD));
2587
2587
pushLink (new iKinLink ( 0.0 , 0.0 , M_PI/2.0 , -M_PI/2.0 , -50.0 *CTRL_DEG2RAD, 50.0 *CTRL_DEG2RAD));
2588
2588
}
2589
+ else if (version==iKinLimbVersion (" 2.10" ))
2590
+ {
2591
+ pushLink (new iKinLink ( 0.032 , 0.0 , M_PI/2.0 , 0.0 , -22.0 *CTRL_DEG2RAD, 84.0 *CTRL_DEG2RAD));
2592
+ pushLink (new iKinLink ( 0.0 , -0.0055 , M_PI/2.0 , -M_PI/2.0 , -39.0 *CTRL_DEG2RAD, 39.0 *CTRL_DEG2RAD));
2593
+ pushLink (new iKinLink ( 0.0053 , -0.2233 , -M_PI/2.0 , -M_PI/2.0 , -59.0 *CTRL_DEG2RAD, 59.0 *CTRL_DEG2RAD));
2594
+ pushLink (new iKinLink ( 0.0110 , 0.0 , M_PI/2.0 , M_PI/2.0 , -40.0 *CTRL_DEG2RAD, 30.0 *CTRL_DEG2RAD));
2595
+ pushLink (new iKinLink ( 0.0 , 0.0 , -M_PI/2.0 , -M_PI/2.0 , -70.0 *CTRL_DEG2RAD, 60.0 *CTRL_DEG2RAD));
2596
+ pushLink (new iKinLink (-0.0510 , 0.08052 , -M_PI/2.0 , M_PI/2.0 , -55.0 *CTRL_DEG2RAD, 55.0 *CTRL_DEG2RAD));
2597
+ pushLink (new iKinLink ( 0.0 , 0.034 , -M_PI/2.0 , 0.0 , -35.0 *CTRL_DEG2RAD, 15.0 *CTRL_DEG2RAD));
2598
+ pushLink (new iKinLink ( 0.0 , 0.0 , M_PI/2.0 , -M_PI/2.0 , -50.0 *CTRL_DEG2RAD, 50.0 *CTRL_DEG2RAD));
2599
+ }
2589
2600
else if (version<iKinLimbVersion (" 3.0" ))
2590
2601
{
2591
2602
pushLink (new iKinLink ( 0.032 , 0.0 , M_PI/2.0 , 0.0 , -22.0 *CTRL_DEG2RAD, 84.0 *CTRL_DEG2RAD));
@@ -2597,7 +2608,7 @@ void iCubEye::allocate(const string &_type)
2597
2608
pushLink (new iKinLink ( 0.0 , 0.034 , -M_PI/2.0 , 0.0 , -35.0 *CTRL_DEG2RAD, 15.0 *CTRL_DEG2RAD));
2598
2609
pushLink (new iKinLink ( 0.0 , 0.0 , M_PI/2.0 , -M_PI/2.0 , -50.0 *CTRL_DEG2RAD, 50.0 *CTRL_DEG2RAD));
2599
2610
}
2600
- else // version> =3.0
2611
+ else // version=3.0
2601
2612
{
2602
2613
H0.zero ();
2603
2614
H0 (0 ,2 )=1.0 ;
@@ -2629,6 +2640,17 @@ void iCubEye::allocate(const string &_type)
2629
2640
pushLink (new iKinLink ( 0.0 , -0.034 , -M_PI/2.0 , 0.0 , -35.0 *CTRL_DEG2RAD, 15.0 *CTRL_DEG2RAD));
2630
2641
pushLink (new iKinLink ( 0.0 , 0.0 , M_PI/2.0 , -M_PI/2.0 , -50.0 *CTRL_DEG2RAD, 50.0 *CTRL_DEG2RAD));
2631
2642
}
2643
+ else if (version==iKinLimbVersion (" 2.10" ))
2644
+ {
2645
+ pushLink (new iKinLink ( 0.032 , 0.0 , M_PI/2.0 , 0.0 , -22.0 *CTRL_DEG2RAD, 84.0 *CTRL_DEG2RAD));
2646
+ pushLink (new iKinLink ( 0.0 , -0.0055 , M_PI/2.0 , -M_PI/2.0 , -39.0 *CTRL_DEG2RAD, 39.0 *CTRL_DEG2RAD));
2647
+ pushLink (new iKinLink ( 0.0053 , -0.2233 , -M_PI/2.0 , -M_PI/2.0 , -59.0 *CTRL_DEG2RAD, 59.0 *CTRL_DEG2RAD));
2648
+ pushLink (new iKinLink ( 0.0110 , 0.0 , M_PI/2.0 , M_PI/2.0 , -40.0 *CTRL_DEG2RAD, 30.0 *CTRL_DEG2RAD));
2649
+ pushLink (new iKinLink ( 0.0 , 0.0 , -M_PI/2.0 , -M_PI/2.0 , -70.0 *CTRL_DEG2RAD, 60.0 *CTRL_DEG2RAD));
2650
+ pushLink (new iKinLink (-0.0510 , 0.08052 , -M_PI/2.0 , M_PI/2.0 , -55.0 *CTRL_DEG2RAD, 55.0 *CTRL_DEG2RAD));
2651
+ pushLink (new iKinLink ( 0.0 , -0.034 , -M_PI/2.0 , 0.0 , -35.0 *CTRL_DEG2RAD, 15.0 *CTRL_DEG2RAD));
2652
+ pushLink (new iKinLink ( 0.0 , 0.0 , M_PI/2.0 , -M_PI/2.0 , -50.0 *CTRL_DEG2RAD, 50.0 *CTRL_DEG2RAD));
2653
+ }
2632
2654
else if (version<iKinLimbVersion (" 3.0" ))
2633
2655
{
2634
2656
pushLink (new iKinLink ( 0.032 , 0.0 , M_PI/2.0 , 0.0 , -22.0 *CTRL_DEG2RAD, 84.0 *CTRL_DEG2RAD));
@@ -2640,7 +2662,7 @@ void iCubEye::allocate(const string &_type)
2640
2662
pushLink (new iKinLink ( 0.0 , -0.034 , -M_PI/2.0 , 0.0 , -35.0 *CTRL_DEG2RAD, 15.0 *CTRL_DEG2RAD));
2641
2663
pushLink (new iKinLink ( 0.0 , 0.0 , M_PI/2.0 , -M_PI/2.0 , -50.0 *CTRL_DEG2RAD, 50.0 *CTRL_DEG2RAD));
2642
2664
}
2643
- else // version> =3.0
2665
+ else // version=3.0
2644
2666
{
2645
2667
H0.zero ();
2646
2668
H0 (0 ,2 )=1.0 ;
@@ -2668,11 +2690,10 @@ void iCubEye::allocate(const string &_type)
2668
2690
setHN (HN);
2669
2691
}
2670
2692
// 4k cameras image plane
2671
- else if ((version==iKinLimbVersion (" 2.10" )) ||
2672
- (version==iKinLimbVersion (" 3.1" )))
2693
+ else if (version==iKinLimbVersion (" 2.10" ))
2673
2694
{
2674
2695
Matrix HN=yarp::math::eye (4 , 4 );
2675
- HN (2 , 3 )=-12.63e -3 ;
2696
+ HN (2 , 3 )=-9.83e -3 ;
2676
2697
setHN (HN);
2677
2698
}
2678
2699
@@ -2820,6 +2841,19 @@ void iCubInertialSensor::allocate(const string &_type)
2820
2841
pushLink (new iKinLink ( 0.0 , 0.001 , -M_PI/2.0 , -M_PI/2.0 , -70.0 *CTRL_DEG2RAD, 60.0 *CTRL_DEG2RAD));
2821
2842
pushLink (new iKinLink ( 0.0225 , 0.1005 , -M_PI/2.0 , M_PI/2.0 , -55.0 *CTRL_DEG2RAD, 55.0 *CTRL_DEG2RAD));
2822
2843
}
2844
+ else if (version==iKinLimbVersion (" 2.10" ))
2845
+ {
2846
+ H0 (0 ,1 )=-1.0 ;
2847
+ H0 (1 ,2 )=-1.0 ;
2848
+ H0 (2 ,0 )=1.0 ;
2849
+
2850
+ pushLink (new iKinLink ( 0.032 , 0.0 , M_PI/2.0 , 0.0 , -22.0 *CTRL_DEG2RAD, 84.0 *CTRL_DEG2RAD));
2851
+ pushLink (new iKinLink ( 0.0 , -0.0055 , M_PI/2.0 , -M_PI/2.0 , -39.0 *CTRL_DEG2RAD, 39.0 *CTRL_DEG2RAD));
2852
+ pushLink (new iKinLink ( 0.0 , -0.2233 , -M_PI/2.0 , -M_PI/2.0 , -59.0 *CTRL_DEG2RAD, 59.0 *CTRL_DEG2RAD));
2853
+ pushLink (new iKinLink ( 0.0110 , 0.0 , M_PI/2.0 , M_PI/2.0 , -40.0 *CTRL_DEG2RAD, 30.0 *CTRL_DEG2RAD));
2854
+ pushLink (new iKinLink ( 0.0 , 0.0 , -M_PI/2.0 , -M_PI/2.0 , -70.0 *CTRL_DEG2RAD, 60.0 *CTRL_DEG2RAD));
2855
+ pushLink (new iKinLink ( 0.0055 , 0.1690 , M_PI/2.0 , 0.0 , -55.0 *CTRL_DEG2RAD, 55.0 *CTRL_DEG2RAD));
2856
+ }
2823
2857
else if (version<iKinLimbVersion (" 3.0" ))
2824
2858
{
2825
2859
H0 (0 ,1 )=-1.0 ;
@@ -2833,7 +2867,7 @@ void iCubInertialSensor::allocate(const string &_type)
2833
2867
pushLink (new iKinLink ( 0.0 , 0.0 , -M_PI/2.0 , -M_PI/2.0 , -70.0 *CTRL_DEG2RAD, 60.0 *CTRL_DEG2RAD));
2834
2868
pushLink (new iKinLink ( 0.0185 , 0.1108 , -M_PI/2.0 , M_PI/2.0 , -55.0 *CTRL_DEG2RAD, 55.0 *CTRL_DEG2RAD));
2835
2869
}
2836
- else // version> =3.0
2870
+ else // version=3.0
2837
2871
{
2838
2872
H0 (0 ,2 )=1.0 ;
2839
2873
H0 (1 ,1 )=-1.0 ;
@@ -2869,7 +2903,7 @@ void iCubInertialSensor::allocate(const string &_type)
2869
2903
}
2870
2904
2871
2905
// further displacement for >= 2.6
2872
- if (version>=iKinLimbVersion (" 2.6" ))
2906
+ if (version>=iKinLimbVersion (" 2.6" ) && version!= iKinLimbVersion ( " 2.10 " ) )
2873
2907
{
2874
2908
Matrix HN=zeros (4 ,4 );
2875
2909
HN (0 ,3 )=0.0323779 ;
@@ -2881,6 +2915,18 @@ void iCubInertialSensor::allocate(const string &_type)
2881
2915
HN (3 ,3 )=1.0 ;
2882
2916
setHN (getHN ()*HN);
2883
2917
}
2918
+
2919
+ // new HN for version 2.10 (see https://github.com/icub-tech-iit/study-icub-headedge/issues/230#issuecomment-3279162879)
2920
+ else if (version==iKinLimbVersion (" 2.10" ))
2921
+ {
2922
+ Matrix HN=zeros (4 ,4 );
2923
+ HN (0 ,0 )=-1.0 ;
2924
+ HN (1 ,2 )=-1.0 ;
2925
+ HN (2 ,1 )=-1.0 ;
2926
+ HN (2 ,3 )=0.00345 ;
2927
+ HN (3 ,3 )=1.0 ;
2928
+ setHN (HN);
2929
+ }
2884
2930
}
2885
2931
2886
2932
0 commit comments