You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+4
Original file line number
Diff line number
Diff line change
@@ -16,6 +16,7 @@ For any questions or feedback, connect directly with the Robotics team at [unity
16
16
17
17
| Tutorial | Description |
18
18
|---|---|
19
+
|[Quick Installation Instructions](tutorials/quick_setup.md)| Brief steps on installing the Unity Robotics packages |
19
20
|[Pick-and-Place Demo](tutorials/pick_and_place/README.md)| A complete end-to-end demonstration, including how to set up the Unity environment, how to import a robot from URDF, and how to set up two-way communication with ROS for control |
20
21
|[ROS–Unity Integration](tutorials/ros_unity_integration/README.md)| A set of component-level tutorials showing how to set up communication between ROS and Unity |
21
22
|[URDF Importer](tutorials/urdf_importer/urdf_tutorial.md)| Steps on using the Unity package for loading [URDF](http://wiki.ros.org/urdf) files (Unified Robot Description Format) |
@@ -50,5 +51,8 @@ In addition to robot simulation, here are some additional, relevant Unity simula
50
51
- Training a performant object detection ML model on synthetic data using Unity Perception tools [blog post](https://blogs.unity3d.com/2020/09/17/training-a-performant-object-detection-ml-model-on-synthetic-data-using-unity-perception-tools/)
- [Is ROS 2 support planned?](#is-ros-2-support-planned)
6
+
- [How does your Unity integration compare to ROS#?](#how-does-your-unity-integration-compare-to-ros)
7
+
- [How can I install the Unity Packages without starting from a template project?](#how-can-i-install-the-unity-packages-without-starting-from-a-template-project)
- [How does the TCP Endpoint compare to Rosbridge Server?](#how-does-the-tcp-endpoint-compare-to-rosbridge-server)
10
+
- [I receive a `Starting server on ...` message in my ROS terminal, but see a `SocketException: A connection attempt failed because the connected party did not respond after a period of time, or established connection failed because connected host has failed to respond.` in my Unity console.](#i-receive-a-starting-server-on--message-in-my-ros-terminal-but-see-a-socketexception-a-connection-attempt-failed-because-the-connected-party-did-not-respond-after-a-period-of-time-or-established-connection-failed-because-connected-host-has-failed-to-respond-in-my-unity-console)
11
+
- [I'm getting the error: `...failed because unknown error handler name 'rosmsg'`.](#im-getting-the-error-failed-because-unknown-error-handler-name-rosmsg)
12
+
- [Unity can't connect to ROS!](#unity-cant-connect-to-ros)
13
+
-[URDF-Importer](#urdf-importer)
14
+
- [I don't see an option to Import Robot from URDF, or I have compile errors upon importing the URDF-Importer.](#i-dont-see-an-option-to-import-robot-from-urdf-or-i-have-compile-errors-upon-importing-the-urdf-importer)
15
+
-[Can't find what you're looking for?](#cant-find-what-youre-looking-for)
16
+
17
+
# General Questions
18
+
Is ROS 2 support planned?
19
+
---
20
+
We definitely plan to support ROS 2 in the future. Let us know more about your use case in order to prioritize our work by reaching out to us at [[email protected]](mailto:[email protected]).
2
21
3
22
How does your Unity integration compare to [ROS#](https://github.com/siemens/ros-sharp)?
4
23
---
@@ -8,11 +27,18 @@ In the URDF Importer we have added the functionality to instantiate a robot from
8
27
9
28
Aside from facilitating communication with the TCP Endpoint, the TCP Connector contains the `MessageGeneration` code from ROS#. We added the extra functionality that when generating a C# class from a ROS message, functions are also generated that will serialize and deserialize the messages as ROS would internally.
10
29
30
+
How can I install the Unity Packages without starting from a template project?
31
+
---
32
+
Refer to the [Quick Start](tutorials/quick_setup.md) instructions on how to import these packages.
33
+
34
+
35
+
# ROS-TCP Endpoint/Connector
36
+
11
37
How does the TCP Endpoint compare to [Rosbridge Server](http://wiki.ros.org/rosbridge_server)?
12
38
---
13
39
To put it simply, the TCP Endpoint does not have the extra overhead of having to serialize and deserialize from JSON as its only function is to pass 'ROS serialized' messages between Unity and ROS. That being said the TCP Endpoint is not as general as ROS Bridge and has the strict requirement that all messages be serialized by the TCP Connector code.
14
40
15
-
Here are some prelminary numbers from a few initial tests done during the discovery stage of this project. We will publish more test results publicly after we go through more rigorous testing but these results should be generally close enough for those curious about performance improvements.
41
+
Here are some preliminary numbers from a few initial tests done during the discovery stage of this project. We will publish more test results publicly after we go through more rigorous testing but these results should be generally close enough for those curious about performance improvements.
16
42
17
43
**Note:** These tests were run on a single machine that was only running ROS and a Unity executable.
18
44
@@ -29,3 +55,24 @@ The time was logged when the message was sent from Unity before being serialized
29
55
30
56
- ROS# with ROS Bridge Suite took ~2 seconds
31
57
- TCP Connector with TCP Endpoint took ~0.17 seconds
58
+
59
+
I receive a `Starting server on ...` message in my ROS terminal, but see a `SocketException: A connection attempt failed because the connected party did not respond after a period of time, or established connection failed because connected host has failed to respond.` in my Unity console.
60
+
---
61
+
This is likely an issue with how your network adapters are set up if you are using a virtual machine. You may need to do some troubleshooting to ensure that your guest OS can talk to your host OS and vice versa. One simple way to do this is to set up a "Host-Only" style network, but this varies based on what virtualization software you're using. Try to ensure that you can `ping` your host OS's IP from inside the guest, and can `ping` the guest from the host, then try this last step again.
62
+
63
+
I'm getting the error: `...failed because unknown error handler name 'rosmsg'`.
64
+
---
65
+
This is due to a bug in an outdated package version. Try running `sudo apt-get update && sudo apt-get upgrade` to upgrade.
66
+
67
+
Unity can't connect to ROS!
68
+
---
69
+
Ensure that the ROS IP address is entered correctly as the `Host Name` in the RosConnect component in Unity, and if you are using a `params.yaml` file, that the appropriate IP addresses are filled in.
70
+
71
+
# URDF-Importer
72
+
73
+
I don't see an option to Import Robot from URDF, or I have compile errors upon importing the URDF-Importer.
74
+
---
75
+
The [ArticulationBody](https://docs.unity3d.com/2020.2/Documentation/ScriptReference/ArticulationBody.html) has dependencies on Unity Editor versions [2020.2.0](https://unity3d.com/unity/whats-new/2020.2.0)+. Try updating your project to the latest 2020.2 release.
Copy file name to clipboardExpand all lines: tutorials/pick_and_place/1_urdf.md
+1-1
Original file line number
Diff line number
Diff line change
@@ -41,7 +41,7 @@ This part includes downloading and installing the Unity Editor, setting up a bas
41
41
42
42
## Setting Up the Robot
43
43
44
-
> Note: Presumably when you opened this project, the Package Manager automatically checked out and built the URDF-Importer package foryou. You can double-check this now by looking for `Packages/URDF-Importer`in the Project Browser or by opening the Package Manager window.
44
+
> Note: Presumably when you opened this project, the Package Manager automatically checked out and built the URDF-Importer package foryou. You can double-check this now by looking for `Packages/URDF-Importer`in the Project Browser or by opening the Package Manager window. See the [Quick Setup](../quick_setup.md) steps for adding this package to your own project.
45
45
46
46
1. Open the Physics Project Settings (Edit > Project Settings > Physics) and ensure the `Solver Type` is set to `Temporal Gauss Seidel`. This prevents erratic behavior in the joints that may be caused by the default solver.
Copy file name to clipboardExpand all lines: tutorials/pick_and_place/2_ros_tcp.md
+8-15
Original file line number
Diff line number
Diff line change
@@ -42,7 +42,7 @@ To enable communication between Unity and ROS, a TCP endpoint running as a ROS n
42
42
43
43
1. If the PickAndPlaceProject Unity project is not already open, select and open it from the Unity Hub.
44
44
45
-
> Note: The Package Manager automatically checked out and built the ROS-TCP-Connection package in this project. You can verify this now by looking for `Packages/ROS-TCP-Connector` in the Project Browser or by opening the Package Manager window.
45
+
> Note: The Package Manager automatically checked out and built the ROS-TCP-Connection package in this project. You can verify this now by looking for `Packages/ROS-TCP-Connector` in the Project Browser or by opening the Package Manager window. See the [Quick Setup](../quick_setup.md) steps for adding this package to your own project.
46
46
47
47
> The ROS-TCP-Connector package includes two pieces: TcpConnector, which contains the `ROSConnection` script described above, and MessageGeneration, which generates C# scripts from ROS msg and srv files.
48
48
@@ -104,23 +104,16 @@ To enable communication between Unity and ROS, a TCP endpoint running as a ROS n
// Finally send the message to server_endpoint.py running in ROS
@@ -130,7 +123,7 @@ To enable communication between Unity and ROS, a TCP endpoint running as a ROS n
130
123
131
124
> This function first takes in the current joint target values. Then, it grabs the poses of the `target` and the `targetPlacement` objects, adds them to the newly created message `sourceDestinationMessage`, and calls `Send()` to send this information to the ROS topic `topicName` (defined as `"SourceDestination_input"`).
132
125
133
-
> Note: Going from Unity world space to ROS world space requires a conversion. Unity's `(x,y,z)` is equivalent to the ROS `(z,-x,y)` coordinate.
126
+
> Note: Going from Unity world space to ROS world space requires a conversion. Unity's `(x,y,z)` is equivalent to the ROS `(z,-x,y)` coordinate. These conversions are provided via the [ROSGeometry component](https://github.com/Unity-Technologies/ROS-TCP-Connector/blob/main/ROSGeometry.md) in the ROS-TCP-Connector package.
134
127
135
128
1. Return to the Unity Editor. Now that the message contents have been defined and the publisher script added, it needs to be added to the Unity world to run its functionality.
136
129
@@ -176,7 +169,7 @@ To enable communication between Unity and ROS, a TCP endpoint running as a ROS n
176
169
177
170
> Note: This project has been tested with Python 2 and ROS Melodic, as well as Python 3 and ROS Noetic.
178
171
179
-
Most of the ROS setup has been provided via the `niryo_moveit` package. This section will describe the `.launch` files and start the necessary ROS nodes for communication. Two methods are provideds to launch ROS nodes and services: either using a ROS docker container or doing it manually in your own ROS environment.
172
+
Most of the ROS setup has been provided via the `niryo_moveit` package. This section will describe the `.launch` files and start the necessary ROS nodes for communication. Two methods are provided to launch ROS nodes and services: either using a ROS docker container or doing it manually in your own ROS environment.
0 commit comments