ODE質åã»èŠæåé7!
ãŸãïŒããã«ããODEã®FAQãèªãã§ããã³ã¡ã³ããé¡ãããŸãïŒ
ODE質åã»èŠæ6ïŒã®ã³ã¡ã³ããã¡ãããšïŒïŒïŒä»¶ã«ãªããŸããã®ã§ïŒæ°ãã質åãèŠæã¯ãã¡ãã«ãé¡ãããŸãïŒãã質åã®å 容ã詳ãã説æããŠé ãããšç確ã«åçã§ããŸãã®ã§ïŒæéãç¯çŽã§ãããšæããŸãïŒ
ãŸããç§ã®ã³ã¡ã³ãããèªåã®åªåã«ããåé¡ã解決ãããå Žåã«ãåé¡ã®åå ããããã°æçš¿ããŠé ããšå€§å€å©ãããŸãããã®æ å ±ã¯ODEã®åå¿è ã«ãšã£ãŠéèŠãªãã®ã§ããããçšåºŠããŸããŸãããFAQã«æ² èŒããããšæããŸãã®ã§ãååã®ã»ã©ãããããé¡ãããŸãã
ã§ã
ã¯ã€ããïŒ
dMassSetCapsule()ã¯åæ±ã®æ £æ§ãã³ãœã«ãªã©ãèšç®ããŸãïŒé·è»žãïœè»žæ¹åã®æ £æ§ãã³ãœã«ãèšç®ããå Žåã¯ïŒå§¿å¢ãé·è»žãïœè»žæ¹åã«ãªãããã«å転è¡åãŸãã¯ã¯ãªãŒã¿ããªã³ãèšå®ããå¿ èŠããããŸãïŒ
ã§ã
è¶³ã®éšåã«ã«ãã»ã«ã䜿ãããåããç¶æ ã«ãããã®ã§ãããã«ãã»ã«ã®é·è»žæ¹åãZ軞ã«ãªã£ãŠããŸããŸãã
dMassSetCapsule(&m,1,1,F_Rad,F_L);
ãšãããµãã«ãïŒçªç®ã®åŒæ°ã§X軞ãæå®ããã ãã§ã¯ãã¡ãªã®ã§ããããïŒ
kokoããïŒ
ãããŸããŠããã§ãšãããããŸãïŒä»å¹Žããããããé¡ãããŸãïŒ
ããŠïŒæ¥è§Šç¹æ°ã ãã§ã¯ãªãïŒãã®äœçœ®ã確èªããŠãã ããïŒæ¥è§Šç¹ã®ïŒç¹ãåžžã«åããïŒãããšãæéã«ããå€ãããã©ããã§ãïŒïŒã€ã®åäœãè¡çªãç¹°ãè¿ã现ããæ¯åããå ŽåããããŸãïŒ
ãŸãïŒã·ãã¥ã¬ãŒã·ã§ã³ã®é床ãäžãããšã¯ã©ã®ããã¯æå³ã§ããããïŒstepsizeãã©ã®çšåºŠå€§ããããã®ã§ããïŒ
ã§ã
demuããããããŸããŠããã§ãšãããããŸãã
ãŸãè¡çªç¹æ°ã®ããšã§ããããããããé¡ãããŸãã
å°ããç«æ¹äœãšå€§ããç«æ¹äœãæ¥è§Šããããšãé¢ã«å¯ŸããŠåçŽã«æ¥è§ŠãããŠããã¯ããªã®ã«ãå°ããç«æ¹äœã®æ¥è§Šç¹æ°ã3ã«ãªããšãããããŸãã
倧ããç«æ¹äœã®é¢ããã¯ã¿åºãŠãããšããããšã¯ãããŸããã
ç«æ¹äœã®é¢ãããã以å€ã«3ã¯èããããªãã®ã§ããæãåœããç¹ãããã°æããŠãã ããã
ãŸããPCã®ã¹ããã¯ã«å¯ŸããŠã·ãã¥ã¬ãŒã·ã§ã³é床ãäžãããããšç©äœãåæã«ãµã£é£ãã§ããŸãããšã¯ããããŸããïŒ
ããããšãããããŸãã
CADã䜿ã£ãæ¹æ³ã«ææŠããŠã¿ãããšæããŸãã
ããã»ãŒããïŒ
ã¿ã€ã€ã®å®ç©ããããªãïŒïŒ€ã¹ãã£ãã§ïŒæ¬¡å ããŒã¿ãåãïŒAutoCADãªã©ã®ãã¡ã€ã«ãããã°ããããã¡ã€ã«ãã©ãŒããã倿ããŠ3dsãxãã¡ã€ã«ã«ããŠèªã¿èŸŒãæ¹æ³ãèããããŸãïŒ
以äžã®èšäºãåèã«ãªããšæããŸãïŒ
http://demura.net/misc/462.html
http://demura.net/9ode/460.html
http://hwm7.gyao.ne.jp/shinpuku/column05.html
ã§ã
ã¢ããã€ã¹ããããšãããããŸãã
ãªãã»ã©äžè§ã¡ãã·ã¥ã§ããã
ã©ããã£ãŠäžè§ã¡ãã·ã¥ã®åº§æšããŒã¿ãäœãããèããŠããŸããããããªããªãæåŒ·ããã§ããã
ããã»ãŒããã
ãããŸããŠããã§ãšãããããŸããããã»ãŒãããïŒïŒïŒïŒå¹ŽåããŠã®ã³ã¡ã³ãã§ãã
ããŠãã®è¡çªããªããã£ãã«æ¥åã¯ãããŸãããè¡çªããªããã£ããèªåã§äœæããããšã¯ãšãŠã倧å€ãªã®ã§äžè§ã¡ãã·ã¥ã§ã¿ã€ã€ã®åœ¢ç¶ãäœãæ¹æ³ãæ¯èŒãããšç°¡åã ãšæããŸãã
ã§ã
ãããŸããŠããã§ãšãããããŸãã
æ£æäŒã¿ã«ODEã§éãã§ããã®ã§ããçåãäžã€æ²žããã®ã§è³ªåãããŠãã ããã
ODEã§æ¥åäœãäœãæ¹æ³ã¯äœããªãã§ããããã
ãšããã®ã¯ãäžèŒªè»ãäºèŒªè»ãšãã£ããã³ã¯è§ãä»ããŠèµ°è¡ããè»äž¡ã®ã·ãã¥ã¬ãŒã·ã§ã³ããã£ãŠããã®ã§ãããè»èŒªãåæ±ã§äœããšãã³ã¯è§ãä»ãããšãã®æåããããããªãã®ã§å¥ã®åœ¢ç¶ã«çœ®ãæãããã®ã§ãã
ãšããããçã§ä»£çšããŠããŸããã£ãŠããã®ã§ããã宿©ã«è¿ã¥ãããã®ã§çãæŒãã€ã¶ãããããªæ¥åäœã«ãããã®ã§ãã
äœãè¯ãæ¹æ³ã¯ãªãã§ããããã
ã§ããããåçããããšãããããŸãã
æ°ããããæ¹ãæ¥œãã¿ã«ãåŸ ã¡ããŠãããŸãã
ããã«ã¡ã¯ããããã§ãã
ãODEè¬åº§22ïŒODEã§ããªãŽã³ãç°¡åã«è¡šç€ºããæ¹æ³ã
ãåèã«ããŠãèªåã§äœã£ãããŒã¿ãæž¡ããããšæãã
Google SkechUp ãšãããœããã䜿ã£ãŠ3dsãã¡ã€ã«ãäœæããã®ã§ããã
å¿ ãã¢ããŒãããŠããŸããŸãã
åã3dsãã¡ã€ã«ã§ãèªã¿åãããšã¯ã¹ããŒãããããœãããšã
èªã¿åããªããšã¯ã¹ããŒãããããœãããããã®ã§ããããã
ç°å¢ã¯Linuxã§ãã£ãŠããŸãã
解決çãããã°ãããããé¡ãããŸãã
ããããšãããããŸãã
ãªãã»ã©ãããããŒãžã§ã³ã«ãããã®ãããããªãã§ããã
è¡çªæ€åºãæ¹åãããŠããã®ã¯ããšãŠãå¿åŒ·ãã§ãã
ããŒãžã§ã³ãæ°ããããŠããŸãæ€èšããŠã¿ãããšæããŸãã
ãããããšã¢ããã€ã¹ããããšãããããŸããm(__)m
å©ãããŸããïŒïŒ
masaããïŒ
å¹Žã®æ®ããŸã§ç ç©¶ããããããŸã§ãïŒ
ããŠïŒãã©ã¡ãŒã¿ã¯ç¹ã«ããããªå€ã§ã¯ãããŸãããïŒ
ODE0.10.1ã§ãªãã·ã§ã³ã§èšå®ããOPCODEã®æ°ãããã®ã¯ïŒè¡çªæ€åºãæ¹åãããŠããŸãïŒèšæ¶ãå®ãã§ã¯ãããŸãããïŒODEã®å€ãããŒãžã§ã³ã¯åæ±ã®å®è£ ãæªãã®ã§åé¡ããªããã°ïŒè»èŒªãåæ±ã§ã¯ãªãã«ãã»ã«ã«å€æŽããŠè©ŠããŠã¿ãŠã¯ãããã§ããããïŒ
ãŸãã¯ïŒãèªåã®ããŒãããœã³ã³ã«ODE0.10.1ãã€ã³ã¹ããŒã«ããŠïŒããã°ã©ã ã詊ãããŠã¯ãããã§ããããïŒ
ã§ã
埡è¿äºããããšãããããŸãã
以äžã詳现ã§ãã
ïŒ.åæ±ã®é«ãã¯0.05[m]ã«èšå®ããŠããŸããã¡ããã©è»èŒªã®å¹ ã«ãããéšåã§
ãã
ïŒ.nearCallback颿°å ã§ã¯ãsoft_erpã¯0.8ãsoft_cfmã¯1e-5ã«ãããããèšå®ãã ãŠããŸãã
ãŸãããããšã¯å¥ã«main颿°å ã§ã
ã dWorldSetERP(world, 0.8);
dWorldSetCFM(world, 0.02);
ãçµã¿èŸŒãã§ããŸãã
ïŒ.ODEã®ããŒãžã§ã³ã¯0.9ã§ãããã«ãCã®äœæ¥ã¯è¡ã£ãŠãããŸããã
ã ç 究宀ã®ããœã³ã³ã§ã·ãã¥ã¬ãŒã·ã§ã³çãã¹ãŠè¡ã£ãŠããã®ã§ãããåãã®ã ææã«ã€ã³ã¹ããŒã«ãè¡ã£ãã®ã¿ã ãšæããŸãã
ã
ïŒ.åååŠèšç®ã¯dWorldStepã§è¡ã£ãŠããŸããstepsizeã¯0.002[s]ã§ãã
以äžã§ãããããããé¡ãããŸãm(__)m
åããŸããŠãmasaãšç³ããŸãã
çŸåšODEãçšããŠãäºè¶³æ©è¡ã®ã·ãã¥ã¬ãŒã·ã§ã³ãäœæããŠããŸãã
å ·äœçã«ã¯ããŸãïŒæ¬ã®èãšïŒã€ã®è»èŒªãäœæããŸãã
èã©ãããè»èŒªã©ããã¯ããããæ£ã§é£çµãããŠãããããã«ããã®æ£ã©ãããå¥ã®çްé·ãæ£ã§é£çµããŸãã
ãããŠèãæ©ããšãé£çµãããè»èŒªãäžç·ã«è»¢ãã£ãŠåã«é²ããããªç¶æ ã§ãã
ïŒã¡ããã©äººéãä¹³æ¯è»ãæŒããŠããç¶æ ã«è¿ãã§ãïŒ
ããã§æ¬é¡ãªã®ã§ãããåã«é²ã¿å§ããŠãã°ãããããšãè»èŒªã®ã¿ãå°é¢ã®äžã«ãã蟌ããšããç¶æ ãçºçããŠããŸããŸãã
èãé£çµã«äœ¿ã£ãŠããæ£ã¯ãã蟌ã¿ãŸããã
ã¡ãªã¿ã«è»èŒªã¯ãåæ±ãçšããŠäœã£ãŠããŸãã
ïŒéåžžãåæ±ããŸã£ããç«ã£ãŠããç¶æ ãããåæ±ã®é«ãããšãŠãå°ããããŠã
ïŒïŒåºŠã ãå転ãããæãã§ãïŒ
è¡çªæ€åºããããªãnearCallback颿°ãªã©ããODEæ¬ãªã©ãåèã«ããªãããã§ãã¯ããã®ã§ãããç¹ã«åé¡ãªããããªæãã§ãã
ãããšãå¥ã®å Žæã«åé¡ãããã®ã§ããããã
äœãã¢ããã€ã¹çããããŸãããããããããé¡ãããŸãã
ã§ã¯ã倱瀌ããŸãã
hiroããïŒ
dJointSetHingeParam(joint, dParamLoStop, theta1); // æå°å¯ååã®èšå®
dJointSetHingeParam(joint, dParamHiStop, theta2); // æå€§å¯ååã®èšå®
theta1ã-dInifinity, theta2ãdInfinityã«èšå®ãçŽãã°å€æŽã§ããŸãïŒ
ODEè¬åº§29 ãµã³ãã«ããã°ã©ã ã®stepper.cppãåèã«ãªãã§ãããïŒ
ãŸãïŒ+180, -180ã®åãæ¿ãã«ã€ããŠã¯ïŒïŒ¯ïŒ€ïŒ¥æ¬ïŒ°ïŒïŒïŒããããïŒïŒïŒã®åé¡ã«ãªã£ãŠããŸãã®ã§çŽæ¥ã¯åçããªãæ¹éã§ãïŒãã ïŒãã®åé¡ä»¥éã®ïŒ¯ïŒ€ïŒ¥æ¬ãµã³ãã«ããã°ã©ã ã«çãã¯èŒã£ãŠããŸãïŒ
ã§ã
ãã³ãžãžã§ã€ã³ãã®ãã©ã¡ãŒã¿ã«ã
è§åºŠã®äžäžéãå¶éãããã©ã¡ãŒã¿ããããŸããã
ãâ»dParamLoStop,dParamHiStop
äžåºŠããã®ãã©ã¡ãŒã¿ãèšå®ããåŸã«ãç¡å¹ã«ããæ¹æ³ã¯ããã§ããããïŒ
åãäœçœ®å¶åŸ¡ã§é¢ç¯ãç¡éå転ããïŸïŸïŸïœžïŸïŸïŸãäœã£ãŠããŸãããã©ãããŠã
ãïŒïŒïŒïŒÂ°âïŒïŒïŒïŒÂ°ã®åæ¿ãããŸããããŸãããåèã«ãªãããã°ã©ã ã¯
ããã§ããããïŒãææé¡ããŸãã
demuããããããšãããããŸããm(_ _)m
æ¥è§Šç¹ã¯è§ŠããŠããé¢ã®é ç¹æ°ã§ããïŒç«æ¹äœã«ãããŠæ¥è§Šç¹ïŒãšã¯æãã«æ¥è§Šãããšããããšã§ãããã
解決ã§ããŸãããããããšãããããŸãïŒãŸãäœããã£ãã質åãããŠããã ããŸãã
P.S.
ODEæ¬éå®ããŠãŸãã
ã°ãããïŒ
æ©è¡ãããããããããã¢ãŒã ãæé¡ãã¯ãã«ãèšç®ããåŒïŒ6.21,6.22, P155)ã¯åãã§ãïŒïŒ¯ïŒ€ïŒ¥æ¬ã§ã¯ïŒïŒïŒããŒãžãšïŒïŒïŒããŒãžã«å ·äœçãªãœãŒã¹ã³ãŒããæ²èŒããŠããŸãïŒãŸãïŒã¹ãããïŒã®ïŒèããããã®èª¬æãåèã«ãªããšæããŸããïŒ
ããå°ãå ·äœçã«è³ªåããŠé ãããšïŒãã詳ããåçãã§ãããããããŸããïŒ
ã§ã
kokoããïŒ
åããŸããŠïŒ
ã¯åäœã®åååŠèšç®ãšã³ãžã³ã§ãããïŒåäœå士ã®è²«éã¯èããŸããïŒçãšå¹³é¢ã®æ¥è§Šç¹æ°ã¯ïŒãïŒã§ãïŒçŽæ¹äœã®æ¥è§Šç¹æ°ã¯ïŒïŒïŒïŒïŒïŒïŒïŒïŒã®ã©ããã§ãïŒ
dCollide()ã®æ»ãå€ãæ¥è§Šç¹æ°ãªã®ã§ïŒãžãªã¡ããªã®çš®é¡ã§å ŽååãããŠèª¿ã¹ãŠèŠããšé¢çœãã§ãïŒå ·äœçãªæ¹æ³ãããããªããã°ã³ã¡ã³ããã ããïŒãµã³ãã«ããã°ã©ã ãäœã£ãŠããã®ã§å ¬éããŸãïŒ
ã§ã
å ã»ã©ã®ã³ã¡ã³ããéäžã«ãªã£ãŠããŸã£ãŠãã¿ãŸããã
ãŸãïŒè¶³æ©è¡ã®ééååŠã®è¶³å å 端äœçœ®ã®å§¿å¢ã®æé¡ãã¯ãã«a,bã¯dBodyGetRotation()ãšdMultiply0ã䜿ã£ãŠæœåºããã°ããã®ã§ããïŒïŒ
ããŸodeã§äºè¶³æ©è¡ãè¡ã£ãŠããã®ã§ããã©ãããŠãééååŠãå ¥ããåŸã®æ©è¡ãããŸããããŸãããæ©è¡ãè¡ã£ã
åºæãããã¯ãããŸããŠãkokoãšãããŸããåããŠè³ªåãããŠããã ããŸãã
ODEã®è¡çªç¹æ°ã«ã€ããŠã§ãã
è¡çªç¹æ°ã¯ãæ¥è§Šããç©äœåå£«ã®æ¥è§Šé¢ã®é ç¹æ°ãã ãšæã£ãŠããã®ã§ãããæ£ããã§ããããïŒ
äŸãã°æ¥è§Šç©äœãç«æ¹äœãªãæ¥è§Šé¢ã®åãå£ã¯ãç¹ãããç·ãããäžè§ãããåè§ãããããããªãã®ã§æå€§å€ãïŒã§ããŸããäŸãã°çäœã§ããã°æ¥è§Šé¢ã®åœ¢ã¯ãåãã«ãªãã®ã§æ¥è§Šç¹æ°ã¯å€ããªããšããããšã§ãã
morikawaããïŒ
ã®ããã¥ã¢ã«ã«ãå šãèšè¿°ããªãã®ã§ïŒãããã¥ãããšããã§ããïŒç§ã®ïŒ¯ïŒ€ïŒ¥æ¬ã®ãµã³ãã«ããã°ã©ã ãäœã£ããšãã«æ©ã¿ãŸããïŒïŒ¯ïŒ€ïŒ¥æ¬ã®å¢å·æããã®ããã°ã®èšäºã«ã远å ããŠãããŸãïŒ
çŽ æŽãããã質åããããšãããããŸããïŒãŸãïŒãé¡ãããŸãïŒ
ã§ã
ã§ããã
è¿ä¿¡é ããŠç³ãèš³ãããŸããããã³ãžãžã§ã€ã³ãã«ã€ããŠè³ªåããmorikawaã§ãã
ã§ãããã®ãææãªãã£ãŠãããbody1ãšbody2ã®é çªãåé¡ã§ãããbody1ãšbody2ã®é¢ä¿ãããããã£ãŠããŸããã§ãããèªåãªãã®è§£éãšããŠã¯ãdJointAttachã§ã¯body2ã«ã¢ãŒã¿ãåã蟌ãŸããŠããŠãå転軞ãbody1ã«åºå®ããããå転軞æ¹åã¯dJointSetHingeAxisã§èšå®ãããããšããæãã«ãªããŸããã
ç確ãªãææãã©ããããããšãããããŸããã
fumiããã
ãã®ãããªAPIã¯ãªãã®ã§äœããããããŸããã
ãã«ã¯ãäžå®æéåºãã ããªãdJointAddHingeTorque(dJointID joint, dReal torque)ã奜ããªæéïŒã«ãŒãåæ°x ã¿ã€ã ã¹ãããïŒã ãåŒã³åºãã°ãããšæããŸãã
ãŸããããå€ã®ãã«ã¯ãäžå®æéåºãç¶ããããã«ã¯dJointGetFeedback(dJointID joint)ã䜿ããã«ã¯ãäžå®ã«ä¿ã€ããã«ãã«ã¯å¶åŸ¡ããå¿ èŠããããšèããŸãã
ã§ã
ã§ã
説æäžè¶³ã§ãããŸãã
æ £æ§ããŒã¿ãŒã§ãã«ã¯ãäžå®æéåºåãšããã®ã¯
ãã«ã¯ã®å¶åŸ¡ã§äœç§ãã®éãã«ã¯ãåºåãç¶ãããšããããšã§ã
H8ãã€ã³ã³ã®waitã䜿ã£ãŠãã®åŠçäœç§ç¶ç¶ãšããšåãæãã§ã
morikawaããã
ïŒçªç®ã®ã±ãŒã¹ãšïŒçªç®ã®ã±ãŒã¹ã®ç©äœaããã³ãžãžã§ã€ã³ãaã¯åäžã®ãã®ã§ããïŒ
ãŸããdJointAttach(dJointID joint, dBodyID body1, dBodyID body2)ã®body1ãšbody2ã®é çªãéã«ãããšå転æ¹åãå察ã«ãªããŸãããæ³šæããŠãã ããã
ã§ã
fumiããïŒ
åç ããããã䜳å¢ã§ããã
ããŠãæ £æ§ããŒã¿ãŒã§ãã«ã¯ãäžå®æéåºåãšã¯ã©ãããæå³ã§ããããïŒ
ããå°ãå ·äœçã«æããŠé ããŸãããïŒ
ã§ã
質åä¿®æ£
morikawaã§ãïŒ
å ã®è³ªåã®2-3éšåã¯
ããžã§ã€ã³ãbã®è§åºŠã0ãã®ééãã§ãã.
ã³ããããŠééããŸãã.ãããŸããã§ãã.
ã¯ãããŸããŠïŒmorikawaãšç³ããŸã.ã€ãæè¿ïŒ¯ïŒ€ïŒ¥ãå§ããŸããïŒ
質åã¯ãã³ãžãžã§ã€ã³ãã®å転軞ã«é¢ããŠã§ã.
ç©äœaã®åæäœçœ®ïŒåæå§¿å¢ãš
ãã³ãžãžã§ã€ã³ãaã®ã¢ã³ã«ãŒãã€ã³ãã¯åºå®ãããŸãŸã§,
1-1ïŒãç©äœaãšéæ¢ç°å¢ããã³ãžãžã§ã€ã³ãaã§çµå
1-2ïŒããã³ãžãžã§ã€ã³ãaã®å転軞ã(-1,0,0)
1-3ïŒãODEè¬åº§29ã®æ¹æ³ã§ãžã§ã€ã³ãaã®è§åºŠãM_PI/2
ã«ããå Žåãš
2-1ïŒã鿢ç°å¢ãšç©äœïœããã³ãžãžã§ã€ã³ãïœã§çµå
2-2ïŒããã³ãžãžã§ã€ã³ãbã®å転軞ã(0,-1,0)
2-3ïŒãODEè¬åº§29ã®æ¹æ³ã§ãžã§ã€ã³ãaã®è§åºŠãM_PI/2
2-4ïŒãç©äœbãšç©äœaããã³ãžãžã§ã€ã³ãaã§çµå
2-5ïŒããã³ãžãžã§ã€ã³ãaã®å転軞ã(-1,0,0)
2-6ïŒãODEè¬åº§29ã®æ¹æ³ã§ãžã§ã€ã³ãaã®è§åºŠãM_PI/2
ãšããå Žåã§ã¯ç©äœaã®å転æ¹åãç°ãªããšããçŸè±¡ãçºçããŸãã.
1ã®å Žåã¯(-1,0,0)ãã¯ãã«ãé²è¡æ¹åãšããå³ããå転
2ã®å Žåã¯1ã®éå転.
絶察座æšã§åè»¢è»žãæ±ºå®ããããªãïŒåãå転ãªããšæãã®ã§ããïŒéãã®ã§ããããïŒ
以äžãããããé¡ãããŸã.
ã¯ãããŸããŠã忥ç ç©¶ã«äœ¿çšããŠããã®ã§ãã
è¡ãè©°ãŸã£ãŠããŸã£ãŠè³ªåãããŠããã ããŸã
æ £æ§ããŒã¿åŒã®åç«æ¯åãã·ãã¥ã¬ãŒãããŠããã®ã§ãã
ãã«ã¯ãäžå®æéåºåãšããããšãã§ããã«å°ã£ãŠããŸã
ãã«ã¯ã®åºåç§æ°ãæå®ã§ããæ¹æ³ãæããŠããããŸããã§ããããïŒ
ã°ãã£ããã
ãã®æ å ±ã ãã§åå ãæ¢ãããšã¯å³ããã§ããã
ããããã®ã¢ãã«ãæªãããšãèããããŸããé¢ç¯ãšããã£ã®äœçœ®é¢ä¿ãç©ççã«ããããªãå Žåã¯ããããããã©ãã©ã«ãªããå¹ã£é£ã³ãŸãããŸãã¯ãããããã®ãªã³ã¯å士ãå¹²æžããŠããå Žåãªã©ãèããããŸãã
ããããã®ã¢ãã«ãæ£ããå Žåã¯ãERPãCFMã®å€ã倿ŽããŠãã ãããã¿ã€ã ã¹ããããå°ããããããdWorldQuickStep()ãã䜿ãã®å Žåã¯ãå埩æ°ã倿ŽããããdWorldStep()ã«å€æŽãããšæ¹åãããããããŸããã
è¡çªæ€åºèšç®ãé¢ä¿ããŠããŸãã®ã§ãããã©ã«ãã§ã¯ãªãã«ãªã£ãŠããOPCODEã®æ°ããããŒãžã§ã³ã䜿ã£ãŠãã ããããŸããdWorldSetContactSurfaceLayer (dWorldID, dReal depth);ãèšå®ãããããŠãæå¹ãããããŸããã
æåŸã«ãäœçœ®å¶åŸ¡ã«ãã°ãæœãã§ããå¯èœæ§ããããŸãã
ã§ã
ãã²ããã¶ãã§ãã以å質åãããŠããã ããã°ãã£ã§ãïŒïŒŸïŒŸïŒ
ãŸãã²ãšã€ãèããããããšãããã®ã§ããã»ã»ã»
ç§ã¯åæ¥ç ç©¶ã§ç°¡åãªäºè¶³æ©è¡ãããããODEäžã§
äœæããŠããŸãã
倧äœã®åœ¢ãã§ããè§åºŠãå¶åŸ¡ããããšãã§ããããã«ãªã£ãã®ã§ããã
çªç¶ãããããå¹ã£é£ãã§ããŸããŸãã»ã»ã»
ã©ããããããã§ããããïŒ
éãªè³ªåã§ç³ãèš³ããããŸããïŒT~TïŒ
åããã
æç»ã¯èšç®çµæãå¯èŠåããŠããã ãã§ããdã§å§ãŸãAPIã¯åååŠçã®èšç®ãæ åœããODEã®ãã®ã§ãdsã§å§ãŸãAPIã¯æç»ãæ åœããdrawstuffã®ãã®ã§ããè§åºŠãäœçœ®ãååŸããAPIã¯ODEã®APIãªã®ã§æç»ãšã¯é¢ä¿ãããŸããã
äœãåé¡ã§ããããŸããïŒ
ã§ã
æç»ãããªããšè§åºŠãäœçœ®ã®ååŸã¯ã§ããªãã®ã§ããããïŒ
åããïŒ
ãã¿ãŸãããïŒãã®å°ãªãæ å ±ã ãã§ã¯åå ãæšå®ã§ããŸããïŒ
could not make OpenGL context currentã®ãšã©ãŒã¡ãã»ãŒãžã¯ïŒ/ode-0.10.1/drawstuff/src/windows.cppã®124ïŒ125è¡ç®ã§çºçããŠããŸãïŒ
2çªç®ã®ãšã©ãŒã¯drawstuff.cppã®175è¡ç®ã§çºçããŠããŸãïŒ
ãã®æ å ±ãé Œãã«ãããã°ãããŠã¯ãããã§ããããïŒ
ã§ã
æšæ¥ã¯ãåçããããšãããããŸããã
ãŸãããšã©ãŒã§è©°ãŸã£ãŠããŸããŸããã以äžã®ãããªãšã©ãŒãåºãŸãã
ïŒãšã©ãŒæïŒ
“could not make OpenGL context current”
ããã²ãšã€ããéºäŒåã¢ã«ãŽãªãºã ã§ã«ãŒãã§æ¢çŽ¢ãããŠãããšã
ïŒãšã©ãŒæïŒ
Can’t open image file ‘..\textures\/sky.ppm’
éäžãŸã§ã¯ã«ãŒãã§åã£ãŠããã®ã§ãdrawstuffã®ã€ãå¿ããªã©ã§ã¯ãªããã§ãã
åå ã¯äœã§ããããïŒ
ããã«ã¡ã¯ RobertãããïŒ
ããªãã¯robotã§ãã ? ãããŠïŒsample15ã®ïŒïŒïŒïŒïŒïŒïŒïŒè¡ç®ã以äžã®ããã«ã³ã¡ã³ãã¢ãŠãããŠãã ããïŒãã®ããã°ã©ã ã§ã¯ç°¡åã«ããããã«ïŒè¡çªããå¯èœæ§ã®ãããžãªã¡ããªã®ãã¡ïŒçæ¹ãå°é¢ã®å Žåã ãè¡çªæ€åºãè¡ã£ãŠããŸãïŒ
ããããã¢ãŒã ã®ã·ãã¥ã¬ãŒã¿ãåæ§ã«ãããšã§ããŸãïŒ
//if (isGround)
//{
for (int i = 0; i < n; i++)
{
contact[i].surface.mode = dContactBounce|dContactSoftERP|dContactSoftCFM;
contact[i].surface.bounce = 0.5; // (0.0~1.0)
contact[i].surface.soft_erp = 1.0;
contact[i].surface.soft_cfm = 0.0;
dJointID c = dJointCreateContact(world,contactgroup,&contact[i]);
dJointAttach (c,dGeomGetBody(contact[i].geom.g1),
dGeomGetBody(contact[i].geom.g2));
}
//}
ã§ã
Hi~~~Mr Demu:
I am Robot, I am sorry for just got your replay here, now I just use English to write my English, and you can replay me with Japanese.
1ïŒIâm using the simulation provided by you, with two objects in the same interaction (interactive simulation – http://demura.net/wordpress/english/ode15). The problem that Iâm having is with collision detection. I have the two objects utilize the collision detection with the floor/ground. However, I cannot simulate / invoke collision detection between these two objects.
2. In the robotic arm simulation, Iâm having a difficult time with employing collision detection between the link(s) and the ground and also between the individual links. I tried to employ the ânearCallbackâ but Iâm still having no luck.
Would it be possible to ask for you assistance or some direction in solving this?
Thank you.
ã§ãããããè¿äºããããšãããããŸãã
å匷ãè¶³ããªããŠåéãããŠããŸããã
玹ä»ããŠããã ããæ¬ãåèã«ããŠä»åŸãã·ãã¥ã¬ãŒã¿ã®äœæãç¶ããŠãããæããŸãã
ãŸã質åãããŠããã ãããšããããšæããŸããããã®ãšãã¯ãããããé¡ãããŸãã
takeããïŒ
ããã³ã·ã£ã«æ³ã®å ŽåïŒåŒåïŒæ¥åãã·ãã¥ã¬ãŒã¿ã§å®éã«çºçãããå¿ èŠã¯ãªãïŒãããŸã§ããããã®é²ãæ¹åãèšç®ããããã«äœ¿ããŸãïŒç®çå°ãžã®åŒåãšé害ç©ã®æ¥åã®åæãã¯ãã«ãé²ãæ¹åãšãªããŸãïŒ
ããã³ã·ã£ã«æ³ã¯ç®çå°ã«é²ãããšãšïŒé害ç©åé¿ãåãã³ãŒãã§å®çŸã§ããã®ã§æãç°¡åãªæ¹æ³ã ãšèããŸãïŒãã ãïŒãã©ã¡ãŒã¿ãé©åã«æ±ºããããšã¯ç°¡åã§ã¯ãªããããããŸããããåæãã¯ãã«ãïŒã«ãªãå Žåã¯ãããããæ¢ãŸã£ãŠããŸããŸãã
ãªãïŒã»ã³ãµã®ããã°ã©ãã³ã°ã§ã¯ãããŸãããïŒç§»åããããã®éååŠïŒééååŠïŒçµè·¯èšç»æ³ã®æ¬ãšããŠãäžéå çãå°æ£®è°·å çãç±³ç°å çã髿©å çå ±èã®æžç±ããå§ãããŸãïŒé害ç©ãããå Žåã®çµè·¯èšç»æ³ã«ã€ããŠãããã³ã·ã£ã«æ³ä»¥å€ã®æ¹æ³ã説æããŠããŸãã
倧åŠé¢æ å ±çå·¥åŠã4ãé«ç¥èœç§»åãããã£ã¯ã¹
, è¬è«ç€Ÿãµã€ãšã³ãã£ãã£ã¯ãïŒïŒïŒïŒïŒïŒ
ã§ã
ã§ããããããã«ã¡ã¯ã
以åãã«ã€ããŠè³ªåãããŠãã ã ããè ã§ãã
çŸåšãã¹ãã¢ãªã³ã°åã®ããããã«é害ç©åé¿ã»ã³ãµãçµã¿èŸŒãã ãã®ãäœæããããšããŠããŸãããèå¿ã®ã»ã³ãµã®äœæã§ã€ãŸãããŠããŸãã
æ¬ã«æžããŠãã£ãããã«ããã³ã·ã£ã«æ³ã䜿ãããšæã£ãã®ã§ãããã·ãã¥ã¬ãŒã¿ã§ã®åŒåãšæ¥åã®çºçã®ããæ¹ãããŸãã¡ããããããŸããã
ã»ãã«ããã³ã·ã£ã«æ³ããç°¡åãªé害ç©åé¿ã«é©ããæ¹æ³ã¯ããã§ããããïŒ
ãŸãããã®ãããªã»ã³ãµã®ããã°ã©ãã³ã°ã«ã€ããŠåå¿è ã§ãçè§£ã§ããåèæžããã£ããæããŠããã ããªãã§ããããã
質åã°ããã§ç³ãèš³ãããŸããããããããé¡ãããŸãã
åããïŒ
åããããé ãããœãŒã¹ã³ãŒããç§ã詊ãããšããç¹ã«åé¡ã¯ãããŸããã§ããïŒããã£ã®äœçœ®ãšé¢ç¯ã®äœçœ®ã«ççŸããããšã·ãã¥ã¬ãŒã·ã§ã³ã§ã¯ããããªæåã«ãªããŸãïŒãã®ããïŒå®éã®ãããããäœãããã«èšèšå³ãå¿ èŠã§ãïŒæãã以ååé¡ããã£ãããšã¯ïŒãã®èšèšå³ãšããã°ã©ã ã«ççŸãããããã ãšæãããŸãïŒãã ãïŒãã®ééããèŠã€ããããšã¯ïŒæ£ç¢ºãªå³é¢ããªããšèšèšè 以å€ã«ã¯é£ããã§ãïŒ
ãã¥ãŒããã€ãã®ã¢ãã«ãäœãã®ã¯éåžžã«æéããããã®ã§å¿ èŠããªããã°ãããããã¡ãããã®ãµã³ãã«ããã°ã©ã ã䜿ã£ãŠãã ããïŒéåçšçšéãªãèªç±ã«äœ¿ã£ãŠããã£ãŠããŸããŸããïŒã¢ãã«ãäœãããšã«æéãããããããæ©è¡å¶åŸ¡ã«æéããããã»ããå®ããããã§ãããïŒ
ç§ã¯ïŒè»žçŽäº€ïŒ3軞çŽäº€ãè€æ°åã®ãã³ãžãžã§ã€ã³ãã§å®è£ ããŸããïŒå®ã¯ãŠãããŒãµã«ãžã§ã€ã³ããããŒã«ãžã§ã€ã³ãã詊ããŸãããããŸãæ©è¡å¶åŸ¡ãããããšãã§ããªãã£ãã®ã§ãã以æ¥äœ¿ã£ãŠããŸããïŒåãããããŸãã§ãããæ¯éïŒæããŠãã ãããïŒ
ã§ã
ãåçããããšãããããŸãã
ã€ãŸãããããããèœäžããŠããã®ãåå ã§ãããããåãæ¡ä»¶jäžã®å Žåãè ãããå ã«è¶³ãã€ããããšã«ãã£ãŠæåãããããããæ¥å°ãããŠããã°ã解決ã§ããããïŒ
ããã²ãšã€ãçåãªã®ã§ããããµã³ãã«ããã°ã©ã ã®kensei.cppã§ã¯ãåãç¶æ³ïŒè¶³ããªãããŠãè ãã€ããïŒã§ãã£ãããšãã£ã€ããŠããã®ã§ãããéãã¯äœã§ããããïŒ
åããïŒ
åå ãããããŸããïŒ
ã®é¢ç¯ã¯æ©æŠããªãããïŒãããããèœã¡ãè¡æãè ã«äŒããããæ¯åããŸãïŒéåå é床ãïŒã«ãããïŒå é床ãéåžžã«å°ããªå€ã«ãããšæ¯åããªãããšã確èªã§ããŸãïŒ
ãŸãïŒèª¬æããŠæ¬²ããç®æãããã°ïŒïŒ¯ïŒ€ïŒ¥è¬åº§ãšããŠè¿œå ããŸãã®ã§æããŠãã ããïŒããããïŒïŒ¯ïŒ€ïŒ¥æ¬ããã®ããã°ã«èšè¿°ãå°ãªãç®æã ãšæãããŸãã®ã§ïŒ
ã§ã
CohCohããïŒ
ãäžå¯§ãªã質åããããšãããããŸãã
éå¿ãç§»åããã®ã§ã¯ãªããžãªã¡ããªãç§»åãããšç°¡åã«å®çŸã§ããŸããéå¿ã¯ç©ççãªå®äœãæããªãã®ã§ã奜ããªäœçœ®ã«èšå®ããéå¿ããããããåã ããžãªã¡ããªãããããŠãã ããããããå®çŸããAPIã¯dGeomSetOffsetPositionã§ãããªãã»ããå€ã¯çžå¯Ÿåº§æšç³»ã®å€ãå ¥ããŠãã ãããå ·äœçãªã³ãŒãã¯ODEè¬åº§17ã«æžããŠããŸãã
ãªããåããããªè°è«ãODEã®ã¡ãŒãªã³ã°ãªã¹ãã«èŒã£ãŠããŸãããããã¯ãªãã¯ããŠãã ããããã¡ãã®æ¹ã¯å¥ã®æ¹æ³ãæžããŠããŸãã
ãåèã«ãªãã°å¹žãã§ãã
ã§ã
åããã
å±ããŸãããã¡ãã£ãšåŸ ã£ãŠãã ããã
ã§ã