Skip to content

Commit b7763a5

Browse files
LaurieCheers-unitymrpropellerspeifeng-unityvidurvij-Unityat669
authored
Version 0.3.0 (#208)
* Fixing issue with Demo.cs not working with new URDF Importer co-routine * remove unused import (#163) * update package import urls for tcp connector and urdf importer (#166) * Update urdf_tutorial.md (#168) * Added M prefixes to docs (#167) * Adding Editor version to Ros Integration Readme * Updating package dependencies to proper versions Pick and place tutorial was failing to compile its scripts because the package manifest was pointing to an older version of ROS-TCP-Connector. Updated the manifest and also pulled latest changes for ros_tcp_endpoint. Tested by running DemoScene * Updating Contribution Content (#186) * Contributing content * PR feedback * Adding PR template (#191) * fixing typo in ros-unity service tutorial (#198) * Unity service example (#199) * added example of implementing a UnityService * adding tutorial for unity service * added a couple comments to the example code * typos and code standard fixes * consistency: changing the service name for position_service to pos_srv * updating the tutorial to match the corresponding script * Update the list of new physics features (#204) * add new sections for the released new physics features Co-authored-by: Amanda <[email protected]> * Update to 0.3.0 (#207) Co-authored-by: Devin Miller <[email protected]> Co-authored-by: peifeng-unity <[email protected]> Co-authored-by: vidurvij-Unity <[email protected]> Co-authored-by: Devin Miller (Unity) <[email protected]> Co-authored-by: Amanda <[email protected]> Co-authored-by: Hamid Younesy <[email protected]>
1 parent cb26e33 commit b7763a5

32 files changed

+546
-77
lines changed

.github/ISSUE_TEMPLATE/bug_report.md

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
---
2+
name: Bug report
3+
about: Create a report to help us improve
4+
title: ''
5+
labels: ''
6+
assignees: ''
7+
8+
---
9+
10+
**Describe the bug**
11+
A clear and concise description of what the bug is.
12+
13+
**To Reproduce**
14+
Steps to reproduce the behavior:
15+
1. Go to '...'
16+
2. Click on '....'
17+
3. Scroll down to '....'
18+
4. See error
19+
20+
**Console logs / stack traces**
21+
Please wrap in [triple backticks (```)](https://help.github.com/en/articles/creating-and-highlighting-code-blocks) to make it easier to read.
22+
23+
**Expected behavior**
24+
A clear and concise description of what you expected to happen.
25+
26+
**Screenshots**
27+
If applicable, add screenshots or videos to help explain your problem.
28+
29+
**Environment (please complete the following information, where applicable):**
30+
- Unity Version: [e.g. Unity 2020.2.0f1]
31+
- Unity machine OS + version: [e.g. Windows 10]
32+
- ROS machine OS + version: [e.g. Ubuntu 18.04, ROS Noetic]
33+
- ROS–Unity communication: [e.g. Docker]
34+
- Branch or version: [e.g. v0.2.0]
35+
36+
**Additional context**
37+
Add any other context about the problem here.
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
---
2+
name: Feature request
3+
about: Suggest an idea for this project
4+
title: ''
5+
labels: ''
6+
assignees: ''
7+
8+
---
9+
10+
**Is your feature request related to a problem? Please describe.**
11+
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
12+
13+
**Describe the solution you'd like**
14+
A clear and concise description of what you want to happen.
15+
16+
**Describe alternatives you've considered**
17+
A clear and concise description of any alternative solutions or features you've considered.
18+
19+
**Additional context**
20+
Add any other context or screenshots about the feature request here.

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
## Proposed change(s)
2+
3+
Describe the changes made in this PR.
4+
5+
### Useful links (GitHub issues, JIRA tickets, forum threads, etc.)
6+
7+
Provide any relevant links here.
8+
9+
### Types of change(s)
10+
11+
- [ ] Bug fix
12+
- [ ] New feature
13+
- [ ] Code refactor
14+
- [ ] Documentation update
15+
- [ ] Other (please describe)
16+
17+
## Testing and Verification
18+
19+
Please describe the tests that you ran to verify your changes. Please also provide instructions, ROS packages, and Unity project files as appropriate so we can reproduce the test environment.
20+
21+
### Test Configuration:
22+
- Unity Version: [e.g. Unity 2020.2.0f1]
23+
- Unity machine OS + version: [e.g. Windows 10]
24+
- ROS machine OS + version: [e.g. Ubuntu 18.04, ROS Noetic]
25+
- ROS–Unity communication: [e.g. Docker]
26+
27+
## Checklist
28+
- [ ] Ensured this PR is up-to-date with the `dev` branch
29+
- [ ] Created this PR to target the `dev` branch
30+
- [ ] Followed the style guidelines as described in the [Contribution Guidelines](../CONTRIBUTING.md)
31+
- [ ] Added tests that prove my fix is effective or that my feature works
32+
- [ ] Updated the documentation as appropriate
33+
34+
## Other comments

CODE_OF_CONDUCT.md

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
# Contributor Covenant Code of Conduct
2+
3+
## Our Pledge
4+
5+
In the interest of fostering an open and welcoming environment, we as
6+
contributors and maintainers pledge to making participation in our project and
7+
our community a harassment-free experience for everyone, regardless of age, body
8+
size, disability, ethnicity, gender identity and expression, level of experience,
9+
nationality, personal appearance, race, religion, or sexual identity and
10+
orientation.
11+
12+
## Our Standards
13+
14+
Examples of behavior that contributes to creating a positive environment
15+
include:
16+
17+
* Using welcoming and inclusive language
18+
* Being respectful of differing viewpoints and experiences
19+
* Gracefully accepting constructive criticism
20+
* Focusing on what is best for the community
21+
* Showing empathy towards other community members
22+
23+
Examples of unacceptable behavior by participants include:
24+
25+
* The use of sexualized language or imagery and unwelcome sexual attention or
26+
advances
27+
* Trolling, insulting/derogatory comments, and personal or political attacks
28+
* Public or private harassment
29+
* Publishing others' private information, such as a physical or electronic
30+
address, without explicit permission
31+
* Other conduct which could reasonably be considered inappropriate in a
32+
professional setting
33+
34+
## Our Responsibilities
35+
36+
Project maintainers are responsible for clarifying the standards of acceptable
37+
behavior and are expected to take appropriate and fair corrective action in
38+
response to any instances of unacceptable behavior.
39+
40+
Project maintainers have the right and responsibility to remove, edit, or
41+
reject comments, commits, code, wiki edits, issues, and other contributions
42+
that are not aligned to this Code of Conduct, or to ban temporarily or
43+
permanently any contributor for other behaviors that they deem inappropriate,
44+
threatening, offensive, or harmful.
45+
46+
## Scope
47+
48+
This Code of Conduct applies both within project spaces and in public spaces
49+
when an individual is representing the project or its community. Examples of
50+
representing a project or community include using an official project e-mail
51+
address, posting via an official social media account, or acting as an appointed
52+
representative at an online or offline event. Representation of a project may be
53+
further defined and clarified by project maintainers.
54+
55+
## Enforcement
56+
57+
Instances of abusive, harassing, or otherwise unacceptable behavior may be
58+
reported by contacting the project team at [[email protected]](mailto:[email protected]). All
59+
complaints will be reviewed and investigated and will result in a response that
60+
is deemed necessary and appropriate to the circumstances. The project team is
61+
obligated to maintain confidentiality with regard to the reporter of an incident.
62+
Further details of specific enforcement policies may be posted separately.
63+
64+
Project maintainers who do not follow or enforce the Code of Conduct in good
65+
faith may face temporary or permanent repercussions as determined by other
66+
members of the project's leadership.
67+
68+
## Attribution
69+
70+
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
71+
version 1.4, available at
72+
https://www.contributor-covenant.org/version/1/4/code-of-conduct/
73+
74+
[homepage]: https://www.contributor-covenant.org

CONTRIBUTING.md

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
# Contribution Guidelines
2+
3+
Thank you for your interest in contributing to Unity Robotics! To facilitate your
4+
contributions, we've outlined a brief set of guidelines to ensure that your extensions
5+
can be easily integrated.
6+
7+
## Communication
8+
9+
First, please read through our
10+
[code of conduct](CODE_OF_CONDUCT.md),
11+
as we expect all our contributors to follow it.
12+
13+
Second, before starting on a project that you intend to contribute to any of our
14+
Unity Robotics packages or tutorials, we **strongly** recommend posting on the repository's
15+
[Issues page](https://github.com/Unity-Technologies/Unity-Robotics-Hub/issues) and
16+
briefly outlining the changes you plan to make. This will enable us to provide
17+
some context that may be helpful for you. This could range from advice and
18+
feedback on how to optimally perform your changes or reasons for not doing it.
19+
20+
## Git Branches
21+
22+
The `main` branch corresponds to the most recent stable version of the project. The `dev` branch
23+
contains changes that are staged to be merged into `main` as the team sees fit.
24+
25+
When contributing to the project, please make sure that your Pull Request (PR)
26+
does the following:
27+
28+
- Is up-to-date with and targets the `dev` branch
29+
- Contains a detailed description of the changes performed
30+
- Has corresponding changes to documentation, unit tests and sample environments (if
31+
applicable)
32+
- Contains a summary of the tests performed to validate your changes
33+
- Links to issue numbers that the PR resolves (if any)
34+
35+
<!-- ## Continuous Integration (CI)
36+
37+
We run continuous integration on all PRs; all tests must be passing before the PR is merged. -->
38+
39+
## Code style
40+
41+
All Python code should follow the [PEP 8 style guidelines](https://pep8.org/).
42+
43+
All C# code should follow the [Microsoft C# Coding Conventions](https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/inside-a-program/coding-conventions).
44+
Additionally, the [Unity Coding package](https://docs.unity3d.com/Packages/[email protected]/manual/index.html)
45+
can be used to format, encode, and lint your code according to the standard Unity
46+
development conventions. Be aware that these Unity conventions will supersede the
47+
Microsoft C# Coding Conventions where applicable.
48+
49+
Please note that even if the code you are changing does not adhere to these guidelines,
50+
we expect your submissions to follow these conventions.
51+
52+
## Contributor License Agreements
53+
54+
When you open a pull request, you will be asked to acknowledge our Contributor
55+
License Agreement. We allow both individual contributions and contributions made
56+
on behalf of companies. We use an open source tool called CLA assistant. If you
57+
have any questions on our CLA, please
58+
[submit an issue](https://github.com/Unity-Technologies/Unity-Robotics-Hub/issues) or
59+
email us at [[email protected]](mailto:[email protected]).
60+
61+
## Contribution review
62+
63+
Once you have a change ready following the above ground rules, simply make a
64+
pull request in GitHub.

LICENSE

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,3 +174,17 @@
174174
of your accepting any such warranty or additional liability.
175175

176176
END OF TERMS AND CONDITIONS
177+
178+
Copyright 2020 Unity Technologies
179+
180+
Licensed under the Apache License, Version 2.0 (the "License");
181+
you may not use this file except in compliance with the License.
182+
You may obtain a copy of the License at
183+
184+
http://www.apache.org/licenses/LICENSE-2.0
185+
186+
Unless required by applicable law or agreed to in writing, software
187+
distributed under the License is distributed on an "AS IS" BASIS,
188+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
189+
See the License for the specific language governing permissions and
190+
limitations under the License.

README.md

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -65,12 +65,15 @@ Use articulation bodies to easily prototype industrial designs with realistic mo
6565
- [Unity Computer Vision](https://unity.com/computer-vision)
6666
- [Unity ML-Agents Toolkit](https://github.com/Unity-Technologies/ml-agents)
6767

68-
## Coming Soon - New Physics Features in Unity!
68+
## New Physics Features in Unity
69+
### New Features
70+
- **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/).
71+
- **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).
72+
73+
### Coming Soon
6974
Here’s a peek into what our Physics Team is hard at work on…
7075

71-
- **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/).
7276
- **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).
73-
- **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).
7477
- **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.
7578
- **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.
7679

@@ -80,14 +83,22 @@ Interested in early access to ROS 2 integration? Email [[email protected]
8083
## FAQs
8184
[FAQs](faq.md)
8285

86+
## Community and Feedback
87+
88+
The Unity Robotics projects are open-source and we encourage and welcome contributions.
89+
If you wish to contribute, be sure to review our [contribution guidelines](CONTRIBUTING.md)
90+
and [code of conduct](CODE_OF_CONDUCT.md).
91+
8392
## Support
84-
For general questions, feedback, or feature requests, connect directly with the Robotics team at [[email protected]](mailto:[email protected]).
93+
For general questions, feedback, or feature requests, connect directly with the
94+
Robotics team at [[email protected]](mailto:[email protected]).
8595

86-
For bugs or other issues, please file a GitHub issue and the Robotics team will investigate the issue as soon as possible.
96+
For bugs or other issues, please file a GitHub issue and the Robotics team will
97+
investigate the issue as soon as possible.
8798

8899
## Newsletter
89100

90101
To get notified about new updates and features, [sign up for our newsletter](https://create.unity3d.com/robotics-simulation-newsletter-sign-up)!
91102

92103
## License
93-
[Apache License 2.0](LICENSE)
104+
[Apache License 2.0](LICENSE)

tutorials/pick_and_place/2_ros_tcp.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -55,15 +55,15 @@ To enable communication between Unity and ROS, a TCP endpoint running as a ROS n
5555

5656
![](img/2_robottraj.png)
5757

58-
- One new C# script should populate the `Assets/RosMessages/Moveit/msg` directory: RobotTrajectory.
58+
- One new C# script should populate the `Assets/RosMessages/Moveit/msg` directory: MRobotTrajectory. This name is the same as the message you built, with an "M" prefix (for message).
5959

6060
1. Next, the custom message scripts for this tutorial will need to be generated.
6161

6262
Still in the ROS Message Browser window, expand `ROS/src/niryo_moveit/msg` to view the msg files listed. Next to msg, click `Build 2 msgs`.
6363

6464
![](img/2_msg.png)
6565

66-
- Two new C# scripts should populate the `Assets/RosMessages/NiryoMoveit/msg` directory: NiryoMoveitJoints and NiryoTrajectory. NiryoMoveitJoints describes a value for each joint in the Niryo arm as well as poses for the target object and target goal. NiryoTrajectory describes a list of RobotTrajectory values, which will hold the calculated trajectories for the pick-and-place task.
66+
- Two new C# scripts should populate the `Assets/RosMessages/NiryoMoveit/msg` directory: MNiryoMoveitJoints and MNiryoTrajectory. MNiryoMoveitJoints describes a value for each joint in the Niryo arm as well as poses for the target object and target goal. MNiryoTrajectory describes a list of RobotTrajectory values, which will hold the calculated trajectories for the pick-and-place task.
6767

6868
> MessageGeneration generates a C# class from a ROS msg file with protections for use of C# reserved keywords and conversion to C# datatypes. Learn more about [ROS Messages](https://wiki.ros.org/Messages).
6969
@@ -73,7 +73,7 @@ To enable communication between Unity and ROS, a TCP endpoint running as a ROS n
7373

7474
![](img/2_srv.png)
7575

76-
- Two new C# scripts should populate the `Assets/RosMessages/NiryoMoveit/srv` directory: MoverServiceRequest and MoverServiceResponse. These files describe the expected input and output formats for the service requests and responses when calculating trajectories.
76+
- Two new C# scripts should populate the `Assets/RosMessages/NiryoMoveit/srv` directory: MMoverServiceRequest and MMoverServiceResponse. These files describe the expected input and output formats for the service requests and responses when calculating trajectories.
7777

7878
> MessageGeneration generates two C# classes, a request and response, from a ROS srv file with protections for use of C# reserved keywords and conversion to C# datatypes. Learn more about [ROS Services](https://wiki.ros.org/Services).
7979
@@ -86,7 +86,7 @@ To enable communication between Unity and ROS, a TCP endpoint running as a ROS n
8686
```csharp
8787
public void Publish()
8888
{
89-
NiryoMoveitJoints sourceDestinationMessage = new NiryoMoveitJoints();
89+
MNiryoMoveitJoints sourceDestinationMessage = new MNiryoMoveitJoints();
9090

9191
sourceDestinationMessage.joint_00 = jointArticulationBodies[0].xDrive.target;
9292
sourceDestinationMessage.joint_01 = jointArticulationBodies[1].xDrive.target;
@@ -96,15 +96,15 @@ To enable communication between Unity and ROS, a TCP endpoint running as a ROS n
9696
sourceDestinationMessage.joint_05 = jointArticulationBodies[5].xDrive.target;
9797

9898
// Pick Pose
99-
sourceDestinationMessage.pick_pose = new RosMessageTypes.Geometry.Pose
99+
sourceDestinationMessage.pick_pose = new MPose
100100
{
101101
position = target.transform.position.To<FLU>(),
102102
// The hardcoded x/z angles assure that the gripper is always positioned above the target cube before grasping.
103103
orientation = Quaternion.Euler(90, target.transform.eulerAngles.y, 0).To<FLU>()
104104
};
105105

106106
// Place Pose
107-
sourceDestinationMessage.place_pose = new RosMessageTypes.Geometry.Pose
107+
sourceDestinationMessage.place_pose = new MPose
108108
{
109109
position = targetPlacement.transform.position.To<FLU>(),
110110
orientation = pickOrientation.To<FLU>()

0 commit comments

Comments
 (0)