Code Monkey home page Code Monkey logo

unity3d_robotics_ur's Introduction

Unity3D Industrial Robotics: Universal Robots UR3

Requirements:

Software:

Universal Robots Polyscope, Blender, Unity3D 2022.3.2f1, Visual Studio 2017/2019

Supported on the following operating systems:

Universal Windows Platform, Android
Software/Package Link
Blender https://www.blender.org/download/
Unity3D https://unity3d.com/get-unity/download/archive
Unity HDRI Pack https://assetstore.unity.com/packages/2d/textures-materials/sky/unity-hdri-pack-72511
Universal Robots Polyscope https://www.universal-robots.com/download/
Visual Studio https://visualstudio.microsoft.com/downloads/

Project Description:

The project is focused on a simple demonstration of client-server communication via TCP / IP, which is implemented in Unity3D. The project demonstrates the Digital-Twin of the UR3 robot with some additional functions. The application uses performance optimization using multi-threaded programming.

This solution can be used to control a real robot or to simulate it (using VMware <-> UR Polyscope in Windows), E and CB series. The Unity3D Digital-Twin application was tested on the UR3 robot, both on real hardware and on simulation.

Main functions of the UR3 Digital-Twin model:

  • Camera Control
  • Connect/Disconnect -> Real HW or Simulation
  • Read Data (Cartesian / Joint Position diagnostics)
  • Write Data (Speed control of the robot (X,Y,Z and EA{RX, RY, RZ}) using the joystick)

The application can be installed on a mobile phone, tablet or computer, but for communication with the robot it is necessary to be in the same network

The project was realized at the Institute of Automation and Computer Science, Brno University of Technology, Faculty of Mechanical Engineering (NETME Centre - Cybernetics and Robotics Division).

Appendix:

Example of a simple data processing application:

UR Robot - Data Processing

Project Hierarchy:

Repositary [/Unity3D_Robotics_UR/Universal_Robots_Unity_App/Assets/]:

[ UI + Main Control           ] /Script/UI/
[ Data Processing             ] /Script/UR3/
[ Individual objects (.blend) ] /Object/Blender/
[ Images (UI)                 ] /Image/
[ Scene of the Application    ] /Scenes/

Digital-Twin Application:

Result:

Youtube: https://www.youtube.com/watch?v=kReuJdESdz0&t=182s

Contact Info:

[email protected]

Citation (BibTex)

@misc{RomanParak_Unity3D,
  author = {Roman Parak},
  title = {A digital-twins in the field of industrial robotics integrated into the unity3d development platform},
  year = {2020-2021},
  publisher = {GitHub},
  journal = {GitHub repository},
  howpublished = {\url{https://github.com/rparak/Unity3D_Robotics_Overview}}
}

License

MIT

unity3d_robotics_ur's People

Contributors

rparak avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

unity3d_robotics_ur's Issues

Meshes are missing

The meshes are missing from the project. After importing there is no robot present.

UR3 robot in Unity3D did not change joint states as the URSim robot.

Hello, I've successfully connect the Unity3D with URSim with the IP address and it's possible to utilize the "Joystick Panel" to control URSim robot remotely. But the robot in Unity3D did not change its condition to be the same as that in URSim.
Then when I close the Unity running mode, I obtained the following issue:

ObjectDisposedException: Cannot access a disposed object.
Object name: 'System.Net.Sockets.NetworkStream'.
System.Net.Sockets.NetworkStream.Read (System.Byte[] buffer, System.Int32 offset, System.Int32 size) (at <0463b2ef957545c0a51b42f372cd4fbb>:0)
ur_data_processing+UR_Stream.UR_Stream_Thread () (at Assets/Scripts/UR3/ur_data_processing.cs:234)
System.Threading.ThreadHelper.ThreadStart_Context (System.Object state) (at <695d1cc93cca45069c528c15c9fdd749>:0)
System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) (at <695d1cc93cca45069c528c15c9fdd749>:0)
System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) (at <695d1cc93cca45069c528c15c9fdd749>:0)
System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state) (at <695d1cc93cca45069c528c15c9fdd749>:0)
System.Threading.ThreadHelper.ThreadStart () (at <695d1cc93cca45069c528c15c9fdd749>:0)
UnityEngine.<>c:<RegisterUECatcher>b__0_0(Object, UnhandledExceptionEventArgs)

How can I fix the problem, thank u very much.

connecting to two different IP (2 UR Robots)

Hi Roman Parak,

I am tring to connect to two different UR16 - on two different IPs
if I use the same ur_data_processing(https://github.com/rparak/Unity3D_Robotics_UR/blob/main/Universal_Robots_Unity_App/Assets/Scripts/UR3/ur_data_processing.cs) then, the unity arm A will follow the actual Robot Arm A, but Unity Arm B will do the same as well, before it goes to the actual Robot Arm B's pose. And, this repeats over time, sometimes A copy B, and sometime B copy A.

How do I make sure that unity amr A copy actual Robot Arm A only, and the same for Arm B?

Thanks,
Kind regards,
Zul

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.