No version for distro humble. Known supported distros are highlighted in the buttons above.
No version for distro jazzy. Known supported distros are highlighted in the buttons above.
No version for distro kilted. Known supported distros are highlighted in the buttons above.
No version for distro rolling. Known supported distros are highlighted in the buttons above.
Repository Summary
Description | Simulator on Unity + PhysX communicating with ROS |
Checkout URI | https://github.com/pwri-opera/operasim-physx.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-06-20 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
Name | Version |
---|---|
excavator_model | 0.0.0 |
ic120_model | 0.0.0 |
control_msgs | 3.0.0 |
gazebo_msgs | 2.9.3 |
README
OperaSim-PhysX
Simulator on Unity + PhysX communicating with ROS
詳細マニュアル
概説
- 本シミュレータは自律施工技術開発基盤OPERA(Open Platform for Earth work with Robotics and Autonomy)の一部であり、どなたでも利用可能です
- シミュレータプラットフォームにUnity、物理エンジンにNvidia PhysXを利用しています
- Unityを利用するため、利用者が所属する組織に応じたUnityのライセンスが必要です。詳細はUnityの公式サイトをご確認の上、利用登録をしてください。
インストール方法
1. Unity(ver:2022.3.4f1)のインストール
使用しているPCのOSに応じて以下の通りUnityHubをインストールする
- windows 又は Macの場合: https://unity3d.com/jp/get-unity/download
- Linuxの場合(Linux版は動作確認していない):https://unity3d.com/get-unity/download
2. Projectファイルの開き方とUnity Editorのダウンロード
- UnityHubを起動し、画面右上の「追加」から
OperaSim_PhysX
(Githubから自身のPCにダウンロードしたもの)選択し、クリックする(初回起動時には数分程度の時間がかかります)。クリックした際に指定のUnity Editorを選択しダウンロードする。
3. Sceneファイルの選択
- デモ用のサンプルSceneファイルが
Asset/Scenes/SampleScene.unity
にあるので、これを開く.
4. ROS-TCP-Connectorの設定
- UnityEditorの上部ツールバーからRobotics > ROS Settingを開き”ROS IP Address”, “ROS Port”のところにROS側のIPアドレスおよびポート番号(defaultは10000)を入力する
- もしROS2を利用する場合は”Protocol”のところを”ROS1”->”ROS2”へ変更する
5. ROSとの連携方法
- 【初回のみ】ROS側でROS-TCP-Endpointパッケージをcloneし、buildとセットアップを行う。 ROS 1 の場合
$ cd (rosワークスペース)/src
$ git clone https://github.com/Unity-Technologies/ROS-TCP-Endpoint.git
$ cd ./ROS-TCP-Endpoint/
$ sudo chmod +x setup.py
$ ./setup.py
$ catkin build ros_tcp_endpoint
$ source ../../devel/setup.bash
ROS 2 の場合
$ cd (ros2ワークスペース)/src
$ git clone -b main-ros2 https://github.com/Unity-Technologies/ROS-TCP-Endpoint.git
$ cd ./ROS-TCP-Endpoint/
$ sudo chmod +x setup.py
$ ./setup.py
$ cd ../../
$ colcon build --packages-select ros_tcp_endpoint
$ . install/setup.bash
- ROS側でendpoint.launchを実行する
$ roslaunch ros_tcp_endpoint endpoint.launch
- Unity Editor上部の実行ボタンをクリックする
- ROS側で、対応する建機のunity用launch ファイルを起動する
- 油圧ショベル
$ roslaunch zx120_unity zx120_standby.launch
- クローラダンプ
$ roslaunch ic120_unity ic120_standby.launch
<!–
- 油圧ショベルとクローラダンプの両方
$ roslaunch zx120_ic120_standby.launch
–> #### ROSと連携時の送受信データ
- Cmd (ROS -> Unity)
データの内容 | トピック名 | トピック型 | 物理量 | 単位 | 備考 |
---|---|---|---|---|---|
建機の移動体部に対する対地速度指令値 | /(建機のns)/tracks/cmd_vel | geometry_msgs/Twist | 速度 | [m/s],[rad/s] | |
ダンプトラックの荷台の傾斜角指令値 | /(建機のns)/vessel/cmd | std_msgs/Float64 | 角度 | [rad] | |
建機のスイング軸の角度指令値 | /(建機のns)/swing/cmd | std_msgs/Float64 | 角度 | [rad] | |
建機のブーム軸の角度指令値 | /(建機のns)/boom/cmd | std_msgs/Float64 | 角度 | [rad] | |
建機のアーム軸の角度指令値 | /(建機のns)/arm/cmd | std_msgs/Float64 | 角度 | [rad] | |
建機のバケット軸の角度指令値 | /(建機のns)/bucket/cmd | std_msgs/Float64 | 角度 | [rad] |
- Res(Unity -> ROS)
データの内容 | トピック名 | トピック型 | 物理量 | 単位 | 備考 |
---|---|---|---|---|---|
建機のベースリンクの座標 | /(建機のns) /base_link/pose | geometry_msgs/PoseStamped | 位置・姿勢 | 位置:[m] 姿勢:[-] | Unity内のworld座標系に対する座標の真値 |
建機のオドメトリ計算結果 | /(建機のns) /odom | nav_msgs/Odometry | オドメトリ | 位置:[m] 姿勢:[-] | 初期位置を原点として算出している |
建機の関節角度・角速度 | /(建機のns) /joint_states | sensor_msgs/JointState | 角度・角速度 | 角度:[rad] 角速度:[rad/s] | effortについては次節を参照 |
File truncated at 100 lines see the full file
CONTRIBUTING
No version for distro galactic. Known supported distros are highlighted in the buttons above.
No version for distro iron. Known supported distros are highlighted in the buttons above.
No version for distro melodic. Known supported distros are highlighted in the buttons above.
No version for distro noetic. Known supported distros are highlighted in the buttons above.