これは記録に値する問題だ。
ローカルモジュールで、配列の要素数以上にアクセスしたら、メモリのセグメント違反でアプリは止まる。これは一般のC++アプリでもそうであるし、ロボットのnaoqiも同じだ。ただし、ロボットの場合、一時的に気を失い、倒れる。しばらくすると正気に戻る。
ロボットが気絶するとは、すべてのギアがstiffness(堅牢さ)を失うことだ。DCM Cycle time error というものが発生する。よくわかっていない。そもそも、DCMについて、何度マニュアルを読んでも理解できない。
一体どこに問題があるかを調べるときには、ロボットを支えたまま問題探しをしなければならない。が、やはり、こういう場合は、naoqiのC++SDKにあるシミュレーターを使うべきだ。確かにシミュレーターは便利だ。ほとんどのことはシミュレーターでいいのだが、顔認識機能やいくつかの大切な機能が、ロボットにしかない。