While there are some other bridging solutions available, ROS2 For Unity is meant for users who care about performance and high-speed simulation , especially with large data throughputs which are usual in automotive simulations.
It runs on Ubuntu 20.04 and Windows 10 and we tested it with Unity 2021.1.7f1. Both Foxy and Galactic are supported. You can start with one of our prepared releases, which can be easily imported as a Unity Asset.
For Windows 10, you have all the dependencies included so it will work on a machine without ros2 installation (e.g. in a distributed simulation - stack architecture).
Very nice. I myself use Vortex DDS from Advantech with Unity3D to communicate with ROS. I am in the process of releasing this open source too.
Question: Do you support ROS services and actions too from within Unity3D? I browsed a bit through your code but could not see examples of that, only of pub and sub of topics (mind you, it is 0:50 already, I might have missed it )
US Air Force and Immersive Wisdom do Unity immersive 360° teleop of ROS 2 Galactic robots via 4G LTE using zenoh-plugin-dds and zenoh-c#. This setup can also be used with Unity simulation, I think it would be appropriate if the ROS 2 and Unity are in different locations. If both are on the same fast wired network then definitely use @adamdbrwRobotec.airos2-for-unity. Eclipse Zenoh is sister project of Eclipse Cyclone DDS (report here). Zenoh also works with the other OMG DDS implementations. ROS 2 with Zenoh how to is here. ROS 2 with Zenoh for bandwidth constrained wireless in Indy Autonomous Challenge racecars how to is here. Chat with developers and users on zenoh gitter. fyi the US Air Force application is passive inspection, safety & security.
ROS 2 with @adamdbrw’s ros2-for-unity gives a very large performance improvement (latency, throughput) to the SVL Simulator used by the Indy Autonomous Challenge university teams compared to its default ROS 2 bridge.
We had several calls with Unity team but in the end I believe they cared about going with their solution for various reasons. These are not all clear to me, I would not like to misrepresent them here. I believe Unity was also interested in providing some support for our Ros2 For Unity in the future. On our side, we are open to various developments, especially when we could get more users to benefit from R2FU.
@CryptoHypnos ROS2 For Unity comes with support for all ROS2 messages. In our releases, we include only a few, the most commonly used. You can include any custom messages by adding them to the ros2_for_unity_custom_messages.repos file (or putting them directly in src/ros2cs/custom_messages/<package_name>) and then build the project.
@cloudconstable-mike Services and actions are still on the roadmap. We are not using services at this moment so there is less drive to make it done quickly. There are no technical difficulties in the way and it should be around a couple days of work for services.
Thanks Adam! At this time, we’re using neither services nor actions, but we are anticipating a need to use actions somewhat soon. Given that implementing actions requires first implementing services anyway, is the plan to add complete Action support after services are available, and can you please clarify if these roadmap items are at all likely to be completed by fall 2022?
I believe they are, I had someone interested in contributing services implementation some time ago, I will check with him. Otherwise I believe we could do that within Robotec team, at least with services for now.