ロボティクス

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

2
車輪付きロボットに適したIMUを選択する方法は?
私たちの研究室には、いくつかの「カート」タイプのロボット(パイオニア、6輪、差動駆動のサイズ)があります。内蔵のジャイロスコープは今では本当に時代遅れです。主な問題は、ジャイロスコープが大きくドリフトするということです。これは、ジャイロが熱くなるにつれて増加します(誤差は最大3°/ sです)。主にIMU(慣性測定ユニット)を使用して初期姿勢推定値を取得しますが、これは後にローカリゼーションアルゴリズムによって修正されますが、それでも、IMUによって引き起こされる大きな初期姿勢誤差は煩わしいことがよくあります。 IMUの代替として一時的にAndroidスマートフォン(Galaxy S2)を使用しましたが、古いIMUと比較して結果は非常に優れています。ただし、IMUと制御コンピューター(ROS / Ubuntuを実行しているラップトップ)の間のWiFi接続に依存するのは好きではないので、新しいIMUを購入したいと考えています。 どのIMUを選択する必要がありますか?私たちのアプリケーションで考慮すべき重要な基準は何ですか?
16 ros  imu  odometry  gyroscope  ugv 

2
EKF-SLAM更新ステップ、カルマンゲインが特異になる
SLAMにEKFを使用していますが、更新手順に問題があります。Kが特異であり、とrcond評価されるという警告が表示されnear eps or NaNます。問題の原因はZの反転にあると思います。最後の項を反転せずにカルマンゲインを計算する方法はありますか? 私はこれが問題の原因であるという100%の肯定的ではないので、コード全体をここに入れました。メインエントリポイントはslam2dです。 function [ x, P ] = expectation( x, P, lmk_idx, observation) % expectation r_idx = [1;2;3]; rl = [r_idx; lmk_idx]; [e, E_r, E_l] = project(x(r), x(lmk_idx)); E_rl = [E_r E_l]; E = E_rl * P(rl,rl) * E_rl'; % innovation z = observation - e; Z …

