NHK学生ロボコン2019出場決定!!!!!!!

舞台少女のishtarmk2です。西條クロディーヌごっこをするためにフランス語を履修し始めました。

さて、我々慶應義塾ロボット技術研究会、その中のNHKロボコンチーム「Ilias」は、来月5月26日開催のNHK学生ロボコン2019に出場することが決定しました!!!!!!!!!!


初出場です!!!!!!!!!!!!!!

初出場です!!!!!!!!!!!!!!!!!!!!!!!

沿革を申し上げますとロ技研内でNHKロボコンに出ようという動きが最初に起こったのは筆者の知る限りだと2009年頃で、その後2013年くらいまでぽつぽつとチームが編成されるもののビデオ審査で落ちてしまうことが2年に1回くらいのスパンで発生していたと記憶しています。

現在のチーム「Ilias」は、ノウハウの蓄積のためにも数年スパンで続けようということで2017年の秋に結成されました。去年は二次ビデオで落ちてしまいましたが、念願叶ってようやく出場できました。優勝を目標に今後も更なる機体の改良を続けていきます。

また、資金をカンパしてくれた先輩方、練習場所の確保に協力してくれた矢上キャンパスの学生課及び用度課の皆様、土壇場で足りない部品を提供してくれた電気系実験室の皆様等、今までお世話になった方々にこの場を借りてお礼を申し上げます。今後もご支援いただけると幸いです。

最後になりますが、リリカルマジカル、頑張ります!!!!!!!!!!!!!!!!!!!!!!!!!

広告

新歓イベント2019

2019年度新入生歓迎イベントの日程をお知らせします!

—説明会—
4/3(水) 13:00~14:00 @D403教室
4/4(木) 13:00~14:00 @J412教室
4/5(金) 12:30~13:30 @D401教室

—体験講習会—
4/6(土) 13:00~ @諭吉像前(メディア入り口)集合
※ポスター等に10:00集合と書いてあるものがありますが、13:00集合が正しいです

—食事会—
4/6(土) 19:00~ @七輪焼肉 安安 日吉店

まずは説明会に来てください。

新入生の皆さんとの連絡は主にLINE@を用いて行いますので、新入生の皆さんは「ロボット技術研究会新歓」LINE公式アカウントへの登録よろしくお願いいたします。

今日から3日間、慶應日吉にてロ技研のビラ配りを行います。ぜひ受け取ってください。

rogikensakura

週刊朝日で紹介されました

はんだ付けをするishtarmk2さん(理工学部3年)です。無事4年生になれました。

もう日付が変わってしまいましたが、3/13日発売の週刊朝日で我々慶應ロ技研がちらっと紹介されています。

私と同期1名が載っているんですが身長が高くて顔の良い同期に対し僕の扱いが少し雑で面白いので暇だったら見てみて下さい。サークルの概要も紹介されているのでそろそろ東大や東工大に落ちて慶應に入学を決めたであろう新入生にも見てもらえると幸いです。

新入生の皆さんへ

慶應の理工学部へようこそ! もちろん理工学部でない人も大歓迎です。

これを読んでくれていると言うことは、ロ技研に興味があるということですよね。まだ、どこのサークルにしようか決めかねている人のために、私自身の体験をお伝えしますね。

私も去年の今頃、どこのサークルに入ろうかと考え始めたころでした。まあ、私の場合はサークル紹介冊子を見た時から、ロ技研に決めていましたけど。

入学したばかりに一人で説明会に行き、その時に先輩が自分達で作ったロボットの説明をいろいろと楽しそうにしてくれて、一から自由にロボットが作れるんだな~と思ったのが最初の印象でした。

その後の体験入会ではライントレーサーを作り、その過程を通して雰囲気が良いな~と実感し、同級生の友達もでき、絶対入ろうと思いました。ライントレーサー体験講習会

入部したての頃は、先輩が毎週講習会を開いてくれて、ロボットの基礎を教えてくれました。とにかく先輩達は話しやすく、聞けばなんでも教えてくれました。授業選択の仕方なども教えてもらい大変助かりました。

CADのソフトが使えたり、きれいな加工施設が利用できたり、ロボットを作れる環境が揃っているなと実感しました。

3つの分野から好きな分野を選んで、自分の専門分野ができ、夏の1年生向けのロボコンに対応できるようにいろいろ教えてもらい、実際、初心者でも1年生のグループでロボットを作り上げることができ、1年生同士の絆が深まりました。

合宿では那須高原に行き、食事会もたびたびあり、ますます皆との仲が深まりました。

現在はロボコンごとに班に分かれて、それぞれの大会に向けて頑張っています。

