ODE INTERNAL ERROR 1
assrtion”dMassCheck(mass)”failed in dBodySetMass()[ode.cpp]
Microsoft Visual C++ Runtime Library
Runtime Error!
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application’s support team for more information.
åå¿è ããã
ãšã©ãŒè§£æ±ºããã§ãšãããããŸãã
ããŠãdsDrawbox(const float p[3], const float R[12], const float sides[3]);ã®ïŒçªç®ã®åŒæ°ã«ã€ããŠèª¬æããŸãã
float sides[3]ã¯floatåã®èŠçŽ æ°3åã®é åã§ãããèšèªã§ã¯é åãåŒæ°ãšããŠåãæž¡ãããšã¯ã§ããªãã®ã§ãã€ã³ã¿ãšããŠåãæž¡ããŸããã€ãŸããfloat *sidesãšåãããšã«ãªããŸããããã«constãã€ããŠããã®ã§ããã®ãã€ã³ã¿ãä»ããŠå€ã倿ŽããããšãçŠæ¢ããŠããŸãã
ãªãããã®ããã«ä»®åŒæ°ã宣èšãããšãåãæž¡ããã€ã³ã¿ã¯èŠçŽ æ°ïŒåã®é åãæããŠããããšãè¯ãããããŸããå®éã®äœ¿çšäŸã¯ïŒ°ïŒïŒãããã°ã©ã 3.5ãåèã«ããŠãã ããã
ãŸãããã®è³ªåã³ãŒããŒã®ã³ã¡ã³ããïŒïŒãè¶ ããã®ã§ãæ°ãã質åã¯ODE質åã»èŠæåéïŒ!ã«ãé¡ãããŸãã
äžåºŠãœãŒã¹ã³ãŒãæ°ããæžãçŽãããšãããå ã»ã©ã®ãšã©ãŒã¯ãªããšããªããªããããŸãmakeããããšãã§ããŸããã
ãããããœãŒã¹ã³ãŒãã«ãªãããã®ãã¹ããã£ããšæãããŸãã
ãéšãããã¿ãŸããã§ããã
ãšããã§ãP21ãEX1.8ã®çŽæ¹äœã®èœäžã®èª²é¡ã§ããã
dsDrawBox()ã®äœ¿ãæ¹ãããããããŸããã
玢åŒã§èª¿ã¹ããšãšP103ã«ããã®ã§ããã
dsDrawbox(const float p[3], const float R[12], const float sides[3]);
äœçœ®pãå§¿å¢Rã¯ããã®ã§ãã”sides[3]“ïŒé åïŒïŒã®ãšãããã©ãæžãçŽãã°ããã®ããããããŸããã
ã§ãããã
远å ãå¿ããŠããŸããã
ODE Message 2: inertia must be positive definite in dMassCheck() File mass.cpp Line 48
åå¿è
ã§ãããã
>>ïŒéçºç°å¢(mingw ? VISUAL C++ ?)ãæããŠé ããŸãããïŒ
éçºç°å¢ã¯ãã¡ãã®ãµã€ãïŒWindowsãXPã§ã®ã€ã³ã¹ããŒã«ïŒãåèã«è¡ããŸããã
ã€ãŸããminGWã§ãã
Microsoft Visual C++ã¯äžå䜿ã£ãŠããŸããã
mif805ããã
è¿äºãé ããªããã¿ãŸããã
ããŠãcylinderãšæ¥è§ŠããŠããªãã¯ãã®boxãäžãšããæå³ãããããããŸããã
å€å®éšåã®ãœãŒã¹ã³ãŒããèŠããŠé ããŸããïŒ
ãŸãããæ¥è§ŠããŠããªãã¯ãããšã¯ïŒã€ã®ãžãªã¡ããªã®äœçœ®ããæ¥è§ŠããŠããªããšãããããšã§ããããïŒããªããstepsizeãå°ãããããšè¡çªå€å®ãæ£ç¢ºã«ãªããŸãã
åå¿è ããã
ïŒéçºç°å¢(mingw ? VISUAL C++ ?)ãæããŠé ããŸãããïŒ
ã§ã
ããã°ãã¯ãäœåºŠããã¿ãŸããã
åèæžã®ex1.9ãmekeããã以äžã®ãããªïŒã€ã®ãšã©ãŒãã§ãŸããã
ODE INTERNAL ERROR 1
assrtion”dMassCheck(mass)”failed in dBodySetMass()[ode.cpp]
Microsoft Visual C++ Runtime Library
Runtime Error!
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application’s support team for more information.
.exeãã¡ã€ã«ã¯ã§ããã®ã§ããããã®ãšã©ãŒãåºãŠçµæïŒã·ãã¥ã¬ãŒã·ã§ã³ïŒãèŠãããšãã§ããªãç¶æ³ã§ãã
ãšã©ãŒã®åå ã¯ããããŸãã§ããããïŒ
ãããããé¡ãããããŸãã
dcsyhisããã
ODEã¯ãªãŒãã³ãœãŒã¹ãªã®ã§ããœãŒã¹ã³ãŒããæ¹å€ããã°ãèªåã®æ©æŠã¢ãã«ãå®è£ ããããšã¯å¯èœã§ããåæ©çãªè³ªåã§ã¯ãªãã®ã§ãODEãæ¬å®¶æ§ã®ã¡ãŒãªã³ã°ãªã¹ãã«èããããšãããšæããŸãã
Demura ãã
åæ©çãªè³ªåã§ãããŸããã
ODEã§ã¯ã¯ãŒãã³æ©æŠã¢ãã«ãæ¡çšãããŠãããšODEã®ãµã€ãã§ç¥ããŸããããããã
éãã¢ãã«ïŒèªåã§èãããã®çïŒã«å€ããããšã¯ã§ãããã§ããããïŒ
ãã£ã³ããã
EX1.1 éçºç°å¢ãšODEã®ã€ã³ã¹ããŒã«ã(WindowsãXPç·šïŒhttp://demura.net/archives/9ode/installwindowsxp.html
ã®
ã2. MSYSã®ã€ã³ã¹ããŒã«
MSYSã¯Minimal Systemã®ç¥ã§MinGWã䜿ããããããããã«å¿ èŠãªæå°éã®ã·ã¹ãã ã§ããMinGWãšåæ§ã«ãããã¯ãªãã¯ããŠMSYS-1.0.10.exeããã¹ã¯ããããžããŠã³ããŒãããŠãã ãããã
ã®ãããã¯ãªãã¯ããŠãã¯ãªãã¯ãããšMSYS-1.0.10.exeãããŠã³ããŒãå¯èœã§ãã
ãã£ã³ããã¯ã©ã®èšäºãèªãŸãããæããŠãã ãããåé¡ã®ããèšäºããããããããŸããã
ã¯ãããŸããŠ
Windowsã®MinGWã®ã€ã³ã¹ããŒã«ã¯ã§ããã®ã§ãã
Msysã®ã€ã³ã¹ããŒã«ã«æéåã£ãŠããŸãã
MSYS-1.0.10.exeãã€ã³ã¹ããŒã«ãããšã®ããšã§ãã
http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=82724&release_id=158862
ã«
exeãã¡ã€ã«ãèŠåœãããŸããã
æ¡åŒµåãbz2ãªããã®ã¯ããããããã®ã§ããããã
ãããããã¹ãŠããŠã³ããŒãããŠçµåããªã«ããããã®ã§ããããïŒ
åå¿è ãªãã®ã§æããŠé ããªãã§ããããïŒ
ïœïœïœ å ¥åå¿ããŠããŸããã倱瀌ããŸããã
ãªãã»ã©ãããããããšã§ãããã
ãçãããããšãããããŸããïŒïŒ
anonymousããïŒNameãå ¥åããªããšãããªããŸãïŒ
ããã§ãšãããããŸãã
ODEã§ã¯åæå§¿å¢æã®é¢ç¯è§ã0ãšãªã£ãŠããŸãã
ã§ããããå³å¯ã«ã¯-0.25Ïïœ0.25Ïã«ã¯ã§ããŸããã
0â-0.25Ïâ0â0.25ÏãšãªããŸãã
é¢ç¯å¯ååã®äžéã-0.25Ïãäžéã0.25Ïã§ããã®éãåãããŠãã ãããšããæå³ã§ããã®åé¡ãäœããŸããã説æãææ§ã§ãã¿ãŸããã§ããã
ãŸããé¢ç¯ã®åæäœçœ®ã倿Žããããã«ã¯ãããããã®åæå§¿å¢ã倿Žããªããã°ãªããŸããã
ã§ãããã説æããããšãããããŸã!!
åããŸãã!!æåã§ãããã£ãšå俵ã®äžã«ç«ãŠãŸããã
ããã§EX2.1ãªã®ã§ããããã³ãžãžã§ã€ã³ããïŒïœïŒïŒïŒïŒÏïŒèãçäžã®ç¶æ ããïŒïŒïŒïŒÏïŒãŸã§ã¯åããŸããã
ããããïŒïŒïŒïŒïŒÏïœïŒïŒïŒïŒÏãŸã§åãããšããããšã¯ã»ã»ã»
ããã°ã©ã ïŒïŒïŒã®controlHinge颿°ã¯ç®æšå€ãšçŸåšã®è§åºŠã®å·®åãïŒã«ããŠããã®ã§ãçŸåšã®è§åºŠãã€ãŸãåæç¶æ ãïŒïŒïŒïŒïŒÏãšããå¿ èŠããããšèããŸããã
ããããïŒïŒãžã§ã€ã³ãã®çš®é¡ãšé¢ä¿ãããªã©åèã«ããŸãããããã³ãžã®åæè§åºŠãèšå®ãããã®ããªããã©ãããã°ãã³ãžã®åæäœçœ®ã倿Žããããšãã§ããã§ããããïŒ
åå¿è ããã
æ¬ã¯åå¿è ã®ããã«æžããã®ã§ããã®ãããªã質åã¯å€§æè¿ã§ãã
ããŠãP33 EX2.1ã§ããããcontrolHinge颿°ã¯simLoop颿°ã®äžã«å ¥ããããšã¯simLoop颿°ã®äžçªå€åŽã®äžæ¬åŒ§{ }ã®éã§ãcontrolHinge颿°ãåŒã³åºããšããããšã§ããP37ã®ããã°ã©ã 2.5ã®simLoop颿°ãåèã«ããŠãã ããããã®å Žåã¯ãcontrolHinge颿°ã®ä»£ããã«controlSlider颿°ãåŒã³åºããŠããŸãã
ãŸããé¢ç¯ãåããããã«ã¯controlHinge颿°ã®åŒæ°ã€ãŸããtargetãå€åãããŸããçããã®ãã®ãºããªã¯æããªãæ¹éã§ããããããã¥ããç®æãããã°é æ ®ãªãèããŠãã ããã
ããããã·ãã¥ã¬ãŒã·ã§ã³ïŒ°ïŒïŒã®ïŒ¥ïŒžïŒïŒïŒãã©ããããŸãå®è¡ã§ããŸããã
å®è¡ããŠãäžèããããããã é£ã³è·³ããã ãã®ç¶æ ã§ãã
ãã³ãã®controlHinge颿°ã¯simLoop颿°ã®äžã«å ¥ããŸãããšã¯ã©ãããããšã§ããããïŒ
ãŸããããã°ã©ã ïŒïŒïŒ
void controlHinge(dReal target)
{
static const dReal kp ã= 5.0; // æ¯äŸå®æ°
static const dReal fmax = 200; // æå€§ãã«ã¯ [Nm]
dReal tmp = dJointGetHingeAngle(joint);ã// çŸåšã®è§åºŠãååŸ
dReal u = kp * (target – tmp);ãããã ãããã// æäœé
dJointSetHingeParam(joint,dParamVel,u); ããã// è§é床ã®èšå®
dJointSetHingeParam(joint,dParamFMax,fmax); // æå€§ãã«ã¯ã®èšå®
}
ã¯ã©ã®ããã«å€æ°ãå€ããã°ããã®ã§ããããïŒïŒã©ã®å€æ°ãã©ãã®ããã«å€ããã°ããã§ããããïŒïŒ
ãšãããã-0.25Ïïœ0.25ÏãŸã§åããããšãé¢ä¿ç¡ãã«ãäœåºŠãããããããããã®ã§ãããããããŸããã§ããã
ã§ãæ§ïŒ
æ©ã ã«ãåçããã ãïŒããããšãããããŸããïŒ
>>詊ããŠããªãã®ã§ãcygwinã䜿ãããã©ããããããŸãããã0.8ãŸã§ã¯äœ¿ããŸãããããã
>>ãã§ã«cygwinã䜿ãããŠããã®ãªã詊ããŠé ããã°ãããããã§ãã
ODE0.8ã詊ããŠã¿ãŸãããïŒãã¯ããã¡ã§ããïŒ
MinGW+Msysã§ã¯ïŒã³ã³ãã€ã«ããŠãã¢ããã°ã©ã ãåé¡ãªãåããŸããïŒããã§ç§ãODE
ãã¡ã³ã®ä»²éå ¥ãïŒïŒïŒã§ãïŒ
ãã ïŒåãPC(XP)ã«Cygwinãã€ã³ã¹ããŒã«ããŠããŸãã®ã§ïŒCygwinã䜿ããšããšïŒMinGWã
䜿ããšããšã§ïŒç°å¢å€æ°ïŒHOMEãšPATHïŒããã¡ãã¡åãæ¿ããªããã°ãªããªãã®ãé¢åã§ãïŒ
ïŒç°å¢å€æ°ã¯ïŒhttp://www.geocities.jp/turtle_wide/tools/confmingw.htmãã®æ¹æ³ã§
åãæ¿ããŠããŸãïŒïŒ
ã©ãªããïŒããæ¹æ³ãããã°ãæç€ºãã ãããŸãïŒïŒïŒ
Hassieããã
æåããŠé ãããããšãããããŸãã
ç§ããODEãåããŠäœ¿ã£ããšãããšãŠãç°¡åãªã®ã«ã°ã©ãã£ã¯ã¹ãçŸããã®ã§æåããŸããããã®æåãäŒããããšãã®ãµã€ããšæç§æžããããã·ãã¥ã¬ãŒã·ã§ã³ãå·çããŸããã
ããŠãã質åã®ä»¶ã§ãããODE0.8.1ããŸã 詊ããŠããªãã®ã§ãcygwinã䜿ãããã©ããããããŸãããã0.8ãŸã§ã¯äœ¿ããŸãããããããã§ã«cygwinã䜿ãããŠããã®ãªã詊ããŠé ããã°ãããããã§ãã
cygwinã䜿ãããŠããªãã®ãªããmingwããå§ãããŸããã€ã³ã¹ããŒã«ãç°¡åã§ïŒïŒåãããã°çµãããŸãããã
ã¯ãããŸããŠïŒæé ãªããããã·ãã¥ã¬ãŒã·ã§ã³ã®ç°å¢ã¯ãªãããšæã£ãŠãããšããïŒ
ãããããã·ãã¥ã¬ãŒã·ã§ã³ãã®è²ŽèãAmazonã§èŠã€ããã®ã§ïŒæ©éçºæ³šãããšãã
ã§ãïŒäœµããŠïŒãã®ããŒãžãçºèŠãïŒæåããªããç°å¢æ§ç¯ã®æºåãããããããšã
ãŠããŸãïŒ
æšå¹Žã®æçš¿ã§ïŒCygwinã§ã¯ODE0.6以éã¯äœ¿ããªããšãããããªå 容ãèŠã€ãã
ã®ã§ããïŒãã®åŸããã¯ãåãç¶æ³ã§ããããïŒWIndowsäžã§æè»œã«ãŸã詊ãã«
ã¯ïŒMinGWããã¯ããã¹ããªã®ã§ããããïŒ
åæ©çãªè³ªåã§ãæ¥ããããã§ããïŒCygwinãMinGWãïŒè¿·ã£ãŠããŸãïŒãå©
èšãããã ããŸããã幞ãã§ãïŒ