Skip to content

Commit 5037005

Browse files
Integration test (#257)
1 parent 2ead156 commit 5037005

File tree

4 files changed

+29
-14
lines changed

4 files changed

+29
-14
lines changed

tutorials/pick_and_place/2_ros_tcp.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,8 @@ To enable communication between Unity and ROS, a TCP endpoint running as a ROS n
4747

4848
In the ROS Message Browser window, click `Browse` next to the ROS message path. Navigate to and select the ROS directory of this cloned repository (`Unity-Robotics-Hub/tutorials/pick_and_place/ROS/`). This window will populate with all msg and srv files found in this directory.
4949

50+
In the ROS Message Browser window, type in `Scripts/RosMessages` in the text field of Build message path.
51+
5052
![](img/2_browser.png)
5153

5254
> Note: If any of these ROS directories appear to be empty, you can run the command `git submodule update --init --recursive` to download the packages via Git submodules.

tutorials/pick_and_place/PickAndPlaceProject/Assets/DemoScripts/Demo.cs

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,12 @@
66
using System.IO;
77
using System.Reflection;
88
using System.Text;
9-
using RosSharp;
10-
using RosSharp.Control;
11-
using RosSharp.Urdf;
12-
using RosSharp.Urdf.Editor;
139
using UnityEditor;
1410
using UnityEngine;
1511
using Unity.Robotics.ROSTCPConnector;
1612
using Unity.Robotics.ROSTCPConnector.MessageGeneration;
13+
using Unity.Robotics.UrdfImporter;
14+
using Unity.Robotics.UrdfImporter.Control;
1715

1816
public class Demo : MonoBehaviour
1917
{
@@ -43,7 +41,7 @@ public class Demo : MonoBehaviour
4341
float controllerSpeed = 30;
4442
float controllerAcceleration = 10;
4543

46-
string rosMessagesDirectory = "Assets/RosMessages";
44+
string rosMessagesDirectory = "Assets/Scripts/RosMessages";
4745
string rosSrcDirectory = "../ROS/src";
4846
string msgDirectory = "msg";
4947
string srvDirectory = "srv";
@@ -53,6 +51,17 @@ public class Demo : MonoBehaviour
5351
string moverServiceFileName = "MoverService.srv";
5452
string scriptPattern = "*.cs";
5553

54+
string registerMethodName = "Register";
55+
string[] rosGeneratedTypeFullName = new string[]
56+
{
57+
"RosMessageTypes.Moveit.RobotTrajectoryMsg",
58+
"RosMessageTypes.NiryoMoveit.NiryoMoveitJointsMsg",
59+
"RosMessageTypes.NiryoMoveit.NiryoTrajectoryMsg",
60+
"RosMessageTypes.NiryoMoveit.MoverServiceResponse",
61+
"RosMessageTypes.NiryoMoveit.MoverServiceRequest"
62+
};
63+
64+
5665
string externalScriptsDirectory = "../Scripts";
5766
//string scriptsDirectory = "Assets/Scripts";
5867

@@ -77,7 +86,7 @@ void Awake()
7786
CreateRosConnection();
7887
CreateTrajectoryPlannerPublisher();
7988
}
80-
89+
8190
void Update()
8291
{
8392
// Make sure to publish only once in the demo
@@ -138,6 +147,12 @@ private void AddRosMessages()
138147
scripts.AddRange(Directory.GetFiles(rosMessagesDirectory, scriptPattern, SearchOption.AllDirectories));
139148
scripts.AddRange(Directory.GetFiles(externalScriptsDirectory));
140149
RecompileScripts(scripts.ToArray());
150+
151+
// Register Ros message names and their deserialize function
152+
foreach (var typeFullName in rosGeneratedTypeFullName)
153+
{
154+
assembly.GetType(typeFullName).GetMethod(registerMethodName).Invoke(null, null);
155+
}
141156
}
142157

143158
private void CreateTrajectoryPlannerPublisher()

tutorials/pick_and_place/PickAndPlaceProject/Assets/Tests/EditMode/IntegrationTest.cs

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,11 @@
22
using System.Collections;
33
using System.IO;
44
using NUnit.Framework;
5-
using RosSharp;
6-
using RosSharp.Control;
7-
using RosSharp.Urdf;
85
using Unity.Robotics.PickAndPlace;
96
using UnityEngine;
107
using Unity.Robotics.ROSTCPConnector;
8+
using Unity.Robotics.UrdfImporter;
9+
using Unity.Robotics.UrdfImporter.Control;
1110
using UnityEditor;
1211
using UnityEditor.SceneManagement;
1312
using UnityEngine.TestTools;
@@ -101,16 +100,16 @@ public IEnumerator TrajectoryPublisher_PickAndPlaceDemo_CompletesTask()
101100
m_TimeElapsedSeconds += Time.deltaTime;
102101
yield return null;
103102
}
104-
103+
105104
Assert.IsTrue(DidPlacementSucceed, "Pick and Place did not complete before test timed out.");
106-
105+
107106
yield return new ExitPlayMode();
108107
}
109108

110109
void SetUpScene()
111110
{
112111
EditorSceneManager.OpenScene(k_PathTestScene);
113-
112+
114113
InstantiatePrefabFromName(k_NameTable);
115114
InstantiatePrefabFromName(k_NameTarget);
116115
InstantiatePrefabFromName(k_NameTargetPlacement);

tutorials/pick_and_place/PickAndPlaceProject/Packages/manifest.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
{
22
"dependencies": {
3-
"com.unity.collab-proxy": "1.5.7",
43
"com.unity.ide.rider": "2.0.7",
54
"com.unity.ide.visualstudio": "2.0.8",
65
"com.unity.ide.vscode": "1.2.3",
76
"com.unity.robotics.ros-tcp-connector": "https://github.com/Unity-Technologies/ROS-TCP-Connector.git?path=/com.unity.robotics.ros-tcp-connector#dev",
8-
"com.unity.robotics.urdf-importer": "https://github.com/Unity-Technologies/URDF-Importer.git?path=/com.unity.robotics.urdf-importer#stl-package-import-fix",
7+
"com.unity.robotics.urdf-importer": "https://github.com/Unity-Technologies/URDF-Importer.git?path=/com.unity.robotics.urdf-importer#dev",
98
"com.unity.test-framework": "1.1.24",
109
"com.unity.textmeshpro": "3.0.6",
1110
"com.unity.timeline": "1.4.8",

0 commit comments

Comments
 (0)