>1. p.167 line 8 from the bottom “リンク0、リンク1、リンク2、リンク3、リンク4。。。”
>There are four links but リンク4 does not exist because we >started counting from zero.
はい。リンク0から数えているのでリンク4は必要ありません。
> 2. p.178 line 8. Shouldn’t “式(6.48)…” be 式6.92?
はい。式(6.92)です。
>3. p.182 line 8. “Pcontrol関数”だと思います。
はい。
> 4. p.185 line 3 from the bottom. dy/dth1 = l2C1S2 “PLUS” l3C1S23
はい。 -でなく+です。
> 5. p.186 Sec 7.4 the line below Eqn 7.7. Shouldn’t it be J(theta dot) = p dot ?
はい。
>6. p.205. There is no need to worry about l0 because it is (0,0,0). Right?
はい。
>7. p.208 Step 4 of the walking algorithm. Please explain why the COM needs
>to move forward by 1/4 of the step length? Where did you get the 1/4?
このアルゴリズムでは重心(COM)を4歩で歩幅分移動しているからです。
>8. p.209 End of first paragraph. Shouldn’t it be z0 – z1?
はい。z0, z1は股関節からの長さなのでz0の方がz1より大きいです。
>9. p.209 2nd paragraph. According to Fig 8.5 on p.203, positive y points to
>the left of the robot. Shouldn’t it be “上体を右へ -y1 だけ。”? Similar problem
>with Table 8.6
いいえ。脚先の通過点は胴体重心を原点とした相対座標系で考えます。胴体を右へy1移動することは、脚先をy軸の正方向へy1移動することと同じです。
>10. p.216 Why the weight of けんせいちゃん was reduced by half?
開発中のヒューマノイドの仕様に合わせた結果です。なお、Kozoh4というヒューマノイドもこれとほぼ同じ仕様となっています。
>11. p.217 Figure 9.5 I think “S hat 5” and “S hat 6” should be reversed.
>Also, “S hat 4” should points in the same direction as “S hat 6”.
いいえ。S3hat, S4hat, S5hatはピッチ軸で同じ方向を向いており、S2hatとS6hatはロール軸となっています。このとり方は、運動学、逆運動学の計算を簡単にするためです。
1. p.167 line 8 from the bottom “リンク0、リンク1、リンク2、リンク3、リンク4。。。”
There are four links but リンク4 does not exist because we started counting from zero.
2. p.178 line 8. Shouldn’t “式(6.48)…” be 式6.92?
3. p.182 line 8. “Pcontrol関数”だと思います。
4. p.185 line 3 from the bottom. dy/dth1 = l2C1S2 “PLUS” l3C1S23
なお、 dy/dth2 = l2S1C2 + …
5. p.186 Sec 7.4 the line below Eqn 7.7. Shouldn’t it be J(theta dot) = p dot ?
6. p.205. There is no need to worry about l0 because it is (0,0,0). Right?
7. p.208 Step 4 of the walking algorithm. Please explain why the COM needs
to move forward by 1/4 of the step length? Where did you get the 1/4?
8. p.209 End of first paragraph. Shouldn’t it be z0 – z1?
9. p.209 2nd paragraph. According to Fig 8.5 on p.203, positive y points to
the left of the robot. Shouldn’t it be “上体を右へ -y1 だけ。”? Similar problem
with Table 8.6
10. p.216 Why the weight of けんせいちゃん was reduced by half?
11. p.217 Figure 9.5 I think “S hat 5” and “S hat 6” should be reversed.
Also, “S hat 4” should points in the same direction as “S hat 6”.
12. p.221 Please double check Equation 9.18
コメント
おいふぉりーさん,
はじめまして.どうもありがとうございます.
昨日,ODE本やODE講座のサンプルコードのうち衝突検出を含むもの(つまり,ほとんど全部)はODE0.10ではコンパイルできないことに気がつきました.dInitODE()はODE0.8(2007-1-22)から導入されていましたが,ODE本には発刊時期の関係で入れることができませんでした.ODE0.9まではこれを呼び出さなくてもサンプルコードをコンパイルすることができました.
しかし,ODE0.10からスレッドのサポートなどによりdInitODE2()が導入され,dInitODE()やdInitODE2(0)を呼び出さないとエラーになります.なお,dInitODEのソースコードは次のようになっていて,dInitODE2(0); dAllocateODEDataForThread(dAllocateMaskAll);を呼び出していますね.ODE付属のデモプログラムでは, main関数でdInitODE2(0)を呼び出し,start関数でdAllocateODEDataForThread(dAllocateMaskAll)を呼び出しています.
void dInitODE()
{
int bInitResult = dInitODE2(0);
dIASSERT(bInitResult);
dVARIABLEUSED(bInitResult);
int ibAllocResult = dAllocateODEDataForThread(dAllocateMaskAll);
dIASSERT(ibAllocResult);
dVARIABLEUSED(ibAllocResult);
}
また,ビルドのシステムも少し変わったのでサンプルコードに付属していたmakefileではコンパイルできません.現在,ODE0.10に付属していたpremakeを使ってサンプルコードをコンパイルさせようと作業しています.
でむ
はじめまして おいふぉりーといいます。
ODE 本の第1版第3刷を購入させていただきまして、早速サンプルのプログラムをコンパイルして実行していたのですが、プログラム 1.2 で、ボールが落ちて衝突検出が行われる瞬間に、次のような実行時エラーが発生いたしました。(他のソースでも同様な問題が発生すると思われます)
ODE INTERNAL ERROR 2
colliders array not initialized (…\ode-0.10.0\ode\src\collision_kernel.cpp:256)
このエラーは 32行目の dCollide() 呼び出し時に発生しているようです。
main() 関数のトップに次のコードを追加した所、エラーが発生しなくなりました。
dInitODE(); // ヘッダのコメントによると奨励されない
または
dInitODE2(0);
dAllocateODEDataForThread(dAllocateMaskAll);
私の環境ですが
コンパイラ Visual C++ 2005 Express Edition
ODE 0.10.0
です。
既にご存知だったかもしれませんが、念のため報告させていただきました。
けんつさん,
ご連絡ありがとうございます.第3刷になりバグがほとんどなくなったと思いましたがありますね.ODEは進化が速く,ODE本を執筆した2年前と比較して新しい機能が増えています.その点についてはこのブログで説明していきたいと考えています.
今後ともよろしくお願いします.
でむ
いつも、ODE本にお世話になっております.
毎日の様に活用させて貰っているせいか,
すでに本も擦り切れてきました.
お気づきでしたら申し訳ありませんが,
第一版 P87
dJointGetUniversalAngleRate1 → dJointGetUniversalAngle1Rate
dJointGetUniversalAngleRate2 → dJointGetUniversalAngle2Rate
という間違えに気づきましたので,報告させて頂きます.
AJさん,
ご指摘のとおりです.お詫びして訂正します.
でむ
p.24:プログラム1.3の49行目
「…z0+ball.r-0.5*leg.l…」
とありますが、
「…z0-ball.r-0.5*leg.l…」
と符号が間違っていると思います。
Webで配布しているプログラムは、ちゃんとマイナスになっていました。
確認お願いします。
チップさん
ご指摘ありがとうございます。
大変助かります。
でむ
p66の10行目
void dMasSet・・・ → void dMassSet・・・でしょうか?細かいですが・・・
ぽったーさん
おひさしぶりです.お元気ですか?
さて,ぽったーさんのご指摘のとおりです.訂正しました.
ODE本並びにdemura.netを丁寧に見ていただきありがとうございます.今後もよろしくお願いします.
おひさしぶりです,でむさん.
この正誤表の下から6番目の
P208 下から8行目
の訂正は,
P209 下から8行目
でしょうか?
ひびきのさん、
ご指摘ありがとうございます。そのとおりです。
なお、ODE0.9はまだリリースされていません。rc1 (release candidate 1)の段階です。
でむ さん
ODE 0.9 出ました。
それと、ODE本のp79(7行目)dGeomTriMeshDataCreate()が
dGeomTriMeshDateCreate()になってますよ。
あと、p219の式(9.7)の括弧が1個多いような気がします。
ジミーさん、
ご指摘ありがとうございます。
>1. p.167 line 8 from the bottom “リンク0、リンク1、リンク2、リンク3、リンク4。。。”
>There are four links but リンク4 does not exist because we >started counting from zero.
はい。リンク0から数えているのでリンク4は必要ありません。
> 2. p.178 line 8. Shouldn’t “式(6.48)…” be 式6.92?
はい。式(6.92)です。
>3. p.182 line 8. “Pcontrol関数”だと思います。
はい。
> 4. p.185 line 3 from the bottom. dy/dth1 = l2C1S2 “PLUS” l3C1S23
はい。 -でなく+です。
> 5. p.186 Sec 7.4 the line below Eqn 7.7. Shouldn’t it be J(theta dot) = p dot ?
はい。
>6. p.205. There is no need to worry about l0 because it is (0,0,0). Right?
はい。
>7. p.208 Step 4 of the walking algorithm. Please explain why the COM needs
>to move forward by 1/4 of the step length? Where did you get the 1/4?
このアルゴリズムでは重心(COM)を4歩で歩幅分移動しているからです。
>8. p.209 End of first paragraph. Shouldn’t it be z0 – z1?
はい。z0, z1は股関節からの長さなのでz0の方がz1より大きいです。
>9. p.209 2nd paragraph. According to Fig 8.5 on p.203, positive y points to
>the left of the robot. Shouldn’t it be “上体を右へ -y1 だけ。”? Similar problem
>with Table 8.6
いいえ。脚先の通過点は胴体重心を原点とした相対座標系で考えます。胴体を右へy1移動することは、脚先をy軸の正方向へy1移動することと同じです。
>10. p.216 Why the weight of けんせいちゃん was reduced by half?
開発中のヒューマノイドの仕様に合わせた結果です。なお、Kozoh4というヒューマノイドもこれとほぼ同じ仕様となっています。
>11. p.217 Figure 9.5 I think “S hat 5” and “S hat 6” should be reversed.
>Also, “S hat 4” should points in the same direction as “S hat 6”.
いいえ。S3hat, S4hat, S5hatはピッチ軸で同じ方向を向いており、S2hatとS6hatはロール軸となっています。このとり方は、運動学、逆運動学の計算を簡単にするためです。
>12. p.221 Please double check Equation 9.18
φ= atan2(P5x, sqrt((P5z)^2 + (P5y)^2))) に変更お願いします。
でむらさん、
ODE本に関して誤りであるように思える箇所があったので報告いたします.
1. p.167 line 8 from the bottom “リンク0、リンク1、リンク2、リンク3、リンク4。。。”
There are four links but リンク4 does not exist because we started counting from zero.
2. p.178 line 8. Shouldn’t “式(6.48)…” be 式6.92?
3. p.182 line 8. “Pcontrol関数”だと思います。
4. p.185 line 3 from the bottom. dy/dth1 = l2C1S2 “PLUS” l3C1S23
なお、 dy/dth2 = l2S1C2 + …
5. p.186 Sec 7.4 the line below Eqn 7.7. Shouldn’t it be J(theta dot) = p dot ?
6. p.205. There is no need to worry about l0 because it is (0,0,0). Right?
7. p.208 Step 4 of the walking algorithm. Please explain why the COM needs
to move forward by 1/4 of the step length? Where did you get the 1/4?
8. p.209 End of first paragraph. Shouldn’t it be z0 – z1?
9. p.209 2nd paragraph. According to Fig 8.5 on p.203, positive y points to
the left of the robot. Shouldn’t it be “上体を右へ -y1 だけ。”? Similar problem
with Table 8.6
10. p.216 Why the weight of けんせいちゃん was reduced by half?
11. p.217 Figure 9.5 I think “S hat 5” and “S hat 6” should be reversed.
Also, “S hat 4” should points in the same direction as “S hat 6”.
12. p.221 Please double check Equation 9.18
ひびきのさん
もしかして,むさしさんですか?
さて,これには全く気づいていませんでした.
ご指摘ありがとうございます.
p.61の一番上「ERP」が「EPR」になってますよ。
ねぶらさん,
出張中でODE本を持っていかなかったので返事が遅くなりました.
ご指摘のとおりです.お詫びして訂正致します.
どうもありがとうござました.
また,気がついた点があればご指摘ください.
ODE本に関して誤りであるように思える箇所があったので報告いたします.
P. 130: ページ下方のホロノミックとノンホロノミックの説明が逆だと思います.
P. 227: プログラム 9.1,31行目
endP[2] = k1 * (fz[i] + pos[2]);
は,
endP[2] = k1 * fz[i] + pos[2];
とすべきだと思います.また,これは web で配布しているコードについても同様です.
ご確認をお願いいたします.