3

私はロボット工学の研究プロジェクトに取り組んでいますが、知りたいのですが、科学データとコードを整理する際のベストプラクティスについて誰か提案がありますか?私が調べることができる情報源を持つ既存の科学図書館を知っている人はいますか?

これが私たちの「スイート」の要素です:

  • 実験-2つのタイプ:
    1. 既存の「自然な」システムからデータを収集する。
    2. ロボットシステムでの実行行動からのデータ。
  • モデル
    • 動的システムの説明-ダイナミクス、運動学など
    • 上記のシステムのパラメータ。その一部はタイプ1の実験から得られたものです。
  • シミュレーション-自然な行動をシミュレートしようとし、ロボットの行動をシミュレートします
  • 実装-ロボットを制御するためのコード。確かに、これは大規模な事業であり、独自の大規模なインフラストラクチャを備えています。

私たちの「スイート」のいくつかのデザインの側面:

  • シミュレーション環境で「ラピッドプロトタイピング」(スクリプト/簡単なハッキングのインタラクティブプロンプト、迅速なデータ検査など-間違いなく組み込むのが難しいもの)が可能であれば良いでしょう-現在、スクリプト言語(Python、MATLAB)で満足しています
  • 複数のプログラミング言語
  • 分散型の協調的なセットアップ-Gitを使用します
  • ユニットテストはまだ組み込まれていませんが、後で組み込まれることを願っています
  • クロスプラットフォーム(残念ながら)-私はLinuxに慣れていますが、チームメンバーはWindowsを使用しており、一部のツールはそのプラットフォームに組み込まれています

この投稿を見て、本が面白く見えて「Writing Scientific Software」を注文しましたが、組織全体ではなく、主にシミュレーションコードの実装に焦点を当てているように感じます。

4

1 に答える 1

2

あなたが説明した状況は、私たちの表面ダイナミクス ラボでの状況と非常によく似ています。いくつかの作業には、リアルタイムで分析されるか、後の分析のために保存される測定データの保持が含まれます。一方、他の作業には、シミュレーションの実行とその結果の分析が含まれます。

ラボのリーダーがケンブリッジで勉強中に習得したデータ管理スキームは、すべてのラボ メンバーの個人ファイルを保持するメイン サーバーを中心にしています。各メンバーは、NFS を使用して適切なサーバー フォルダーをマウントすることにより、自分のワーク ステーションからファイルにアクセスします。これには長所と短所があります。すべてをバックアップする方が簡単ですが、ネット上で大量のデータを処理する場合は問題があります。この理由で、私は研究室では例外です。私が扱っているシミュレーションは大量のデータを生成するからです。このデータは私のワーク ステーションに保存され、それを生成するために使用されたコード (シミュレーションおよび構成ファイルのソース コード) のみがサーバーに保存されます。

また、自宅からラボ サーバーにログインできないため、コードをオンライン SVN サービスに保存しています。これは必須のプラクティスであり、必要に応じて古い結果を再現し、あいまいなバグが発生した場合にコードの変更を追跡できるようにする必要があるためです。したがって、古いバージョンと構成ファイルを維持する必要があります。

また、結果や変更などを記録するためのラボ ノートなど、ローテクな方法も採用しています。このコンテンツは、より抽象的なものになる場合があります (コード内のすべての変更行を説明するのは意味がありません。これには diff があります。変更の目的だけです。おそらく実装とその日付に関するいくつかのメモ)。

作業は主に Matlab で行われます。繰り返しますが、私は Python の方が好きなので例外です。データ生成シミュレーションにも C を使用しています。私のプロジェクトは現在、計算モデルとの比較に関係しているため、テストはほとんど収束です。さまざまな構成で結果を生成し、独自のフォルダーに保存します (ラボのログブックで追跡します)。これには、他の誰かのアイデアやフォーマットに準拠するのではなく、自分が望むとおりにデータを制御およびインターフェースできるという利点があります。

于 2012-10-06T10:17:52.370 に答える