Step 1: ODEåˆä½“験

ODE本 Step1 扉図ã®ã‚«ãƒ©ãƒ¼ç”»åƒ
今年度ã‹ã‚‰è¬›ç¾©ã§æœ¬æ ¼çš„ã«ODE本を使ã„ã€ç¾åœ¨é€²è¡Œå½¢ã§ã™ã€‚プãƒã‚°ãƒ©ãƒŸãƒ³ã‚°åˆå¿ƒè€…ã®å¦ç”ŸãŒã‚ã‹ã‚Šã¥ã‚‰ã„箇所を補足ã—ã¦è¡Œã予定ã§ã™ã€‚
2008-3-14: プãƒã‚°ãƒ©ãƒ 1.1用ã®VC++2008EE用ã®ãƒ—ãƒã‚¸ã‚§ã‚¯ãƒˆãƒ•ァイルを追åŠ
2008-2-7:EX1.11ã®è£œè¶³ã‚’追åŠ
2008-2-1:EX1.8ã®è£œè¶³ã‚’追åŠ
ODE本「簡å˜!実践!ãƒãƒœãƒƒãƒˆã‚·ãƒŸãƒ¥ãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ – Open Dynamics Engineã«ã‚ˆã‚‹ãƒãƒœãƒƒãƒˆãƒ—ãƒã‚°ãƒ©ãƒŸãƒ³ã‚°ã€ã®Step1ã§ã¯ï¼ŒODEåˆä½“験ã¨ã„ã†ã“ã¨ã§ï¼Œãƒªãƒ³ã‚´ã®è½ä¸‹ï¼Œãƒœãƒ¼ãƒ«ã®è·³ã返り,1本脚ãƒãƒœãƒƒãƒˆã®ã‚·ãƒŸãƒ¥ãƒ¬ãƒ¼ã‚¿ã‚’作りãªãŒã‚‰ODEã®ä½¿ã„方をマスターã—ã¾ã™ï¼Ž
以下ã«Step1ã®å…¨ã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰ã¨ã‚·ãƒŸãƒ¥ãƒ¬ãƒ¼ã‚¿ã®å‹•画を掲載ã—ã¾ã™ï¼Žzipã§åœ§ç¸®ã•れã¦ã„るソースコードã¯ã“ã“ã‚’å‚考ã«ã—ã¦è§£å‡ãƒ»ã‚³ãƒ³ãƒ‘イル・実行ã—ã¦ãã ã•ã„.ãれ以外ã®ã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰ã¯ãƒ—ãƒã‚°ãƒ©ãƒ ã®ä¸€éƒ¨ãªã®ã§ï¼Œãã®ã¾ã¾ã§ã¯ã‚³ãƒ³ãƒ‘イルã§ãã¾ã›ã‚“.ãªãŠï¼Œæœ¬ã‚µãƒ³ãƒ—ルプãƒã‚°ãƒ©ãƒ ã®ã‚³ãƒ³ãƒ‘イル・実行ã¯è‡ªå·±è²¬ä»»ã§è¡Œã£ã¦ãã ã•ã„.特ã«ï¼Œæœ¬ç‰©ã®ãƒãƒœãƒƒãƒˆã«é©ç”¨ã™ã‚‹ãŸã‚ã®å®‰å…¨æ€§ãªã©ã‚’å…¨ã考慮ã—ã¦ã„ã¾ã›ã‚“ã®ã§ï¼Œãã®ã‚ˆã†ãªç”¨é€”ã«ã¯å‘ãã¾ã›ã‚“.著者åŠã³æ£®åŒ—å‡ºç‰ˆã¯æœ¬ãƒ—ãƒã‚°ãƒ©ãƒ ã«ã‚ˆã£ã¦ç”Ÿã˜ãŸã‚ã‚‰ã‚†ã‚‹çµæžœã«ã¤ã„ã¦ã®è²¬ä»»ã‚’è² ã„ã‹ãã¾ã™ï¼Žã”了承ã—ãŸæ–¹ã ã‘ダウンãƒãƒ¼ãƒ‰ã—ã¦ãã ã•ã„.ã¾ãŸï¼Œå†é…布ã¯ãŠæ¢ã‚ãã ã•ã„.
- プãƒã‚°ãƒ©ãƒ 1.1: りんã”ã®è½ä¸‹ã€€(P7)
- 説明:ニュートンã•ã‚“ã®é€¸è©±ã§ãŠãªã˜ã¿ã®ãƒªãƒ³ã‚´ã®è½ä¸‹ã§ã™ï¼Žã§ã‚‚,è¡çªæ¤œå‡ºãŒçµ„ã¿è¾¼ã¾ã‚Œã¦ã„ãªã„ã®ã§….以下ã®ã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰ã‚’見れã°ã‚ã‹ã‚Šã¾ã™ãŒï¼Œã“ã®ã‚ˆã†ãªãƒ—ãƒã‚°ãƒ©ãƒ ãªã‚‰ãŸã£ãŸï¼•ï¼è¡Œã§ã™ï¼Žä¸Šã®å‹•ç”»ã¯è§£åƒåº¦ã‚’è½ã¨ã—ã¦ã„ã‚‹ã®ã§ç¾Žã—ãã‚りã¾ã›ã‚“ãŒï¼Œå®Ÿéš›ã¯ãŸãªã³ã雲ãŒç¾Žã—ã„ã§ã™ã‚ˆï¼Ž
- ソースコード:pro1-1-070602.zip (2007-6-2)
- pro1-1.vcproj (Visual C++ 2008 Express Edition用ã®ãƒ—ãƒã‚¸ã‚§ã‚¯ãƒˆãƒ•ァイル, 2008-3-14)
- プãƒã‚°ãƒ©ãƒ 1.2: ボールã®è·³ã返り (P15)
- 説明:è¡çªæ¤œå‡ºã‚’組ã¿è¾¼ã¿åœ°é¢ã‚’çªã抜ã‘ãªããªã‚Šã¾ã—ãŸãŒï¼Œè·³ã返るã“ã¨ã¯ã§ãã¾ã›ã‚“.å発係数をè¨å®šã—ã¦è·³ã返るよã†ã«ã—ã¾ã—ょã†ï¼Ž
- ソースコード:pro1-2-070602.zip (2007-6-2)
- プãƒã‚°ãƒ©ãƒ 1.3: 1本脚ãƒãƒœãƒƒãƒˆ (P24)
- 説明:çƒã¨å††æŸ±ã‚’関節ã§çµåˆã—,1本脚ãƒãƒœãƒƒãƒˆã‚’作りã¾ã™ï¼ŽStep1ã‚’å¦ã¶ã“ã¨ã§é–¢ç¯€ã®ã‚ã‚‹ãƒãƒœãƒƒãƒˆã‚’作るã“ã¨ãŒã§ãã¾ã™ï¼ŽStep2ã§ã¯é–¢ç¯€ã®å‹•ã‹ã—方をå¦ã³ã¾ã™ï¼Ž
- ソースコード:pro1-3-070602.zip (2007-6-2)
エクササイズã®è£œè¶³èª¬æ˜Ž
- EX1.2 (P12)
- 上ã®ã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰ã‚’c:\msys\1.0\home\ユーザå\src\ode-0.9\myprogã®ä¸ã«ãƒ€ã‚¦ãƒ³ãƒãƒ¼ãƒ‰ã™ã‚‹ã€‚myprogフォルダー(ディレクトリ)ãŒãªã„å ´åˆã¯ä½œæˆã™ã‚‹ã€‚
- Windowsã®è§£å‡ã‚½ãƒ•トを使ã£ã¦pro1-1-070602.zipをダウンãƒãƒ¼ãƒ‰ã—ãŸå ´æ‰€ã«è§£å‡ã™ã‚‹ã€‚è§£å‡ã™ã‚‹å ´æ‰€ãŒé•ã†ã¨å®Ÿè¡Œã§ããªã„。解å‡ã«æˆåŠŸã™ã‚‹ã¨ä»¥ä¸‹ã®ãƒ•ォルダãŒã§ãã€pro1-1ã®ä¸ã«hello.cppã€makefileãªã©ãŒã‚る。解å‡ã‚½ãƒ•トã«ã‚ˆã£ã¦ã¯ä½™åˆ†ãªãƒ•ォルダを作りã€ãã®ä¸ã«pro1-1フォルダーãŒã§ãã‚‹å ´åˆãŒã‚る。ãã®ã¨ãã¯ã€pro1-1ã‚’myprogã®ä¸‹ã«ç§»å‹•ã™ã‚‹ã€‚
c:\msys\1.0\home\ユーザå\src\ode-0.9\myprog\pro1-1 - デスクトップã®MSYSアイコンをダブルクリックã—ã¦ã‚¦ã‚¤ãƒ³ãƒ‰ã‚¦ã‚’é–‹ã,以下ã®ã‚³ãƒžãƒ³ãƒ‰ã§ç§»å‹•ã™ã‚‹ã€‚
cd src/ode-0.9/myprog/pro1-1 - 以下ã®ã‚³ãƒžãƒ³ãƒ‰ã§ã‚³ãƒ³ãƒ‘イルã™ã‚‹
make - 実行形å¼ã®ãƒ•ァイルãŒã§ãã¦ã„ã‚‹ã®ã§ï¼Œãã®ãƒ•ァイルåを入力ã™ã‚‹ã¨å®Ÿè¡Œã•れる。ã“ã®ä¾‹ã§ã¯helloã¨ãªã‚‹ã€‚
hello - ãªãŠï¼Œmakeã—ãŸã¨ãã«dsDrawSphereDã«é–¢é€£ã™ã‚‹ã‚¨ãƒ©ãƒ¼ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ãŒå‡ºã‚‹å ´åˆã¯ï¼ŒODEã‚’å˜ç²¾åº¦ã§ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã—ã¦ã„ã¾ã™ã€‚ã“ã®æ•™ç§‘書ã§ã¯ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¥ã‚‰ã„å€ç²¾åº¦ã‚’基本ã¨ã—ã¦ã„ã¾ã™ã®ã§ï¼Œãã®å ´åˆã¯ã“ã®ãƒšãƒ¼ã‚¸ã®ODE B.インストール 4.ã‚³ãƒ³ãƒ‘ã‚¤ãƒ«ã®æº–å‚™ã‹ã‚‰å®Ÿè¡Œã—ã¦ãã ã•ã„。
- EX1.8 (P21)
- 直方体を作るãŸã‚ã«ã¯ã€ãã®å„辺ã®é•·ã•ã‚’æ ¼ç´ã™ã‚‹è¦ç´ 数3個ã®é…列を準備ã™ã‚‹ã¨ä¾¿åˆ©ã§ã™ã€‚P15ã®12行目ã¨13行目ã®é–“ã«ä»¥ä¸‹ã‚’挿入ã—ã¾ã—ょã†ã€‚
static dReal side[3] = {0.2, 0.2, 0.2};
ãªãŠã€dsDrawBox()ã«å¼•æ•°ã¨ã—ã¦é…列を渡ã™ã‚ã‘ã§ã™ãŒã€ï¼£è¨€èªžã§ã¯é…列ãã®ã‚‚ã®ã‚’渡ã™ã“ã¨ãŒã§ããªã„ã®ã§ã€ãã®ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’渡ã—ã¾ã™ã€‚é…列å(ã“ã®ä¾‹ã§ã¯side)ã¯é…åˆ—ãŒæ ¼ç´ã•れã¦ã„ã‚‹å…ˆé ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ã§ã—ãŸã。 - 後ã¯ã€P94ã®ãƒ—ãƒã‚°ãƒ©ãƒ 3.5ã«ç›´æ–¹ä½“を使ã£ãŸä¾‹ãŒã‚ã‚‹ã®ã§ã€å‚考ã«ã™ã‚‹ã¨å‡ºæ¥ã‚‹ã§ã—ょã†ã€‚
- 直方体を作るãŸã‚ã«ã¯ã€ãã®å„辺ã®é•·ã•ã‚’æ ¼ç´ã™ã‚‹è¦ç´ 数3個ã®é…列を準備ã™ã‚‹ã¨ä¾¿åˆ©ã§ã™ã€‚P15ã®12行目ã¨13行目ã®é–“ã«ä»¥ä¸‹ã‚’挿入ã—ã¾ã—ょã†ã€‚
- EX1.11 (P27)
- å¯å‹•域を変更ã—ã¦ã€ãã®ã¾ã¾å®Ÿè¡Œã—ã¦ã‚‚変化を確ã‹ã‚ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“。
é‡é‡åŠ é€Ÿåº¦ã‚’æ¬¡ã®ã‚ˆã†ã«å¤‰ãˆã¦ãã ã•ã„。
dWorldSetGravity(world, 0.0, 0.2, -9.8);
- å¯å‹•域を変更ã—ã¦ã€ãã®ã¾ã¾å®Ÿè¡Œã—ã¦ã‚‚変化を確ã‹ã‚ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“。
(最終更新日 2008-2-8)
匿åã•ã‚“ã€
ã™ã¿ã¾ã›ã‚“。ã“ã®è¨˜äº‹ã¯å¤ã„ã§ã™ã€‚
最新記事ã¯ä»¥ä¸‹ã¨ãªã£ã¦ã„ã¾ã™ã€‚
http://demura.net/robotsimu/step1
ã¾ãŸã€ã‚µãƒ³ãƒ—ルプãƒã‚°ãƒ©ãƒ ã¯ä»¥ä¸‹ã‹ã‚‰ãƒ€ã‚¦ãƒ³ãƒãƒ¼ãƒ‰ã—ã¦ãã ã•ã„。
http://demura.net/dl
ã§ã‚€
ã‘ã‚“ã„ã¡ã•ã‚“ã€
ã”質å•ã‚りãŒã¨ã†ã”ã–ã„ã¾ã™ã€‚
ステップサイズã¯ã‚·ãƒŸãƒ¥ãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ã®æ›´æ–°é–“éš”ã§ã™ã€‚ã“ã®é–“ã«ã€è¡çªæ¤œå‡ºè¨ˆç®—ã¨æ•°å€¤ç©åˆ†ã‚’実行ã—ã¾ã™ã€‚ODE本ã®ã‚³ãƒ©ãƒ ã§ç°¡å˜ã«èª¬æ˜Žã—ã¦ã„ã¾ã™ã€‚数値ç©åˆ†ã«é–¢ã—ã¦ã¯ã€ã“ã®ã‚¹ãƒ†ãƒƒãƒ—サイズをå°ã•ãã™ã‚Œã°ç²¾åº¦ãŒé«˜ããªã‚Šã¾ã™ãŒã€è¨ˆç®—速度ã¯é…ããªã‚Šã¾ã™ã€‚å対ã«ã‚¹ãƒ†ãƒƒãƒ—サイズを大ããã™ã‚Œã°ç²¾åº¦ã¯ä½Žããªã‚Šã¾ã™ãŒã€è¨ˆç®—速度ãŒé€Ÿããªã‚Šã¾ã™ã€‚è¡çªæ¤œå‡ºè¨ˆç®—ã«é–¢ã—ã¦ã¯ã€ã‚¹ãƒ†ãƒƒãƒ—サイズを大ããã™ã‚‹ã¨ã€å‰›ä½“ãŒç›¸äº’ã«ä¾µå…¥ã™ã‚‹ç‰©ç†çš„ã«ã‚りãˆãªã„ç¾è±¡ãŒç”Ÿã˜ã¾ã™ã€‚
ODEã¯è¨ˆç®—精度ãŒé«˜ããªã„ã®ã§ã€é«˜ã„精度ãŒå¿…è¦ãªã‚·ãƒŸãƒ¥ãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ã«ã¯å‘ãã¾ã›ã‚“。ã§ã™ã‹ã‚‰ã‚¹ãƒ†ãƒƒãƒ—サイズを極端ã«å°ã•ãã™ã‚‹å¿…è¦ã¯ã‚りã¾ã›ã‚“。用途ã«ã‚ˆã‚‹ã®ã§ä¸€æ¦‚ã«ã„ãˆã¾ã›ã‚“ãŒã€ODE本ã§ã¯0.01[s]]ã«ã—ã¦ã„ã¾ã™ã€‚
simLoop関数ã§dWorldStep(world, x)ã¯worldã®å‹•力å¦è¨ˆç®—をx秒進ã‚ã‚‹APIã¨ã‚ã£ãŸã®ã§ã™ãŒã€å‹‰å¼·ä¸è¶³ãªã‚‚ã®ã§ã“ã®ã‚¹ãƒ†ãƒƒãƒ—サイズã¨ã„ã†ã‚‚ã®ã®æ¦‚念ãŒã¾ã よãç†è§£ã§ãã¾ã›ã‚“。
é‡åŠ›ã®è¨å®šã‚’ー9.81(地çƒä¸Šã®é‡åŠ›åŠ é€Ÿåº¦ï¼‰ã¨ã—ãŸå ´åˆã€åœ°çƒä¸Šã§å‹•ã物体ã¨åŒã˜ã‚¹ãƒ”ードã§ã‚·ãƒŸãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ã‚’å‹•ã‹ã—ãŸã„å ´åˆã§ã¯ã€ã‚¹ãƒ†ãƒƒãƒ—サイズã¯ã„ãã¤ã«ã™ã‚Œã°ã‚ˆã„ã®ã§ã—ょã†ã‹ï¼Ÿ