From b1940907fcf3f276a85bfe1b12f67f2fa300dda6 Mon Sep 17 00:00:00 2001 From: Taiga Takano Date: Sun, 12 Nov 2023 11:07:04 +0900 Subject: [PATCH] Update docs --- docs/Components/ROS2/ROS2ForUnity/index.md | 163 ++++++++-------- docs/Components/Sensors/CameraSensor/index.md | 174 +++++++++--------- docs/DeveloperGuide/Documentation/index.md | 66 +++---- docs/DeveloperGuide/License/index.md | 12 +- docs/GettingStarted/QuickStartDemo/index.md | 171 ++++++++--------- .../GettingStarted/SetupUnityProject/index.md | 75 ++++---- docs/index.md | 14 +- 7 files changed, 332 insertions(+), 343 deletions(-) diff --git a/docs/Components/ROS2/ROS2ForUnity/index.md b/docs/Components/ROS2/ROS2ForUnity/index.md index 07f494f87..24e306d0f 100644 --- a/docs/Components/ROS2/ROS2ForUnity/index.md +++ b/docs/Components/ROS2/ROS2ForUnity/index.md @@ -4,99 +4,92 @@ [time]: https://docs.ros2.org/latest/api/builtin_interfaces/msg/Time.html # ROS2 For Unity -[*Ros2ForUnity*](https://github.com/RobotecAI/ros2-for-unity) (`R2FU`) module is a communication solution that effectively connects *Unity* and the *ROS2* ecosystem, maintaining a strong integration. -Unlike other solutions, it doesn't rely on bridging communication but rather utilizes the *ROS2* middleware stack (specifically the `rcl` layer and below), enabling the inclusion of *ROS2* nodes within *Unity* simulations. +[*Ros2ForUnity*](https://github.com/RobotecAI/ros2-for-unity)(`R2FU`)モジュールは、*Unity*と*ROS2*エコシステムを効果的に接続するコミュニケーションソリューションで、強力な統合を維持します。 +他のソリューションとは異なり、通信をブリッジングに依存せず、むしろ*ROS2*ミドルウェアスタック(特に`rcl`レイヤーおよびそれ以下)を利用して、*Unity*シミュレーション内で*ROS2*ノードを含めることができます。 -`R2FU` is used in *AWSIM* for many reasons. -First of all, because it offers high-performance integration between *Unity* and *ROS2*, with improved throughput and lower latencies compared to bridging solutions. -It provides real *ROS2* functionality for simulation entities in *Unity*, supports standard and custom messages, and includes convenient abstractions and tools, all wrapped as a *Unity* asset. -For a detailed description, please see [*README*](https://github.com/RobotecAI/ros2-for-unity/blob/master/README.md). +`R2FU`は多くの理由で*CoRE.SIM*で使用されています。 +まず第一に、*Unity*と*ROS2*間の高性能な統合を提供し、ブリッジングソリューションと比較してスループットが向上し、レイテンシが低くなります。 +*Unity*内のシミュレーションエンティティに対して実際の*ROS2*機能を提供し、標準およびカスタムメッセージをサポートし、*Unity*アセットとしてラップされた便利な抽象化とツールを含んでいます。 +詳細な説明については、[*README*](https://github.com/RobotecAI/ros2-for-unity/blob/master/README.md)をご覧ください。 -## Prerequisites -This asset can be prepared in two flavours: +## 前提条件 +このアセットは、2つの異なるモードで準備できます: -- *standalone mode* - where no *ROS2* installation is required on target machine, e.g., your *Unity* simulation server. -All required dependencies are installed and can be used e.g. as a complete set of *Unity* plugins. -- *overlay mode* - where the *ROS2* installation is required on target machine. -Only asset libraries and generated messages are installed therefore *ROS2* instance must be sourced. +- *スタンドアロンモード* - このモードでは、対象のマシンに *ROS2* のインストールが必要ありません。例:*Unity* シミュレーションサーバー。 +必要なすべての依存関係がインストールされ、完全な *Unity* プラグインセットとして使用できます。 +- *オーバーレイモード* - このモードでは、対象のマシンに *ROS2* のインストールが必要です。 +アセットライブラリと生成されたメッセージのみがインストールされるため、*ROS2* のインスタンスをソース化する必要があります。 -By default, asset `R2FU` in *AWSIM* is prepared in *standalone mode*. -Thanks to this, *ROS2* instance doesn't need to be sourced - all you have to do is run the *Unity* editor. +デフォルトでは、*CoRE.SIM* のアセット `R2FU` は *スタンドアロンモード* で準備されています。 +これにより、*ROS2* のインスタンスをソース化する必要がなく、*Unity* エディタを実行するだけで済みます。 -!!! question "Can't see topics" - There are no errors but I can't see topics published by `R2FU` +!!! 質問 "トピックが表示されない" + エラーは表示されませんが、`R2FU` によって発行されたトピックが表示されません。 - - Make sure your DDS ([Localhost settings](../../../GettingStarted/QuickStartDemo/#localhost-settings)) config is correct. - - Sometimes *ROS2* daemon brakes up when changing network interfaces or *ROS2* version. -Try to stop it forcefully (`pkill -9 ros2_daemon`) and restart (`ros2 daemon start`). + - DDS([localhostの設定](../../../GettingStarted/QuickStartDemo/#localhost-settings))の設定が正しいことを確認してください。 + - 時々 *ROS2* デーモンはネットワークインターフェースの変更や *ROS2* バージョンの変更時に中断することがあります。 + + 強制的に停止してみてください(`pkill -9 ros2_daemon`) そして再起動してください(`ros2 daemon start`)。 ## Concept -Describing the concept of using `R2FU` in *AWSIM*, we distinguish: - -- *ROS2Node* - it is the equivalent of a node in *ROS2*, it has its own name, it can have any number of subscribers, publishers, service servers and service clients. -In the current *AWSIM* implementation, there is only one main node. -- *ROS2Clock* - it is responsible for generating the simulation time using the selected source. -- *SimulatorROS2Node* - it is a class that is directly responsible for *AWSIM<->ROS2* communication, and contains one instance each of *ROS2Node* and *ROS2Clock*, so it creates the main *AWSIM* node in *ROS2* and simulates the time from the selected source (currently [UnityTimeSource](https://docs.unity3d.com/ScriptReference/Time.html) is used). -It is initialized at the moment of running the scene in *Unity* - thanks to the [`RuntimeInitializeOnLoadMethod`](https://docs.unity3d.com/ScriptReference/RuntimeInitializeOnLoadMethodAttribute.html) mark. -- *Publisher* - it is the equivalent of the publisher in *ROS2*, it uses a single topic on which it can publish a selected type of message, and it has a selected [*QoS*][qos] profile. -Each publisher in *AWSIM* is created in *ROS2Node* object of class *SimulatorROS2Node*. -- *Subscriber* - it is the equivalent of the subscriber in *ROS2*, it uses a single topic from which it subscribes to the selected type of message, and it has a selected [*QoS*][qos] profile. -Each subscriber in *AWSIM* is created in *ROS2Node* object of class *SimulatorROS2Node*. - - - - -The *SimulatorROS2Node* implementation, thanks to the use of `R2FU`, allows you to add communication via *ROS2* to any Unity component. -For example, we can receive control commands from any other *ROS2* node and publish the current state of *Ego*, such as its position in the environment. - -!!! tip "Simulation time" - If you want to use system time (*ROS2* time) instead of *Unity* time, use `ROS2TimeSource` instead of `UnityTimeSource` in the `SimulatorROS2Node` class. - -## Package structure -`Ros2ForUnity` asset contains: - -- *Plugins* - dynamically loaded libraries for *Windows* and *Linux* (`*.dll` and `*.so` files). -In addition to the necessary libraries, here are the libraries created as a result of generation the types of *ROS2* messages that are used in communication. -- *Scripts* - scripts for using `R2FU` in *Unity* - details [below](#scripts). -- *Extension Scripts* - scripts for using `R2FU` in *AWSIM*, provide abstractions of a single main *Node* and simplify the interface - details [below](#extension-scripts). -These scripts are not in the library itself, but directly in the directory `Assets/AWSIM/Scripts/ROS/**`. - -### Scripts -- `ROS2UnityCore` - the principal class for handling *ROS2* nodes and executables. -Spins and executes actions (e.g. clock, sensor publish triggers) in a dedicated thread. -- `ROS2UnityComponent` - `ROS2UnityCore` adapted to work as a *Unity* component. -- `ROS2Node` - a class representing a *ROS2* node, it should be constructed through `ROS2UnityComponent` class, which also handles spinning. -- `ROS2ForUnity` - an internal class responsible for handling checking, proper initialization and shutdown of *ROS2* communication, -- `ROS2ListenerExample` - an example class provided for testing of basic *ROS2->Unity* communication. -- `ROS2TalkerExample` - an example class provided for testing of basic *Unity->ROS2* communication. -- `ROS2PerformanceTest` - an example class provided for performance testing of *ROS2<->Unity* communication. -- `Sensor` - an abstract base class for *ROS2*-enabled sensor. -- `Transformations` - a set of transformation functions between coordinate systems of *Unity* and *ROS2*. -- `PostInstall` - an internal class responsible for installing `R2FU` metadata files. -- `Time` scripts - a set of classes that provide the ability to use different time sources: - - `ROS2Clock` - *ROS2* clock class that for interfacing between a time source (*Unity* or *ROS2* system time) and *ROS2* messages. - - `ROS2TimeSource` - acquires *ROS2* time (system time by default). - - `UnityTimeSource` - acquires *Unity* time. - - `DotnetTimeSource` - acquires *Unity* `DateTime` based clock that has resolution increased using `Stopwatch`. - - `ITimeSource` - interface for general time extraction from any source. - - `TimeUtils` - utils for time conversion. - -### Extension Scripts -Additionally, in order to adapt *AWSIM* to the use of `R2FU`, the following scripts are used: - -- `SimulatorROS2Node` - it is a class that is directly responsible for *AWSIM<->ROS2* communication. -- `ClockPublisher` - allows the publication of the simulation time from the clock running in the *SimulatorROS2Node*. -It must be added as a component to the scene in order to publish the current time when the scene is run. +「CoRE.SIM」内で「R2FU」の概念を説明する際、以下の点を区別します: + +- *ROS2Node* - これは *ROS2* のノードに相当し、独自の名前を持ち、任意の数のサブスクライバ、パブリッシャ、サービスサーバ、およびサービスクライアントを持つことができます。現在の *CoRE.SIM* の実装では、メインノードは1つしかありません。 +- *ROS2Clock* - これは選択したソースを使用してシミュレーション時間を生成する責任があります。 +- *SimulatorROS2Node* - これは *CoRE.SIM<->ROS2* の通信に直接責任を負うクラスで、*ROS2Node* および *ROS2Clock* の各1つのインスタンスを含み、*ROS2* でメインの *CoRE.SIM* ノードを作成し、選択したソースから時間をシミュレーションします(現在は [UnityTimeSource](https://docs.unity3d.com/ScriptReference/Time.html) が使用されています)。これは *Unity* シーンを実行する瞬間に [`RuntimeInitializeOnLoadMethod`](https://docs.unity3d.com/ScriptReference/RuntimeInitializeOnLoadMethodAttribute.html) マークを使用して初期化されます。 +- *Publisher* - これは *ROS2* のパブリッシャに相当し、選択したメッセージのタイプを発行できる単一のトピックを使用し、選択した [*QoS*][qos] プロファイルを持っています。*CoRE.SIM* 内の各パブリッシャは、*SimulatorROS2Node* クラスの *ROS2Node* オブジェクト内で作成されます。 +- *Subscriber* - これは *ROS2* のサブスクライバに相当し、選択したメッセージのタイプをサブスクライブするための単一のトピックを使用し、選択した [*QoS*][qos] プロファイルを持っています。*CoRE.SIM* 内の各サブスクライバは、*SimulatorROS2Node* クラスの *ROS2Node* オブジェクト内で作成されます。 + +「SimulatorROS2Node」の実装は、「R2FU」の使用により、任意の Unity コンポーネントに対して *ROS2* を介した通信を追加することができます。例えば、他の *ROS2* ノードから制御コマンドを受信し、*Ego* の現在の状態(環境内の位置など)を発行することができます。 + +!!! ヒント "シミュレーション時間" + *Unity* の時間の代わりにシステム時間(*ROS2* 時間)を使用したい場合は、`SimulatorROS2Node` クラスで `UnityTimeSource` の代わりに `ROS2TimeSource` を使用してください。 + + +## パッケージ構造 +`Ros2ForUnity` アセットには以下が含まれています: + +- *プラグイン* - *Windows* と *Linux* 用の動的に読み込まれるライブラリ (`*.dll` および `*.so` ファイル)。 +必要なライブラリに加えて、*ROS2* メッセージの種類を生成した結果として作成されたライブラリも含まれています。これらは通信に使用されます。 +- *スクリプト* - `R2FU` を *Unity* で使用するためのスクリプト - 詳細は以下の [下記](#scripts) をご覧ください。 +- *拡張スクリプト* - `R2FU` を *CoRE.SIM* で使用するためのスクリプト。単一のメイン *Node* の抽象化とインタフェースの簡略化を提供します - 詳細は以下の [下記](#extension-scripts) をご覧ください。これらのスクリプトはライブラリ自体ではなく、直接ディレクトリ `Assets/CoRE.SIM/Scripts/ROS/**` にあります。 + +### スクリプト +- `ROS2UnityCore` - *ROS2* ノードと実行可能なアクションの処理を行うための主要なクラス。専用スレッドで回転し、アクションを実行します(例:クロック、センサーのパブリッシュトリガーなど)。 +- `ROS2UnityComponent` - *Unity* コンポーネントとして動作するように適応された `ROS2UnityCore`。 +- `ROS2Node` - *ROS2* ノードを表すクラスで、`ROS2UnityComponent` クラスを介して構築する必要があり、回転もこのクラスで処理されます。 +- `ROS2ForUnity` - *ROS2* 通信の確認、適切な初期化、シャットダウンを処理する内部クラス。 +- `ROS2ListenerExample` - 基本的な *ROS2->Unity* 通信のテスト用に提供される例類クラス。 +- `ROS2TalkerExample` - 基本的な *Unity->ROS2* 通信のテスト用に提供される例類クラス。 +- `ROS2PerformanceTest` - *ROS2<->Unity* 通信のパフォーマンステスト用に提供される例類クラス。 +- `Sensor` - *ROS2* 対応のセンサーの抽象基本クラス。 +- `Transformations` - *Unity* と *ROS2* の座標系間の変換関数のセット。 +- `PostInstall` - `R2FU` メタデータファイルのインストールを処理する内部クラス。 +- `Time` スクリプト - 異なる時間源を使用できるようにする一連のクラス: + - `ROS2Clock` - *Unity* または *ROS2* システム時間と *ROS2* メッセージ間のインタフェースを提供する *ROS2* クロッククラス。 + - `ROS2TimeSource` - *ROS2* 時間を取得します(デフォルトではシステム時間)。 + - `UnityTimeSource` - *Unity* 時間を取得します。 + - `DotnetTimeSource` - `Stopwatch` を使用して解像度を高めた *Unity* `DateTime` ベースのクロックを取得します。 + - `ITimeSource` - 任意のソースからの一般的な時間の取得用のインタフェース。 + - `TimeUtils` - 時間変換用のユーティリティ。 + +拡張スクリプト +さらに、*CoRE.SIM*を`R2FU`の使用に適応させるために、以下のスクリプトが使用されています。 + +- `SimulatorROS2Node` - これは*CoRE.SIM<->ROS2*の通信に直接責任を持つクラスです。 +- `ClockPublisher` - *SimulatorROS2Node*で実行されているクロックからのシミュレーション時間の発行を可能にします。 +シーンにコンポーネントとして追加する必要があり、シーンが実行されると現在の時間を発行します。 ![clock_publisher](clock_publisher.png) -- `QoSSettings` - it is the equivalent of *ROS2* [*QoS*][qos], which allows to specify the *QoS* for subscribers and publishers in *AWSIM*. -It uses the [`QualityOfServiceProfile`](https://github.com/RobotecAI/ros2cs/blob/develop/src/ros2cs/ros2cs_core/QualityOfServiceProfile.cs) implementation from the [Ros2cs](https://github.com/RobotecAI/ros2cs) library. -- `ROS2Utility` - it is a class with utils that allow, for example, to convert positions in the *ROS2* coordinate system to the *AWSIM* coordinate system. -- `DiagnosticsManager` - prints diagnostics for desired elements described in `*.yaml` config file. +- `QoSSettings` - これは*CoRE.SIM*内のサブスクライバーとパブリッシャーの*QoS*を指定する*ROS2*の相当です。 +[Ros2cs](https://github.com/RobotecAI/ros2cs)ライブラリから[`QualityOfServiceProfile`](https://github.com/RobotecAI/ros2cs/blob/develop/src/ros2cs/ros2cs_core/QualityOfServiceProfile.cs)の実装を使用しています。 +- `ROS2Utility` - これは、例えば、*ROS2*の座標系から*CoRE.SIM*の座標系に位置を変換するためのユーティリティを持つクラスです。 +- `DiagnosticsManager` - `*.yaml`設定ファイルで説明されている要素に対する診断情報を出力します。 + ## Default message types -The basic *ROS2* msgs types that are supported in *AWSIM* by default include: +The basic *ROS2* msgs types that are supported in *CoRE.SIM* by default include: - [common_interfaces](https://index.ros.org/r/common_interfaces/github-ros2-common_interfaces/): - [`std_msgs`](https://index.ros.org/p/std_msgs/github-ros2-common_interfaces/#humble). @@ -125,7 +118,7 @@ The basic *ROS2* msgs types that are supported in *AWSIM* by default include: In order for the message package to be used in *Unity*, its `*.dll` and `*.so` libraries must be generated using `R2FU`. !!! tip "Custom message" - If you want to generate a custom message to allow it to be used in *AWSIM* please read [this tutorial](../AddACustomROS2Message/). + If you want to generate a custom message to allow it to be used in *CoRE.SIM* please read [this tutorial](../AddACustomROS2Message/). ## Use of generated messages in *Unity* Each message type is composed of other types - which can also be a complex type. @@ -174,7 +167,7 @@ Debug.Log($"StampSec: {header2.Stamp.sec} and Frame: {header2.Frame_id}"); The **first letter** of each message field in *Unity* is **always** **uppercase** - even if the base *ROS2* message from which it is generated is lowercase. ### Filling a time -In order to complete the time field of the [`Header`][header] message, we recommend the following methods in *AWSIM*: +In order to complete the time field of the [`Header`][header] message, we recommend the following methods in *CoRE.SIM*: 1. When the message has no [`Header`][header] but only the [`Time`][time] type: @@ -231,7 +224,7 @@ Below is an example of `autoware_auto_vehicle_msgs.msg.VelocityReport` type mess using UnityEngine; using ROS2; -namespace AWSIM +namespace CoRE.SIM { public class VehicleReportRos2Publisher : MonoBehaviour { @@ -306,7 +299,7 @@ Below is an example of `std_msgs.msg.Bool` type message subscription on `/vehicl using UnityEngine; using ROS2; -namespace AWSIM +namespace CoRE.SIM { public class VehicleStoppedSubscriber : MonoBehaviour { @@ -332,5 +325,3 @@ namespace AWSIM } } ``` - - diff --git a/docs/Components/Sensors/CameraSensor/index.md b/docs/Components/Sensors/CameraSensor/index.md index 5300cb263..ac0837a92 100644 --- a/docs/Components/Sensors/CameraSensor/index.md +++ b/docs/Components/Sensors/CameraSensor/index.md @@ -1,143 +1,133 @@ # CameraSensor -## Introduction -`CameraSensor` is a component that simulates an *RGB* camera. -Autonomous vehicles can be equipped with many cameras used for various purposes. -In the current version of *AWSIM*, the camera is used primarily to provide the image to the traffic light recognition module in *Autoware*. +## はじめに +`CameraSensor`は*RGB*カメラをシミュレートするコンポーネントです。 +自動運転車はさまざまな目的で使用される多くのカメラを装備することがあります。 +現在の*AWSIM*のバージョンでは、カメラは主に*Autoware*の信号機認識モジュールに画像を提供するために使用されています。 -### Prefab -Prefab can be found under the following path: +### プレハブ +プレハブは以下のパスにあります: ``` Assets/AWSIM/Prefabs/Sensors/CameraSensor.prefab ``` -### Link in the default Scene -The mentioned single `CameraSensor` has its own frame `traffic_light_left_camera/camera_link` in which its data is published. -The sensor prefab is added to this frame. -The `traffic_light_left_camera/camera_link` link is added to the `base_link` object located in the `URDF`. +### デフォルトシーンへのリンク +言及された単一の`CameraSensor`は、そのデータが公開されるフレーム`traffic_light_left_camera/camera_link`を持っています。 +センサープレハブはこのフレームに追加されます。 +`traffic_light_left_camera/camera_link`リンクは、`URDF`内の`base_link`オブジェクトに追加されます。 -![link](link.png) +![リンク](link.png) -A detailed description of the `URDF` structure and sensors added to prefab `Lexus RX450h 2015` is available in this [section](../../../Components/Vehicle/URDFAndSensors/). +`URDF`構造とプレハブ`Lexus RX450h 2015`に追加されたセンサーの詳細な説明は、この[セクション](../../../Components/Vehicle/URDFAndSensors/)で提供されています。 - -## CameraSensorHolder (script) +## CameraSensorHolder(スクリプト) ![InspectorSetup](InspectorSetup.png) -*CameraSensorHolder* (script) allows the sequential rendering of multiple camera sensors. -To utilize it, each `CameraSensor` object should be attached as a child object of the `CameraSensorHolder`. -![SceneObjectHierarchy](SceneObjectHierarchy.png) - -#### Elements configurable from the editor level -- `Camere Sensors` - a collection of camera sensors used for rendering -- `Publish Hz` - the frequency at which camera rendering, image processing and callbacks are executed -- `Render In Queue` - camera sensors rendering sequence type: *in queue (one after another)* or *all at the same frame* +*CameraSensorHolder*(スクリプト)は複数のカメラセンサーの順次レンダリングを許可します。 +それを利用するには、各`CameraSensor`オブジェクトを`CameraSensorHolder`の子オブジェクトとしてアタッチする必要があります。 +![シーンオブジェクト階層](SceneObjectHierarchy.png) +#### エディターレベルで設定可能な要素 +- `Camere Sensors` - レンダリングに使用されるカメラセンサーのコレクション +- `Publish Hz` - カメラのレンダリング、画像処理、およびコールバックが実行される頻度 +- `Render In Queue` - カメラセンサーのレンダリングシーケンスタイプ:*キュー内(一つずつ)*または*すべて同じフレームで* -### CameraSensor Components -![components](components.png) +### カメラセンサーコンポーネント +![コンポーネント](components.png) -For the `CameraSensor` to work properly, the *GameObject* to which the scripts are added must also have: +`CameraSensor`が正しく機能するためには、スクリプトが追加された*GameObject*にも以下が必要です: -- [*Camera component*](https://docs.unity3d.com/Manual/class-Camera.html) - the basic component that ensures the functionality of the camera as a device in *Unity* that capture and display the world to the player. -- [*HD Additional Camera Data* (script)](https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@13.1/api/UnityEngine.Rendering.HighDefinition.HDAdditionalCameraData.html) - additional component that holds [*HDRP*](https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@16.0/manual/index.html) specific parameters for camera. -This Component should be added automatically together with [*Camera component*](https://docs.unity3d.com/Manual/class-Camera.html). +- [*カメラコンポーネント*](https://docs.unity3d.com/Manual/class-Camera.html) - カメラの機能をUnity内のデバイスとして提供し、プレイヤーに世界をキャプチャして表示する基本コンポーネント。 +- [*HD追加カメラデータ*(スクリプト)](https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@13.1/api/UnityEngine.Rendering.HighDefinition.HDAdditionalCameraData.html) - カメラに対する[*HDRP*](https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@16.0/manual/index.html)固有のパラメータを保持する追加のコンポーネントです。このコンポーネントは[*カメラコンポーネント*](https://docs.unity3d.com/Manual/class-Camera.html)と一緒に自動的に追加されるべきです。 -!!! tip "TrafficLights recognition" - In case of problems with the recognition of traffic lights in *Autoware*, it may help to increase the image resolution and focal length of the camera in *AWSIM*. +!!! ヒント "信号機認識" + *Autoware*で信号機の認識に問題がある場合、*AWSIM*のカメラの画像解像度と焦点距離を増やすと助けになるかもしれません。 -!!! tip "Camera settings" - If you would like to adjust the image captured by the camera, we encourage you to read [this manual](https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@11.0/manual/HDRP-Camera.html). +!!! ヒント "カメラの設定" + カメラがキャプチャした画像を調整したい場合は、[このマニュアル](https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@11.0/manual/HDRP-Camera.html)を読むことをお勧めします。 -The `CameraSensor` functionality is split into two scripts: +`CameraSensor`の機能は2つのスクリプトに分かれています: -- *Camera Sensor* (script) - acquires the image from the *Unity* [camera](https://docs.unity3d.com/ScriptReference/Camera.html), transforms it and saves to the *BGR8* format, this format along with the camera parameters is its script output - script also calls the callback for it. -- *Camera Ros2 Publisher* (script) - provides the ability to publish `CameraSensor` output as [Image][image_msg] and [CameraInfo][camera_info_msg] messages type published on a specific *ROS2* topics. +- *カメラセンサー*(スクリプト) - *Unity*の[カメラ](https://docs.unity3d.com/ScriptReference/Camera.html)から画像を取得し、変換し、*BGR8*形式で保存します。この形式はカメラのパラメータと一緒にスクリプトの出力です。スクリプトはまた、それのためのコールバックも呼び出します。 +- *カメラRos2パブリッシャー*(スクリプト) - `CameraSensor`の出力を特定の*ROS2*トピックで[Image][image_msg]と[CameraInfo][camera_info_msg]メッセージタイプとしてパブリッシュする機能を提供します。 -Scripts can be found under the following path: +スクリプトは次のパスにあります: ``` Assets/AWSIM/Scripts/Sensors/CameraSensor/* ``` -In the same location there are also `*.compute` files containing used [`ComputeShaders`](https://docs.unity3d.com/ScriptReference/ComputeShader.html). +同じ場所には、使用される[`ComputeShader`](https://docs.unity3d.com/ScriptReference/ComputeShader.html)が含まれている`*.compute`ファイルもあります。 -## CameraSensor (script) -![script](script.png) +## カメラセンサー(スクリプト) +![スクリプト](script.png) -*Camera Sensor* (script) is a core camera sensor component. -It is responsible for applying *OpenCV* distortion and encoding to *BGR8* format. -The distortion model is assumed to be *Plumb Bob*. -The script renders the image from the [camera](https://docs.unity3d.com/ScriptReference/Camera.html) to [`Texture2D`](https://docs.unity3d.com/ScriptReference/Texture2D.html) and transforms it using the distortion parameters. -This image is displayed in the *GUI* and further processed to obtain the list of bytes in *BGR8* format on the script output. +*カメラセンサー*(スクリプト)は、コアのカメラセンサーコンポーネントです。これは*OpenCV*の歪みと*BGR8*形式へのエンコードを適用する責任があります。歪みモデルは*プラムボブ*と想定されています。このスクリプトは[カメラ](https://docs.unity3d.com/ScriptReference/Camera.html)から画像を[`Texture2D`](https://docs.unity3d.com/ScriptReference/Texture2D.html)にレンダリングし、歪みパラメータを使用して変換します。この画像はGUIに表示され、*BGR8*形式のバイトリストをスクリプトの出力として取得するためにさらに処理されます。 -The script uses two [`ComputeShaders`](https://docs.unity3d.com/ScriptReference/ComputeShader.html), they are located in the same location as the scripts: +このスクリプトは2つの[`ComputeShader`](https://docs.unity3d.com/ScriptReference/ComputeShader.html)を使用します。これらはスクリプトと同じ場所にあります: -- `CameraDistortion` - to correct the image using the camera distortion parameters, -- `RosImageShader` - to encode two pixels color (*bgr8* - 3 bytes) into one (*uint32* - 4 bytes) in order to produce *ROS Image* *BGR8* buffer. +- `CameraDistortion` - カメラの歪みパラメータを使用して画像を修正するためのもの。 +- `RosImageShader` - 2つのピクセルカラー(*bgr8* - 3バイト)を1つの(*uint32* - 4バイト)にエンコードして*ROSイメージ* *BGR8*バッファを生成するためのものです。 - ![compute](compute.png) + ![コンピュート](compute.png) -| API | type | feature | -| :------- | :--- | :-------------------------------------------------------------------------------------------- | -| DoRender | void | Renders the Unity camera, applies OpenCV distortion to rendered image and update output data. | +| API | タイプ | 機能 | +| :------- | :--- | :------------------------------------------------------------------------------------- | +| DoRender | void | Unityカメラをレンダリングし、レンダリングされたイメージにOpenCVの歪みを適用し、出力データを更新します。 | +以下は、エディターレベルから設定可能な要素です。 -#### Elements configurable from the editor level -- `Output Hz` - frequency of output calculation and callback (default: `10Hz`) -- *Image On GUI*: - - `Show` - if camera image should be show on *GUI* (default: `true`) - - `Scale` - scale of reducing the image from the camera, `1` - will give an image of real size, `2` - twice smaller, etc. (default: `4`) - - `X Axis` - position of the upper left corner of the displayed image in the X axis, `0 `is the left edge (default: `0`) - - `Y Axis` - position of the upper left corner of the displayed image in the Y axis, `0` is the upper edge (default: `0`) -- *Camera parameters* - - `Width` - image width (default: `1920`) - - `Height` - image height (default: `1080`) - - `K1, K2, P1, P2, K3` - camera distortion coefficients for *Plum Bob* model
(default: `0, 0, 0, 0, 0`) -- `Camera Object` - reference to the basic [*Camera component*](https://docs.unity3d.com/Manual/class-Camera.html) (default: `None`) -- `Distortion Shader` - reference to [*ComputeShader*](https://docs.unity3d.com/ScriptReference/ComputeShader.html) asset about *Distortion Shader* functionality (default: `None`) -- `Ros Image Shader` - reference to [*ComputeShader*](https://docs.unity3d.com/ScriptReference/ComputeShader.html) asset about *Ros Image Shader* functionality -(default: `None`) +- `Output Hz` - 出力の計算とコールバックの頻度(デフォルト: `10Hz`) +- *GUI上の画像*: + - `表示` - カメラ画像をGUI上に表示するかどうか(デフォルト: `true`) + - `スケール` - カメラからの画像の縮小率、`1`は実際のサイズの画像を提供し、`2`は2倍小さくなります(デフォルト: `4`) + - `X軸` - 表示される画像の左上隅のX軸での位置、`0`は左端です(デフォルト: `0`) + - `Y軸` - 表示される画像の左上隅のY軸での位置、`0`は上端です(デフォルト: `0`) +- *カメラパラメータ* + - `幅` - 画像の幅(デフォルト: `1920`) + - `高さ` - 画像の高さ(デフォルト: `1080`) + - `K1, K2, P1, P2, K3` - *プラムボブ*モデルのカメラ歪み係数(デフォルト: `0, 0, 0, 0, 0`) +- `カメラオブジェクト` - 基本的な[*カメラコンポーネント*](https://docs.unity3d.com/Manual/class-Camera.html)への参照(デフォルト: `None`) +- `歪みシェーダー` - *歪みシェーダー*の機能に関する[*ComputeShader*](https://docs.unity3d.com/ScriptReference/ComputeShader.html)アセットへの参照(デフォルト: `None`) +- `Rosイメージシェーダー` - *Rosイメージシェーダー*の機能に関する[*ComputeShader*](https://docs.unity3d.com/ScriptReference/ComputeShader.html)アセットへの参照(デフォルト: `None`) -#### Output Data -The sensor computation output format is presented below: +#### 出力データ +センサー計算の出力形式は以下の通りです: -| Category | Type | Description | +| カテゴリー | タイプ | 説明 | | :----------------: | :--------------: | :---------------------------- | -| *ImageDataBuffer* | byte[ ] | Buffer with image data. | -| *CameraParameters* | CameraParameters | Set of the camera parameters. | +| *ImageDataBuffer* | byte[ ] | 画像データのバッファ | +| *CameraParameters* | CameraParameters | カメラパラメータのセット | -## CameraRos2Publisher (script) +## CameraRos2Publisher(スクリプト) ![script_ros2](script_ros2.png) -Converts the data output from `CameraSensor` to *ROS2* [Image][image_msg] -and [CameraInfo][camera_info_msg] type messages and publishes them. -The conversion and publication is performed using the `Publish(CameraSensor.OutputData outputData)` method, -which is the `callback` triggered by *Camera Sensor* (script) for the current output. +`CameraSensor`からのデータ出力を*ROS2*の [Image][image_msg] および [CameraInfo][camera_info_msg] タイプのメッセージに変換し、それらを公開します。 +変換および公開は、現在の出力の`callback`である `Publish(CameraSensor.OutputData outputData)` メソッドを使用して実行されます。 - Due to the fact that the entire image is always published, the [`ROI`](https://docs.ros2.org/latest/api/sensor_msgs/msg/RegionOfInterest.html) field of the message is always filled with zeros. -The script also ensures that `binning` is assumed to be zero and the rectification matrix is the identity matrix. +常に全体の画像が公開されるため、メッセージの [`ROI`](https://docs.ros2.org/latest/api/sensor_msgs/msg/RegionOfInterest.html) フィールドは常にゼロで埋められています。 +スクリプトはまた、`binning` がゼロであると仮定し、補正行列が単位行列であることを確認します。 -!!! warning - The script uses the camera parameters set in the *CameraSensor script* - remember to configure them depending on the camera you are using. +!!! 警告 + このスクリプトは *CameraSensorスクリプト* で設定されたカメラパラメータを使用します - 使用するカメラに応じてそれらを設定することを忘れないでください。 +以下はエディターレベルから設定可能な要素です。 -#### Elements configurable from the editor level -- `Image Topic` - the *ROS2* topic on which the [`Image`][image_msg] message is published
(default: `"/sensing/camera/traffic_light/image_raw"`) -- `Camera Info Topic` - the *ROS2* topic on which the [`CameraInfo`][camera_info_msg] message is published
(default: `"/sensing/camera/traffic_light/camera_info"`) -- `Frame id` - frame in which data is published, used in [`Header`](https://docs.ros2.org/latest/api/std_msgs/msg/Header.html)
(default: `"traffic_light_left_camera/camera_link"`) -- `Qos Settings` - Quality of service profile used in the publication
(default: `Best effort`, `Volatile`, `Keep last`, `1`) +- `イメージトピック` - [`Image`][image_msg] メッセージが公開される *ROS2* トピック(デフォルト: `"/sensing/camera/traffic_light/image_raw"`) +- `カメラインフォトピック` - [`CameraInfo`][camera_info_msg] メッセージが公開される *ROS2* トピック(デフォルト: `"/sensing/camera/traffic_light/camera_info"`) +- `フレームID` - データが公開されるフレーム、[`Header`](https://docs.ros2.org/latest/api/std_msgs/msg/Header.html)で使用されます(デフォルト: `"traffic_light_left_camera/camera_link"`) +- `QoS設定` - 公開に使用される品質サービスプロファイル(デフォルト: `ベストエフォート`、`ボラタイル`、`最後の状態を保持`、`1`) -#### Published Topics -- Frequency: `10Hz` -- QoS: `Best effort`, `Volatile`, `Keep last/1` +#### Publishされるトピック +- 周波数: `10Hz` +- QoS: `ベストエフォート`、`ボラタイル`、`最後の状態を保持/1` -| Category | Topic | Message type | `frame_id` | +| カテゴリー | トピック | メッセージタイプ | `frame_id` | | :------------: | :------------------------------------------ | :------------------------------------------ | :-------------------------------------: | -| *Camera info* | `/sensing/camera/traffic_light/camera_info` | [`sensor_msgs/CameraInfo`][camera_info_msg] | `traffic_light_left_camera/camera_link` | -| *Camera image* | `/sensing/camera/traffic_light/image_raw` | [`sensor_msgs/Image`][image_msg] | `traffic_light_left_camera/camera_link` | +| *カメラ情報* | `/sensing/camera/traffic_light/camera_info` | [`sensor_msgs/CameraInfo`][camera_info_msg] | `traffic_light_left_camera/camera_link` | +| *カメラ画像* | `/sensing/camera/traffic_light/image_raw` | [`sensor_msgs/Image`][image_msg] | `traffic_light_left_camera/camera_link` | [image_msg]: https://docs.ros2.org/latest/api/sensor_msgs/msg/Image.html -[camera_info_msg]: https://docs.ros2.org/latest/api/sensor_msgs/msg/CameraInfo.html +[camera_info_msg]: https://docs.ros2.org/latest/api/sensor_msgs/msg/CameraInfo.html \ No newline at end of file diff --git a/docs/DeveloperGuide/Documentation/index.md b/docs/DeveloperGuide/Documentation/index.md index d801bb74e..e99ff6a9d 100644 --- a/docs/DeveloperGuide/Documentation/index.md +++ b/docs/DeveloperGuide/Documentation/index.md @@ -1,43 +1,47 @@ -# Documentation -This document uses [Material for MkDocs](https://squidfunk.github.io/mkdocs-material/). +# ドキュメンテーション +この文書は [Material for MkDocs](https://squidfunk.github.io/mkdocs-material/) を使用しています。 -## Local hosting +## ローカルホスティング -1 Install Material for `MkDocs`. -``` -python3 -m pip install mkdocs-material -``` -2 Hosting on localhost. -``` -$ cd CoRE.SIM -$ python3 -m mkdocs serve -INFO - Building documentation... -INFO - Cleaning site directory -INFO - Documentation built in 0.16 seconds -INFO - [03:13:22] Watching paths for changes: 'docs', 'mkdocs.yml' -INFO - [03:13:22] Serving on http://127.0.0.1:8000/ -``` +1. `MkDocs` 用の Material をインストールします。 + ``` + python3 -m pip install mkdocs-material + ``` +2. ローカルホスティングを開始します。 + ``` + $ cd CoRE.SIM + $ python3 -m mkdocs serve + + INFO - Building documentation... + INFO - Cleaning site directory + INFO - Documentation built in 0.16 seconds + INFO - [03:13:22] Watching paths for changes: 'docs', 'mkdocs.yml' + INFO - [03:13:22] Serving on http://127.0.0.1:8000/ + ``` -3 Access `http://127.0.0.1:8000/` with a web browser. - -![](image_0.png) +3. ウェブブラウザで `http://127.0.0.1:8000/` にアクセスします。 + + ![](image_0.png) -For further reference see [Material for MkDocs - Getting started](https://squidfunk.github.io/mkdocs-material/getting-started/). +詳細は [Material for MkDocs - 入門](https://squidfunk.github.io/mkdocs-material/getting-started/) を参照してください。 + +## MkDocs ファイル +新しいドキュメンテーションファイルには、次の `/docs` ディレクトリと `mkdocs.yml` を使用します。 -## MkDocs files -Use the following `/docs` directory and `mkdocs.yml` for new documentation files. ``` CoRE.SIM -├─ docs/ // markdown and image file for each document. -└─ mkdocs.yml // mkdocs config. +├─ docs/ // 各ドキュメントのマークダウンと画像ファイル +└─ mkdocs.yml // MkDocs の設定 ``` -Create one directory per document. For example, the directory structure of this "Documentation" page might look like this. + +各ドキュメントごとにディレクトリを作成します。例えば、この "Documentation" ページのディレクトリ構造は次のようになるかもしれません。 + ``` CoRE.SIM -└─ docs/ // Root of all documents - └─ DeveloperGuide // Category - └─ Documentation // Root of each document - ├─ index.md // Markdown file - └─ image_0.png // Images used in markdown file +└─ docs/ // すべてのドキュメントのルート + └─ DeveloperGuide // カテゴリ + └─ Documentation // 各ドキュメントのルート + ├─ index.md // マークダウンファイル + └─ image_0.png // マークダウンファイルで使用される画像 ``` \ No newline at end of file diff --git a/docs/DeveloperGuide/License/index.md b/docs/DeveloperGuide/License/index.md index 329e721cb..99d36a7a2 100644 --- a/docs/DeveloperGuide/License/index.md +++ b/docs/DeveloperGuide/License/index.md @@ -1,11 +1,11 @@ -# AWSIM Licenses +# CoRE.SIMおよびAWSIMライセンス -*AWSIM License* applies to [tier4/AWSIM repositories](https://github.com/tier4/AWSIM) and all content contained in the [Releases](https://github.com/tier4/AWSIM/releases). +*CoRE.SIMおよびAWSIMライセンス*は[tier4/AWSIMリポジトリ](https://github.com/tier4/AWSIM)および[Releases](https://github.com/tier4/AWSIM/releases)に含まれるすべてのコンテンツに適用されます。 -- *AWSIM* specific code is distributed under *Apache2.0 License*. -The following extensions are included (`*.cs` `*.compute` `*.xml`) -- *AWSIM* specific assets are distributed under *CC BY-NC License*. -The following extensions are included (`*.fbx` `*.pcd` `*.osm` `*.png` `*.anim` `*.unitypackage` `*.x86_64`) +- *CoRE.SIMおよびAWSIM*固有のコードは*Apache2.0ライセンス*の下で配布されています。 +次の拡張子が含まれています(`*.cs` `*.compute` `*.xml`) +- *CoRE.SIMおよびAWSIM*固有のアセットは*CC BY-NCライセンス*の下で配布されています。 +次の拡張子が含まれています(`*.fbx` `*.pcd` `*.osm` `*.png` `*.anim` `*.unitypackage` `*.x86_64`) ##### Apache2.0 License ``` diff --git a/docs/GettingStarted/QuickStartDemo/index.md b/docs/GettingStarted/QuickStartDemo/index.md index d6f7c3d8a..f2ec9b231 100644 --- a/docs/GettingStarted/QuickStartDemo/index.md +++ b/docs/GettingStarted/QuickStartDemo/index.md @@ -1,107 +1,108 @@ -# Quick Start Demo +# クイックスタートデモ -Below you can find instructions on how to setup the self-driving demo of CoRE.SIM simulation controlled by Autoware. -The instruction assumes using the Ubuntu OS. +!!! info -### PC specs + 現在、[Unityプロジェクトのセットアップ](../SetupUnityProject)のチュートリアルが推奨されています。 -Please make sure that your machine meets the following requirements in order to run the simulation correctly: +以下に、CoRE.SIMシミュレーションのセットアップ手順があります。この手順はUbuntu OSを使用することを前提としています。 -|Required PC Specs|| +### PCの仕様 + +シミュレーションを正しく実行するために、コンピュータが以下の要件を満たしていることを確認してください: + +|必要なPC仕様|| |:--|:--| |OS|Ubuntu 22.04| -|CPU|4cores and 8thread or higher| -|GPU|GTX 1070 or higher| -|NVIDIA Driver (Ubuntu 22)|>=515.43.04| +|CPU|4コアと8スレッド以上| +|GPU|GTX 1070以上| +|NVIDIAドライバー(Ubuntu 22)|>=515.43.04| -### Localhost settings +### ローカルホストの設定 -The simulation is based on the appropriate network setting, which allows for trouble-free communication of the CoRE.SIM simulation with the Autoware software. -To apply required localhost settings please add the following lines to `~/.bashrc` & `~/.profile` files. +シミュレーションは、CoRE.SIMシミュレーションとROS 2ソフトウェアのトラブルフリーな通信を可能にする適切なネットワーク設定に基づいています。 +必要なローカルホスト設定を適用するには、次の行を`~/.bashrc`および`~/.profile`ファイルに追加してください。 -``` bash +```bash source /opt/ros/humble/setup.bash export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp ``` -## Start the demo - -### Running the CoRE.SIM simulation demo - -To run the simulator, please follow the steps below. - -1. Install Nvidia GPU driver (Skip if already installed). - 1. Install the recommended version of the driver. - ``` - sudo apt update - sudo ubuntu-drivers autoinstall - ``` - 2. Reboot your machine to make the installed driver detected by the system. - ``` - sudo reboot - ``` - 3. Open terminal and check if `nvidia-smi` command is available and outputs summary similar to the one presented below. - ``` - $ nvidia-smi - Fri Oct 14 01:41:05 2022 - +-----------------------------------------------------------------------------+ - | NVIDIA-SMI 515.65.01 Driver Version: 515.65.01 CUDA Version: 11.7 | - |-------------------------------+----------------------+----------------------+ - | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | - | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | - | | | MIG M. | - |===============================+======================+======================| - | 0 NVIDIA GeForce ... Off | 00000000:01:00.0 On | N/A | - | 37% 31C P8 30W / 250W | 188MiB / 11264MiB | 3% Default | - | | | N/A | - +-------------------------------+----------------------+----------------------+ - - +-----------------------------------------------------------------------------+ - | Processes: | - | GPU GI CI PID Type Process name GPU Memory | - | ID ID Usage | - |=============================================================================| - | 0 N/A N/A 1151 G /usr/lib/xorg/Xorg 133MiB | - | 0 N/A N/A 1470 G /usr/bin/gnome-shell 45MiB | - +-----------------------------------------------------------------------------+ - ``` - -2. Install Vulkan Graphics Library (Skip if already installed). - 1. Update the environment. - ``` - sudo apt update - ``` - 2. Install the library. - ``` - sudo apt install libvulkan1 - ``` - -3. Download and Run CoRE.SIM Demo binary. - - 1. Download `CoRE.SIM.zip`. - - [Download CoRE.SIM Demo for ubuntu](https://github.com/StrayedCats/CoRE.SIM/releases){.md-button .md-button--primary} +## デモの開始 + +### CoRE.SIMシミュレーションデモの実行 + +シミュレータを実行するには、以下の手順に従ってください。 + +1. NVIDIA GPUドライバーをインストールします(すでにインストールされている場合はスキップ)。 + 1. 推奨されるバージョンのドライバーをインストールします。 + ``` + sudo apt update + sudo ubuntu-drivers autoinstall + ``` + 2. インストールされたドライバーがシステムに検出されるように、マシンを再起動します。 + ``` + sudo reboot + ``` + 3. ターミナルを開いて、`nvidia-smi`コマンドが利用可能で、以下に示すような要約を出力するか確認します。 + ``` + $ nvidia-smi + Fri Oct 14 01:41:05 2022 + +-----------------------------------------------------------------------------+ + | NVIDIA-SMI 515.65.01 Driver Version: 515.65.01 CUDA Version: 11.7 | + |-------------------------------+----------------------+----------------------+ + | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | + | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | + | | | MIG M. | + |===============================+======================+======================| + | 0 NVIDIA GeForce ... Off | 00000000:01:00.0 On | N/A | + | 37% 31C P8 30W / 250W | 188MiB / 11264MiB | 3% Default | + | | | N/A | + +-------------------------------+----------------------+----------------------+ + + +-----------------------------------------------------------------------------+ + | Processes: | + | GPU GI CI PID Type Process name GPU Memory | + | ID ID Usage | + |=============================================================================| + | 0 N/A N/A 1151 G /usr/lib/xorg/Xorg 133MiB | + | 0 N/A N/A 1470 G /usr/bin/gnome-shell 45MiB | + +-----------------------------------------------------------------------------+ + ``` + +2. Vulkan Graphics Libraryをインストールします(すでにインストールされている場合はスキップ)。 + 1. 環境を更新します。 + ``` + sudo apt update + ``` + 2. ライブラリをインストールします。 + ``` + sudo apt install libvulkan1 + ``` + +3. CoRE.SIMデモバイナリをダウンロードして実行します。 + + 1. `CoRE.SIM.zip`をダウンロードします。 + + [Ubuntu用のCoRE.SIMデモをダウンロード](https://github.com/StrayedCats/CoRE.SIM/releases){.md-button .md-button--primary} - 2. Unzip the downloaded file. - - 3. Make the `CoRE.Sim.x86_64` file executable. + 2. ダウンロードしたファイルを解凍します。 - Rightclick the `CoRE.SIM.x86_64` file and check the `Execute` checkbox + 3. `CoRE.SIM.x86_64`ファイルに実行権限を付与します。 - ![](Image_1.png) + `CoRE.SIM.x86_64`ファイルを右クリックし、`実行`のチェックボックスをオンにします - or execute the command below. + または、以下のコマンドを実行します。 - ``` - chmod +x /CoRE.SIM.x86_64 - ``` + ``` + chmod +x /CoRE.SIM.x86_64 + ``` - 4. Launch `CoRE.SIM.x86_64`. - ``` - .//CoRE.SIM.x86_64 - ``` + 4. `CoRE.SIM.x86_64`を起動します。 + ``` + .//CoRE.SIM.x86_64 + ``` - !!! warning + !!! 注意 - It may take some time for the application to start the so please wait until image similar to the one presented below is visible in your application window. \ No newline at end of file + アプリケーションが起動するまでに時間がかかる場合があるので、アプリケーションウィンドウに以下に似た画像が表示されるまでお待ちください。 \ No newline at end of file diff --git a/docs/GettingStarted/SetupUnityProject/index.md b/docs/GettingStarted/SetupUnityProject/index.md index a48f1b5da..450084195 100644 --- a/docs/GettingStarted/SetupUnityProject/index.md +++ b/docs/GettingStarted/SetupUnityProject/index.md @@ -1,84 +1,87 @@ -# Setup Unity Project +# Unityプロジェクトのセットアップ(推奨) -!!! info +このページは、CoRE.SIM Unityプロジェクトのセットアップに関するチュートリアルです。 - It is advised to checkout the [Quick Start Demo](../QuickStartDemo) tutorial before reading this section. +## 環境の準備 -This page is a tutorial for setting up a CoRE.SIM Unity project. +### システムのセットアップ -## Environment preparation +**Ubuntu 22.04 & Ubuntu 20.04** -### System setup - -**Ubuntu 22** - -1. Make sure your machine meets the [required hardware specifications](../QuickStartDemo/#pc-specs). - - *NOTE: PC requirements may vary depending on simulation contents which may change as the simulator develops* -2. Prepare a desktop PC with Ubuntu 22.04 installed. -2. Install [NVIDIA drivers and Vulkan Graphics API](../QuickStartDemo/#running-the-awsim-simulation-demo). -3. Install [git](https://git-scm.com/). +1. ご使用のマシンが[必要なハードウェア仕様](../QuickStartDemo/#pc-specs)を満たしていることを確認してください。 + - *注意: PCの要件は、シミュレーション内容に応じて変化する可能性があります* +2. Ubuntu 22.04がインストールされたデスクトップPCを用意します。 +3. [NVIDIAドライバーとVulkan Graphics API](../QuickStartDemo/#running-the-awsim-simulation-demo)をインストールします。 +4. [git](https://git-scm.com/)をインストールします。 +5. [ROS 2をインストールします。](https://docs.ros.org/en/humble/Installation/Ubuntu-Install-Debians.html) +6. '.bashrc'と'.profile'に以下を書き込みます。 + ``` + source /opt/ros/humble/setup.bash + export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp + ``` -### Unity Hub Installation -Follow the instructions on [this page](https://docs.unity3d.com/hub/manual/InstallHub.html#install-hub-linux). +### Unity Hubのインストール +[このページ](https://docs.unity3d.com/hub/manual/InstallHub.html#install-hub-linux)の指示に従ってください。 -1. To add the public signing key, execute the following command in the terminal: +1. 公開署名キーを追加するには、ターミナルで次のコマンドを実行します: ```bash wget -qO - https://hub.unity3d.com/linux/keys/public | gpg --dearmor | sudo tee /usr/share/keyrings/Unity_Technologies_ApS.gpg > /dev/null ``` -2. To include the Unity Hub repository, you must create an entry in `/etc/apt/sources.list.d`. Use this command to add the Unity Hub repository: +2. Unity Hubリポジトリを含めるには、`/etc/apt/sources.list.d`にエントリーを作成する必要があります。以下のコマンドを使用してUnity Hubリポジトリを追加します: ```bash sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/Unity_Technologies_ApS.gpg] https://hub.unity3d.com/linux/repos/deb stable main" > /etc/apt/sources.list.d/unityhub.list' ``` -3. Refresh the package cache and install Unity Hub with these commands: +3. パッケージキャッシュを更新し、次のコマンドでUnity Hubをインストールします: ```bash sudo apt update sudo apt install unityhub ``` -4. Launch Unity Hub and acquire a license. For most users, the Personal license will be sufficient. +4. Unity Hubを起動し、ライセンスを取得します。ほとんどのユーザーにとって、個人用ライセンスが十分でしょう。 + +### CoRE.SIMプロジェクトを開く -### Open CoRE.SIM project +UnityエディターでUnity CoRE.SIMプロジェクトを開くには: -To open the Unity CoRE.SIM project in Unity Editor: -1. Make sure you have the CoRE.SIM repository cloned +1. CoRE.SIMリポジトリをクローンしていることを確認してください ``` git clone https://github.com/StrayedCats/CoRE.SIM.git ``` -2. Launch UnityHub. +2. Unity Hubを起動します。 -3. Open the project in UnityHub - - Click the `Add` button +3. Unity Hubでプロジェクトを開きます + - `Add` ボタンをクリック ![](pic-0.png) - - Navigate the directory where the CoRE.SIM repository was cloned to + - CoRE.SIMリポジトリがクローンされたディレクトリに移動 - - install Unity edtitor + - Unityエディターをインストール ![](pic-1.png) ![](pic-2.png) - - The project is now ready to use + - プロジェクトはこれで使用準備ができています ![](pic-3.png) !!! warning - If you get the safe mode dialog when starting UnityEditor, you may need to install openssl. + UnityEditorを起動する際にセーフモードのダイアログが表示される場合、opensslをインストールする必要があるかもしれません。 - 1. download libssl + 1. libsslをダウンロード `wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.0g-2ubuntu4_amd64.deb` - 2. install + 2. インストール `sudo dpkg -i libssl1.1_1.1.0g-2ubuntu4_amd64.deb` -### Run CoRE.SIM +### CoRE.SIMを実行する -1. Open the `OutdoorScene.unity` scene placed under `Assets/CoRE/` directory -2. Run the simulation by clicking `Play` button placed at the top section of Editor. +1. `Assets/CoRE/` ディレクトリの下に配置された `OutdoorScene.unity` シーンを開きます。 +2. エディターの上部にある `Play` ボタンをクリックしてシミュレーションを実行します。 ![](pic-5.png) -



+



\ No newline at end of file diff --git a/docs/index.md b/docs/index.md index 4305a605f..7756852c6 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,11 +1,11 @@ # CoRE.SIM -CoRE.SIM is the best scene simulator for CoRE-1. CoRE.SIM is a project that forked from tier4/AWSIM. +CoRE.SIMはCoRE-1向けの最高のシーンシミュレータです。CoRE.SIMは、tier4/AWSIMからフォークされたプロジェクトです。 -## Features +## 特徴 -- Simulator components included (Vehicle, Sensor, Environment, ROS2, etc.) -- Support for Ubuntu 22.04 -- ROS2 native communication -- Open source software -- Made with Unity Game Engine \ No newline at end of file +- シミュレーターコンポーネントが含まれています(車両、センサー、環境、ROS2など)。 +- Ubuntu 22.04のサポート +- ROS2ネイティブ通信 +- オープンソースソフトウェア +- Unityゲームエンジンで作成されました。 \ No newline at end of file