問題タブ [robotics]
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.
hardware - s/wプログラミングとh/wプログラミングの関連付け
私は何年もs/wプログラミングをしています。何年もの間、私はh / wプログラミング(回路+ロボット工学+など)にも興味を持っていました。
どこからh/wプログラミングを始められるかアドバイスしてください。私の目的は、s/wとh/wの両方を組み合わせて連携させることです。
robotics - カルメン・ロボティクス
私は Carmen http://carmen.sourceforge.net/としばらく仕事をしています。このソフトウェアはとても気に入っていますが、ソース コード内にいくつかの変更を加える必要があります。
したがって、カルメンと一緒に働いている学生のレポート/プロジェクト、またはソースコードのドキュメントに興味があります。
私は Carmen の Web ページのドキュメントを読んでいますが、そこにある文献は少し時代遅れで不十分だと思います。
generics - C ++のgeneric.hのソースコードはどこにありますか?
現在、レゴマインドストームロボットの制御にはCライクランゲージ(NXC)を使用しています。そのCのような言語は、ジェネリックス(または、C ++ではないクラス。しかし私は逸脱します)をサポートしていません。ただし、古いC ++の本を読んだところ、CまたはC ++のいずれかにgeneric.hというファイルがあり、これを行うのに役立つプリプロセッサマクロ(name2とdeclare)が含まれています。
このファイルのコピーを入手する方法はありますか?
computer-vision - ロボティクスとコンピューター ビジョン
数人の友人と私は、黒い表面の白い線を追跡する単純なロボットを構築します。この種のことはこれまでに行ったことがなく、非常に高度な攻撃計画を立てています。
すべてのコンピューティング ニーズに対応するミニ atx ボード、道路を追跡するための Web カメラ、および推進用と方向用の 2 つの電気モーターを入手してください。
私の主な関心事は、道路を追跡するためのより良い方法はありますか? または、ウェブカメラは仕事に適していますか?
編集:
フォトレジスタを使用した回答のフォローアップが進むべき道のようですが、もう 1 つ質問があります。トラックの右側に信号があり、ロボットにどちらの方向に曲がるかを伝えます。再び黒地に白。T字路を左折しなければならないなど。カメラなしでこれを処理する方法はありますか?
arduino - ライントラッキングロボット
私と私の友人は、黒い表面上の白い線を追跡する方法についての以前の質問に基づいて、線追跡ロボットを構築しています. フォト レジスタと arduino ボードを使用することにしました。これで、私が見つけたすべての反射センサーは、線の 1 ~ 2 cm 上の非常に近くに配置する必要があります。チームメイトの 1 人が、10cm 以上を追跡できる反射率センサーがあるという教授と激しい議論を交わしましたが、何も見つかりませんでした。
より遠くのラインを追跡できるセンサーの種類はありますか?
python - C、C++、LISP が組み込みデバイスやロボットに広く普及しているのはなぜですか?
組み込み機器やロボットに最も求められるソフトウェア言語スキルはC、C++、LISPのようです。最近の言語がこれらのアプリケーションに浸透していないのはなぜですか?
たとえば、Erlangは並行プログラミングを容易にし、コードのホット スワップを可能にするため、ロボット アプリケーションに特に適しているように思われます。 Pythonは、複数のプログラミング パラダイムのサポート以外の理由がなければ、有用であるように思われます。Java が一般的なロボット プログラミングに進出していないことに、私はさらに驚いています。
「一部の新しい言語は解釈され、コンパイルされていない」という議論があると確信しています。これは、コンパイルされた言語の方が高速で、計算リソースの使用量が少ないことを意味します。Java 仮想マシンを携帯電話や SunSpot に搭載できる時代に、これはまだ当てはまるのでしょうか? (とにかく LISP は解釈されませんか?)
robotics - 障害物警告システム
基礎となる予測ロジックを備えた障害物回避システムを設計するための最適なアルゴリズムはどれですか?
さまざまな障害物の座標と速度を示すマイクロ波レーダーのシステムを使用しています。これらの入力に基づいて、アルゴリズムは最も重大な障害物を特定し、自動車/航空機のドライバーに警告する必要があります。主な関心事は予測部分です。システムは、現在の障害物を識別するだけでなく、速度成分に基づいて将来の衝突も探す必要があります。探索可能な戦略はどれですか (カルマン、拡張カルマン、ニューラル ネットワーク、進化的アルゴリズム)
deployment - Microsoft Robotics Development Studio シミュレーション プロジェクトの展開
私は現在、Microsoft Robotics Development Studio でプロジェクトに取り組んでおり、一般的な使用のためにソリューションを展開するのに少し問題があります。
私の問題はこれです。シミュレーションを作成しているので、プロジェクトと共にシミュレーション エンジンをデプロイする必要があります。これは、Ageia PhysX エンジン、DirectX、および Microsoft XNA フレームワークに依存しています。私はこれを理解し、MRDS の展開ツール (dssdeploy) がデフォルトでシミュレーションを展開するように設定されていないことを理解しています。したがって、以前に MRDS を使用したことがあり、シミュレーションを展開したことがある場合は、これについていくつかの助けを借りることができます。
simulation - RoboCup Soccer Simulator2dv14のコーチ可能なプレーヤー
私はこれと同様の作業を行っていますが、オンラインで見つけた指導可能なプレーヤーは3歳であり、最新バージョンのサッカーサーバーでは動作しません。
誰かが代替案を知っていますか?または何か推測がありますか?
ありがとう
network-protocols - カスタムネットワークプロトコルでの無限のタイムアウトまたは「フェイルファスト」?
カスタムネットワークプロトコルを検討してください。このカスタムプロトコルを使用して、中央の.NETベースのワークステーションからLAN経由でロボット周辺機器を制御できます。(重要な場合、ロボットはチップ生産環境でファブを移動するのに忙しいです)。
- 会話の相手は、.NETステーションとロボット周辺機器の2つだけです。
- ロボット側はリクエストの受信と応答の送信のみが可能です
- .NET側は、要求を開始して応答を受信することしかできません
- リクエストごとに常に1つの応答が必要です
- 結果として生じるリクエストは、応答を待たずに次々に続くことができますが、同時に処理されるリクエストの固定制限(たとえば、5)を超えることはありません。
素敵なディテールやアイデアについて、友人(デザインを所有しているので、傍観者として話し合った)と徹底的に話し合った。議論の終わりに、タイムアウトの欠落について強い意見の不一致がありました。私の友人の主張は、両側のソフトウェアは無期限に待つべきだというものです。私の主張は、タイムアウトはどのネットワークプロトコルでも常に必要であるというものでした。私たちは単に同意することはできませんでした。
私の理由の1つは、障害が発生した場合は、どのようなコストでも「迅速に失敗」する必要があるということです。障害がすでに発生している場合、回復のコストは、障害に関する情報を受け取るために費やした時間に比例して増加し続けるためです。LANで1分後、待つのをやめて、アラームを鳴らしてください。
しかし、彼の主張は、回復には失敗したものの正確な修復(この場合はネットワーク接続の回復)が含まれるべきであり、ネットワークが失われて修正されたことを理解するのに何時間もかかる場合でも、ソフトウェアはただちに透過的に実行し続けるべきであるというものでしたLANケーブルを再接続した後。
この議論が行われるまで、私は時代を超越したプロトコルについて真剣に考えることはありませんでした。
議論のどちら側が正しいですか?「速く失敗する」または「決して失敗しない」?
編集:失敗の例は通信の喪失であり、通常はTCP層によって検出されます。この部分も議論されました。TCP層がエラーを返す場合、上位のカスタムプロトコル層は送信を再試行し、それについての引数はありません。問題は、下位レベルが試行を継続できるようにする期間はどれくらいかということです。
受け入れられた回答の編集:回答は2つの選択肢よりも複雑です:「最も一般的なアプローチは、実際の送信の試みが失敗し、接続が長い間失われたことを確実に確認するまで接続を放棄することはありません。接続が長い間失われたことを計算するには、ハートビートを使用しますが、即時アラームではなく、この確認のみの損失の年齢」。
例:Telnetセッションを使用している場合、端末を永久に稼働させ続けることができ、Enterキーを押す間に、下位レベルのルーチンで検出可能な障害があったかどうかはわかりません。