# Pick-and-Place Tutorial ![](img/0_pick_place.gif) This tutorial will go through the steps necessary to integrate ROS with Unity, from installing the Unity Editor to creating a scene with an imported URDF to completing a pick-and-place task with known poses using MoveIt trajectory planning. > Note: This project was built using the ROS Melodic distro and Python 2. **Table of Contents** - [Pick-and-Place Tutorial](#pick-and-place-tutorial) - [Part 1: Create Unity scene with imported URDF](#part-1-create-unity-scene-with-imported-urdf) - [Part 2: ROS–Unity Integration](#part-2-rosunity-integration) - [Part 3: Pick-and-Place](#part-3-pick-and-place) --- ## [Part 1: Create Unity scene with imported URDF](1_urdf.md) This part includes downloading and installing the Unity Editor, setting up a basic Unity scene, and importing a robot--the [Niryo One](https://niryo.com/niryo-one/)--using the URDF Importer. --- ## [Part 2: ROS–Unity Integration](2_ros_tcp.md) This part assumes you have access to a functional ROS workspace. Steps covered include creating a TCP connection between Unity and ROS, generating C# scripts from a ROS msg and srv files, and publishing to a ROS topic. --- ## [Part 3: Pick-and-Place](3_pick_and_place.md) This part includes the preparation and setup necessary to run a pick-and-place task with known poses using MoveIt. Steps covered include creating and invoking a motion planning service in ROS, moving a Unity Articulation Body based on a calculated trajectory, and controlling a gripping tool to successfully grasp and drop an object.