自動運転ミニカーバトル2024のシミュレーション用Unityプロジェクト
![](https://private-user-images.githubusercontent.com/26181834/341943463-639e1a6b-eefe-48b2-b59a-4d0ea1129ba2.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk2MjUxNTAsIm5iZiI6MTczOTYyNDg1MCwicGF0aCI6Ii8yNjE4MTgzNC8zNDE5NDM0NjMtNjM5ZTFhNmItZWVmZS00OGIyLWI1OWEtNGQwZWExMTI5YmEyLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTUlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE1VDEzMDczMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTQwNjMyNTA0NTcwZDVmNDk2ZjM0NDlmMGU5MjBmMjNlODRjZDUyZGYzMzU0ZmY2NWE1ZjgzMjZhOThkMzFhOTcmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.MNc6yGF2pWA8bsoSN-0wE61jQaFeFf0969igU_jGKGw)
ラジコンを走らせる周回コースを自動運転で3周走りきるタイムを競う競技 開催ごとに周回後に駐車したり、コース上の障害物を倒すことで加点される
![](https://private-user-images.githubusercontent.com/26181834/339961014-972905d8-03f2-42a8-bb1b-6faec7306470.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk2MjUxNTAsIm5iZiI6MTczOTYyNDg1MCwicGF0aCI6Ii8yNjE4MTgzNC8zMzk5NjEwMTQtOTcyOTA1ZDgtMDNmMi00MmE4LWJiMWItNmZhZWM3MzA2NDcwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTUlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE1VDEzMDczMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTEyZGJjMWI1ZGY2NWY5Y2ZiZGExNmNjNWQyN2U5NDcxNTBiN2MxNWEwMGIwNTg5NGExMzEwMjUzYzcwNDYyN2MmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.63QMusbBM8BsPe5iv1Q7IpukuaLwGTh5c1Ic_rvygwE)
- PC (Jetson Orin Nano)
- フロントカメラ (B0287)
- リアカメラ (B0287)
- 2Dライダ (YDLIDAR X4)
- ToFセンサ (AE-VL53L1X)
- IMU (BMX055)
3Dモデル (Googleドライブ)
![](https://private-user-images.githubusercontent.com/26181834/339962087-fa439394-52d1-484b-9d49-80b9b5965518.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk2MjUxNTAsIm5iZiI6MTczOTYyNDg1MCwicGF0aCI6Ii8yNjE4MTgzNC8zMzk5NjIwODctZmE0MzkzOTQtNTJkMS00ODRiLTlkNDktODBiOWI1OTY1NTE4LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTUlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE1VDEzMDczMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWMwOGM0NzVkMDE3OTA1OWYzYTkzZTU3YTMyZTY1ODY3YTgyZjYyODg3ZmMxZTcwYjU3MGZlYTJlNDhlYzc5ZDkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.OGdJjrsk4a_ZWMxJ_VdYDgJdK2146cqd5zCfJbvrqS0)
![](https://private-user-images.githubusercontent.com/26181834/339965480-ea5d4f70-c52c-4862-a1a8-ad960ce3bbb5.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk2MjUxNTAsIm5iZiI6MTczOTYyNDg1MCwicGF0aCI6Ii8yNjE4MTgzNC8zMzk5NjU0ODAtZWE1ZDRmNzAtYzUyYy00ODYyLWExYTgtYWQ5NjBjZTNiYmI1LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTUlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE1VDEzMDczMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTlmOWFjZDVhZGIwM2QyYTUwNjMyODMxYjMxY2JhYWVhMjc1NmE2NzYyZGNlZmJlMGEwODYyNWEwMmFiNTNiNjMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.rlSzQVacHt-UdynAcGlrXJk1cCwT7euLsMdcVs-HdDk)
-
/cmd_vel (geometry_msgs/Twist)
ロボット動作指示
-
/imu (sensor_msgs/Imu)
IMUセンサ値
-
/range_[right, center, left] (sensor_msgs/Range)
ToFセンサ値
-
/scan (sensor_msgs/LaserScan)
2D Lidarセンサ値
-
/front_camera/compressed (sensor_msgs/CompressedImage)
前面カメラ値
-
/rear_camera/compressed (sensor_msgs/CompressedImage)
後面カメラ値
Unity側のROS-TCP-Connector
と接続するためのROS-TCP-Endpoint
を起動する
# ワークスペースの作成
mkdir -p colcon_ws/src
cd colcon_ws
# リポジトリをクローンする
git clone https://github.com/Unity-Technologies/ROS-TCP-Endpoint src/ROS-TCP-Endpoint
# ビルドする
colcon build --symlink-install
# 起動する
source install/local_setup.bash
ros2 run ros_tcp_endpoint default_server_endpoint
Unity側から送信されるカメラ画像データは圧縮形式のため解凍して表示できるようにする
# Terminal 1
ros2 run image_transport republish compressed raw \
--ros-args -r /in/compressed:=/front_camera/compressed -r /out:=/front_camera/raw
# Terminal 2
ros2 run image_transport republish compressed raw \
--ros-args -r /in/compressed:=/rear_camera/compressed -r /out:=/rear_camera/raw
![](https://private-user-images.githubusercontent.com/26181834/344475238-d97a9c24-836e-4bd9-aedf-8d638435aff1.gif?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk2MjUxNTAsIm5iZiI6MTczOTYyNDg1MCwicGF0aCI6Ii8yNjE4MTgzNC8zNDQ0NzUyMzgtZDk3YTljMjQtODM2ZS00YmQ5LWFlZGYtOGQ2Mzg0MzVhZmYxLmdpZj9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTUlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE1VDEzMDczMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTQzZDM5Y2E1ZmQwMTQ3ZGQ0YzEyM2NlNTEwNzNlYjRmMWIyNDllMGZjOTY1MzY3ZDU2MzdiMjI4OTViNmQ1MzEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.xdgTLqc6joV3ZshoqMkaa2PiZVdA-cku2fo3MDddSpM)
Library\PackageCache\com.frj.unity-sensors-ros@c33247ddf2\Runtime\Scripts\Serializers\TF\TFMsgSerializer.cs(37,50): error CS1061: 'HeaderMsg' does not contain a definition for 'seq' and no accessible extension method 'seq' accepting a first argument of type 'HeaderMsg' could be found (are you missing a using directive or an assembly reference?)
![](https://private-user-images.githubusercontent.com/26181834/339963670-623194a4-dbfe-425b-88f0-a68b39585d30.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk2MjUxNTAsIm5iZiI6MTczOTYyNDg1MCwicGF0aCI6Ii8yNjE4MTgzNC8zMzk5NjM2NzAtNjIzMTk0YTQtZGJmZS00MjViLTg4ZjAtYTY4YjM5NTg1ZDMwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTUlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE1VDEzMDczMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPThiNzIyNDZmZGZkZGVlODVlMTFjZjdmZjdlMGUxZGM3YjJkNWU0YWU4MWViNWQzMzI5ODI1MmE5ZWM1ZjhlMGUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.-sNfdcFWXWa_U5GXuBZxGrA5FRCJXgfe80rFNDLrVPk)
UnityプロジェクトをROS2に設定した際に、下記のようなエラーが発生した場合はLibrary\PackageCache\com.frj.unity-sensors-ros@c33247ddf2\Runtime\Scripts\Serializers\TF\TFMsgSerializer.cs
の37行目をコメントアウトする
変更前
TransformStampedMsg transform = new TransformStampedMsg();
transform.header.seq = headerMsg.seq;
transform.header.stamp = headerMsg.stamp;
変更後
TransformStampedMsg transform = new TransformStampedMsg();
// transform.header.seq = headerMsg.seq;
transform.header.stamp = headerMsg.stamp;