2
EKFの共分散行列?
私は共分散行列の概念に苦労しています。 これで、、、および\ sigma _ {\ theta \ theta}は、不確実性を表します。たとえば、\ sigma_ {xx}の場合、xの値の不確実性を表します。さて、残りのシグマについての私の質問、それらは何を表していますか?ゼロの場合、どういう意味ですか?\ sigma_ {xx}がゼロの場合、xの値について不確実性がないことを意味すると解釈できます。 σ X X σ Y Y σ θ θ σ X X σ X XΣ = ⎡⎣⎢σx xσyバツσθ Xσx yσyyσθ YσX θσyθσθ θ⎤⎦⎥Σ=[σバツバツσバツyσバツθσyバツσyyσyθσθバツσθyσθθ] \Sigma = \begin{bmatrix} \sigma_{xx} & \sigma_{xy} & \sigma_{x \theta} \\ \sigma_{yx} & \sigma_{yy} & \sigma_{y …

6
経路計画と運動計画の違いは何ですか?
運動計画と経路計画の主な違いは何ですか?アルゴリズムの目的は、ヒューマノイドサッカーロボットとボールの間のパスを見つけることであり、障害物からの距離に関してパスで指定された安全性を満たしながら、できるだけ短くすることを想像してください。 より良い用語はどれですか?運動計画または経路計画?

2
ロボットのスタートアップはどのように機能しますか?
ソフトウェアエンジニアリングのスタートアップでは、通常、コンピューターのある部屋に行くか、自分のラップトップを持ってコードを書きます。ロボット工学のスタートアップの仕組みに興味があります:ロボットを設計するための別の場所はありますか?たとえば、Ankiを見てください。彼らはロボットを設計するための別々の研究室を持っていますか?ロボットはどのようにして単一の設計から製造されますか? SEでこれを投稿するのに最適な場所を見つけることができませんでした(スタートアップのビジネスセクションは廃止されました)。

2
単純な振り子の最適制御
私はさまざまな最適な制御方法を研究しており(Matlabでそれらを実装しています)、テストケースとして(今のところ)単純な振り子(地面に固定)を選択します。 「単純な」フィードバック法(エネルギー制御に基づくスイングアップ+上部位置のLQR安定化)を使用して制御し、状態軌跡を図に示します(軸の説明を忘れました:xはtheta、yはthetaドット。 次に、反復LQRメソッド(ここで実装されていることがわかりましたhttp://homes.cs.washington.edu/~todorov/software/ilqg_det.m)から始めて、「完全な」最適な制御方法を試したいと思います。 この方法には、1つの動的関数と1つのコスト関数x = [theta; theta_dot], uが必要です(モータートルク(1つのモーターのみ)): function [xdot, xdot_x, xdot_u] = ilqr_fnDyn(x, u) xdot = [x(2); -g/l * sin(x(1)) - d/(m*l^2)* x(2) + 1/(m*l^2) * u]; if nargout > 1 xdot_x = [ 0, 1; -g/l*cos(x(1)), -d/(m*l^2)]; xdot_u = [0; 1/(m*l^2)]; end end function [l, l_x, l_xx, l_u, …
15 control 

6
人を検出する最も安い/最も簡単な方法は何ですか?
標準の既製の安価なセンサーを使用して、温かい体の哺乳類(つまり人間)の検出に成功した人がいるかどうかを知りたいのですが。 理想的には、安価なセンサーまたはセンサーの組み合わせを使用して、部屋の中の人を検出し、その人の位置を特定したいと思います。ロボットを部屋に入れて、人がいるかどうかを検出し、検出された人に移動してほしい。コストはより大きな要因であるため、精度は100%である必要はありません。このようなセンサーの計算要件は、Arduinoで実行できるようにしたいのですが、それが不可能な場合は、Raspberry PiやBeagleBone Blackなど、より強力な機能を使用したいと思います。私はいくつかの考えがあります。ただし、それらのいずれも理想的ではありません。 PIRセンサー -大きな視野(通常は120度以上)内の動きを検出できます。私が知っている「人間」の検出器に最も近いものかもしれません。ただし、このような大きな視野では、人がどこにいるのかを移動およびローカライズ/三角測量することは非常に困難です(不可能ですか?)。 超音波 -オブジェクトを高い精度で検出できます。視野がずっと狭くなっています。ただし、静的な非生物と人間を区別することはできません。 IR検出器 -(シャープレンジセンサーなど)再び非常に狭い視野で非常に正確にオブジェクトを検出できます。ただし、再びオブジェクトを区別することはできません。 Webcam + OpenCV-おそらく顔検出を使用して部屋内の人間を検出します。これが最良のオプションかもしれません。ただし、OpenCVは計算コストが高く、実行するにはarduinoよりもはるかに多くが必要です。Raspberry Piでも、遅くなる場合があります。 Kinect - Kinectの機能検出機能を使用すると、エリア内の人間を比較的簡単に識別できます。ただし、Kinectは高価すぎるため、「安い」ソリューションとは見なしません。 おそらく誰かが体温に合わせて調整された安価な「熱検出器」を知っているか、上記の(#1-4)のいくつかの組み合わせで成功していて、結果を共有したいのでしょうか?
15 sensors 

2
強化学習を使用したロボットに続くラインのプログラミング
強化学習アルゴリズムを使用して、ロボットに続くラインをプログラミングすることを検討しています。私が熟考している質問は、どのようにアルゴリズムを取得して、任意のパスをナビゲートすることを学ぶことができますか? 強化学習のためにサットン&バルトブックをたどり、競馬場での運動の問題を解決しました。そこでは、車のエージェントがコースから出て速度を調整しないことを学びました。しかし、その運動の問題により、エージェントは訓練を受けたトラックをナビゲートする方法を学ぶことができました。 ロボットに任意の経路をナビゲートさせることは強化学習の範囲内ですか?エージェントはレースサーキットまたはパスのマップを絶対に持っている必要がありますか?状態空間にどのようなパラメーターを使用できますか?

3
PIDパラメータをその場で自動的に調整するにはどうすればよいですか?
MCUに実装されたPIDコントローラーを使用してフィードバックを実行する簡単なサーボシステムがあります。ただし、システムのプロパティは動的に変更されるため、すべての状況でPIDパラメーターを調整することはできません。 私のロボットは、これに似た逆駆動可能な電動モーターを備えた軽量アームです。 アームは、重いものを持ち上げたり、机の上で物を押したり引いたりするなど、いくつかのタスクを実行します。これらの各タスクには、簡単に予測できないさまざまなPID調整パラメーターが必要です。 私が本当に欲しいのは、腕の動作に応じてパラメータを慎重に調整できる、より高いレベルの機能です。たとえば、腕が振動していることに気付いた場合、Pを減らしてDを増やすことができます。または、腕が目標に到達していないことに気付いた場合、Iを増やすことができます。 そのようなアルゴリズムは存在しますか?アルゴリズムがすぐにパラメーターを完成しなかったとしても、私は幸せです。例えば、パラメーターが新しい値に調整される前に、腕が数回振動する可能性がありました。

6
ロボット工学の大学院生を始めるための数学的な前提条件
ロボット工学の最初の大学院生が、ロボット工学の修士研究プログラムを開始するために彼が磨くべき数学の分野(前提条件)を私に尋ねました。研究生に欠かせない優れた資料/本は何ですか?学生がロボット工学の強固な基盤を開発するために、どれを提案すべきですか?
15 research 

4
ジャイロスコープなしで二輪ロボットを動かして安定させることは可能ですか?
このような 2輪ロボットで、静止したまま安定させることができました。これは、車輪の位置を読み取って位置を決定するデジタルフィードバック制御システムを使用して行われ、車輪モーターからの自然な逆起電力がフィードバックループで速度を決定するために使用されました。根軌跡アルゴリズムを使用して設計され、安定性を維持し、パフォーマンスパラメーター(オーバーシュート率、整定時間など)を調整するように設計されたPIDコントローラーで安定しました。安定性を保ちながら同時に前進させたいと思っていましたが、それを実現できるリニアコントローラーの設計方法を理解できませんでした。ロボットを前進させることと、 車輪のフィードバックコントローラーを使用して安定させますか、それともジャイロスコープが必要ですか?

4
低コストのホビーサーボを「自由に」実行するように変更するにはどうすればよいですか?
私はいくつかの趣味のサーボ(Power HD 1501MG)を持っているので、それらを(Arduinoを介して)制御できるようにしたいので、設定した角度に移動するか、「フリーランニング」モードにします。どこに行っても負荷がかかる場所。 これは可能ですか、それともギアを剥がしてしまうだけですか? 私が最初に考えたのは、単にサーボへの電力を殺すことですが、その状態でそれらを動かすのに必要な力は私が望む以上のものです。 可能であれば、ハードウェアの変更を見ていますか、それともソフトウェアで変更できますか?
15 control  rcservo 

2
非ユークリッド構成空間の最近傍データ構造
RRTモーションプランナーで使用するための最近傍構造を実装しようとしています。線形ブルートフォース最近傍検索よりも良い結果を得るために、kdツリーのようなものを実装したいと思います。ただし、kdツリーの従来の実装では、空間の各次元を「左」と「右」に分割できると想定しています。この概念は、たとえばSO(2)のような非ユークリッド空間には当てはまらないようです。 私は、完全に回転可能なリンクを備えたシリアルマニピュレーターアームを使用しています。つまり、ロボットの構成空間の各次元はSO(2)であり、したがってユークリッドではありません。この種の部分空間を処理するためにkdツリーアルゴリズムを変更できますか?そうでない場合、これらの非ユークリッド部分空間を処理し、更新とクエリを簡単に行える別の最近傍構造がありますか?FLANNも調べましたが、それらのドキュメントから非ユークリッド部分空間を処理できるかどうかは明確ではありませんでした。

1
ROS:ベストプラクティス?
小さなロボットシステムを構築します。ROSは、システムを制御およびプログラムするための素晴らしいフレームワークを提供しているようです。 しかし、ロボットのコンポーネントを管理するためのベストプラクティスはどれかと思います。 すべてのセンサーを1つのノードに配置するのは理にかなっていますか? 1つのノードに同じタイプのセンサーのみを配置する必要がありますか、それとも1つのセンサーに1つのノードを使用する方が良いですか? センサーからの入力を受け取り、対応するアクチュエーターを操作する何らかのハンドラーノードを使用するのは良い習慣ですか?または、アクチュエーターノードとセンサーノードが直接通信する必要がありますか? ハンドラー付きフューズドセンサーノードとアクチュエーターノード ハンドラー付きの単一センサーおよびアクチュエーターノード ダイレクトコミュニケーション 私にとっては、センサーとアクチュエーター間の通信を処理し、ロボットの各要素に対して1つのノードを持つハンドラーを使用するのが最善だと思います(図2のように)。簡単に拡張できますが、私はあなたの意見を知りたいです。
14 control  ros 

2
差動駆動ロボットの位置を計算する
インクリメンタルセンサーを備えた差動駆動ロボットの位置をどのように計算または更新しますか? 2つのディファレンシャルホイールのそれぞれには、1つのインクリメンタルセンサーが取り付けられています。両方のセンサーは、距離決定します。は、既知の時間間にホイールが回転しました。Δ R I G H TΔ LのEのFt△left\Delta leftΔのRのI Gh t△r私ght\Delta rightΔ トン△t\Delta t まず、両方の車輪の中心がロボットの位置をマークしていると仮定しましょう。この場合、次のように位置を計算できます。 x = xリットルのE ft+ xR I Gh t2y= yリットルのE ft+ yR I Gh t2バツ=バツleft+バツr私ght2y=yleft+yr私ght2 x = \frac{x_{left}+x_{right}}{2} \\ y = \frac{y_{left}+y_{right}}{2} 両方の車輪が直線で回転するという仮定の下でこれらの方程式を「導出」します(短い距離ではほぼ正しいはずです)。 ΔのXΔ トン= 12(ΔのリットルE FtΔ トン+ Δ R I Gh tΔ トン) cos(θ)Δ YΔ …

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