[choreonoid-users-ja 00116] calcCMJacobianのバグについて

k-kojima (imi) k-kojima @ jsk.imi.i.u-tokyo.ac.jp
2013年 12月 9日 (月) 01:00:35 JST


東京大学大学院の小島です。

choreonoid-1.4.0のsrc/Body/Jacobian.cppのcalcCMJacobianについて
第3引数のEigen::MatrixXd& JにNanが入っていることがあったので調べてみると、
100行目のbreakによってforループを抜けていることが原因のようです。
(恐らくchoreonoid-1.3以前のcalcCMJacobianの該当箇所付近のforループの中でswitch文を用いていた時の名残かと思います)

choreonoid本体でcalcCMJacobianは使われていないようなので差し合ったって問題ないかもしれませんが、一応ご報告致しました。

        for(int i=0; i < nj; i++){
            Link* joint = body->joint(i);
            if(joint->isRotationalJoint()){
                const Vector3 omega = sgn[joint->jointId()] *
joint->R() * joint->a();
                const SubMass& sub = subMasses[joint->index()];
                const Vector3 arm = (sub.mwc - sub.m * joint->p()) /
body->mass();
                const Vector3 dp = omega.cross(arm);
                J.col(joint->jointId()) = dp;
100行目    break;
            } else {
                std::cerr << "calcCMJacobian() : unsupported jointType("
                          << joint->jointType() << std::endl;
            }
        }




_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
東京大学 大学院
情報理工学系研究科 知能機械情報学専攻
〒113-8656
東京都文京区本郷7-3-1 工学部2号館 7階73B2
小島 邦生 (KOJIMA KUNIO)
k-kojima @ jsk.imi.i.u-tokyo.ac.jp
Tel 03-5841-7416
Fax 03-5841-6285
携帯 090-4501-5285
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/


choreonoid-users-ja メーリングリストの案内