六分儀作ってみた

この記事はロ技研秋のブログリレー5回目の記事です。

六分儀とは

タイトルにある六分儀というのは星や太陽、月と水平線の間の角度を測定することができる装置です。星の位置が分かれば緯度が、現在の時刻と星の位置が分かれば経度が分かるので昔は航海などに使われていました。

後は三角関数を使ってビルとかの高さを計ることもできます。

詳しい使い方とかはwikipediaとか見てください。 “六分儀作ってみた” の続きを読む

なるだけ安く光学式エンコーダーを自作する

ロ技研秋のブログリレー2020の4回目の記事です。

こんにちは.皆さん,回転数計測してますか?

ロボットの関節がどれくらい曲がったかや,タイヤが何メートル進んだかを知るには,それを駆動するモーターがどれくらい回転したのかを知る必要があります.

一般的にこの測定にはエンコーダーと呼ばれる機器を使用することをご存じの方も多いでしょう.

一口にエンコーダーといっても色々な種類が存在しますが,これらは主に「磁気エンコーダー」「光学式エンコーダー」「容量性エンコーダー」に分類できます.

容量性エンコーダー・ディスク、光学エンコーダー・ディスク、磁気エンコーダー・ディスクの比較 (CUI Devices:容量性エンコーダー、磁気エンコーダー、光学エンコーダー – 技術比較 より)

今回は構造も簡単でモーターが発生させる磁気の影響もうけにくい「光学式エンコーダー」を自作していきます. “なるだけ安く光学式エンコーダーを自作する” の続きを読む

楽しいjulia

ロ技研秋のブログリレー2020の2回目の記事です。

みなさんこんにちは。ふらいです。

why we created julia を読むと多くの人がjuliaを使ってみたくなると思います。

僕たちが欲しい言語はこんな感じだ。まず、ゆるいライセンスをもったオープン ソース言語。 そこに、Cの速さとRubyの動的さが欲しい。 Lispのような同図像性があって真のマクロを使えるけど、Matlabのように分かりやすくて自然な数学的記述もできる言語だ。 そのうえ、Python並みに汎用プログラミングに使えて、R並みに簡単に統計分析ができて、Perl並みに文字列処理を自然にできて、Matlab並みに線形代数計算に強くて、シェル並みにうまくプログラムをつなぎ合わせることができる。 さらに、すっごい簡単に覚えられるけど、凄腕ハッカーも満足させられるものだ。 インタラクティブに使えて、かつコンパイルもできる。

 

どんな人にでも使ってみて欲しいですが特に

  • 宗教上の理由でpythonが使えない人
  • ライセンスの問題でmatlabが使えない人
にはおすすめです。

 

juliaはパッケージ管理機能があって、標準ライブラリで行列演算ができて、Cの関数を呼び出せて、pythonも呼び出せて、ROSのパッケージもあって、webフレームワークもあって、…と紹介しているときりがないので、今回は特にjuliaではこんな書き方ができて楽しいよというのをいくつか紹介しようと思います。

“楽しいjulia” の続きを読む

[2020新歓]ロボット制御シミュレーション体験してみた!!part2

皆さんこんにちは、19のみたらし団子です(例によって今考えた仮の名前なのでハンドルネーム大募集中です)。
今日もテーマは「ロボット制御シミュレーションしてみた!!」となっております。

前回の続きなので読んでない方は下にスクロールして読んでみてください。
またurlを貼っておきますのでぜひ皆さんも参加してみてください
https://www.rogiken.org/shinkan/2020/introduce.html

さて、前回は光センサを使ってロボットにライントレースをさせるところまでをやりました。そこで、今回は様々なフィールドを使ってライントレース課題に挑戦していきたいと思います。

では早速やっていきましょう!!

課題1:

ラインセンサ1つを用いて,フィニッシュゾーンに到達せよ

  • 難易度☆☆
  • フィールド番号:02
  • 初期状態:init_state = [200; 600±20; 0];
  • センサ制限:ラインセンサ1つ
  • 目標時間:-

フィールド変更

↑フィールド02はこんな感じ。黒いのがラインで、茶色いのは壁です。例によって右側の丸がゴールです。

しかし、センサーひとつとはなかなかむつかしいような気がします。

前回やったように、センサの値の大小で左右の速度を変えるのがよいでしょう。というかそれくらいしか知りません。

そういう方針でとりあえず書いてみました。

 

コントローラープログラムの方は、センサの値が基準の値より大きいか小さいかで左右の速度を変えるようにしています(前回の記事でやりましたね)。

また、センサの位置ですが、機体の中心からは少しずらしています、フィールド図を見てもらうと分かりますが、結構壁との距離が狭いので機体の中心がラインの真ん中を通るくらいじゃないとぶつかっちゃうと思います。まあ見てなって。

それではやってみましょう。

いけました。完璧ですね。文句なしだと思います。カクカクしてる?

あんまり細かいこと気にしてると禿げますよ….

課題はクリアしましたが、カクカクしてるのが気になりますね。

ということで、これまた前回やったp制御を試してみましょう。センサーひとつはバカなので(?)、センサーを5個に増設しました。

↑センサーが

いっぱいあって

嬉しいね。

プログラムは以下のようにしてみました。

少し説明します。今回やりたいのは線からのズレの程度によって速度も変えるということです。そういう訳で、センサーの値にセンサーの配置による補正をかけたものの和をズレとして使うことにしました。このズレを前回やったように速度に反映させているのですが、このままだとフィールド図を見てもらうと分かる通り、直線から円に移るところで、うまく曲れません。そこで、すべてのセンサーが黒線を感知したら大きく曲るようにしています。

