Skip to content

Commit ac3c5b9

Browse files
authored
Merge pull request #157 from Unity-Technologies/dev
Merge dev into main
2 parents db5ec5e + 113fc86 commit ac3c5b9

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+1114
-56
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
.DS_Store
2+
.swp
23
.idea
34
.vscode/
45
tutorials/pick_and_place/PickAndPlaceProject/Packages/packages-lock.json

.yamato/yamato-config.yml

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
name: Robotics Hub Tests
2+
agent:
3+
type: Unity::VM
4+
image: robotics/ci-ubuntu20:latest
5+
flavor: i1.large
6+
variables:
7+
PATH: /root/.local/bin:/home/bokken/bin:/home/bokken/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/sbin:/home/bokken/.npm-global/bin
8+
commands:
9+
- git submodule update --init --recursive
10+
# TODO: Fix this hack - our bokken image is missing a .NET dependency (System.CodeDom) without which causes compilation to fail
11+
- rm ./tutorials/pick_and_place/PickAndPlaceProject/Assets/DemoScripts/Demo.*
12+
# This is another hack to ensure audio is disabled. Unity built-in audio fails to initialize in our Bokken image.
13+
- "sed -i -e '/m_DisableAudio/ s/: .*/: 1/' ./tutorials/pick_and_place/PickAndPlaceProject/ProjectSettings/AudioManager.asset"
14+
- python3 -m pip install unity-downloader-cli --index-url https://artifactory.prd.it.unity3d.com/artifactory/api/pypi/pypi/simple --upgrade
15+
- unity-downloader-cli -u 2020.2.0b9 -c editor -c StandaloneSupport-IL2CPP -c Linux --wait --published
16+
- git clone git@github.cds.internal.unity3d.com:unity/utr.git utr
17+
- utr/utr --testproject=./tutorials/pick_and_place/PickAndPlaceProject --editor-location=.Editor --reruncount=0 --artifacts_path=test-results --suite=playmode --suite=editor --platform=Editor --editorTestsCategories MessageGeneration
18+
- mkdir -p ./tutorials/pick_and_place/PickAndPlaceProject/Assets/Scripts && cp ./tutorials/pick_and_place/Scripts/*.cs ./tutorials/pick_and_place/PickAndPlaceProject/Assets
19+
- utr/utr --testproject=./tutorials/pick_and_place/PickAndPlaceProject --editor-location=.Editor --reruncount=0 --artifacts_path=test-results --suite=playmode --suite=editor --platform=Editor --editorTestsCategories BuildTests
20+
triggers:
21+
cancel_old_ci: true
22+
expression: |
23+
(pull_request.target eq "main" AND
24+
NOT pull_request.push.changes.all match ["**/*.md","**/*.jpg","**/*.jpeg","**/*.gif","**/*.pdf"]) OR
25+
(push.branch eq "dev" AND
26+
NOT push.changes.all match ["**/*.md","**/*.jpg","**/*.jpeg","**/*.gif","**/*.pdf"])
27+
artifacts:
28+
logs:
29+
paths:
30+
- "test-results/**/*"

README.md

Lines changed: 25 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,7 @@ This is a central repository for tools, tutorials, resources, and documentation
88
99
## Introduction
1010

11-
Simulation plays an important role in robotics development, and we’re here to ensure that roboticists can use Unity for these simulations. We have released our first set of tools to make it easier to use Unity with existing ROS-based workflows. Try out some of our samples below to get started quickly.
12-
13-
For any questions or feedback, connect directly with the Robotics team at [unity-robotics@unity3d.com](mailto:unity-robotics@unity3d.com).
11+
Simulation plays an important role in robotics development, and we’re here to ensure that roboticists can use Unity for these simulations. We're starting off with a set of tools to make it easier to use Unity with existing ROS-based workflows. Try out some of our samples below to get started quickly.
1412

1513
## Getting Started with Unity Robotics
1614

