ロボット

全40件中1~20件表示
  • 卓球するロボットアームを作りたい

    下記のような卓球するロボットアームを作りたいのですが、市販のサーボモーターを使ってアームを3Dプリンタで作り、ビジュアルフィードバック制御で、DIYで可能ですか? https://youtu.be/J3gvpaNFvZU プログラムとしては、 ①画像認識で卓球の球を認識し、その位置、速度の情報を取得するプログラム ②その球の軌道を予測するプログラム ③軌道に対してどのようにラケットを振るか(ラケットの軌道、姿勢をどうするのか)というプログラム ④目標軌道通りになるようにモーターを制御するプログラム ができれば可能でしょうか? ②以外は何とかできそうな気もしないでもないですが、②はどのようにしてすれば良いでしょうか?ご教授のほどよろしくお願いします。

  • Arduinoもしくはラズパイの使い道

    個人的趣味でラズパイとArduinoを購入したのですが、Lチカとモーターのフィードバック制御をやったくらいで、あとはほとんど使っていません。何か面白い使い道はないでしょうか?趣味でされている方、どういう使い方をされていますか?よろしくお願いします。

  • Arduinoにカウンターを使ってエンコーダ入力

    Arduinoにエンコーダで計測した角度を取り込みたいのですが、エンコーダ対応のカウンターは有りますでしょうか?割り込み処理でカウントするのではなくカウンターで取り込みたいです。これまではPCで計測していたた め、PCIのカウンターボードを使っていました。どうぞよろしくお願いします。

  • 産業用ロボットの垂直多関節ロボットアームについて

    産業用ロボットについて教えてください。 ・自動車工場の溶接ロボット(6軸垂直多関節アーム)の制御のサンプリング周期はどのくらいなのでしょうか? ・昔、トヨタの工場見学に行った時、溶接ロボットが意外に高速に動いていたのですが、ロボットの制御系はアームの動力学(順動力学問題、逆動力学問題)を考慮して設計されているのでしょうか? ・ロボット工学の専門書でよく知られている川崎氏の本を見ると、修正Denavit-Hartenberg記法、ヤコビ行列、逆運動学問題などについて書かれていますが、溶接ロボットなどの垂直多関節ロボットアームを制御するためには、それらは必要でしょうか? ・制御系は何が使われているのでしょうか? PID制御でしょうか? ご教授頂ければ幸いです、勉強させて頂きたいです。

  • 制約条件下でのブラシ付きDCモータの角度制御

    制約条件下でのブラシ付きDCモータの角度制御について教えてください. ブラシ付きDCモータの角度制御の制御シミュレーションをMATLABでしています.連続時間系です. 制御対象のモデルは,「印可電圧を入力,電流を出力とする1次遅れ系の伝達関数」→「電流を入力,モータ軸の角速度を出力とする1次遅れ系の伝達関数」→「角速度から角度に変換するための積分器」,および「角速度から印可電圧に負帰還する逆起電力のフィードバック信号」から構成されています. 制御構造は,電流フィードバックループ(PID制御),角速度フィードバックループ(PD制御),角度フィードバックループ(PID制御)をから成るカスケード制御系です. 制約の無い条件下ではシミュレーションが上手くいったのですが,制御入力(印可電圧)に上限値を設定するとワインドアップが発生しました.そこで,アンチリセットワインドアップ補償器を付けたのですが,制御量(角度)が目標値に収束しません.角度フィードバックループを外して,電流フィードバックループ(PID制御)と角速度フィードバックループ(PD制御)からなる角速度フィードバック制御系にすると,アンチワインドアップ補償器を付けると制御量(角速度)が目標値に収束します. なぜ角度フィードバックループを付けると,アンチリセットワインドアップをつけても目標値に収束しないのでしょうか?どうすれば収束しますでしょうか? ご教授の程よろしくお願い致します.

  • サーボ系の多重ループ構造(カスケード制御)について

    DCモータの角度の追従制御などサーボ系の制御構造は、電流制御ループ、速度制御ループ、位置制御ループの多重ループ構造(カスケード制御系)をもつと思いますが、なぜ多重ループにしないとなめらかな制御ができないのでしょうか?位置制御ループのみだとなぜ制御性能が良くないのでしょうか?(もし可能であれば数式を使って教えていただければ幸いです。) また、サーボ系であればカスケード制御系にしたほうが必ず制御性能が良くなるのでしょうか?例えば、エアシリンダの位置制御もそうなのでしょうか? どうかよろしくお願い致します。

  • フィードバック制御におけるサンプリング周期の

    ある質問掲示板で、DCモーターのフィードバック制御について質問したときに、質問文の中の「サンプリング周期は1ms」ということに対して、回答者様から、 「>サンプリング周期は1ms←この時点で破綻していると思います。モーターの反応速度はそんなに速くありません。時定数を適切に設定しないと、制御系はまともに動きません。」 と回答を頂いたのですが、これは正しいのでしょうか?制御対象の時定数に対してサンプリング周期が短いことによって制御性能に与える悪影響はあるのでしょうか?PID制御などをする時に微分要素へのノイズ成分の影響が考えられますが、フィルタを通せば済む問題だと思います。その回答者様に追加質問したのですが、返答がありません。この回答者様はどのような理由で、サンプリング周期が1msというのが破綻している、と回答されたと思いますか? どなたかご意見頂けると幸いです。 よろしくお願い申し上げます。

  • リアルタイム制御のためのPCスペック

    回転型倒立振子の安定化制御を最適制御(LQR)でしようと思っています。エンコーダを使ってDCモーターをフィードバック制御します。使用する環境は、PCとPCI ExpressのIOボード、エンコーダカウンタとで構成される環境と、Arduinoおよびカウンタ搭載の制御基盤とで構成される環境で、それぞれで実験をする予定です。後者の環境の構築方法はわかったのですが、前者、つまりPCとIOボード、エンコーダカウンタで構成する環境をするために、PCのスペックはどれくらいのものが良いでしょうか?CPU、メモリはどれが良いでしょうか?(Core i5、8GBで十分?)また、ワークステーションにするべきでしょうか?OSはDebianの予定です。どうぞよろしくお願いします。

  • カウンタボードについて教えてください。

    エンコーダで角度計測をするのに、カウンタボードを介するのと、カウンタボードを使わずに下記のようなプログラムで角度を計測するのとでは、何が違うのでしょうか?カウンタボードから出力される信号は何なのでしょうか?カウンタボードを使うと下記のようなプログラムは必要ないのでしょうか?カウンタボードの簡単な原理なメリットについて教えてください。よろしくお願いします。 byte value = B00000000; float degree = 0.00; void setup() { Serial.begin(9600); pinMode(2, INPUT); pinMode(3, INPUT); } void loop() { value = (value<<2)+(digitalRead(2)<<1)+digitalRead(3); value = value &B00001111; if(value==B00000001||value==B00000111||value==B00001110||value==B00001000) { degree = degree+3.75; } else if(value==B00000010||value==B00001011||value==B00001101||value==B00000100) { degree = degree-3.75; } if(degree>180) { degree = degree-360; } else if(degree<=-180) { degree = degree+360; } Serial.print("degree: "); Serial.println(degree); }

  • ArduinoでDCモーターの角度制御

    arduinoでDCモーターの角度のフィードバック制御をしたく思っており、エンコーダーで角度を計測しながら、一定時間毎(10ms)にモーターに制御入力を入れたいです。エンコーダーで角度を計測するには外部割り込みが必要で、一定時間ごとにモーターへの電圧を変化させるにはタイマー割り込みが必要だと思います。この場合どのようなプログラム構成にすれば良いのでしょうか?void setup( )の中に、 attachInterrupt(interrupt, function, mode) ; MsTimer2::set(unsigned long ms, void (*f)()) ; MsTimer2::start(); を書けば良いのでしょうか?この場合、タイマー割り込みで実行される関数 void (*f)()の処理中に、外部割り込みのイベントが発生した場合、functionを実行してくれるのでしょうか?また、functionの実行中にタイマー割り込みが入ることもあり得るのでしょうか?この場合、エンコーダによる角度計測がきちんと行われないことになると思うので、どうすれば良いでしょうか? ご教授のほどどうぞよろしくお願い致します。

  • 回転型倒立振子の振り上げ制御

    回転型倒立振子の振り上げ制御をするのに、最も適した制御系は何でしょうか?H∞制御でしょうか?スライディングモード制御でしょうか?それともその他の制御でしょうか?

  • 多入力多出力PID制御と現代制御

    多入力多出力PID制御と現代制御(状態フィードバック制御)を比較した場合、制御性能に差はあるのでしょうか?それとも同じでしょうか?

  • 6軸アームの手先軌道制御と二足歩行ロボットの動歩行

    6軸のロボットアームの手先軌道を制御するのと、二足歩行ロボットにZMP制御で動歩行をさせるのとでは、どちらの方がどういう点で難しいですか?

  • PCのCPUで演算処理し、Arduinoで入出力

    ArduinoをPCに接続して、Arduinoを、PCのIOボードとして使うことは可能でしょうか?つまり、信号の入出力はArduinoの入出力ポートから行って、演算処理をマイコンではなくPCのCPUでさせたいです。この場合、どのようなプログラムを書けば良いのでしょうか?Arduinoを接続しているPCのポートにアクセスして、それからArduinoの入出力ポートにアクセスするプログラムになると思うのですが、そのやり方がわかりません。一旦マイコンのレジスタにアクセスする必要があるのでしょうか?開発環境は何を使えば良いでしょうか?PCのOSはLinuxです。ご教授頂ければ幸いです。

  • ロボットの運動を解析するために必要な数学的知識

    ロボットアームなどのロボットの運動を解析するために必要な数学的知識は何か教えてください.下記が理解できていれば下地としては十分でしょうか? ・線形代数 ・解析学 ・微積分学 ・ベクトル解析 ・微分方程式

  • リアルタイムOS(RTOS)の割り込み処理について

    RTOSではないOSの割り込み処理とRTOSの割り込み処理とでは,作成するプログラムは違うのでしょうか? 例えば,Linux PCでロボット制御のためのC言語プログラム(プログラムAとします)を作成して実行したところ,リアルタイム性が良くなかったため,リアルタイムカーネルをインストールしたとします.そうするとプログラムAを何も書き換えずにそのまま実行するとRTOSの割り込み処理がおこなわれるのでしょうか?それとも,プログラムAをRTOSの割り込み処理をするためのプログラムに書き換えないといけないというものでしょうか?(RTOS専用の割り込み処理のための関数などがあるのでしょうか?) よろしくお願いいたします.

  • リアルタイムOSが必要かどうか

    Linuxが入ったPCで、AD/DAボードを介してロボット制御(サンプリング周期は1ms)をしようと思うのですが、RT Linuxなどのリアルタイムカーネルは入れた方が良いでしょうか?それとも、1ms程度なら必要ないでしょうか?

  • PCに挿したIOボードを制御するためのプログラム

    IOボード(AD/DAボード)を使ってPCで入出力制御(例えばモーターのフィードバック制御)をしたいと思っているのですが、ボードにアクセスするためのプログラムや、信号を入出力するためのプログラムをどのように書いたら良いかわかりません。おそらくデータシート?に書いていると思うのですが、知識不足で読み解くことができません。(いままでArduino IDEでArduinoの制御をしたことしかありません。普通にC言語でAVRマイコンをプログラムして制御することはできません。C言語の基礎知識はあります。) そこで質問なのですが、PCから(例えばPCIスロットに挿した)IOボード(AD/DAボード)を制御するための知識は、どのようにして習得できますでしょうか?参考になる本やサイトが見つかりません。PICやAVRなどのマイコンであれば本が色々出ているようなのですが、そのようなマイコンを使えるようになれば、PCからIOボードを制御できる基礎知識は付きますでしょうか?

  • ロボット制御のためのマイコン

    ロボット制御のためのマイコンを考えた場合,Arduinoを使う場合と,H8マイコンやPICマイコンで自分で一から回路基板を組む場合とを比較した場合,後者ではできて前者ではできないことは何があるのでしょうか?ご教授のほどよろしくお願いします。

  • PCでモータなどをリアルタイム制御する方法

    RinuxOSのPCからAD/DAボード(USB接続)を介して、モーターなどのメカトロニクス機器をリアルタイム制御したいと思っています.それを実現するために, ・UbuntuなどにRTOSをインストールする。 ・PCにAD/DAボードを設置する。 ・デバイスドライバとAPIをインストールする。 まではわかったのですが、「AD/DAボードにアクセスするためのプログラム」をどのように書けばよいのかわかりません.また,「DAボードから任意の電圧を出力する(またはADボードを介して外部電圧をPCに取り込む)」にはどのようにプログラムを書けば良いのかもわかりません.そもそもAPIというものが何をするためのものかも分かっていません. ちなみに、Arduinoを使ってモータの制御はしたことがあります. どなたかアドバイスいただければ幸いです.「そもそもまず~~という本で~~の知識を入れるべき」というレベルでも結構ですので,どうかよろしくお願い致します。