6

私はロボットを作る小さな楽しいプロジェクトに取り組んでいます。 私たちはプログラマーとしてロボットを構築する人々と平行して作業しています。したがって、変更されたソフトウェアを実行しようとしており、ビルダーがハードウェアを変更していることがよくあります。ソフトウェアテストが実行されていない場合は、ソフトウェアやハードウェアに障害が発生したかどうか、また統合が失敗した場合はさらに悪いことを判断することは常に困難です。 この問題の自動テストでは難しい部分があります。統合/単体テストソフトウェアハードウェアインターフェイスの方法

私たちは物事を崩すいくつかの方法を考え出しました。ロボットがまだ動作していることを保証するソフトウェアなしでいくつかの動きをロボットに行かせるためのRC制御があります。 次に、ソフトウェアが以前と同じように動作することを示すいくつかの定義された数値にロボットを移動させるソフトウェアテストを開始します。しかし、これはいつも非常に時間のかかる作業になります。なぜなら、それを自動化することができず、誰かがテストを開始し、テストを見て、ロボットが何をすべきかを判断しようとするからです。

また、私たちの実際のハードウェアを使った絶え間ないテストでは、ハードウェア、ジョイント、モーター、歯車などの部品が摩耗しています。

しかし、テストはそれほど多くのトラブルを引き起こし、ハードウェアソフトウェアのやりとりを扱っている他のプロジェクトでどのような技術が使用されているかを知りたいと思っています。利用される。

答えて

9

ロボットとソフトウェアの間のインターフェイスを最初に定義する必要があります。必ずしも網羅的ではないが、これは段階的に行うことができる。例えば、基本的な動き(前方、後方)で小さなものから始め、完全にテストされた後、孤立して統合され、振る舞いが加えられます(例えば、左折、右折)。そうすれば、チーム全体がプロジェクト全体で学んだことを使ってインターフェイスを拡張することができ、インターフェイスの再作成を最小限に抑えることができます。

Progress before Hardwareの記事では、このようなプロセスを詳細に説明し、テスト駆動開発(TDD)の側面を中心に説明します。

How to do TDD with hardware質問に対する回答もご覧ください。

2

非常に興味深い状況だと思います。

あなたのテストプロセスに問題はないと思います。あなたがあなたのロボットを模擬してこのモックに対してテストするなら、それはすべて良いことです。
ハードウェアロボットが模擬ロボットと異なる動作をする場合、別の大きな問題があります。通信

ソフトウェアとハ​​ードウェアの間のインターフェイスは "プロトコル"仕様です。私の意見では、議論がなければ変更してはいけません。ハードウェアの人はそれを変更することはできませんし、ソフトウェアの人も変更することはできません!あなたは一緒に変更することができます。あなたの状況では、誰もが自分でそれを変更します。

あなたの状況では、チームはお互いに働いているようです。とにかくうまくいかない統合テストではなく、インターフェースと特にコミュニケーションにあなたの努力を集中させてください。

私の提案は、という唯一のというロボットのソフトウェアモックを使用することです。だからあなたはモックに頼ることができ、ハードとソフトの間の接続を定義する中心点があります。
ソフトウェアの人がそれを変更したい場合は、[OK]をクリックします。彼らはあなたと議論しなければならず、あなたはソフトウェアモックを変更するでしょう。ハードウェアが変更され、モックが変更されていない場合は、仕様に反して開発しているため、謝罪します。

幸運を祈る!