ロボティクス

プロのロボットエンジニア、愛好家、研究者、学生のためのQ&A

3
ソナークロストークの対処方法
私たちのロボットには、次のような12個のソナーセンサーの円形配列があります。 ソナーセンサー自体はかなり良いです。ノイズに対処するためにローパスフィルターを使用しており、測定値はかなり正確に見えます。しかし、ロボットが壁のような平面に出くわすと、奇妙なことが起こります。ソナーには、壁を示すような読み取り値は表示されませんが、曲面のように見えます。 以下のプロットは、ロボットが壁に面しているときに作成されました。赤い直線と比較して、青い線で曲線を確認してください。赤い線はカメラを使用して壁を検出することによって作成され、青い線はフィルター処理されたソナーの読み取り値を示しています。 このエラーは、1つのソナーセンサーのパルスが壁で斜めに跳ね返り、別のセンサーによって受信されるクロストークが原因であると考えられます。これは系統的なエラーであるため、ノイズの場合のように実際に対処することはできません。それを修正するための解決策はありますか?

3
サーボが壊れている兆候は何ですか?
キットを入手したばかりで、それが自分かどうかはわかりませんが、連続サーボの1つが壊れている可能性があります。マイクロコントローラーに接続したときに最初に何が起こったのか、コマンドを送信するとハミング音が鳴りました。2番目の連続サーボがまったく機能しなかった 私はaurdinoベースのボードでさまざまなポートをいじってみましたが、役に立たなかっただけでハムです。次に、ハミングサーボを完全に取り外し、2番目のサーボだけを配置しました。2番目の連続サーボは、私が要求した方向に動き始めました。 最初のものを差し込んだのですが、2つ目だけが動きました。 次に、手で回転させてみました。2番目の抵抗は抵抗が大きく、1番目の抵抗は抵抗が劇的に低く、手で回転するほうが60%簡単です。 これは私が修正できるものですか?誰かがこれらの問題を以前に経験したことがありますか? よろしくお願いします。

2
障害物回避のためのソナー:センサーの数と設置場所は?
2Dロボットのナビゲーション中に障害物を回避するために、ソナーセンサーを配置するのに最適な位置/角度は何ですか?いくつあるべきですか? 配置の問題に関する理論や例があるかどうか知りたいのですが。ロボットの動き方や形状にもよりますが、一般的な答えを探しています。

1
誰が「SLAM」という言葉を作り出した(または普及させた)のですか?
SLAMに関するWikipediaの記事によると、元のアイデアは1986年にRandal SmithとPeter Cheeseman(空間的不確実性の推定と表現について [PDF])から生まれ、Hugh F. Durrant-WhyteとJJ Leonard(同時マップ作成)によって洗練されましたと 1991年の自律移動ロボットのローカリゼーション。 ただし、どちらの論文も「SLAM」という用語を使用していません。その用語はどこから(いつ)由来したのですか?それを普及させた特定の著者またはホワイトペーパーはありましたか?
10 slam 


4
「見えないライン追従ロボット」を作るには?
仮想パス(「白い表面上の黒い線」などの見えないパス)をたどるロボットを構築したいと思います。 ロボットが混雑した場所で商品や資材を運ぶSFのビデオを見て、私は熱狂的です。そして、彼らは実際には物理的な線をたどっていません。彼らは障害物、深さなどを感知します。 ポイントAからBまでの特定の(仮想)パスをたどるロボットを1つ構築したいと思います。 私はいくつかのことを試しました: ロボットの「ホール効果」磁気センサーと電流を運ぶワイヤー(テーブルの下)を使用します。ここでの問題は、ホール効果センサーの近くが非常に小さい(<2cms)ため、ロボットがオンラインかオフラインかを判断するのが非常に難しいことです。テーブルが1インチの厚さなので、一連の磁石を使用してもこの問題を解決できませんでした。したがって、このアイデアは失敗しました:P 紫外線塗料(ライン上)を使用し、ロボットのUV LEDをセンサーとして使用します。これにより、ロボットのジグザグモーションが増加します。そして、UV光源を使用する潜在的な脅威のために、この考えでさえも失敗しました:P 最後に、カメラを上に置き、画像処理アルゴリズムを使用して、ロボットが並んでいるか分岐しているかを確認することを考えました。 これより良い解決策はありますか?いくつかの創造的でシンプルなソリューションを本当に探しています。:)

5
土を安く、動かし、プログラム可能なロボットを探す
私は昔の「懐中電灯と猫を混同する」ゲームをしていたときに、猫を混乱させるロボットをプログラミングしたいと思った。 何か、おそらくトラックがあり、彼がそれをひっくり返せばそれ自体が正しくなり、部屋の周りをランダムに移動したり、壁を向けたり、時折音を鳴らしたり、光を点滅させたりすることができます。 予算が非常に限られているので、プログラムできる安価なキットはないかと思いました... プログラム可能な限り、Arduino、Raspberry Pi、任意のプラットフォーム。 あなたの助けを事前にありがとう

