Giter Site home page Giter Site logo

adrc2024_unity's Introduction

adrc2024_unity

自動運転ミニカーバトル2024のシミュレーション用Unityプロジェクト


自動運転ミニカーバトルとは

ラジコンを走らせる周回コースを自動運転で3周走りきるタイムを競う競技 開催ごとに周回後に駐車したり、コース上の障害物を倒すことで加点される

マシン説明

機器リスト

マシン3Dモデル

3Dモデル (Googleドライブ)

外観

シミュレータ構成

  • /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)

    後面カメラ値


シミュレータ起動方法

ROS-TCP-Endpointの起動

Unity側のROS-TCP-Connectorと接続するためのROS-TCP-Endpointを起動する

ROS-TCP-Endpoint (GitHub)

# ワークスペースの作成
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

レビュー

トラブルシュート

'HeaderMsg' does not contain a definition for 'seq'

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?)

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;

adrc2024_unity's People

Contributors

daiguard avatar motono-a avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

Forkers

sichitong

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.