皆さんこんにちは、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