問題タブ [mobile-robots]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
algorithm - 2D 画像を同様の値の領域/ブロブに効率的に分割するにはどうすればよいですか?
2D 画像を同様の値のブロブに効率的にセグメント化するにはどうすればよいですか? 指定された入力は整数の配列で、グレー以外のピクセルの色相とグレーのピクセルの明るさを含みます。
私は Java を使用して仮想移動ロボットを作成しており、セグメンテーションを使用してマップとカメラからの画像を分析しています。これはComputer Visionではよく知られている問題ですが、ロボットの場合はパフォーマンスが重要になるため、いくつかの入力が必要でした。重要なのはアルゴリズムなので、どの言語でもコードを投稿できます。
- ウィキペディアの記事:セグメンテーション (画像処理)
- [PPT] Stanford CS-223-B Lecture 11 セグメンテーションとグループ化(Mean Shift はおそらくこれまでで最高の手法であると言えます)
- Mean Shift Pictures (用紙はDorin Comaniciuからも入手できます)
robotics - ロボティクスシミュレーター
最高のロボティクス シミュレーターはどれですか? 今のところ、ポテンシャル フィールド メソッド、バグ アルゴリズム、A* アルゴリズムなどの簡単なシミュレーションを探しています。
既知のロボット シミュレータのリストは次のとおりです。
- Player プロジェクト (2D シミュレーター - ステージ - 3D シミュレーター - Gazebo - および制御インターフェース - オープン ソース、ROS プロジェクトの一部)
- MORSE (汎用屋内/屋外 3D シミュレーター)
- Microsoft Robotics Studio (シミュレーター + コントロール インターフェース)
- KiKS (Matlab プラグイン、Khepera + コントロール インターフェース専用)
- MobotSim (ロボットのようなポイント、アルゴリズムの実装の詳細)
- カレル(かなりキディッシュ、パスカル/ロゴのようなものだと思います)
- MRPT (非常に良さそうです。すぐに試してみます)
- カルメン(ロボットビジョンなどはその中で実装しやすい(?))
- Webots (オープンソース - マルチプラットフォーム - 多言語 [ROS、Python、Matlab など] - 最先端の外観 - Web エクスポート)
- Simbad (Java および Jython の 2D/3D シミュレーター)
- Robocode (Java/ .NET スーツ)
- Rossum's Playhouse (C/C++ スーツ)
- V-REP (3D、利用可能なソース、Lua スクリプト、C/C++ 用 API、Python、Java、Matlab、URBI、2 つの物理エンジン、完全なキネマティック ソルバーなど)
より一般的なプラットフォーム/ミドルウェアの中には、シミュレーション ツールを提供するものもあります。
ロボットシミュレーターに関する参考文献:
robotics - ポテンシャルフィールド法:実ロボット
ポテンシャルフィールド法は、ロボットナビゲーションで非常に人気のあるシミュレーションです。しかし、実際のロボットにポテンシャルフィールド法を実装した人はいますか?実際のロボットでこの方法を使用することについての参照または主張はありますか?
range - LRF (レーザー距離計) センサー データのヘルプ
私はセンサーと Player を使用する初心者であり、生成されたデータを理解するのに苦労しています。あなたが私を助けることができれば、私は非常に感謝しています.
player + playerv プログラムを実行するたびに、1 つの .log ファイルが生成されます。そして何千行ものデータが生成されます。
ログ ファイルの 1 つをテキスト エディターで開くと、次のヘッダーが含まれています。
フォーマット:
- メッセージは改行で区切られています
各メッセージの共通ヘッダーは次のとおりです。
時間 ホスト ロボット インターフェイス インデックス タイプ サブタイプ
(double) (uint) (uint) (string) (uint) (uint) (uint)
そして、その行の 1 つは次のとおりです (これは 1 行にすぎません)。
1306011115.200 16777343 6665 ranger 00 001 001 0511 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.588 0.562 0.559 0.546 0.540 0.539 0.536 0.532 0.532 0.529 0.529 0.529 0.536 0.536 0.536 0.534 0.534 0.534 0.527 0.526 0.526 0.526 0.526 0.527 0.527 0.535 0.535 0.537 0.537 0.543 0.549 0.576 0.589 0.593 0.598 0.593 0.593 0.592 0.579 0.569 0.565 0.563 0.563 0.558 0.563 0.565 0.566 0.566 0.568 0.594 0.609 0.609 0.617 0.617 0.617 0.625 0.628 0.632 0.638 0.641 0.645 0.652 0.654 0.690 0.697 0.703 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.977 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000000 0.000 0.000 0.000 0.000 0.007 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 1.339 1.289 1.289 1.289 1.289 1.289 1.289 1.289 1.289 1.289 1.289 1.289 1.289 1.289 1.289 1.282 1.276 1.260 1.257 1.256 1.251 1.251 1.250 1.250 1.248 1.250 1.250 1.253 1.261 1.263 1.264 1.275 1.280 1.300 1.310 1.330 1.332 1.337 1.352 1.357 1.357 1.352 0.917 0.904 0.904 0.904 0.904 0.880 0.880 0.869 0.853 0.828 0.821 0.812 0.805 0.789 0.780 0.776 0.771 0.764 0.753 0.750 0.747 0.735 0.731 0.724 0.717 0.715 0.715 0.715 0.709 0.709 0.707 0.705 0.705 0.699 0.702 0.702 0.699 0.702 0.706 0.708 0.712 0.720 0.732 0.733 0.735 0.740 0.746 0.000 0.000 0.000 0.775 0.775 0.775 0.796 0.809 0.811 0.820 0.853 0.007 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.009 0.009 0.009 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.548 0.548 0.548 0.547 0.543 0.551 0.543 0.543 0.543 0.543 0.542 0.542 0.542 0.542 0.544 0.544 0.544 0.548 0.543 0.543 0.540 0.543 0.543 0.548 1.104 1.122 1.129 1.129 1.129 1.129 1.129 1.136 1.135 1.135 1.132 1.132 1.132 1.130 1.128 1.128 1.128 1.125 1.125 1.117 1.1128 1.128 1.128 1.125 1.125 1.117 1.117000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
このデータが何を表しているのか説明してください。つまり、各行は特定の瞬間に生成されたデータに対応していますか? また、「0」は障害物がないことを表しますか。
お時間をいただきありがとうございます。私はあなたの助けに感謝します
multithreading - Player がマルチスレッド アプリケーションの Create のオドメトリ データを正しく取得しない
iRobot Create で Player (Player/Stage) を使用しています。ロボットからオドメトリ データを取得するためのインターフェイスは非常に単純です。playerc_client_read を呼び出すと、playerc_position2d プロキシを適切にサブスクライブしていれば、プロキシのメンバー px、py、pa に x および y の移動距離 (メートル単位); および回転 (ラジアン単位)。
シングル スレッド アプリケーションでこれを行うことに問題はありません。すべてのオドメトリ データは、必要な場所に完全に配置されています。
ただし、ロボット コントローラーを独自のスレッド (pthreads を使用) に移動しようとすると、いくつかの問題が発生します。問題は、px だけが更新されているように見えることです。py と pa は常に 0 のままです。
ロボットスレッドの要点は次のとおりです
そして案の定、ロボットがどのように動いても、yPosition とラジアンは 0 のままですが、xPosition のみが設定されます。
オンラインで他に何も見つかりませんでした。これは既知のバグですか? 他の誰かがこの問題を抱えていますか? なぜこれが起こっているのかについて誰かが洞察を提供できますか? ありがとうございました。
完全な開示: 私は大学院生で、これはクラス プロジェクト用です。
robotics - パイオニア3Dソナーセンサーモデルパラメーター
Pioneer3dxロボットでソナーを使って作業した人はいますか。
うまく機能するソナーセンサーモデルのパラメーターを知りたいと思いました。
rosからレーザーモデルパラメータを検索して取得しましたが、ソナーを取得できませんでした:(
mobile-robots - 粒子フィルターを使用したローカル ローカリゼーション
私は、ソナー、パーティクル フィルターを使用してローカル ローカリゼーションを行っています (つまり、すべてのパーティクルは、最初はロボットのポーズをとっています)。
環境のグリップ マップがあります。環境 (ドアが閉じている/開いている) でアルゴリズムを実行すると、パーティクルがロボットに追従できません。
ロボットの最初の位置を正確に知っているので、ランダムな粒子はありません。
ランダムな粒子を追加すると、ロボットのポーズが変更されます(ロボットのポーズとして粒子の中央値を見つけます)。
ローカルローカリゼーションを改善するためのアイデア/方法。
ありがとうございました。
アップデート :
ここでは、ノイズの多いモーション モデルを使用し、次にセンサー モデルを使用して再サンプリングし、それらをロボットのポーズに収束させています。私の問題は、マップから環境に変化がある場合 (主にドアの開閉と室内の乱雑さ) に最適化する方法です。
arduino - iRobot Create がコマンドに応答しない
私は arduino メガを使用して iRobot Create を制御しています。モードを変更し、OI コマンドを介して Create のデモを実行することに成功しましたが、運転や音の再生など、特定のことを行うことができません。これらのコマンドには単に応答しません。
embedded - バッテリー駆動のビーグルボードを備えたI2Cバス
beeagleboard-xm を使用してモバイル ロボット (ヘキサポッド) を構築しようとしています。I2C 経由で BB-xm に接続された Arduino nano と 2 つのサーボ ドライバーがあります。Arduino はセンサー値を Beagleboard に送信し、サーボ ドライバーを使用してモーターを実行します。システム全体を 1 つの [6V NiMH バッテリー] ( http://www.lynxmotion.com/p-426-60-volt-ni-mh-2800mah-battery-pack.aspx )で動作させようとしています。
センサー値をビーグルボードに読み取ろうとしているときは正常に動作しますが、ロボット全体の実行を開始するとすぐに (サーボモーターの電源もオンにします)、I2C 経由で Arduino によって提供されるセンサー値が不安定になります (ゼロになります) )。しかし、壁の電源からボード、Arduino、およびサーボドライバーに電力を供給すると、すべて正常に動作します。したがって、モーターが動作しているときにバッテリーからシステム全体に供給される電流に問題があると確信していますが、なぜこれが起こっているのかはわかりません. バッテリーは最大 28A を供給でき、サーボを合わせても 20A (18 サーボ) 以上は使用しません。
それで、私の質問は私の理解が正しいかどうか、またはこれには他の理由があるのでしょうか?