上手くいくかは分かりませんが、まあやってみましょう。やってみないと分からないって大科学実験も言ってた。

行けましたね、行けました。それ以外に感想はないですが、いいんじゃないですか?ほかにも課題はいくつかありますが、この辺にしておきましょう。

授業が延期になって暇な新入生の皆さん、ぜひこのロボット制御体験に参加してみましょう、周りの人はみんなやっています、知らんけど。

乗るっきゃない、このBigWave!!!

ノマドワーカーのイラスト

ということで、今回はこのへんでお別れしたいと思います。

下にリンクを貼っておきます

https://www.rogiken.org/shinkan/2020/introduce.html

 

[2020新歓]ロボット制御シミュレーション体験してみた!!

皆さんこんにちは、19のみたらし団子です(今考えた仮の名前なのでハンドルネーム大募集中です)。

さて、20の皆さんご入学おめでとうございます。
とは言っても入学式が中止になったようなのでまだ実感はないと思います。なんか大変やね…(笑)
ところで、今日のテーマは「ロボット制御シミュレーションしてみた!!」となっております。
ロ技研では毎年様々な新歓イベントを行っていますが今年はコロナが…なので、オンラインで皆さんにロ技研の魅力を知っていただこう!ということでこういうことを試みています。
そこで、ほぼ新入生と言っても過言ではない私も新入生と一緒に参加してみた!というわけです。urlを貼っておきますのでぜひ皆さんも参加してみてください
https://www.rogiken.org/shinkan/2020/introduce.html

ではやっていきましょう!
優秀な先輩部員が作った懇切懇切丁寧なwikiがあるのでこれに従って進めていくことにします。
トップページからzipファイルをダウンロードしてきました,私のpcには既にmatlabが入っているので早速動かしていきます
どうやらコントロール用、ロボット機体用のマトラボプログラムを弄ってシミュレーションをするようですね..まずは速度をいじってみます!
二つの数字が左右の車輪のモーターに与える電圧に対応しているみたいです、とりあえずまっすぐ進んでほしいので左右の値を共に2.5としました。
右側の丸い所に乗ればゴールなのですが、、、、

はいゴールしました。本当にお疲れ様でした。ロ技研来てね!さよなら~~

手を振る男の子のイラスト「バイバイ」

 

……とまあうまくいくのは稀です。

だいたいこのように壁にぶつかってしまいます。というのはこのロボット、キチンとまっすぐには進まないようになっているんですね。
それをどうにかしてゴールさせてやろうというのが制御のお仕事なわけです。今はやりのテレワークというやつですね、知らんけど。

理論上は左右の速度が一緒ならまっすぐ進むのですが、このロボットのようにうまくいかないということは,実際のロボットでも起こります、車輪にかかる摩擦力が左右で異なったりするからですね。多分そうだと思う。
ラジコンのように操作しているならば多少曲がっても問題ありませんが、今回のように自動で動くロボットではドンドンズレが大きくなってしまいますからこれは良くないでしょう。
プログラムを書いて制御するためにも,とりあえずどのくらいロボットが基準線からずれているかを何らかの方法で取得したいですね。
ということで、センサーを導入してロボットの位置を取得してみたいと思います。
導入したものがこちらになります。

上の画像の小さい赤丸がそうですね。こいつは光センサーを模したもので、黒い線上だと小さい値、白いフィールド上だと大きい値を返してきます。これを使ってなんとかまっすぐ進ませたい‼!
ということで、二つの光センサーを取り付けて、大きい値が帰ってきたら,つまり左右にズレが発生したら、左右の速度を変えてライン上に復帰するようにしてみました。

うまくいきました。本当にお疲れ様でした。ロ技研来てね!!さよなら~

手を振る男の子のイラスト「バイバイ」

 

….はい、うまくいったはいいけどなんかすっごいカクカクしてる。これは嫌ですね、嫌じゃないですか?
これどうやったら直るかなって一晩中考えたんですが(大嘘)、線からの離れ具合によって左右の速度をうまく変化させればよいのではないでしょうか。ちょっとしかずれていないのに猛スピードで戻そうとしたらそらいかんでしょ。ということでやって見ます。

☝0.3に左右のセンサーからの値を掛けています、センサーからの値が小さければ車輪の速度もあまり変わりません。
さてさてどうかな…?

だいぶ良くなりましたね。良くなりました。制御の知識皆無の僕の見解によるとこれがいわゆるP制御というやつです。無知をさらしたくないのでこれ以上は触れません。みんな、勉強…しよう!

ここまででもはや私はロボットを自由自在に動かせるようになりました。
そこで次回はライントレース課題にチャレンジしたいと思います。
では今度こそさようなら~

ロボット制御体験は以下のリンクから!

https://www.rogiken.org/shinkan/2020/introduce.html

オンラインでのロボット制御体験会を開催します!

こんにちは。部長の18-Hitomosiです。(部長になりました)

オフライン新歓が中止になってきたところなんですが、ロ技研(ロボット技術研究会の略です)では新歓イベントとして、オンラインで新入生向けにロボット制御体験会を開催することになりました!日付がアレですが、本当ですよ!

オンラインでロボット動かせるんですか?と思う方もいると思いますが、今回はMATLABというソフトウェアを用いたシミュレーションで2輪ロボットを動かしてもらいます。 “オンラインでのロボット制御体験会を開催します!” の続きを読む