私にとってはこんなに良いサークルはないと思っています。2019年度ももっと楽しいサークルになると思うので、新入生の皆さん、是非一度遊びに来てください。

新入生歓迎のイベント日程が決まればまたお知らせしますので、その時にはまたお会いしましょう。

nyanta25がお伝えしました。

 

MATLABで遊んでみた!!

 

MATLABで遊んでみた!!

 

先日はサークルの飲み会で、悪酔いを披露してしまった3年生です。今日は、2日酔いで頭が痛いです。(でも、まだまだ皆と飲みにいきたいです🍶)

そんなことはさておき、現在、マイクロマウス班に所属しており、マイクロマウスの製作を頑張っています。機体はできたので、今は回路を頑張ってます。(本当に回路分からんから、前代表のO嶺は凄いなと思ってます…)やはり、マイクロマウスが俊敏に動く姿を想像すると、ワクワクするので楽しいです。皆も回路とか制御やりたかったらマイクロマウスに来てね!!

 

去年はネタ系の話にしたので、今年はお酒の嗜み方について書こうかなって思ったんですが、みんな思いのほか(!?)学術的な内容だったので、去年のネタ枠とは違い、サークルに役立つかもしれない情報を書こうと思いました。そんなこんなでMATLABのSimlinkで遊んでみました。

Simlinkとは、MathWorks社によって開発された、モデリング、シミュレーション、解析のための便利なツールです。研究室でもよく使われているので、1年生から知っていたらとても強いです。

というわけで、モータの角度をPID制御しましょう。モータに関する運動方程式は次のようになります。