1
最小二乗マップ参加
ここには多くの背景があります。質問まで下にスクロールしてください SLAMは線形最小二乗問題からどれだけ離れているかで説明されているマップ結合アルゴリズムを試しています。具体的には、式(36)。私が書いたコードは、ランドマーク位置の2番目のマップの値を常に取るようです。私の質問は、私はテキストを正しく理解しているか、または何らかのエラーを犯しているかです。数式を理解し、コードがそれをどのように実装するかを示しながら、数式を説明します。2つのローカルマップを結合するという単純なケースを実行しようとしています。 論文(36)によると、2つのローカルマップをを最小化状態ベクトルが見つかります。バツj o、I 、N 、R用のE Lバツjo私ん、relX_{join,rel} Σj = 1k(XLj^−Hj 、r eL(XJ O I N 、Rの電子L))T(PLj)− 1(XLj^− HJ 、R のE L(XJ O 、I 、N 、R用のE L))Σj=1k(バツjL^−Hj、rel(バツjo私ん、rel))T(PjL)−1(バツjL^−Hj、rel(バツjo私ん、rel)) \sum_{j=1}^{k}(\hat{X_j^L} - H_{j,rel}(X_{join,rel}))^T(P_j^L)^{-1}(\hat{X_j^L} - H_{j,rel}(X_{join,rel})) 2つのローカルマップバツL1^バツ1L^\hat{X_1^L}とバツL2^バツ2L^\hat{X_2^L}に展開しました。 (XL1^− HJ 、R のE L(XJ O 、I 、N 、R用のE L))T(PL1)− 1(XL1^− HJ 、R のE L(XJ O 、I 、N …
10 slam 

2
レーザースキャン+既知のマップを備えた拡張カルマンフィルター
私は現在、レーザースキャナーを備えたポイントロボットに拡張カルマンフィルターを実装する必要がある学校のプロジェクトに取り組んでいます。ロボットは、回転半径0度で回転し、前進することができます。すべての動作は区分的に線形です(駆動、回転、駆動)。 私たちが使用しているシミュレーターは、加速をサポートしていません。すべての動きは瞬時です。 また、ローカライズする必要のある既知のマップ(PNG画像)もあります。レーザースキャンをシミュレートするために、画像のレイトレースを行うことができます。 私のパートナーと私は、使用する必要があるモーションモデルとセンサーモデルについて少し混乱しています。 これまでのところ、状態をベクトルとしてモデル化しています。(x,y,θ)(x,y,θ)(x,y,\theta) 次のように更新式を使用しています void kalman::predict(const nav_msgs::Odometry msg){ this->X[0] += linear * dt * cos( X[2] ); //x this->X[1] += linear * dt * sin( X[2] ); //y this->X[2] += angular * dt; //theta this->F(0,2) = -linear * dt * sin( X[2] ); //t+1 ? this->F(1,2) = linear …

1
プログラミングロジックでリンクのパラメータと角度(運動学)を変換行列に変換するにはどうすればよいですか?
私は学部生としてロボット工学の研究を行っており、概念的な数学の大部分を理解しています。しかし、ロボットのフォワードキネマティクスを計算するコードを実際に実装することになると、行き詰まっています。私が見つけた本やウェブサイトがそれを説明する方法を単に得ていません。 次のようなリンクパラメーター(Denavit-Hartenbergパラメーター)を指定して、XYZ角度を計算したいと思います。 i123456αi−10−90∘0−90∘90∘−90∘ai−100a2a300di00d3d400θiθ1θ2θ3θ4θ5θ6iαi−1ai−1diθi1000θ12−90∘00θ230a2d3θ34−90∘a3d4θ4590∘00θ56−90∘00θ6\begin{array}{ccc} \bf{i} & \bf{\alpha_i-1} & \bf{a_i-1} & \bf{d_i} & \bf{\theta_i}\\ \\ 1 & 0 & 0 & 0 & \theta_1\\ 2 & -90^{\circ} & 0 & 0 & \theta_2\\ 3 & 0 & a_2 & d_3 & \theta_3\\ 4 & -90^{\circ} & a_3 & d_4 & \theta_4\\ 5 …

3
四足学習シミュレータ
私は現在、4脚(四足歩行)、3 DOF(自由度)のロボットを構築しています。ここで、シミュレーターを使用してコンピューターで学習し、アルゴリズムをロボットにアップロードすることが提案されています。私が使用しているArduinoの宇野をロボットのため、どのようなソフトウェア私はArduinoのボードにアップロードすることができ、その後の学習をシミュレートするために使用してだろうか?

3
6軸ロボットで、エンドエフェクタの位置と方向の範囲を指定して、最適な関節の値を見つける方法
エンドエフェクターでツールを保持している6軸の多関節ロボットアームがある場合、希望するツールの位置と方向がある場合、ロボットがその位置に到達するための逆運動学方程式のソリューションは1つだけです。 (または、関節の範囲に応じて、最大16の異なるソリューション) しかし、ロボットがペンのようなものを持ち、ロボットがターゲット上のそのペンで特定のポイントをマークするようにしたい場合、マークされた表面に垂直である限り、ペンの向きを気にしません。 したがって、逆運動学方程式は無限に多くの解を持つことになります。 これらのソリューションの中から、現在の構成に最も近いジョイント構成を選択するにはどうすればよいですか? (または、すべての関節角度が最大値と最小値から最も離れているなど、他の同様の基準に従って最適である関節構成)

1
重複する効果を持つ複数の制御ループ
1つの出力と1つのエラー信号があり、出力が必要な設定値をどれだけ適切に達成しているかについて、PIDを使用して閉ループ制御を実行することに慣れています。 ただし、複数の制御ループがあり、それぞれに1つの出力と1つのエラー信号がありますが、ループは完全に独立しているわけではありません。特に、1つのループがアクチュエータ信号を増加させると、システム内の他のループからの出力の影響が変化します。 具体的な例として、6つの調整可能な抵抗器が並列に接続されたシステム全体に電圧を印加して、抵抗器と直列の電圧源を想像してください。各抵抗を流れる電流を測定することができ、抵抗を調整することによって各抵抗の電流を個別に制御したいと考えています。もちろん、ここでの秘訣は、1つの抵抗の抵抗を調整すると、並列セットの全体的な抵抗が変化することです。つまり、電圧源の抵抗を持つ分圧器による電圧降下が変化し、他の抵抗を流れる電流が変化します。 。 これで、明らかにこのシステムの理想的なモデルがあるため、一連の線形方程式を解くことにより、すべての抵抗器に同時に使用する必要がある抵抗を予測できます。ただし、閉ループ制御の要点は、理想的なモデルから逸脱した、システム内のさまざまな未知のエラー/バイアスを修正したいということです。質問:この種のクロスカップリングを備えたモデルがある場合、閉ループ制御を実装する良い方法は何ですか?
9 control  pid 

3
コントローラーの調整に遺伝的アルゴリズムを使用する
非線形システム(非線形振り子など)の制御に関するいくつかの論文を読んだことがあります。非線形システムを対象とするいくつかのアプローチがあります。最も一般的なものは、フィードバック線形化、バックステッピング、およびスライディングモードコントローラーです。 私の場合は、C ++で単純な振り子とその他のマニピュレーターの問題の非線形モデルを制御する理論的および実用的な部分を実行しました。振り子では、角変位と速度の追跡タスクを解くためにバックステッピングコントローラーを利用しました。結果は θ¨+(k/m)θ˙+(g/L)sinθ=uθ¨+(k/m)θ˙+(g/L)sin⁡θ=u \ddot{\theta} + (k/m) \dot{\theta} + (g/L) \sin\theta= u ここで、およびです。m=0.5,k=0.0001,L=.2m=0.5,k=0.0001,L=.2m=0.5, k=0.0001, L=.2g=9.81g=9.81g=9.81 結果は良好です。ただし、コントローラの調整には時間がかかります。ほとんどの論文では、PD、PID、バックステッピングコントローラーなどのコントローラーの調整に遺伝的アルゴリズムを使用しています。私はこの分野では無知です。誰かがこの概念に光を当ててくれることを願っています。できれば、少なくとも単純な振り子を制御するためのMATLABサンプルがある場合は望ましいです。 これまでのところ、コントローラーを手動で調整するために、C ++ / QtでシンプルなGUIを設計しました。下の図は、ステップ関数のコントローラーの応答です。
9 control 

1
感知と制御作動の間のタイムステップのサイズをどのように決定しますか?
私の背景: 私の経験は固体力学とFEAです。したがって、私はロボット工学/制御の経験がありません。 問題の説明 複雑な6脚の動的システムを安定させる制御戦略を開発しています。各脚の関節からのトルクTiを使用して、身体に正味モーメントMを作成し、システムを安定させます。このモーメントMは、事前に決定された制御戦略から既知です。(補足:動的ソルバーは非線形計算タイプです) 私はバックグラウンドが不足しているため、動的システムと根本的に混乱しています。関節トルクTiを使用して、体にこの既知の正味モーメントMを作成します。このモーメントMは、 すべての脚セグメントの現在の位置/角度 各脚の反力とモーメント(制御できない) 各脚の制御可能な関節トルクTi 時間 所与の時点で(N - 1 )Δ T:(※ )(∗)(*)(n − 1 )Δ(ん−1)Δ(n-1)\Delta -制御戦略から、望ましい正味モーメントMが計算されます/既知です t = (n − 1 )Δt=(ん−1)Δt = (n-1)\Delta -この情報から、ベクトル代数は正味モーメントMを作成するために必要な望ましい関節トルクTiを簡単に生成します (∗ ∗ )(∗∗)(**)(n )Δ(ん)Δ(n)\Delta t = (n − 1 )Δt=(ん−1)Δt=(n-1)\Delta -もちろん、これらのトルクTiは瞬時に適用できないため、直前のタイムステップで適用されます。 (※ )(∗)(*)(※ )(∗)(*)(∗ ∗ )(∗∗)(**) ご質問 ロボット工学の問題を正しく理解していますか?このジレンマに関する用語と戦略は何ですか? もちろん、感知と作動の間のタイムステップを無限に小さくすることもできますが、これは非現実的/不正直になります。現実的なタイムステップと、タスクを適切に実行することのバランスはどのくらいですか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.