逆運動学を解くプログラム
逆運動学方程式を手計算で解いたが、その答えが問題文を読んだときに、自分の直感で予想した値と大きく異なっていたので、逆運動学を解くプログラムを書いてみた。
使用した言語はPythonで、これが初めての使用です。
CやJavaで書いても良かったんですけど、どうせなら使ったことのないけど、Linuxでよく使われているイメージのPythonを使ってみるのもいいんじゃないかという考えでPythonになりました。
というかJavaはsin(30)を0.5と返さず、0.499999・・・と返してくれました。オレの書き方が悪いんでしょうけど。
でも時点でJavaは選択肢から外れていました。
同じ方法でPythonはちゃんと0.5を返してくれましたし。
初めて触って、数時間で逆運動学を解くプログラムを完成させることができたPythonは非常に扱いやすい言語だと思います。
でも方法は順運動学に総当たりで計算をして、最も近似した時の値を返すというもの。
せっかく作ったのでソースを公開したり、PHPに直してWeb上で実行できるようにしたいのですが、成績評価に関わる問なので、成績評価がされてから公開したいと思います。
結局、Pythonによる計算を行った後、手計算で導いた答えはまだ計算の途中ということが分かりました。
最後まで計算をしたら、Pythonで導いた値と非常に近い値になりました。
※ルート等や円周率が計算に含まれるため、例えばルート3を1.73で計算するか1.732で計算するかや、3.14なのか3.1415なのかで誤差が生じます
大学