LoginSignup
7
3

simscapeでみんな大好きリンク構造を作ってみた

Last updated at Posted at 2023-12-16

からあげ帝国アドベントカレンダーに予約してしまったので、今やっていることを書き込みます。

何がしたいの?

みんな大好き多脚ロボットですが、なかなか思い通りに動かすことが難しい。
ということで、モーターにお金をかける前に、もう少し制御にお金をかけて思った通りに動かせるかどうかをやってみることにします。

関節を作って動きをシミュレーションしてみます。

前提条件、用意するもの

Matlab/Simulink/multibodyなどを使って、制御の検証をしてみます。
MathWorksのStandardは年間12万円ですが、個人アカウントは永続で検討するべきお値段でした。

製品 価格 期限
Matlab 15,500円 永久
Simulink 4,490円 永久
Simscape 4,490円 永久
Simscape Multibody 4,490円 永久

新製品が発売される度にスイッチサイエンスやAliから段ボールが着弾して、積基板、積モーターが堆積しているこの界隈の諸兄には余裕で出せてしまうお値段ではないでしょうか。

一か月の無料アカウントも配布されています。

初期設定

最初はチュートリアルでもこなして、操作方法を覚えてください。
それほど難しくはないですが、私の老朽化した脳だとGUIに慣れるのに時間がかかりました。

Simscapeでは以下の部品を配置してからシステムを組んでいきます。

image.png

  • Mechanism Configuration:ブロックが接続された機構の重力とシミュレーションのパラメーターを指定
  • World Frame:座標系の原点
  • Solver Configuration:ソルバーの設定

この3つのブロックをシステムの起点にして、部品を追加していきます。

リンクバーを追加

image.png

リンク本体の直方体(Brick Solid)の両端に、座標系の変換ブロック(Rigid Transform)を置きます。

image.png

直方体のサイズをX,Y,Z = 1m,0.1m,0.1m として設定します。

両端の変換座標はX座標の両端に設定します。
image.png
image.png

Brick Solid : ジオメトリ、慣性、および色をもつ固体直方体要素
Rigid Transform : 座標系間の固定された空間関係

追加した部品をまとめて選択して、サブシステム化すると、こんな感じにまとまります。

image.png

この状態だと、Conn2側が宙ぶらりんなため、エラーが出ます。
モデル化→モデル設定で設定を開いて、「剛性的に拘束されたブロック」の「設定」をなしに設定。
image.png

これで実行できるようになります。
うーん、棒が表示されるだけですね。

image.png

ソルバーの設定

モデル化→モデル設定でソルバーを選んで設定します。

image.png

公式の奨励設定、ode15s(stiff/NDF)で最大ステップサイズを0.01にします。

重力の方向をY方向マイナス側にかかるように設定します。
リンクをX方向に伸ばした棒にしたので、ここでは-Y方向を下にして重力をかけます。
image.png

世界座標とリンクの間にジョイントを入れます。
image.png

ジョイントの初期値を0度(水平)に設定します。
image.png

ぶらんぶらん

image.png

二重振り子にしてみる

作ったリンクとジョイントをコピペしてつないでみました。
image.png

ぶらんぶらん(動画)
ezgif.com-video-to-gif.gif

さらに三重振り子
ぶらんぶらんぶらん
ezgif.com-video-to-gif (1).gif

レモンに振り回される私
ぶらんぶらんぶらんぶらん
ezgif.com-video-to-gif (2).gif

まとめ

自分でコーディングすると何日もかかりそうなリンクの振子を、簡単に作ることができました。
GUIや作法に慣れる必要があったり、パラメータの設定ミスがあると、無駄に調査に労力を使ってしまいますが、ロボットを作り上げた挙句、思った通りの制御ができないことに悩まされている方は、Simscapeの導入も検討してみてはいかがでしょうか。

この後は、みんな大好き4節リンクに進化させてみようと思います。

7
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
3