忍者ブログ
たまにロボットを考えるブログ・・・。
ヘビはくねくね動くということで前に進むらしいのです。

なので、くねくね動かす方法を考えます。
くね、と言って右に振り
くね、と言って左に振ればいいのではないでしょうか?

というと、周期的な運動だと考えられるのでsin関数をそのまま入力すればいいのではないか
と考えます。

4自由度2関節のヘビなので、まず片方の関節の1自由度だけを検討します。
例えば、先ほどtheta4の逆関数として
y=f(theta4)を求めたので、
f(theta4) = sin(t)という角度を与えたとします。

ですが、この逆関数はasinなのでsinでは無くなってしまいます。
なので、切り返しが滑らかでは無くなります。
なので
=sin(sin(t))
とかにしてみます。

思惑どおりです。(グラフ上はsinになってしまっていますが)

しかし、このままではだめです。

切り返しが90度であればこのままでもいいのですが、
切り返しが90°出ないとき、もちろんヘビは90度まで曲がっていないようですから、
なので、この結果をそのまま使いません。

このグラフの単位はradですが、
degだと思いなおしたり、クネクネの振幅を命令したいと思ったり、速度0から始めたいと思えば

(この時点で2関節にした時に面倒だなと思い始めるわけですが)

1関節分のくねくねはこれでとりあえず完成です。

2関節目も同様に考えますが、

なにやら、ヘビを見ていると隣り合った関節が、
同時に同じ、あるいは同時に逆ということは無いように思われます。
なので、くねくねには位相のずれを与えるべきです。

例えば、

という感じで、ずらしておきます。
実際は、2本のグラフを書いておいて、縦線を時間軸にそって動かす。
その交点を、その時間の角度として与えます。



これで、くねくね軌道は完成です。

このくねくね軌道は、周期A1、振幅A2、位相のずれA3の3つの変数を持ちます。
実際のところ、yはmaxでd3までしかとれませんので、比として与えられます。

theta3 = arcsin(y/d3)
というところで
Y=y/d3
とします。
Y_1 = sin(%pi*sin([A1]*t)/2 * [A2]/d3)
Y_2 = sin(%pi*sin([A1]*t-[A3])/2 * [A2]/d3)

と与えることにします。




拍手[0回]

PR
この記事にコメントする
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
プロフィール
HN:
Adel
年齢:
27
性別:
男性
誕生日:
1989/09/17
職業:
会社員
趣味:
モチベーション探し
自己紹介:
ロボットつくるのが夢
ブログ内検索
カウンター
君は何人目かな
カレンダー
07 2017/08 09
S M T W T F S
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
最新コメント
[06/22 fake serpenti watch bvlgari]
[06/22 where to buy hermes clic clac bracelet faux]
[04/09 blacklab]
[02/16 オイルマン]
[09/11 M.A(CIT)]
最新トラックバック
コガネモチ
忍者AdMax
アクセス解析
忍者ブログ [PR]