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
-**Contact Modification API** This API will allow users to define custom contact reactions, such as ignoring subsets of contact points, in order to help simulate holes, slippery surfaces, soft contacts, and more. It is available in Unity versions **2021.2a12+**. [Read more about the new Contact Modification API](https://forum.unity.com/threads/experimental-contacts-modification-api.924809/).
89
-
-**Collision detection modes exposed for ArticulationBody: discrete, sweep-based CCD, and speculative CCD**. New continuous collision detection (CCD) modes will ensure that fast-moving objects collide with objects, instead of tunneling or passing through those objects, which can happen in the default “discrete” mode. This API is available in Unity versions **2020.3.5f1+**. [Read more about continuous collision detection](https://docs.unity3d.com/2020.3/Documentation/ScriptReference/ArticulationBody-collisionDetectionMode.html).
90
-
91
-
### Coming Soon
92
-
Here’s a peek into what our Physics Team is hard at work on…
93
-
94
-
-**Wheel Collider shapes**. This feature will allow the user to specify the shape of the collider to be used for collision detection. Currently the collider shape is fixed to a cylinder, and collision detection is performed by casting a ray from the center of the cylinder. Custom shapes will improve the accuracy of simulating wheels over rough terrains, holes, etc. [Read more about Wheel Collider](https://docs.unity3d.com/Manual/class-WheelCollider.html).
95
-
-**Force/Torque Sensor API**. This API will allow users to get the force and torque acting on an articulation body (useful for simulating a force/torque sensor!), as well as to get the motor torque applied by an articulation drive.
96
-
-**Query primitives**. These simple, GameObject-less shapes allow for collision detection without requiring simulation (i.e., without calling Physics.Simulate). This feature will allow users to initialize objects in feasible locations, and can also be used for motion planning.
97
-
98
82
## ROS 2
99
83
ROS2 support is now available! You can get started by following [this tutorial](https://github.com/Unity-Technologies/Unity-Robotics-Hub/blob/main/tutorials/ros_unity_integration/publisher.md).
Copy file name to clipboardExpand all lines: tutorials/pick_and_place/0_ros_setup.md
+4-2Lines changed: 4 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -56,7 +56,9 @@ The ROS workspace is now ready to accept commands!
56
56
- Copy or download this directory to your ROS operating system if you are doing ROS operations in another machine, VM, or container.
57
57
> Note: This contains the ROS packages for the pick-and-place task, including [ROS TCP Endpoint](https://github.com/Unity-Technologies/ROS-TCP-Endpoint), [Niryo One ROS stack](https://github.com/NiryoRobotics/niryo_one_ros), [MoveIt Msgs](https://github.com/ros-planning/moveit_msgs), `niryo_moveit`, and `niryo_one_urdf`.
58
58
59
-
1. The provided files require the following packages to be installed. ROS Melodic users should run the following commands if the packages are not already present:
59
+
1. The provided files require the following packages to be installed.
60
+
61
+
ROS Melodic users should run the following commands if the packages are not already present:
60
62
61
63
```bash
62
64
sudo apt-get update && sudo apt-get upgrade
@@ -72,7 +74,7 @@ The ROS workspace is now ready to accept commands!
72
74
sudo -H pip3 install rospkg jsonpickle
73
75
```
74
76
75
-
1. If you have not already built and sourced the ROS workspace since importing the new ROS packages, navigate to your ROS workplace, and run `catkin_make && source devel/setup.bash`. Ensure there are no errors.
77
+
2. If you have not already built and sourced the ROS workspace since importing the new ROS packages, navigate to your ROS workplace, and run `catkin_make && source devel/setup.bash`. Ensure there are no errors.
76
78
77
79
The ROS workspace is now ready to accept commands!
Copy file name to clipboardExpand all lines: tutorials/pick_and_place/2_ros_tcp.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -212,9 +212,9 @@ ROS and Unity have now successfully connected!
212
212
213
213
-`...failed because unknown error handler name 'rosmsg'` This is due to a bug in an outdated package version. Try running `sudo apt-get update && sudo apt-get upgrade` to upgrade.
214
214
215
-
- If Unity fails to find a network connection, ensure that the ROS IP address is entered correctly as the ROS IP Address in the RosConnect in Unity, and that the `src/niryo_moveit/config/params.yaml` values are set correctly.
215
+
- If Unity fails to find a network connection, ensure that the ROS IP address is entered correctly as the ROS IP Address in the ROS Settings in Unity. This should default to `127.0.0.1`.
216
216
217
-
- If the ROS TCP handshake fails (e.g. `ROS-Unity server listening...` printed on the Unity side but no `ROS-Unity Handshake received` on the ROS side), the ROS IP may not have been set correctly in the params.yaml file. Try running `echo "ROS_IP: $(hostname -I)" > src/niryo_moveit/config/params.yaml` in a terminal from your ROS workspace.
217
+
- If the ROS TCP handshake fails (e.g. no `Connection from 172.17.0.1`on the ROS side after starting the endpoint and entering Play in Unity), the ROS IP may not have been set correctly. The endpoint defaults to `0.0.0.0`, assuming a native or Docker setup. To override this, you can configure the address and/or port by passing them into the launchfile when you launch it, e.g. `roslaunch niryo_moveit part_2.launch tcp_ip:=127.0.0.1 tcp_port:=10005`.
218
218
219
219
- If the UI buttons appear to be unresponsive, such as not responding to clicks, ensure there is an [EventSystem](https://docs.unity3d.com/2020.1/Documentation/Manual/UIE-Events.html) in the scene hierarchy. This should be added automatically when adding UI elements, but if it is not, you can add one to your scene from the Hierarchy window via `(+) > UI > Event System`. You can also access this dropdown from right-clicking in an empty area in the Hierarchy window.
Copy file name to clipboardExpand all lines: tutorials/ros_unity_integration/network.md
+14-17Lines changed: 14 additions & 17 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -16,7 +16,13 @@
16
16
17
17
> It is possible to set both of these variables on the machines running Unity and ROS. The specifics of where and why each of these settings will be described below.
18
18
19
-
On the ROS machine, these settings are set as a rosparam and will typically be set in a launch file like [this](ros_packages/unity_robotics_demo/launch/robo_demo.launch) or in a [param file](https://github.com/Unity-Technologies/Unity-Robotics-Hub/blob/main/tutorials/pick_and_place/ROS/src/niryo_moveit/config/params.yaml) loaded by a launch file like [this](https://github.com/Unity-Technologies/Unity-Robotics-Hub/blob/main/tutorials/pick_and_place/ROS/src/niryo_moveit/launch/part_3.launch#L2). The param file can also be loaded manually by running the `rosparam load params.yaml` command.
19
+
On the ROS machine, these settings can be set via arguments when running the endpoint's roslaunch like this:
Or, if using a launchfile like in the Pick-and-Place demo, the settings can be passed as arguments in a launch file like [this](https://github.com/Unity-Technologies/Unity-Robotics-Hub/blob/main/tutorials/pick_and_place/ROS/src/niryo_moveit/launch/part_3.launch#L2-L3).
20
26
21
27
On the Unity machine, these settings are set from the menu by going to `Robotics` -> `ROS Settings`
22
28
@@ -27,17 +33,7 @@ The minimum settings required for Unity to communicate with ROS is to set the `R
27
33
28
34
## If Using Docker
29
35
30
-
The container will need to be started with the following arguments to forward the ports used for communication between ROS and Unity.
31
-
32
-
`-p 10000:10000 -p 5005:5005`
33
-
34
-
35
-
- On the ROS side, set `ROS_IP` to `0.0.0.0`.
36
-
```bash
37
-
rosparam set ROS_IP 0.0.0.0
38
-
```
39
-
40
-
- On the Unity side, set `ROS_IP` to `127.0.0.1`.
36
+
The container will need to be started with the default arguments to forward the ports used for communication between ROS and Unity. The `unity_endpoint` will listen on IP 0.0.0.0 (i.e. allowing all incoming addresses) and port 10000, but these settings are configurable.
41
37
42
38

43
39
@@ -49,18 +45,17 @@ The container will need to be started with the following arguments to forward th
49
45
50
46
When play is pressed in the Editor, Unity will establish the connection to ROS using the ROS_IP.
51
47
52
-
If Unity can communicate with ROS, you should see a heads-up display showing the connection in Unity Editor.
48
+
If Unity can communicate with ROS, you should see a heads-up display showing the connection in Unity Editor's Game view.
53
49
54
50

55
51
56
52
The icon in front of ROS IP should be blue indicating the connection between Unity and ROS is successful.
57
53
58
54
59
-
On ROS side, you should see a message printed to the console screen running the `server_endpoint.py` script, something similar to the following:
55
+
On ROS side, you should see a message printed to the console screen running the server endpoint, something similar to the following:
60
56
61
57
```Connection from 172.17.0.1```
62
58
63
-
64
59
If the previous message is not shown and either of the following errors are thrown instead:
-`server_endpoint` is running. On ROS side, you can run ```rosrun ros_tcp_endpoint default_server_endpoint.py```
71
+
-The `unity_endpoint` is running. On ROS side, you can run ```rosrun ros_tcp_endpoint default_server_endpoint.py```
77
72
- You can ping ROS machine from Unity machine
78
73
- From a terminal on the Unity machine, run the following command to confirm whether the ROS machine is reachable over the network. ```ping ROS_IP```
79
74
80
75
If issue still persists:
81
76
82
77
- If on Windows you may need to [open ports for the firewall](#open-port-on-windows-firewall).
78
+
- Ensure your Connector and Endpoint packages are using matching versions. You will see a `Incompatible ROS-TCP-Endpoint version...` message in your Unity console if these are not the same.
79
+
- You can verify which Connector version is being used in the `Window > Package Manager` window, and you can run `rosversion ros_tcp_endpoint` on the ROS side. Ensure these values match.
83
80
84
81
### 2. Can ROS send messages to Unity?
85
82
86
83
After it is confirmed that Unity can communicate with ROS, publish a message to a ROS topic to which Unity has instantiated a subscriber.
87
84
88
85
You can confirm the connection status by checking the heads-up display in your Unity Scene after entering the Play mode.
89
86
90
-
If an error is thrown in the `server_endpoint` console then ROS cannot connect to Unity.
87
+
If an error is thrown in the `unity_endpoint` console then ROS cannot connect to Unity.
Copy file name to clipboardExpand all lines: tutorials/ros_unity_integration/setup.md
+4Lines changed: 4 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -113,3 +113,7 @@ The instructions so far have set up the ROS-TCP-Connector package for general us
113
113

114
114
115
115
The generated files will be saved in the default directories `Assets/RosMessages/UnityRoboticsDemo/msg` and `Assets/RosMessages/UnityRoboticsDemo/srv`. Note, there is no difference between the message scripts generated in ROS1 and ROS2 mode. You don't need to regenerate messages when you switch between them.
116
+
117
+
## Troubleshooting
118
+
119
+
Check out the [ROS–Unity Integration Networking](network.md) document for more details on troubleshooting your connection.
0 commit comments