こんにちは、みねさんです。
皆さん おそくなりましたが、あけましておめでとうございます。
今、僕たちのサークルではNHK1次審査用のビデオ撮影を行っています。
今年はセンター試験と同じ日に撮影をしています。受験生と同じくこちらも審査に向けて全力を尽くせればと思います。
少し不安なのが、今部員が次々と風邪をひいてしまい、人手が不足していることですね。
最近は冷え込みがさらにひどくなってきましたので、風邪には皆さんもお気を付けください。
僕は制御班なのですが、今までNHK用の自動ロボットのプログラムの作成と同時にPID制御関数の作成を主にしてきました。PID制御とは、例えば、モーターをある回転数だけ回したいといったときに目標値に対して今どれだけ離れているか(偏差)に比例してスピードを下げていき、最終的にはぴったり目標値にくっつける制御です。
この偏差に比例してというのがP(比例)制御といわれるものです。これだけでも、ある程度目標値の近くまで行くのですが、途中で止まってしまいます。
なぜかというと、maxスピードを100、比例係数を0.3とした場合、目標値に近付いていけばいくほど偏差は小さくなっていきます。この偏差が小さくなりすぎてしまうと目標値の手前でモーターのスピードが0になってしまうのです。
この現象を解決するために次に導入するのがI(積分)制御です。
ここからは説明が長くなるので簡単に説明していきます。I制御とは、止まってしまったモーターを最後に少し動かし目標値にピタっと引っ付けて上げる動作をします。高校で習った積分を思い出してみてください。積分とは微小面積の累積をだしてある区間の面積を求めていましたね。その面積部分の値を計算式に足し算してあげることで、P制御式の値が0になった後でも、モーターは動き続けることができるというものです。
この2つを組み合わせたものをPI制御といいます。
このPI制御でも十分目標値に合わせることができるのですが、目標値に合わせるスピードが遅いと感じた時にスピードを上げてくれる、D(微分)制御というものがあります。
これは単位時間あたりに(現在の偏差)ー(前回読み取った偏差)の値をだし、PI制御式に足し合わせます。そうすることで、モーターのスピードをPI制御以上の値で出力できます。
PID = (比例制御)+(積分制御)+(微分制御)
といった感じになります。
文字だけの大まかな説明でしたので、わかりずらいかもしれません。そこはご了承ください。
また、間違いなどがあったらすいません。
これは内輪の内容となってしまうのですが、PID制御実行中にcprintf()を使用した場合、処理が重くなってしまうのか、反応が遅くなってしまうみたいです。
長々となってしまいましたが、これからもNHKロボコン出場を目指して頑張っていきたいと思います。
2018年1月13日土曜日
2017年12月10日日曜日
手動ロボット 製作中・・・
お久しぶりです。ペンギンです。
現在ハード班では設計を終え、自動ロボットは、ほぼ完成、手動ロボットは製作中という状態で、完成に向けて頑張ってます。ただ、完成してもシャトルコックの受け渡しなど、不安要素が残っているので、気が抜けません・・・
また、先週、部屋を借りてフィールド作りをしました。借りれた時間が短かったので、二週に渡って行い、無事完成しました。
フィールドが完成したので、1次ビデオ審査に向けて、本格的に調整をしていきたいです。
現在ハード班では設計を終え、自動ロボットは、ほぼ完成、手動ロボットは製作中という状態で、完成に向けて頑張ってます。ただ、完成してもシャトルコックの受け渡しなど、不安要素が残っているので、気が抜けません・・・
また、先週、部屋を借りてフィールド作りをしました。借りれた時間が短かったので、二週に渡って行い、無事完成しました。
フィールドが完成したので、1次ビデオ審査に向けて、本格的に調整をしていきたいです。
2017年11月14日火曜日
岐大祭を終えて
はじめまして。制御班1年のこばです。
先日、岐大祭が開催されました。当日は生憎の雨でしたが、たくさんの方に来て頂けました。台風の接近、ロボットの不調、看板の出来がアレ、など色々ありましたが、楽しんで頂けたでしょうか?
これをきっかけに少しでもロボコンに興味を持って頂けると嬉しいです。
12月には岐阜大学フェアが開催されます。
そこでもロボットの展示を予定しておりますのでぜひお越しください。
さて、これからはNHKロボコンに向けて徐々に忙しくなる時期です。
かく言う私もI2C通信というものにトライしているのですが、無限ループにハマっています…。
先日、岐大祭が開催されました。当日は生憎の雨でしたが、たくさんの方に来て頂けました。台風の接近、ロボットの不調、看板の出来がアレ、など色々ありましたが、楽しんで頂けたでしょうか?
これをきっかけに少しでもロボコンに興味を持って頂けると嬉しいです。
12月には岐阜大学フェアが開催されます。
そこでもロボットの展示を予定しておりますのでぜひお越しください。
さて、これからはNHKロボコンに向けて徐々に忙しくなる時期です。
かく言う私もI2C通信というものにトライしているのですが、無限ループにハマっています…。
無限ループってこわいですよね。ほんと。
以上、こばでした。
2017年10月27日金曜日
C106、立つ
お久しぶりです。おんせん君です。
今回は、岐大祭のために調整していたC106と、ギダイガ―についての現況報告でございます。
二体とも、ここの所調子を崩していたのです。
ところが、ギダイガ―は偉大なる諸先輩方の力で復帰し、ロボワン講習会でその任を果たしていたのです。一方、C106については、この度私が取説とにらめっこをしながらなんとか直立させるまでは復帰できました。
主な不調の原因は、サーボのトリム調整が出来ていなかったことでした。
もう、ひっちゃかめっちゃかな状態でした。とりあえず、丁寧に調整して少しマシになったな? といったところですね。
もう一つ。
windows10だからか、ギダイガ―とC106を上手くパソコンが認識できなかったという問題がありました。そちらについては、近藤科学さんから出ているUSB Serial Adapter HSのドライバの最新版に変更したらあっさりと認識できるようになりました。
おかげで、モーション作成、サーボの確認等がしっかりとできるようになりました。
とはいえ、なかなか安定して認識してくれず、困りものです。認識できるときは安定して認識してくれるのですが……
なにはともあれ、岐大祭では二体とも動きそうで良かったです♪
今回は、岐大祭のために調整していたC106と、ギダイガ―についての現況報告でございます。
二体とも、ここの所調子を崩していたのです。
ところが、ギダイガ―は偉大なる諸先輩方の力で復帰し、ロボワン講習会でその任を果たしていたのです。一方、C106については、この度私が取説とにらめっこをしながらなんとか直立させるまでは復帰できました。
主な不調の原因は、サーボのトリム調整が出来ていなかったことでした。
もう、ひっちゃかめっちゃかな状態でした。とりあえず、丁寧に調整して少しマシになったな? といったところですね。
もう一つ。
windows10だからか、ギダイガ―とC106を上手くパソコンが認識できなかったという問題がありました。そちらについては、近藤科学さんから出ているUSB Serial Adapter HSのドライバの最新版に変更したらあっさりと認識できるようになりました。
おかげで、モーション作成、サーボの確認等がしっかりとできるようになりました。
とはいえ、なかなか安定して認識してくれず、困りものです。認識できるときは安定して認識してくれるのですが……
なにはともあれ、岐大祭では二体とも動きそうで良かったです♪
2017年10月10日火曜日
結論:がんばる
こんにちは! はじめまして! 1年ハードのかとたくと申します!
この前のとうロボでは足回りと射出機構を作ってました。
1年でトップバッターなので何書いていいかわかりません。
そもそも誰が見てくださってるのかな・・・。
当たり障りのないことを、つれづれなるママに書いていこうと思います。
最近暑くなったり寒くなったり大変ですよね。みなさん体調はいかがでしょうか。
私は死んでます。現在、岐阜大学ロボコンサークルは、来年のNHKロボコンに向けて元気に活動しております。
そろそろ作戦も固まってきたので、ハードとしては 設計→試作→設計... の無限ループが
始まりそうです。
無限ループってこわいですよね。ほんと。
また、NHKと並行して、今月末の大学祭(10/28,29)への準備も進められています。
今年もクレープ売ってロボット走らせますよ!!
看板の製作は1年が担当することになっているのですが、去年の看板がカッコよすぎて
ハードルがもうアレです。
まあ看板がどうであれ、クレープとロボット展示、ぜひお越しください!!正門あたりまで行列が続くといいな。
大学祭、NHK・・・と、これから長いので、体調崩さないようにがんばっていきたいと
思います。2017年10月3日火曜日
1byteを重複して分割する方法
こんにちは、2年制御長のヒロです。
今回はとうロボで使った通信用共用体の解説です。
マスタースレイブ間でのUSART通信時に1byte単位で送るのに情報圧縮をしよう、ということで共用体とビットフィールドを組み合わせて使ってみました。ここで1byteを場合に応じて、分割する領域を変える必要があったため、2つの構造体を使用しています。具体的なソースコードは以下のようになります。
typedef union air{
unsigned char data:8;
struct{
unsigned char operate:3;
unsigned char info:5;
};
struct{
unsigned char invalid:3;/*operateと同じ内容使わない*/
unsigned char num:4;/*個体識別番号*/
unsigned char state:1;
};
}air;
dataは通信時に使用します。中身は後に出てくる二つの構造体に酔って変動します。oprerateは操作を指定するのに使用します。マクロで操作を記述しておくとさらに見やすくなります。infoはnumとstateを使用しない操作を指定したときにその分のビットをまとめてより情報量を多くするのに使いました。
構造体の性質上、識別子の名前からなんのデータを取り扱っているか分りやすい点、ビットフィールドを使うので桁あふれが起こらないという点で便利ですが、いちいち指定するのがめんどかったりします。ビット演算だけで行う方がいいかもしれません。
今回はとうロボで使った通信用共用体の解説です。
マスタースレイブ間でのUSART通信時に1byte単位で送るのに情報圧縮をしよう、ということで共用体とビットフィールドを組み合わせて使ってみました。ここで1byteを場合に応じて、分割する領域を変える必要があったため、2つの構造体を使用しています。具体的なソースコードは以下のようになります。
typedef union air{
unsigned char data:8;
struct{
unsigned char operate:3;
unsigned char info:5;
};
struct{
unsigned char invalid:3;/*operateと同じ内容使わない*/
unsigned char num:4;/*個体識別番号*/
unsigned char state:1;
};
}air;
typedef union air{
unsigned char data:8;
struct{
unsigned char operate:3;
unsigned char info:5;
};
struct{
unsigned char invalid:3;/*operateと同じ内容使わない*/
unsigned char num:4;/*個体識別番号*/
unsigned char state:1;
};
}air;
dataは通信時に使用します。中身は後に出てくる二つの構造体に酔って変動します。oprerateは操作を指定するのに使用します。マクロで操作を記述しておくとさらに見やすくなります。infoはnumとstateを使用しない操作を指定したときにその分のビットをまとめてより情報量を多くするのに使いました。
構造体の性質上、識別子の名前からなんのデータを取り扱っているか分りやすい点、ビットフィールドを使うので桁あふれが起こらないという点で便利ですが、いちいち指定するのがめんどかったりします。ビット演算だけで行う方がいいかもしれません。
2017年9月20日水曜日
とうろぼを終えて
こんにちは 2年ハード班の岩っちょです。
先日とうろぼが終わりました。結果は2年の機体が決勝トーナメントに進みましたが、初戦敗退でした。
2年の機体はなかなか通しで練習することができなかったため、射出部分の定荷重バネの出力不足に気づくことができませんでした。
他校の方たちは自分たちの定荷重バネよりも強い定荷重バネを何個も使っていたため、自分たちの試行不足を痛感しました。
NHKロボコンに向けての活動も始まりました。今度は多く試行できるよう早め早めに行動していきたいです。
先日とうろぼが終わりました。結果は2年の機体が決勝トーナメントに進みましたが、初戦敗退でした。
2年の機体はなかなか通しで練習することができなかったため、射出部分の定荷重バネの出力不足に気づくことができませんでした。
他校の方たちは自分たちの定荷重バネよりも強い定荷重バネを何個も使っていたため、自分たちの試行不足を痛感しました。
NHKロボコンに向けての活動も始まりました。今度は多く試行できるよう早め早めに行動していきたいです。
登録:
投稿 (Atom)