@@ -19,23 +17,23 @@ For any questions or feedback, connect directly with the Robotics team at [unity
1917
| [Quick Installation Instructions](tutorials/quick_setup.md) | Brief steps on installing the Unity Robotics packages |
2018
| [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 |
2119
| [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 |
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) |
23-
| [Articulations Robot Demo](https://github.com/Unity-Technologies/articulations-robot-demo) | A robot simulation demonstrating Unity's new physics solver
20+
| [URDF Importer](tutorials/urdf_importer/urdf_tutorial.md) | Steps on using the Unity package for loading [URDF](http://wiki.ros.org/urdf) files |
21+
| [Articulations Robot Demo](https://github.com/Unity-Technologies/articulations-robot-demo) | A robot simulation demonstrating Unity's new physics solver (no ROS dependency)
2422

2523

2624
## Component Repos
2725

28-
| Repo | Usage |
26+
| Repo | Functionality |
2927
|---|---|
3028
| [TCP Endpoint](https://github.com/Unity-Technologies/ROS-TCP-Endpoint) | ROS node for sending/receiving messages from Unity |
3129
| [TCP Connector](https://github.com/Unity-Technologies/ROS-TCP-Connector) | Unity package for sending/receiving messages from ROS |
32-
| [URDF Importer](https://github.com/Unity-Technologies/URDF-Importer) | Unity package for loading [URDF](http://wiki.ros.org/urdf) files (Unified Robot Description Format) |
30+
| [URDF Importer](https://github.com/Unity-Technologies/URDF-Importer) | Unity package for loading [URDF](http://wiki.ros.org/urdf) files |
31+
3332

34-
---
3533

3634
## Additional Resources
3735

38-
We have published a series of blog posts and talks that are relevant for Unity Robotics:
36+
### Blog Posts and Talks
3937

4038
- (November 19, 2020) Robotics simulation in Unity is as easy as 1, 2, 3! [blog post](https://blogs.unity3d.com/2020/11/19/robotics-simulation-in-unity-is-as-easy-as-1-2-3/)
4139
- (November 12, 2020)
@@ -45,14 +43,27 @@ Announcing Unity Robotic Simulation [blog post](https://unity.com/solutions/auto
4543
- (May 20, 2020)
4644
Use articulation bodies to easily prototype industrial designs with realistic motion and behavior [blog post](https://blogs.unity3d.com/2020/05/20/use-articulation-bodies-to-easily-prototype-industrial-designs-with-realistic-motion-and-behavior/)
4745

48-
In addition to robot simulation, here are some additional, relevant Unity simulation products:
46+
### More from Unity
47+
48+
- [Unity Industrial Simulation](https://unity.com/products/unity-simulation)
49+
- [Unity Computer Vision](https://unity.com/computer-vision)
4950

50-
- Unity Industrial Simulation [site](https://unity.com/products/unity-simulation)
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/)
52-
- Unity Perception [repository](https://github.com/Unity-Technologies/com.unity.perception)
51+
## Coming Soon - New Physics Features in Unity!
52+
Here’s a peek into what our Physics Team is hard at work on…
53+
54+
- **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. [Read more about the new Contact Modification API](https://forum.unity.com/threads/experimental-contacts-modification-api.924809/).
55+
- **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).
56+
- **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. [Read more about continuous collision detection](https://docs.unity3d.com/Manual/ContinuousCollisionDetection.html).
57+
- **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.
58+
- **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.
5359

5460
## FAQs
55-
- [FAQs](faq.md)
61+
[FAQs](faq.md)
62+
63+
## Support
64+
For general questions, feedback, or feature requests, connect directly with the Robotics team at [unity-robotics@unity3d.com](mailto:unity-robotics@unity3d.com).
65+
66+
For bugs or other issues, please file a GitHub issue and the Robotics team will investigate the issue as soon as possible.
5667

5768
## License
5869
[Apache License 2.0](LICENSE)

tutorials/pick_and_place/3_pick_and_place.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ Steps covered in this tutorial includes invoking a motion planning service in RO
6868

6969
> This is similar to the `SourceDestinationPublisher.Publish()` function, but with a few key differences. There is an added `pickPoseOffset` to the `pick` and `place_pose` `y` component. This is because the calculated trajectory to grasp the `target` object will hover slightly above the object before grasping it in order to avoid potentially colliding with the object. Additionally, this function calls `CurrentJointConfig()` to assign the `request.joints_input` instead of assigning the values individually.
7070

71-
> The `response.trajectories` are received in the `TrajectoryResponse()` callback, as defined in the `ros.SendServiceMessage` parameters. These trajectories are passed to `ExecuteTrajectories()` below:
71+
> The `response.trajectories` are received in the `TrajectoryResponse()` callback, as defined in the `ros.SendServiceMessage` parameters. These trajectories are passed to `ExecuteTrajectories()` and executed as a [coroutine](https://docs.unity3d.com/Manual/Coroutines.html):
7272
7373
```csharp
7474
private IEnumerator ExecuteTrajectories(MoverServiceResponse response)
@@ -197,4 +197,8 @@ def plan_trajectory(move_group, destination_pose, start_joint_angles):
197197

198198
- If the robot moves to the incorrect location, or executes the poses in an expected order, verify that the shoulder_link (i.e. `niryo_one/world/base_link/shoulder_link`) X Drive Force Limit is `5`.
199199

200-
- Before entering Play mode in the Unity Editor, ensure that all ROS processes are still running. The `server_endpoint` node may time out and will need to be re-run.
200+
- Before entering Play mode in the Unity Editor, ensure that all ROS processes are still running. The `server_endpoint` node may time out and will need to be re-run.
201+
202+
---
203+
204+
#### Proceed to [Part 4](4_pick_and_place.md).

0 commit comments

Comments
 (0)