上の2式を変形し、ブロック線図と呼ばれる入出力関係を示すもので、まとめると以下のようになります。(簡単のために、B=0とし、tiの扱いはめんどくさいから0にします。また、入力、出力をωの指令値、応答値にします。

 

これから、MATLABの使い方を見てみましょう。まあ、keio.jpのソフトウェア・ライセンスからかなぁ、MATLABをインストールしたら起動してみましょう。下のような画面が出ます。

 

 

最初に、Simlinkボタンを押し、Simlinkを起動して、「空のモデル」を選択します。すると以下の画面が出ます。このウィンドウでブロック線図を作成します。(青丸から、ブロック線図の部品的なものを出します)

 

 そのボタンを押すと、下のようなライブラリが出ます。「sources」で入力波形、「Mathoperations」で加算器、「Continuous」で連続時間系のPIDのコントローラや積分器などを選択できます。下の、outって書かれている欄に、gainとか書くとgainに関する部品が得られます。

 

 

このようにして、ブロック線図を作成すると次のようになります。

 

plantはモータに関するシステムで、ブロック線図の書き方を簡略したサブシステムです。展開すると下のようになります。

 

ここまでがモデリングの準備です。これからは、こういう動きをして欲しいなという指令値になるべく近い動きに応答値がなってほしいのでPID制御を行います。P,I,Dって何だという人向けに次のリンクを用意しておきます。

https://www.hellocybernetics.tech/entry/2017/03/18/100530

 

まず、部品を選択し、ダブルクリックすると下のようにパラメータが調整できます。

 

「新規スクリプト」で変数を定義し、Kp=1、Ki=1、Kd=0にしてみます。

 

 

そして、ブロック線図のscopeをダブルクリックして「実行」を押してみると、応答値が全然追いついてくれません(T_T)

 

 

なので、応答がよくなるようにパラメータを調整してみましょう。先程の図の赤丸ボタンを押すと自動的に、ゲインを決めてくれます。とても便利です。(手打ちでやるのは大変なので、ありがたい)そして、「ブロックの更新」で自動的にパラメータの更新ができるように設定します。

 

すると、、、応答値がめっちゃ良くなりました!!

 

まあ、こんな風にして、MATLABを使うと便利なんじゃないかなと思いました。(長文失礼しました。)NHKではカルマンフィルタを実装して位置の誤差を少なくする試みをすると思うので、MATLABを知っとくといいと思います。そして、アドベントカレンダー遅れてごめんなさい笑

 

最後に、僕は3年生なのでこれからサークルになかなかいけなくなりますが、1,2年生がこのサークルを良くしてくれることを祈ってます!!

そして、感謝を述べたいです。楽しいサークル生活でした。本当にありがとう!!

 

 

 

 

 

はじめての4足歩行ロボット

慶應義塾大学ロボット技術研究会その1 Advent Calendar 2018の23日目です。

昨日の記事:競プロ始めました(感想文)

はじめに

こんにちは、3年のしゅんもです。今年もNHKロボコンをやっています。

昨年までは機構オンリーでプログラミングの知識がなく、先輩に迷惑をかけていたので、今年は制御もできるようにしようと思い、11月頃からプログラミングの勉強をしています。

プログラミングの対象は、タイトルの通り「4足歩行ロボット」です。来年のNHKロボコンのルールで4足歩行ロボットが必要なため、サーボモータ式の4足歩行ロボットを制作しました。この記事では、4足歩行を歩かせる簡単なアルゴリズムの紹介までしたいと思います。

目次

  • 歩容とは?
  • 4足歩行ロボットの機構ってどんなの?
  • 逆運動学でサーボの角度を求めよう!
  • 歩行アルゴリズムを考えよう
  • 実際に動かしてみた!

歩容とは?

4足歩行を扱う上で避けて通れないのが「歩容」の分類です。歩容とは、簡単に言えば「足の動かし方」の違いです。

ただ、歩容について調べれば調べるほど新しい名前が出てきて、正直私自身も完全には理解できていないので、なんとなくの紹介だけします。上から下に行くにつれて移動速度が早くなります。

クロール(Crawl)

最も移動速度が遅い歩容です。1足ずつ独立して足を出していくため、常に3本以上の足が地面に接地しており、安定しています。

ウォーク(Walk) [別名 : ペース(Pace) ]

右前と右後ろの足、左前ろ左後ろの足をそれぞれ同時に出して歩く歩容です。足を浮かしているとき、一時的に地面と接地する足が2本になるため、重心のバランスを取る必要があります。

トロット(Trot)

右前と左後ろの足、左前と右後ろの足をそれぞれ同時に出して歩く歩容です。ウォークとの違いは、出す足の組み合わせが対角線になっているという点です。

バウンド(Bound)

左前足、右前足、右後ろ足、左後ろ足の順に足を動かして移動する歩容です。この歩容はあるくというよりも走る状態です。ぎゃリップとの違いは、常に4本の足のうちのいずれかの足が設置している点です。

ギャロップ(Gallop)

足の動きはバウンドと同じですが、バウンドとの違いは、4本すべての足が地面から離れているタイミングがあるという点です。チーターみたいな走り方です。

以上のように多数の歩容が存在していますが、これらをロボットで実現することは容易ではありません。その理由はいくつかあるのですが、個人的に考える主な理由は以下の2点です。

  1. 生物の足の自由度をロボットで実現するのは難しい
  2. 生物の筋肉ほどの瞬発力が得られるアクチュエータがない

1つ目については、サーボモータをたくさん搭載することで一見解決できそうですが、サーボモータの物理的なサイズの関係上、生物の足ほどの自由度をもたせることは容易ではありません。

2つ目については、モーターの回りにバネを付けてバネの反発力を利用したものが研究されていますが、まだ実用化はされていません。また、小型な4足歩行ロボットの例に限れば、ワイヤーで予めバネを縮めておき、その反発力を使用したものなどがありましたが、機体のコントロールが相当難しそうということで採用しませんでした。

それでは、私がどんな機構のロボットを制作したのかご紹介します。

4足歩行ロボットの機構ってどんなの?

図1 足の簡易モデル

図1は、足一つのモデルです。1つの足につきサーボモータが3つあり、3自由度を有しています。

今の目標は、「足先の3次元座標とサーボs0の床からの高さを指定して、サーボの角度を求めること」です。このような計算を「逆運動学(Inverse Kinematics)」と呼びます。この考え方は、ロボットアームを始めとするマニピュレータの制御で使われています。

逆運動学でサーボの角度を求めよう!

足先の3次元座標は、足の付根を原点として(x,y,z)とし、サーボs0の床からの高さをhとします。ここで、サーボs0はロボットの胴体部の高さと同じなので、hは「ロボットの胴体の床からの高さ」でもあります。

それ以外の定数を以下のように定義します。

足の付根から、サーボs0、サーボs1、サーボs2( s0は水平方向に動き、s1とs2は鉛直方向に動くサーボモータです)

r0:ロボットの中心とs0の軸間距離(リンクの長さ)

r1:s0とs1の軸間距離

r2:s1とs2の軸間距離

この足のモデルの断面について考えます。

図2 断面モデル

図2において、hはサーボs0から地面までの距離、zは足先から地面までの距離です。また、θ1、θ2はそれぞれサーボs1、s2の目標角度です。したがって、図に示した文字を使ってθ1をθ2を表すことができれば、

考え方自体は中学数学レベルですので、みなさんも考えてみてください。(少しだけ逆三角関数は使います。)

*

*

*

*

*

*

*

*

*

*

*

*

正解にたどり着きましたか?それでは答えを示します。

図3 断面モデル(補助線あり)

図3のように補助線を引くと、辺AEの長さは

と求められます。すると、⊿FAEにおいて余弦定理から、

となります。同様に、 ⊿FAEにおいて余弦定理から、

となります。以上より、変数hおよびzを指定することにより、θ1およびθ2を一意に定めることができます。ここで、dはどう求めるんだ?と思った方も多いと思います。dは、足先の3次元座標(x,y,z)を用いて表せます。この3次元座標の原点は足の付根としていたので、

と求められます。ただし、r0は足の付根からサーボs0、すなわち図3における点Aまでの距離です。

また、サーボs0の目標角度θ0は、機体を上から見他状態を考えると求められます。

図4 機体を上から見たときの足先の座標

図4中の(x,y)は、足先の2次元座標です。これより、

となります。ここで、4足の足についても考えてみましょう。断面モデルはどの足でも同じですが、θ0は少しだけ変わります。

図5 4足の足の座標のとり方(ロボットを上から見た図)

もし、図4の座標系を90度ずつ回転させて座標を取れば、全ての足のθ0は同様に考えることができます。しかし、次の章で説明する歩行アルゴリズムを考える際、図5のように座標を撮っておいたほうが考えやすいため、私はこうしました。

図5において、ロボットが大の字に足を広げている状態を考えます。すると、右前と左後ろは図4での座標系と全く同じです。しかし、右後ろと左前はθ0の正負が逆になることがわかります。したがって、プログラム中では、右後ろと左前のθ0は符号を反転させます。

長かったですが、これで 「足先の3次元座標とサーボs0の床からの高さを指定して、サーボの角度を求める」 という目標が達成できたので、次に「どのように歩かせるのか」について説明します。

歩行アルゴリズムを考えよう

普通のやり方なのかはわかりませんが、私は足先の座標を指定することで歩行させるようにしました。 このアルゴリズムは、参考サイト[2]に詳しく書かれていたので、参考にさせていただきました。

参考サイト[2]では、予め決められた値が入っていますが、私はパラメータを調整できるようにしたかったので、下記のように変数を置きました。

(x0,y0):足を大の字に広げたときのx,y座標

y1:3足立ちのときのy座標

step_length:一歩で進む距離(以下sl)

step_height:足を上げる高さ(以下sh)

これらの変数を使って歩行のステップを考えると、下記の図6のようになります。

図6 歩行時の足先座標

上の図6では、足先のx,y座標のみを考えていますが、実際に足を動かすときは足を床から離す必要があります。そのため以下の図7のように、足先を三角形や四角形のように動かす必要があります。

図7 z座標を考慮した足先の動かし方

以上より、どのように足先の座標を変えれば歩行するかおわかりいただけたと思います。実際にプログラムを書くときは、表などに、各ステップにおけるそれぞれの足のx,y,z座標をまとめておくと混乱しにくいと思います。

実際に動かしてみた!

実際に上記方法でプログラムを書いて動かしてみると、こうなります。

なんかカックカクしてますよね笑

これは、サーボモータの角度を0.1秒間隔など、細かく指定し、for文で回すことにより改善します。改善したものがこちらです。

なかなか生き物っぽい動きになりました!様々なパラメータに調節して見たんですが、現時点で一番気に入っている歩行はこれです。ペットみたいで可愛いでよね笑

ただ、かなり滑っているので、まだまだ改善の余地はありそうです。NHKロボコンの1次ビデオ審査までちょうど1ヶ月なので、どんどん改善していきます。

最後に

今回のロボットはロボコンのレギュレーションの関係上巨大なため、でかくて高いサーボを使っていますが、自分で試す際は秋月とかで売られている千円くらいのサーボでも行けると思うので、是非挑戦してみてはいかがでしょうか?

KRAに4足歩行の知見を残す意味も兼ねて、結構頑張って書いたのですが、とても長くなってしまい、読みづらくなってしまいました・・・

なにか分からない事があれば、コメントいただければ回答しますので、お気軽によろしくおねがいします。最後までご覧頂きありがとうございました!

参考サイト

[1]PICマイコンで制御する4足歩行ロボットの製作 “http://www.suwa-koubou.jp/micom/4LegsRobot/4legs_robot.html” (参照 2018-12-23)

[2]MAKE: Japan, Arduino搭載四足歩行ロボットのプログラミング”https://makezine.jp/blog/2016/12/robot-quadruped-arduino-program.html” (参照 2018-12-23)

←11日目の記事