├── .editorconfig ├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.md │ ├── config.yml │ └── feature_request.md ├── PULL_REQUEST_TEMPLATE.md └── workflows │ └── stale.yaml ├── .gitignore ├── .gitmodules ├── .pre-commit-config.yaml ├── CHANGELOG.md ├── LICENSE.md ├── README.md ├── Third Party Notices.md ├── faq.md ├── images ├── Unity-1200X630.png ├── packman.png ├── unity-wide.png └── warehouse.gif └── tutorials ├── pick_and_place ├── 0_ros_setup.md ├── 1_urdf.md ├── 2_ros_tcp.md ├── 3_pick_and_place.md ├── 4_pick_and_place.md ├── PickAndPlaceProject │ ├── .gitignore │ ├── Assets │ │ ├── DemoScripts.meta │ │ ├── DemoScripts │ │ │ ├── Demo.cs │ │ │ └── Demo.cs.meta │ │ ├── Environment.meta │ │ ├── Environment │ │ │ ├── ModTable.fbx │ │ │ ├── ModTable.fbx.meta │ │ │ ├── SymmetryCube.fbx │ │ │ ├── SymmetryCube.fbx.meta │ │ │ ├── TableTopLogo.png │ │ │ └── TableTopLogo.png.meta │ │ ├── Materials.meta │ │ ├── Materials │ │ │ ├── NavyFloor.mat │ │ │ ├── NavyFloor.mat.meta │ │ │ ├── NonsymmetricCubeTexture.mat │ │ │ ├── NonsymmetricCubeTexture.mat.meta │ │ │ ├── NonsymmetricCubeTexture.png │ │ │ ├── NonsymmetricCubeTexture.png.meta │ │ │ ├── Target.mat │ │ │ └── Target.mat.meta │ │ ├── Prefabs.meta │ │ ├── Prefabs │ │ │ ├── Table.prefab │ │ │ ├── Table.prefab.meta │ │ │ ├── Target.prefab │ │ │ ├── Target.prefab.meta │ │ │ ├── TargetPlacement.prefab │ │ │ └── TargetPlacement.prefab.meta │ │ ├── RosMessages.meta │ │ ├── RosMessages │ │ │ ├── Unity.Robotics.RosMessages.asmdef │ │ │ └── Unity.Robotics.RosMessages.asmdef.meta │ │ ├── Scenes.meta │ │ ├── Scenes │ │ │ ├── DemoScene.unity │ │ │ ├── DemoScene.unity.meta │ │ │ ├── EmptyScene.unity │ │ │ ├── EmptyScene.unity.meta │ │ │ ├── Part1DoneScene.unity │ │ │ ├── Part1DoneScene.unity.meta │ │ │ ├── TutorialScene.unity │ │ │ └── TutorialScene.unity.meta │ │ ├── Scripts.meta │ │ ├── Scripts │ │ │ ├── TargetPlacement.cs │ │ │ ├── TargetPlacement.cs.meta │ │ │ ├── Unity.Robotics.PickAndPlace.asmdef │ │ │ └── Unity.Robotics.PickAndPlace.asmdef.meta │ │ ├── Tests.meta │ │ ├── Tests │ │ │ ├── EditMode.meta │ │ │ ├── EditMode │ │ │ │ ├── EditMode.asmdef │ │ │ │ ├── EditMode.asmdef.meta │ │ │ │ ├── MessageGenerationTests.cs │ │ │ │ ├── MessageGenerationTests.cs.meta │ │ │ │ ├── PickAndPlaceIntegrationTest.cs │ │ │ │ ├── PickAndPlaceIntegrationTest.cs.meta │ │ │ │ ├── PlayerBuildTests.cs │ │ │ │ ├── PlayerBuildTests.cs.meta │ │ │ │ ├── RosIntegrationTests.cs │ │ │ │ └── RosIntegrationTests.cs.meta │ │ │ ├── PlayMode.meta │ │ │ └── PlayMode │ │ │ │ ├── PlayMode.asmdef │ │ │ │ ├── PlayMode.asmdef.meta │ │ │ │ ├── PlayModeTestScenes.meta │ │ │ │ ├── PlayModeTestScenes │ │ │ │ ├── TargetPlacementTest.unity │ │ │ │ └── TargetPlacementTest.unity.meta │ │ │ │ ├── TargetPlacementTests.cs │ │ │ │ └── TargetPlacementTests.cs.meta │ │ ├── URDF.meta │ │ └── URDF │ │ │ ├── niryo_one.meta │ │ │ └── niryo_one │ │ │ ├── Materials.meta │ │ │ ├── Materials │ │ │ ├── Default.mat │ │ │ └── Default.mat.meta │ │ │ ├── niryo_one.urdf │ │ │ ├── niryo_one.urdf.meta │ │ │ ├── niryo_one_urdf.meta │ │ │ └── niryo_one_urdf │ │ │ ├── CMakeLists.txt │ │ │ ├── CMakeLists.txt.meta │ │ │ ├── Gripper1.meta │ │ │ ├── Gripper1 │ │ │ ├── G1_ClampLeft.STL │ │ │ ├── G1_ClampLeft.STL.meta │ │ │ ├── G1_ClampLeft.prefab │ │ │ ├── G1_ClampLeft.prefab.meta │ │ │ ├── G1_ClampLeft_0.asset │ │ │ ├── G1_ClampLeft_0.asset.meta │ │ │ ├── G1_ClampRight.STL │ │ │ ├── G1_ClampRight.STL.meta │ │ │ ├── G1_ClampRight.prefab │ │ │ ├── G1_ClampRight.prefab.meta │ │ │ ├── G1_ClampRight_0.asset │ │ │ ├── G1_ClampRight_0.asset.meta │ │ │ ├── G1_MainSupport.STL │ │ │ ├── G1_MainSupport.STL.meta │ │ │ ├── G1_MainSupport.prefab │ │ │ ├── G1_MainSupport.prefab.meta │ │ │ ├── G1_MainSupport_0.asset │ │ │ ├── G1_MainSupport_0.asset.meta │ │ │ ├── G1_Rod.STL │ │ │ ├── G1_Rod.STL.meta │ │ │ ├── G1_Rod.prefab │ │ │ ├── G1_Rod.prefab.meta │ │ │ ├── G1_Rod_0.asset │ │ │ ├── G1_Rod_0.asset.meta │ │ │ ├── G1_ServoHead.STL │ │ │ ├── G1_ServoHead.STL.meta │ │ │ ├── G1_ServoHead.prefab │ │ │ ├── G1_ServoHead.prefab.meta │ │ │ ├── G1_ServoHead_0.asset │ │ │ └── G1_ServoHead_0.asset.meta │ │ │ ├── LICENSE │ │ │ ├── LICENSE.meta │ │ │ ├── README.md │ │ │ ├── README.md.meta │ │ │ ├── meshes.meta │ │ │ ├── meshes │ │ │ ├── collada.meta │ │ │ ├── collada │ │ │ │ ├── arm_link.dae │ │ │ │ ├── arm_link.dae.meta │ │ │ │ ├── base_link.dae │ │ │ │ ├── base_link.dae.meta │ │ │ │ ├── elbow_link.dae │ │ │ │ ├── elbow_link.dae.meta │ │ │ │ ├── forearm_link.dae │ │ │ │ ├── forearm_link.dae.meta │ │ │ │ ├── hand_link.dae │ │ │ │ ├── hand_link.dae.meta │ │ │ │ ├── shoulder_link.dae │ │ │ │ ├── shoulder_link.dae.meta │ │ │ │ ├── wrist_link.dae │ │ │ │ └── wrist_link.dae.meta │ │ │ ├── stl.meta │ │ │ └── stl │ │ │ │ ├── arm_link.prefab │ │ │ │ ├── arm_link.prefab.meta │ │ │ │ ├── arm_link.stl │ │ │ │ ├── arm_link.stl.meta │ │ │ │ ├── arm_link_0.asset │ │ │ │ ├── arm_link_0.asset.meta │ │ │ │ ├── base_link.prefab │ │ │ │ ├── base_link.prefab.meta │ │ │ │ ├── base_link.stl │ │ │ │ ├── base_link.stl.meta │ │ │ │ ├── base_link_0.asset │ │ │ │ ├── base_link_0.asset.meta │ │ │ │ ├── elbow_link.prefab │ │ │ │ ├── elbow_link.prefab.meta │ │ │ │ ├── elbow_link.stl │ │ │ │ ├── elbow_link.stl.meta │ │ │ │ ├── elbow_link_0.asset │ │ │ │ ├── elbow_link_0.asset.meta │ │ │ │ ├── forearm_link.prefab │ │ │ │ ├── forearm_link.prefab.meta │ │ │ │ ├── forearm_link.stl │ │ │ │ ├── forearm_link.stl.meta │ │ │ │ ├── forearm_link_0.asset │ │ │ │ ├── forearm_link_0.asset.meta │ │ │ │ ├── hand_link.prefab │ │ │ │ ├── hand_link.prefab.meta │ │ │ │ ├── hand_link.stl │ │ │ │ ├── hand_link.stl.meta │ │ │ │ ├── hand_link_0.asset │ │ │ │ ├── hand_link_0.asset.meta │ │ │ │ ├── shoulder_link.prefab │ │ │ │ ├── shoulder_link.prefab.meta │ │ │ │ ├── shoulder_link.stl │ │ │ │ ├── shoulder_link.stl.meta │ │ │ │ ├── shoulder_link_0.asset │ │ │ │ ├── shoulder_link_0.asset.meta │ │ │ │ ├── wrist_link.prefab │ │ │ │ ├── wrist_link.prefab.meta │ │ │ │ ├── wrist_link.stl │ │ │ │ ├── wrist_link.stl.meta │ │ │ │ ├── wrist_link_0.asset │ │ │ │ └── wrist_link_0.asset.meta │ │ │ ├── niryo_one.urdf.xacro │ │ │ ├── niryo_one.urdf.xacro.meta │ │ │ ├── package.xml │ │ │ └── package.xml.meta │ ├── Packages │ │ └── manifest.json │ └── ProjectSettings │ │ ├── AudioManager.asset │ │ ├── ClusterInputManager.asset │ │ ├── DynamicsManager.asset │ │ ├── EditorBuildSettings.asset │ │ ├── EditorSettings.asset │ │ ├── GraphicsSettings.asset │ │ ├── InputManager.asset │ │ ├── NavMeshAreas.asset │ │ ├── PackageManagerSettings.asset │ │ ├── Physics2DSettings.asset │ │ ├── PresetManager.asset │ │ ├── ProjectSettings.asset │ │ ├── ProjectVersion.txt │ │ ├── QualitySettings.asset │ │ ├── SceneTemplateSettings.json │ │ ├── TagManager.asset │ │ ├── TimeManager.asset │ │ ├── TimelineSettings.asset │ │ ├── UnityConnectSettings.asset │ │ ├── VFXManager.asset │ │ ├── VersionControlSettings.asset │ │ └── XRSettings.asset ├── README.md ├── ROS │ ├── .gitignore │ └── src │ │ ├── niryo_moveit │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── config │ │ │ ├── controllers.yaml │ │ │ ├── joint_limits.yaml │ │ │ ├── kinematics.yaml │ │ │ ├── niryo_one.srdf │ │ │ ├── niryo_one_controllers.yaml │ │ │ ├── niryo_one_driver.yaml │ │ │ ├── niryo_one_motors.yaml │ │ │ ├── ompl_planning.yaml │ │ │ ├── params.yaml │ │ │ ├── robot_command_validation.yaml │ │ │ └── stepper_params.yaml │ │ ├── launch │ │ │ ├── controllers.launch │ │ │ ├── demo.launch │ │ │ ├── move_group.launch │ │ │ ├── niryo_one_base.launch │ │ │ ├── niryo_one_moveit_controller_manager.launch.xml │ │ │ ├── ompl_planning_pipeline.launch.xml │ │ │ ├── part_2.launch │ │ │ ├── part_3.launch │ │ │ ├── part_4.launch │ │ │ ├── planning_context.launch │ │ │ ├── planning_pipeline.launch.xml │ │ │ └── trajectory_execution.launch.xml │ │ ├── msg │ │ │ ├── NiryoMoveitJoints.msg │ │ │ └── NiryoTrajectory.msg │ │ ├── package.xml │ │ ├── scripts │ │ │ ├── mover.py │ │ │ ├── sim_real_pnp.py │ │ │ └── trajectory_subscriber.py │ │ └── srv │ │ │ └── MoverService.srv │ │ └── niryo_one_urdf │ │ ├── CMakeLists.txt │ │ ├── CMakeLists.txt.meta │ │ ├── Gripper1.meta │ │ ├── Gripper1 │ │ ├── G1_ClampLeft.STL │ │ ├── G1_ClampLeft.STL.meta │ │ ├── G1_ClampLeft.prefab │ │ ├── G1_ClampLeft.prefab.meta │ │ ├── G1_ClampLeft_0.asset │ │ ├── G1_ClampLeft_0.asset.meta │ │ ├── G1_ClampRight.STL │ │ ├── G1_ClampRight.STL.meta │ │ ├── G1_ClampRight.prefab │ │ ├── G1_ClampRight.prefab.meta │ │ ├── G1_ClampRight_0.asset │ │ ├── G1_ClampRight_0.asset.meta │ │ ├── G1_MainSupport.STL │ │ ├── G1_MainSupport.STL.meta │ │ ├── G1_MainSupport.prefab │ │ ├── G1_MainSupport.prefab.meta │ │ ├── G1_MainSupport_0.asset │ │ ├── G1_MainSupport_0.asset.meta │ │ ├── G1_Rod.STL │ │ ├── G1_Rod.STL.meta │ │ ├── G1_Rod.prefab │ │ ├── G1_Rod.prefab.meta │ │ ├── G1_Rod_0.asset │ │ ├── G1_Rod_0.asset.meta │ │ ├── G1_ServoHead.STL │ │ ├── G1_ServoHead.STL.meta │ │ ├── G1_ServoHead.prefab │ │ ├── G1_ServoHead.prefab.meta │ │ ├── G1_ServoHead_0.asset │ │ └── G1_ServoHead_0.asset.meta │ │ ├── README.md │ │ ├── README.md.meta │ │ ├── meshes.meta │ │ ├── meshes │ │ ├── collada.meta │ │ ├── collada │ │ │ ├── arm_link.dae │ │ │ ├── arm_link.dae.meta │ │ │ ├── base_link.dae │ │ │ ├── base_link.dae.meta │ │ │ ├── elbow_link.dae │ │ │ ├── elbow_link.dae.meta │ │ │ ├── forearm_link.dae │ │ │ ├── forearm_link.dae.meta │ │ │ ├── hand_link.dae │ │ │ ├── hand_link.dae.meta │ │ │ ├── shoulder_link.dae │ │ │ ├── shoulder_link.dae.meta │ │ │ ├── wrist_link.dae │ │ │ └── wrist_link.dae.meta │ │ ├── stl.meta │ │ └── stl │ │ │ ├── arm_link.prefab │ │ │ ├── arm_link.prefab.meta │ │ │ ├── arm_link.stl │ │ │ ├── arm_link.stl.meta │ │ │ ├── arm_link_0.asset │ │ │ ├── arm_link_0.asset.meta │ │ │ ├── base_link.prefab │ │ │ ├── base_link.prefab.meta │ │ │ ├── base_link.stl │ │ │ ├── base_link.stl.meta │ │ │ ├── base_link_0.asset │ │ │ ├── base_link_0.asset.meta │ │ │ ├── elbow_link.prefab │ │ │ ├── elbow_link.prefab.meta │ │ │ ├── elbow_link.stl │ │ │ ├── elbow_link.stl.meta │ │ │ ├── elbow_link_0.asset │ │ │ ├── elbow_link_0.asset.meta │ │ │ ├── forearm_link.prefab │ │ │ ├── forearm_link.prefab.meta │ │ │ ├── forearm_link.stl │ │ │ ├── forearm_link.stl.meta │ │ │ ├── forearm_link_0.asset │ │ │ ├── forearm_link_0.asset.meta │ │ │ ├── hand_link.prefab │ │ │ ├── hand_link.prefab.meta │ │ │ ├── hand_link.stl │ │ │ ├── hand_link.stl.meta │ │ │ ├── hand_link_0.asset │ │ │ ├── hand_link_0.asset.meta │ │ │ ├── shoulder_link.prefab │ │ │ ├── shoulder_link.prefab.meta │ │ │ ├── shoulder_link.stl │ │ │ ├── shoulder_link.stl.meta │ │ │ ├── shoulder_link_0.asset │ │ │ ├── shoulder_link_0.asset.meta │ │ │ ├── wrist_link.prefab │ │ │ ├── wrist_link.prefab.meta │ │ │ ├── wrist_link.stl │ │ │ ├── wrist_link.stl.meta │ │ │ ├── wrist_link_0.asset │ │ │ └── wrist_link_0.asset.meta │ │ ├── niryo_one.urdf.xacro │ │ ├── niryo_one.urdf.xacro.meta │ │ ├── package.xml │ │ └── package.xml.meta ├── Scripts │ ├── SourceDestinationPublisher.cs │ └── TrajectoryPlanner.cs ├── Scripts_Part4 │ └── RealSimPickAndPlace.cs ├── docker │ ├── Dockerfile │ ├── set-up-workspace │ └── tutorial ├── img │ ├── 0_docker.png │ ├── 0_pick_place.gif │ ├── 0_unity.png │ ├── 1_base.png │ ├── 1_camera.png │ ├── 1_controller.png │ ├── 1_cube.png │ ├── 1_dll.png │ ├── 1_end.gif │ ├── 1_force.png │ ├── 1_hub.png │ ├── 1_physics.png │ ├── 2_browser.png │ ├── 2_echo.png │ ├── 2_joints.gif │ ├── 2_menu.png │ ├── 2_msg.png │ ├── 2_onclick.png │ ├── 2_robottraj.png │ ├── 2_ros_unity.png │ ├── 2_settings.png │ ├── 2_sourcedest.gif │ ├── 2_srv.png │ ├── 2_target.gif │ ├── 2_text.png │ ├── 2_values.png │ ├── 3_gripper.gif │ ├── 3_init.gif │ ├── 3_onclick.png │ ├── 3_swap.gif │ ├── 3_target.gif │ ├── 3_target.png │ ├── 4_build_niryo_msgs.png │ ├── 4_button.png │ ├── 4_new_flow.png │ ├── 4_old_flow.png │ ├── 4_pick_and_place.gif │ ├── 4_script.png │ └── hub_addproject.png ├── moveit_file_descriptions.md └── quick_demo.md ├── quick_setup.md ├── ros_unity_integration ├── README.md ├── images │ ├── add_package.png │ ├── add_package_2.png │ ├── create_cube.png │ ├── docker_cli.png │ ├── generate_messages_1.png │ ├── generate_messages_2.png │ ├── generate_messages_3.png │ ├── move_tool.png │ ├── ros1_icon.png │ ├── ros2_icon.png │ ├── ros2_protocol.png │ ├── settings_ros_ip.png │ ├── tcp_1.gif │ ├── tcp_2.gif │ ├── tcp_3.gif │ ├── troubleshoot-docker-unity.png │ ├── troubleshoot-port-firewall.png │ ├── troubleshoot-unity-firewall.png │ ├── troubleshoot-windows-firewall_i.png │ ├── troubleshoot_hud_success.png │ ├── unity-tab-square-white.png │ └── unity_ros.png ├── network.md ├── publisher.md ├── ros2_docker │ ├── Dockerfile │ └── source_ros.sh ├── ros2_packages │ ├── unity_robotics_demo │ │ ├── package.xml │ │ ├── resource │ │ │ └── unity_robotics_demo │ │ ├── setup.cfg │ │ ├── setup.py │ │ ├── test │ │ │ ├── test_copyright.py │ │ │ ├── test_flake8.py │ │ │ └── test_pep257.py │ │ └── unity_robotics_demo │ │ │ ├── __init__.py │ │ │ ├── color_publisher.py │ │ │ └── position_service.py │ └── unity_robotics_demo_msgs │ │ ├── CMakeLists.txt │ │ ├── msg │ │ ├── PosRot.msg │ │ └── UnityColor.msg │ │ ├── package.xml │ │ └── srv │ │ ├── ObjectPoseService.srv │ │ └── PositionService.srv ├── ros_docker │ ├── Dockerfile │ └── set-up-workspace ├── ros_packages │ ├── unity_robotics_demo │ │ ├── CMakeLists.txt │ │ ├── launch │ │ │ └── robo_demo.launch │ │ ├── package.xml │ │ └── scripts │ │ │ ├── color_publisher.py │ │ │ └── position_service.py │ └── unity_robotics_demo_msgs │ │ ├── CMakeLists.txt │ │ ├── msg │ │ ├── PosRot.msg │ │ └── UnityColor.msg │ │ ├── package.xml │ │ └── srv │ │ ├── ObjectPoseService.srv │ │ └── PositionService.srv ├── service_call.md ├── setup.md ├── subscriber.md ├── unity_scripts │ ├── RosPublisherExample.cs │ ├── RosServiceCallExample.cs │ ├── RosSubscriberExample.cs │ └── RosUnityServiceExample.cs └── unity_service.md └── urdf_importer ├── images ├── ConvexMeshComparison.png ├── DH_parameter.png ├── Unity_coordinate.png ├── articulation_axis.png ├── hooke.png ├── link_control.gif ├── link_hierarchy.png ├── link_selection.gif ├── primitive_scale.png ├── prismatic_articulation.png └── urdf_comparator.png ├── urdf_appendix.md └── urdf_tutorial.md /.editorconfig: -------------------------------------------------------------------------------- 1 | ; see http://editorconfig.org/ for docs on this file 2 | ; See https://github.com/dotnet/format for dotnet format 3 | 4 | root = true 5 | 6 | [*] 7 | ignore_if_in_header = This code was generated by a tool| 8 | indent_style = space 9 | indent_size = 4 10 | ; uncomment to help with sharing files across os's (i.e. network share or through local vm) 11 | #end_of_line = lf 12 | ; avoid a bom, which causes endless problems with naive text tooling 13 | charset = utf-8 14 | trim_trailing_whitespace = true 15 | insert_final_newline = true 16 | ; keeping auto-format enabled helps avoid merge hell for projects without CI-based format validation 17 | #disable_auto_format = true 18 | 19 | [*.cs] 20 | ; uncomment to enable full formatting of c# files 21 | formatters = generic, uncrustify 22 | 23 | [*.asmdef] 24 | scrape_api = true 25 | 26 | [**/Tests/**.asmdef] 27 | scrape_api = false 28 | 29 | [*.Tests.asmdef] 30 | scrape_api = false 31 | 32 | [*.md] 33 | indent_size = 2 34 | ; trailing whitespace is unfortunately significant in markdown 35 | trim_trailing_whitespace = false 36 | ; uncomment to enable basic formatting of markdown files 37 | #formatters = generic 38 | 39 | [{Makefile,makefile}] 40 | ; tab characters are part of the Makefile format 41 | indent_style = tab 42 | 43 | [*.asmdef] 44 | indent_size = 4 45 | 46 | [*.json] 47 | indent_size = 2 48 | 49 | [*.{vcproj,bat,cmd,xaml,tt,t4,ttinclude}] 50 | end_of_line = crlf 51 | 52 | ; this VS-specific stuff is based on experiments to see how VS will modify a file after it has been manually edited. 53 | ; the settings are meant to closely match what VS does to minimize unnecessary diffs. 54 | [*.{vcxproj,vcxproj.filters}] 55 | indent_style = space 56 | indent_size = 2 57 | end_of_line = crlf 58 | charset = utf-8-bom 59 | trim_trailing_whitespace = true 60 | insert_final_newline = false 61 | ; must be broken out because of 51-char bug (https://github.com/editorconfig/editorconfig-visualstudio/issues/21) 62 | [*.{csproj,pyproj,props,targets}] 63 | indent_style = space 64 | indent_size = 2 65 | end_of_line = crlf 66 | charset = utf-8-bom 67 | trim_trailing_whitespace = true 68 | insert_final_newline = false 69 | [*.{sln,sln.template}] 70 | indent_style = tab 71 | indent_size = 4 72 | end_of_line = crlf 73 | charset = utf-8 74 | trim_trailing_whitespace = true 75 | insert_final_newline = false 76 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 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. 38 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | contact_links: 3 | - name: Unity Robotics Forum 4 | url: https://forum.unity.com/forums/robotics.623/ 5 | about: Discussions and questions about Unity Robotics tools, demos, or integrations. -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 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. 21 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 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 | - [ ] Followed the style guidelines as described in the [Contribution Guidelines](https://github.com/Unity-Technologies/Unity-Robotics-Hub/blob/main/CONTRIBUTING.md) 29 | - [ ] Added tests that prove my fix is effective or that my feature works 30 | - [ ] Updated the [Changelog](https://github.com/Unity-Technologies/Unity-Robotics-Hub/blob/dev/CHANGELOG.md) and described changes in the [Unreleased section](https://github.com/Unity-Technologies/Unity-Robotics-Hub/blob/dev/CHANGELOG.md#unreleased) 31 | - [ ] Updated the documentation as appropriate 32 | 33 | ## Other comments 34 | -------------------------------------------------------------------------------- /.github/workflows/stale.yaml: -------------------------------------------------------------------------------- 1 | name: 'Stale issue handler' 2 | on: 3 | workflow_dispatch: 4 | schedule: 5 | - cron: '0 17 * * *' # 17:00 UTC; 10:00 PDT 6 | 7 | permissions: 8 | issues: write 9 | 10 | jobs: 11 | stale: 12 | runs-on: ubuntu-latest 13 | steps: 14 | - uses: actions/stale@v4.0.0 15 | id: stale 16 | with: 17 | stale-issue-label: 'stale' 18 | stale-issue-message: 'This issue has been marked stale because it has been open for 14 days with no activity. Please remove the stale label or comment on this issue, or the issue will be automatically closed in the next 14 days.' 19 | days-before-stale: 14 20 | days-before-pr-stale: -1 21 | days-before-close: 14 22 | days-before-pr-close: -1 23 | exempt-issue-labels: 'blocked,must,should,keep,pinned,work-in-progress,request,announcement' 24 | close-issue-message: 'This issue has been marked stale for 14 days and will now be closed. If this issue is still valid, please ping a maintainer.' 25 | - name: Print outputs 26 | run: echo ${{ join(steps.stale.outputs.*, ',') }} 27 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | *.swp 3 | .idea 4 | .vscode/ 5 | 6 | # Generated by local utr runs 7 | .Editor 8 | .download 9 | .bin 10 | test-results 11 | 12 | tutorials/pick_and_place/PickAndPlaceProject/Packages/packages-lock.json 13 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "tutorials/pick_and_place/ROS/src/niryo_one_ros"] 2 | path = tutorials/pick_and_place/ROS/src/niryo_one_ros 3 | url = https://github.com/NiryoRobotics/niryo_one_ros.git 4 | [submodule "tutorials/pick_and_place/ROS/src/moveit_msgs"] 5 | path = tutorials/pick_and_place/ROS/src/moveit_msgs 6 | url = https://github.com/ros-planning/moveit_msgs.git 7 | [submodule "tutorials/pick_and_place/ROS/src/ros_tcp_endpoint"] 8 | path = tutorials/pick_and_place/ROS/src/ros_tcp_endpoint 9 | url = https://github.com/Unity-Technologies/ROS-TCP-Endpoint.git 10 | -------------------------------------------------------------------------------- /.pre-commit-config.yaml: -------------------------------------------------------------------------------- 1 | repos: 2 | - repo: https://github.com/pre-commit/pre-commit-hooks 3 | rev: v4.0.1 4 | hooks: 5 | - id: mixed-line-ending 6 | exclude: > 7 | (?x)^( 8 | .*cs.meta| 9 | .*.css| 10 | .*.meta| 11 | .*.mat| 12 | .*.preset| 13 | .*.lighting| 14 | .*.dae 15 | )$ 16 | args: [--fix=lf] 17 | 18 | - id: trailing-whitespace 19 | name: trailing-whitespace-markdown 20 | types: [markdown] 21 | - id: check-merge-conflict 22 | args: [--assume-in-merge] 23 | - id: check-yaml 24 | # Won't handle the templating in yamato 25 | exclude: \.yamato/.* 26 | 27 | 28 | - repo: https://github.com/dotnet/format 29 | rev: v5.1.225507 30 | hooks: 31 | - id: dotnet-format 32 | entry: dotnet-format whitespace 33 | args: [--folder, --include] 34 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | All notable changes to this repository will be documented in this file. 4 | 5 | The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). 6 | 7 | 8 | ## Unreleased 9 | 10 | ### Upgrade Notes 11 | 12 | ### Known Issues 13 | 14 | ### Added 15 | 16 | ### Changed 17 | 18 | ### Deprecated 19 | 20 | ### Removed 21 | 22 | ### Fixed 23 | 24 | 25 | ## v0.7.0 26 | 27 | ### Added 28 | 29 | Added Sonarqube scanners. 30 | 31 | ### Changed 32 | 33 | Updates to PickAndPlace dependencies. ROS-TCP-Connector v0.7.0, ROS-TCP-Endpoint v0.7.0, URDF-Importer v 0.5.2 34 | 35 | Updated PickAndPlace project and tutorial part2 for documnentation and compilation fixes. 36 | 37 | 38 | ## v0.6.0 2021-10-04 39 | 40 | ### Added 41 | 42 | Fixed the ROS-Unity Integration tutorial `robo_demo.launch` to be up-to-date with file paths, and updated Pick-and-Place Part 2 ROS Settings screenshot. 43 | 44 | Add the [Close Stale Issues](https://github.com/marketplace/actions/close-stale-issues) action 45 | 46 | Updated Pick-and-Place scripts for style conformity, updated custom msg formats and made according script and tutorial changes. 47 | 48 | ### Fixed 49 | 50 | Fixed dotnet format 51 | 52 | Fixed Source Destination topic on the ROS side 53 | 54 | ## v0.5.1 55 | 56 | ### Changed 57 | 58 | Added link to Robotics-Nav2-SLAM-Example to list of "Getting Started" resources. 59 | 60 | ### Fixed 61 | 62 | Fixed the ROS-Unity Integration tutorial to use the correct link to install ROS-TCP-Connector package 63 | 64 | Fixed the Pick and Place Tutorial to use ArticulationBody jointPositions, rather than the xDrive.target, for updating the current joint angle positions 65 | 66 | Fixed network.md in ROS-Unity Integration tutorial by removing the obsolete UNITY_IP 67 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | Unity Robotics Hub copyright © 2020 Unity Technologies. 2 | 3 | This software is subject to, and made available under the Apache 2.0 license (the “License”). You may obtain a copy of the License at: http://www.apache.org/licenses/LICENSE-2.0 4 | 5 | Unless expressly provided otherwise, the software under this license is made available strictly on an “AS IS” BASIS WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED. Please review the Terms of Service for details on these and other terms and conditions. 6 | -------------------------------------------------------------------------------- /images/Unity-1200X630.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/images/Unity-1200X630.png -------------------------------------------------------------------------------- /images/packman.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/images/packman.png -------------------------------------------------------------------------------- /images/unity-wide.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/images/unity-wide.png -------------------------------------------------------------------------------- /images/warehouse.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/images/warehouse.gif -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/.gitignore: -------------------------------------------------------------------------------- 1 | # This .gitignore file should be placed at the root of your Unity project directory 2 | # 3 | # Get latest from https://github.com/github/gitignore/blob/master/Unity.gitignore 4 | # 5 | /[Ll]ibrary/ 6 | /[Tt]emp/ 7 | /[Oo]bj/ 8 | /[Bb]uild/ 9 | /[Bb]uilds/ 10 | /[Ll]ogs/ 11 | /[Uu]ser[Ss]ettings/ 12 | /[Aa]ssets/[Rr]os[Mm]essages/ 13 | /[Aa]ssets/[Rr]os[Mm]essages.meta 14 | 15 | 16 | # Ignore scripts that are expected to get copied in at some point 17 | /**/SourceDestinationPublisher.* 18 | /**/TrajectoryPlanner.* 19 | /**/RealSimPickAndPlace.* 20 | 21 | 22 | # MemoryCaptures can get excessive in size. 23 | # They also could contain extremely sensitive data 24 | /[Mm]emoryCaptures/ 25 | 26 | # Asset meta data should only be ignored when the corresponding asset is also ignored 27 | # !/[Aa]ssets/**/*.meta 28 | 29 | # Uncomment this line if you wish to ignore the asset store tools plugin 30 | # /[Aa]ssets/AssetStoreTools* 31 | 32 | # Autogenerated Jetbrains Rider plugin 33 | /[Aa]ssets/Plugins/Editor/JetBrains* 34 | 35 | # Visual Studio cache directory 36 | .vs/ 37 | 38 | # Gradle cache directory 39 | .gradle/ 40 | 41 | # Autogenerated VS/MD/Consulo solution and project files 42 | ExportedObj/ 43 | .consulo/ 44 | *.csproj 45 | *.unityproj 46 | *.sln 47 | *.suo 48 | *.tmp 49 | *.user 50 | *.userprefs 51 | *.pidb 52 | *.booproj 53 | *.svd 54 | *.pdb 55 | *.mdb 56 | *.opendb 57 | *.VC.db 58 | 59 | # Unity3D generated meta files 60 | *.pidb.meta 61 | *.pdb.meta 62 | *.mdb.meta 63 | 64 | # Unity3D generated file on crash reports 65 | sysinfo.txt 66 | 67 | # Builds 68 | *.apk 69 | *.aab 70 | *.unitypackage 71 | 72 | # Crashlytics generated file 73 | crashlytics-build.properties 74 | 75 | # Packed Addressables 76 | /[Aa]ssets/[Aa]ddressable[Aa]ssets[Dd]ata/*/*.bin* 77 | 78 | # Temporary auto-generated Android Assets 79 | /[Aa]ssets/[Ss]treamingAssets/aa.meta 80 | /[Aa]ssets/[Ss]treamingAssets/aa/* 81 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/DemoScripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2de28984775bd450da317306900054b2 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/DemoScripts/Demo.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 985aa258640044abeb31b39efba08ea3 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/Environment.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 703634abc19044c39808371defd600ec 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/Environment/ModTable.fbx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/pick_and_place/PickAndPlaceProject/Assets/Environment/ModTable.fbx -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/Environment/SymmetryCube.fbx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/pick_and_place/PickAndPlaceProject/Assets/Environment/SymmetryCube.fbx -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/Environment/TableTopLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/pick_and_place/PickAndPlaceProject/Assets/Environment/TableTopLogo.png -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/Environment/TableTopLogo.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f1da15ef509074fa3910935117712e53 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | vTOnly: 0 27 | grayScaleToAlpha: 0 28 | generateCubemap: 6 29 | cubemapConvolution: 0 30 | seamlessCubemap: 0 31 | textureFormat: 1 32 | maxTextureSize: 2048 33 | textureSettings: 34 | serializedVersion: 2 35 | filterMode: -1 36 | aniso: -1 37 | mipBias: -100 38 | wrapU: -1 39 | wrapV: -1 40 | wrapW: -1 41 | nPOTScale: 1 42 | lightmap: 0 43 | compressionQuality: 50 44 | spriteMode: 0 45 | spriteExtrude: 1 46 | spriteMeshType: 1 47 | alignment: 0 48 | spritePivot: {x: 0.5, y: 0.5} 49 | spritePixelsToUnits: 100 50 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 51 | spriteGenerateFallbackPhysicsShape: 1 52 | alphaUsage: 1 53 | alphaIsTransparency: 0 54 | spriteTessellationDetail: -1 55 | textureType: 0 56 | textureShape: 1 57 | singleChannelComponent: 0 58 | flipbookRows: 1 59 | flipbookColumns: 1 60 | maxTextureSizeSet: 0 61 | compressionQualitySet: 0 62 | textureFormatSet: 0 63 | ignorePngGamma: 0 64 | applyGammaDecoding: 0 65 | platformSettings: 66 | - serializedVersion: 3 67 | buildTarget: DefaultTexturePlatform 68 | maxTextureSize: 2048 69 | resizeAlgorithm: 0 70 | textureFormat: -1 71 | textureCompression: 1 72 | compressionQuality: 50 73 | crunchedCompression: 0 74 | allowsAlphaSplitting: 0 75 | overridden: 0 76 | androidETC2FallbackOverride: 0 77 | forceMaximumCompressionQuality_BC6H_BC7: 0 78 | spriteSheet: 79 | serializedVersion: 2 80 | sprites: [] 81 | outline: [] 82 | physicsShape: [] 83 | bones: [] 84 | spriteID: 85 | internalID: 0 86 | vertices: [] 87 | indices: 88 | edges: [] 89 | weights: [] 90 | secondaryTextures: [] 91 | spritePackingTag: 92 | pSDRemoveMatte: 0 93 | pSDShowRemoveMatteOption: 0 94 | userData: 95 | assetBundleName: 96 | assetBundleVariant: 97 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/Materials.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 18b5127ffe395424ab23e80551586e61 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/Materials/NavyFloor.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: NavyFloor 11 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 12 | m_ShaderKeywords: 13 | m_LightmapFlags: 4 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: -1 17 | stringTagMap: {} 18 | disabledShaderPasses: [] 19 | m_SavedProperties: 20 | serializedVersion: 3 21 | m_TexEnvs: 22 | - _BumpMap: 23 | m_Texture: {fileID: 0} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _DetailAlbedoMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _DetailMask: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _DetailNormalMap: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _EmissionMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _MainTex: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _MetallicGlossMap: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _OcclusionMap: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _ParallaxMap: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | m_Floats: 59 | - _BumpScale: 1 60 | - _Cutoff: 0.5 61 | - _DetailNormalMapScale: 1 62 | - _DstBlend: 0 63 | - _GlossMapScale: 1 64 | - _Glossiness: 0.11 65 | - _GlossyReflections: 1 66 | - _Metallic: 0 67 | - _Mode: 0 68 | - _OcclusionStrength: 1 69 | - _Parallax: 0.02 70 | - _SmoothnessTextureChannel: 0 71 | - _SpecularHighlights: 1 72 | - _SrcBlend: 1 73 | - _UVSec: 0 74 | - _ZWrite: 1 75 | m_Colors: 76 | - _Color: {r: 0.41709685, g: 0.4993905, b: 0.8584906, a: 1} 77 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 78 | m_BuildTextureStacks: [] 79 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/Materials/NavyFloor.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c524ca7c24e1d478daab91c8156f6070 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/Materials/NonsymmetricCubeTexture.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: NonsymmetricCubeTexture 11 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 12 | m_ShaderKeywords: 13 | m_LightmapFlags: 4 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: -1 17 | stringTagMap: {} 18 | disabledShaderPasses: [] 19 | m_SavedProperties: 20 | serializedVersion: 3 21 | m_TexEnvs: 22 | - _BumpMap: 23 | m_Texture: {fileID: 0} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _DetailAlbedoMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _DetailMask: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _DetailNormalMap: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _EmissionMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _MainTex: 43 | m_Texture: {fileID: 2800000, guid: 452601e9fe9ce416a839845ba14929ee, type: 3} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _MetallicGlossMap: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _OcclusionMap: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _ParallaxMap: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | m_Floats: 59 | - _BumpScale: 1 60 | - _Cutoff: 0.5 61 | - _DetailNormalMapScale: 1 62 | - _DstBlend: 0 63 | - _GlossMapScale: 1 64 | - _Glossiness: 0.5 65 | - _GlossyReflections: 1 66 | - _Metallic: 0 67 | - _Mode: 0 68 | - _OcclusionStrength: 1 69 | - _Parallax: 0.02 70 | - _SmoothnessTextureChannel: 0 71 | - _SpecularHighlights: 1 72 | - _SrcBlend: 1 73 | - _UVSec: 0 74 | - _ZWrite: 1 75 | m_Colors: 76 | - _Color: {r: 1, g: 1, b: 1, a: 1} 77 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 78 | m_BuildTextureStacks: [] 79 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/Materials/NonsymmetricCubeTexture.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e84c5fd102288448a8e2305335f05d28 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/Materials/NonsymmetricCubeTexture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/pick_and_place/PickAndPlaceProject/Assets/Materials/NonsymmetricCubeTexture.png -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/Materials/NonsymmetricCubeTexture.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 452601e9fe9ce416a839845ba14929ee 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | vTOnly: 0 27 | grayScaleToAlpha: 0 28 | generateCubemap: 6 29 | cubemapConvolution: 0 30 | seamlessCubemap: 0 31 | textureFormat: 1 32 | maxTextureSize: 2048 33 | textureSettings: 34 | serializedVersion: 2 35 | filterMode: -1 36 | aniso: -1 37 | mipBias: -100 38 | wrapU: -1 39 | wrapV: -1 40 | wrapW: -1 41 | nPOTScale: 1 42 | lightmap: 0 43 | compressionQuality: 50 44 | spriteMode: 0 45 | spriteExtrude: 1 46 | spriteMeshType: 1 47 | alignment: 0 48 | spritePivot: {x: 0.5, y: 0.5} 49 | spritePixelsToUnits: 100 50 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 51 | spriteGenerateFallbackPhysicsShape: 1 52 | alphaUsage: 1 53 | alphaIsTransparency: 0 54 | spriteTessellationDetail: -1 55 | textureType: 0 56 | textureShape: 1 57 | singleChannelComponent: 0 58 | maxTextureSizeSet: 0 59 | compressionQualitySet: 0 60 | textureFormatSet: 0 61 | ignorePngGamma: 0 62 | applyGammaDecoding: 0 63 | platformSettings: 64 | - serializedVersion: 3 65 | buildTarget: DefaultTexturePlatform 66 | maxTextureSize: 2048 67 | resizeAlgorithm: 0 68 | textureFormat: -1 69 | textureCompression: 1 70 | compressionQuality: 50 71 | crunchedCompression: 0 72 | allowsAlphaSplitting: 0 73 | overridden: 0 74 | androidETC2FallbackOverride: 0 75 | forceMaximumCompressionQuality_BC6H_BC7: 0 76 | spriteSheet: 77 | serializedVersion: 2 78 | sprites: [] 79 | outline: [] 80 | physicsShape: [] 81 | bones: [] 82 | spriteID: 83 | internalID: 0 84 | vertices: [] 85 | indices: 86 | edges: [] 87 | weights: [] 88 | secondaryTextures: [] 89 | spritePackingTag: 90 | pSDRemoveMatte: 0 91 | pSDShowRemoveMatteOption: 0 92 | userData: 93 | assetBundleName: 94 | assetBundleVariant: 95 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/Materials/Target.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: Target 11 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 12 | m_ShaderKeywords: _ALPHAPREMULTIPLY_ON 13 | m_LightmapFlags: 4 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: 3000 17 | stringTagMap: 18 | RenderType: Transparent 19 | disabledShaderPasses: [] 20 | m_SavedProperties: 21 | serializedVersion: 3 22 | m_TexEnvs: 23 | - _BumpMap: 24 | m_Texture: {fileID: 0} 25 | m_Scale: {x: 1, y: 1} 26 | m_Offset: {x: 0, y: 0} 27 | - _DetailAlbedoMap: 28 | m_Texture: {fileID: 0} 29 | m_Scale: {x: 1, y: 1} 30 | m_Offset: {x: 0, y: 0} 31 | - _DetailMask: 32 | m_Texture: {fileID: 0} 33 | m_Scale: {x: 1, y: 1} 34 | m_Offset: {x: 0, y: 0} 35 | - _DetailNormalMap: 36 | m_Texture: {fileID: 0} 37 | m_Scale: {x: 1, y: 1} 38 | m_Offset: {x: 0, y: 0} 39 | - _EmissionMap: 40 | m_Texture: {fileID: 0} 41 | m_Scale: {x: 1, y: 1} 42 | m_Offset: {x: 0, y: 0} 43 | - _MainTex: 44 | m_Texture: {fileID: 0} 45 | m_Scale: {x: 1, y: 1} 46 | m_Offset: {x: 0, y: 0} 47 | - _MetallicGlossMap: 48 | m_Texture: {fileID: 0} 49 | m_Scale: {x: 1, y: 1} 50 | m_Offset: {x: 0, y: 0} 51 | - _OcclusionMap: 52 | m_Texture: {fileID: 0} 53 | m_Scale: {x: 1, y: 1} 54 | m_Offset: {x: 0, y: 0} 55 | - _ParallaxMap: 56 | m_Texture: {fileID: 0} 57 | m_Scale: {x: 1, y: 1} 58 | m_Offset: {x: 0, y: 0} 59 | m_Floats: 60 | - _BumpScale: 1 61 | - _Cutoff: 0.5 62 | - _DetailNormalMapScale: 1 63 | - _DstBlend: 10 64 | - _GlossMapScale: 1 65 | - _Glossiness: 0.5 66 | - _GlossyReflections: 1 67 | - _Metallic: 0 68 | - _Mode: 3 69 | - _OcclusionStrength: 1 70 | - _Parallax: 0.02 71 | - _SmoothnessTextureChannel: 0 72 | - _SpecularHighlights: 1 73 | - _SrcBlend: 1 74 | - _UVSec: 0 75 | - _ZWrite: 0 76 | m_Colors: 77 | - _Color: {r: 1, g: 0, b: 0, a: 0.3764706} 78 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 79 | m_BuildTextureStacks: [] 80 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/Materials/Target.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 351a807c5fbdd4ff19fde1c2c5449e8c 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/Prefabs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b37afdd12f98745fb94f5c1a4fcd3dec 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/Prefabs/Table.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 85db2308098d34a79837fb7356902f62 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/Prefabs/Target.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3901759e6233748538fffdbc519c1a68 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/Prefabs/TargetPlacement.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 43bef545df3e344c4a7e089ca90c15a0 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/RosMessages.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7e9ac35ae6089214eb6d10352af3bc26 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/RosMessages/Unity.Robotics.RosMessages.asmdef: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Unity.Robotics.RosMessages", 3 | "rootNamespace": "", 4 | "references": [ 5 | "Unity.Robotics.ROSTCPConnector", 6 | "Unity.Robotics.ROSTCPConnector.MessageGeneration", 7 | "Unity.Robotics.ROSTCPConnector.Messages" 8 | ], 9 | "includePlatforms": [], 10 | "excludePlatforms": [], 11 | "allowUnsafeCode": false, 12 | "overrideReferences": false, 13 | "precompiledReferences": [], 14 | "autoReferenced": true, 15 | "defineConstraints": [], 16 | "versionDefines": [], 17 | "noEngineReferences": false 18 | } -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/RosMessages/Unity.Robotics.RosMessages.asmdef.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 204b12c73a0ba074c888ec09a2713605 3 | AssemblyDefinitionImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/Scenes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ba2682d4813ee3749b7f21ab8b1de7eb 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/Scenes/DemoScene.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b51a2f002143e4b29a388f9213209978 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/Scenes/EmptyScene.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8991ac6fc972d4f4da98e0c54f860ce8 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/Scenes/Part1DoneScene.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 510e3a95eca75c34b909dae26f12922e 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/Scenes/TutorialScene.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9fc0d4010bbf28b4594072e72b8655ab 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d4e987dd3f8374e458f751390c3982b8 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/Scripts/TargetPlacement.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f7ac960dc884b4042a0de8920854c9e5 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/Scripts/Unity.Robotics.PickAndPlace.asmdef: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Unity.Robotics.PickAndPlace", 3 | "rootNamespace": "", 4 | "references": [ 5 | "Unity.Robotics.RosMessages", 6 | "Unity.Robotics.ROSTCPConnector", 7 | "Unity.Robotics.UrdfImporter", 8 | "Unity.Robotics.ROSTCPConnector.MessageGeneration", 9 | "Unity.Robotics.ROSTCPConnector.Messages" 10 | ], 11 | "includePlatforms": [], 12 | "excludePlatforms": [], 13 | "allowUnsafeCode": false, 14 | "overrideReferences": false, 15 | "precompiledReferences": [], 16 | "autoReferenced": true, 17 | "defineConstraints": [], 18 | "versionDefines": [], 19 | "noEngineReferences": false 20 | } -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/Scripts/Unity.Robotics.PickAndPlace.asmdef.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 79169c04a5f9b014e919b69ac8df4286 3 | AssemblyDefinitionImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/Tests.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8ab3f0793a13742c58ee40e7c1bf73e4 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/Tests/EditMode.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 57c9a6ed3fa4a4e42ab47f690e44db03 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/Tests/EditMode/EditMode.asmdef: -------------------------------------------------------------------------------- 1 | { 2 | "name": "EditMode", 3 | "rootNamespace": "", 4 | "references": [ 5 | "UnityEngine.TestRunner", 6 | "UnityEditor.TestRunner", 7 | "Unity.Robotics.ROSTCPConnector.Editor", 8 | "Unity.Robotics.ROSTCPConnector", 9 | "Unity.Robotics.RosMessages", 10 | "Unity.Robotics.UrdfImporter.Editor", 11 | "Unity.Robotics.UrdfImporter", 12 | "Unity.Robotics.PickAndPlace" 13 | ], 14 | "includePlatforms": [ 15 | "Editor" 16 | ], 17 | "excludePlatforms": [], 18 | "allowUnsafeCode": false, 19 | "overrideReferences": true, 20 | "precompiledReferences": [ 21 | "nunit.framework.dll" 22 | ], 23 | "autoReferenced": false, 24 | "defineConstraints": [ 25 | "UNITY_INCLUDE_TESTS" 26 | ], 27 | "versionDefines": [], 28 | "noEngineReferences": false 29 | } -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/Tests/EditMode/EditMode.asmdef.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a430adad278b44ebb8b3bc6d4181a527 3 | AssemblyDefinitionImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/Tests/EditMode/MessageGenerationTests.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a84ef41da4c4a4fd881173d43b570892 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/Tests/EditMode/PickAndPlaceIntegrationTest.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 47248c975ddb5bb498501829315c818d 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/Tests/EditMode/PlayerBuildTests.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using NUnit.Framework; 4 | using UnityEditor; 5 | using UnityEditor.Build.Reporting; 6 | using UnityEditor.TestTools; 7 | using UnityEngine; 8 | using UnityEngine.TestTools; 9 | 10 | namespace BuildTests 11 | { 12 | [TestFixture, Explicit, Category("BuildTests")] 13 | public class PlayerBuilder 14 | { 15 | List m_EditorBuildSettingsScenes = new List(); 16 | BuildSummary m_Summary; 17 | string m_BuildPath = "Build"; 18 | 19 | [UnityPlatform(RuntimePlatform.WindowsEditor)] 20 | [RequirePlatformSupport(BuildTarget.StandaloneWindows64)] 21 | [Test] 22 | public void BuildPlayerStandaloneWindows64() 23 | { 24 | BuildPlayer(BuildTargetGroup.Standalone, BuildTarget.StandaloneWindows64, m_BuildPath, BuildOptions.None, out _, out m_Summary); 25 | Assert.AreEqual(BuildResult.Succeeded, m_Summary.result, " BuildTarget.StandaloneWindows64 failed to build"); 26 | } 27 | 28 | [RequirePlatformSupport(BuildTarget.StandaloneLinux64)] 29 | [Test] 30 | public void BuildPlayerLinux() 31 | { 32 | BuildPlayer(BuildTargetGroup.Standalone, BuildTarget.StandaloneLinux64, m_BuildPath, BuildOptions.None, out _, out m_Summary); 33 | Assert.AreEqual(BuildResult.Succeeded, m_Summary.result, "BuildTarget.StandaloneLinux64 failed to build"); 34 | } 35 | 36 | [UnityPlatform(RuntimePlatform.OSXEditor)] 37 | [RequirePlatformSupport(BuildTarget.StandaloneOSX)] 38 | [Test] 39 | public void BuildPlayerOSX() 40 | { 41 | BuildPlayer(BuildTargetGroup.Standalone, BuildTarget.StandaloneOSX, m_BuildPath, BuildOptions.None, out _, out m_Summary); 42 | Assert.AreEqual(BuildResult.Succeeded, m_Summary.result, "BuildTarget.StandaloneLinux64 failed to build"); 43 | } 44 | 45 | void BuildPlayer(BuildTargetGroup buildTargetGroup, BuildTarget buildTarget, string buildOutputPath, BuildOptions buildOptions, 46 | out BuildReport buildReport, out BuildSummary buildSummary) 47 | { 48 | BuildPlayerOptions buildPlayerOptions = new BuildPlayerOptions(); 49 | buildPlayerOptions.locationPathName = buildOutputPath; 50 | buildPlayerOptions.target = buildTarget; 51 | buildPlayerOptions.options = buildOptions; 52 | buildPlayerOptions.targetGroup = buildTargetGroup; 53 | 54 | buildReport = BuildPipeline.BuildPlayer(buildPlayerOptions); 55 | buildSummary = buildReport.summary; 56 | } 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/Tests/EditMode/PlayerBuildTests.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 67261ab008654224e8e9827b63f6eaa1 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/Tests/EditMode/RosIntegrationTests.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 71bb8bee185194097ab364212120b9b3 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/Tests/PlayMode.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: af49543032ae6465eab1b4d935a78a72 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/Tests/PlayMode/PlayMode.asmdef: -------------------------------------------------------------------------------- 1 | { 2 | "name": "PlayMode", 3 | "rootNamespace": "", 4 | "references": [ 5 | "UnityEngine.TestRunner", 6 | "UnityEditor.TestRunner", 7 | "Unity.Robotics.UrdfImporter", 8 | "Unity.Robotics.ROSTCPConnector", 9 | "Unity.Robotics.RosMessages", 10 | "Unity.Robotics.PickAndPlace" 11 | ], 12 | "includePlatforms": [], 13 | "excludePlatforms": [], 14 | "allowUnsafeCode": false, 15 | "overrideReferences": true, 16 | "precompiledReferences": [ 17 | "nunit.framework.dll" 18 | ], 19 | "autoReferenced": false, 20 | "defineConstraints": [ 21 | "UNITY_INCLUDE_TESTS" 22 | ], 23 | "versionDefines": [], 24 | "noEngineReferences": false 25 | } -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/Tests/PlayMode/PlayMode.asmdef.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a75a5b773e30f42b1b6b03e2cc7ab0dd 3 | AssemblyDefinitionImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/Tests/PlayMode/PlayModeTestScenes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 01cfe2c2ad3030e45aece82563af9de1 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/Tests/PlayMode/PlayModeTestScenes/TargetPlacementTest.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3d328f38f71b71e47bb8d96869012ffe 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/Tests/PlayMode/TargetPlacementTests.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 098c56433a9ff4552bcc76f884bbb828 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9a72fcaefd52b4df7a1613f6058a2e76 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1a26438a6a1e94e9393486d9745ccf78 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/Materials.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0bd04a739974f4b1ab844f11ba678dc6 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/Materials/Default.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: Default 11 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 12 | m_ShaderKeywords: 13 | m_LightmapFlags: 4 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: -1 17 | stringTagMap: {} 18 | disabledShaderPasses: [] 19 | m_SavedProperties: 20 | serializedVersion: 3 21 | m_TexEnvs: 22 | - _BumpMap: 23 | m_Texture: {fileID: 0} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _DetailAlbedoMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _DetailMask: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _DetailNormalMap: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _EmissionMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _MainTex: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _MetallicGlossMap: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _OcclusionMap: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _ParallaxMap: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | m_Floats: 59 | - _BumpScale: 1 60 | - _Cutoff: 0.5 61 | - _DetailNormalMapScale: 1 62 | - _DstBlend: 0 63 | - _GlossMapScale: 1 64 | - _Glossiness: 0.75 65 | - _GlossyReflections: 1 66 | - _Metallic: 0.75 67 | - _Mode: 0 68 | - _OcclusionStrength: 1 69 | - _Parallax: 0.02 70 | - _SmoothnessTextureChannel: 0 71 | - _SpecularHighlights: 1 72 | - _SrcBlend: 1 73 | - _UVSec: 0 74 | - _ZWrite: 1 75 | m_Colors: 76 | - _Color: {r: 0.33, g: 0.33, b: 0.33, a: 0} 77 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 78 | m_BuildTextureStacks: [] 79 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/Materials/Default.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a103abcfc5f8c462aba305c7d0d2571e 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one.urdf.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8ebb5863569a042f38ecfe7aa685695a 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 525a5cb6d678a482fb75b2764f6d40bf 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8.3) 2 | project(niryo_one_urdf) 3 | 4 | find_package(catkin REQUIRED) 5 | 6 | catkin_package() 7 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/CMakeLists.txt.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8c1d9a03c98624c1fb61752315933e81 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/Gripper1.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d5f9e2056743149ee87abdfb7f3c9101 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/Gripper1/G1_ClampLeft.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/Gripper1/G1_ClampLeft.STL -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/Gripper1/G1_ClampLeft.STL.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5980987391af14380be2883a3adb6f2a 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/Gripper1/G1_ClampLeft.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3ea77836ee2c24f16b2da97235ec8c37 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/Gripper1/G1_ClampLeft_0.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 41b541f4f2e3a44e7b272e55632276cb 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/Gripper1/G1_ClampRight.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/Gripper1/G1_ClampRight.STL -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/Gripper1/G1_ClampRight.STL.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: eec962a7db6dc4a9c860251ea6503894 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/Gripper1/G1_ClampRight.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 42fceb4a5adbf4768b05c89f2329f32a 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/Gripper1/G1_ClampRight_0.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 98979a49565474a15baa01a132ac2239 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/Gripper1/G1_MainSupport.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/Gripper1/G1_MainSupport.STL -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/Gripper1/G1_MainSupport.STL.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3ab1236015b34425c91c72bcca6432c5 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/Gripper1/G1_MainSupport.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4143f41bf12af4b399c9956cfd8dc36b 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/Gripper1/G1_MainSupport_0.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 784437cc4f93f4be49f359cd3557c9ef 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/Gripper1/G1_Rod.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/Gripper1/G1_Rod.STL -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/Gripper1/G1_Rod.STL.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9bc6747645c2f4083bba2c4586835937 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/Gripper1/G1_Rod.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5eecd5da92eb64eb6876d43ca0009083 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/Gripper1/G1_Rod_0.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 074568097c0d84948aef80ec4b952db6 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/Gripper1/G1_ServoHead.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/Gripper1/G1_ServoHead.STL -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/Gripper1/G1_ServoHead.STL.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 342a7a6c47a8a47b5bf18ba83b27bd05 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/Gripper1/G1_ServoHead.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b5285d56c80284484bba2f4cb57d5f2d 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/Gripper1/G1_ServoHead_0.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 98a9bd67ba1ce488396b619cb3860e2a 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/LICENSE.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2db19f9d862c55c4394b6f296a63db5a 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/README.md: -------------------------------------------------------------------------------- 1 | # Niryo One description package 2 | 3 | This package contains URDF file and meshes (collada + stl) for Niryo One. 4 | 5 | **Note** : 3D visualization is not available on the Niryo One Raspberry Pi image. To use the following commands, you must have installed ROS on your computer and downloaded the Niryo One ROS packages. 6 | 7 | * To display Niryo One on Rviz : 8 | 9 | ``` 10 | roslaunch niryo_one_description display.launch 11 | ``` 12 | 13 | Also, as you can see there is a file named "without\_mesh\_niryo\_one.urdf". This file is used on the Raspberry Pi 3 to avoid a segmentation fault when using visuals, due to some ARM dependencies of Moveit!. 14 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/README.md.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 20d62ddd1848e438cb28cf14c2260b8d 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/meshes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bf4c96104ece6446fa733baa00e44124 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/meshes/collada.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e8d408f512897473fa7c634a3b561bd9 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/meshes/stl.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 730bd5c2a16ac4d868ec824eb28d4529 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/meshes/stl/arm_link.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1284db36cf102407bbb57801336b14fe 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/meshes/stl/arm_link.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/meshes/stl/arm_link.stl -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/meshes/stl/arm_link.stl.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0209032410fe44dd1b04444a5571647e 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/meshes/stl/arm_link_0.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 83d362a3c44a7450ebeb99ec97679eae 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/meshes/stl/base_link.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0715ec37629714284992b1431fc45b7f 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/meshes/stl/base_link.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/meshes/stl/base_link.stl -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/meshes/stl/base_link.stl.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f19f2883bd57842009297f6c4f961538 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/meshes/stl/base_link_0.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d3731a6854bc24115bd1cf31a667bf76 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/meshes/stl/elbow_link.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2f2a56c3a65cc4a95b046d19ce2f801b 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/meshes/stl/elbow_link.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/meshes/stl/elbow_link.stl -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/meshes/stl/elbow_link.stl.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7f2535c1c8a424510bbe3777624303d9 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/meshes/stl/elbow_link_0.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6429f46ae83b94bcb8422dc22631bba9 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/meshes/stl/forearm_link.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f5b69848e1ce5499a812c846f2bc7e86 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/meshes/stl/forearm_link.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/meshes/stl/forearm_link.stl -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/meshes/stl/forearm_link.stl.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4ed27f759c9a543f4b8c343dd3b95dba 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/meshes/stl/forearm_link_0.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 29694b37d8c0e40e3ab0caaf47cf5c5a 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/meshes/stl/hand_link.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 390b85a1f90c14440b9c6bf868d147ff 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/meshes/stl/hand_link.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/meshes/stl/hand_link.stl -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/meshes/stl/hand_link.stl.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0bc7a75d349784af785cc71b59ec9497 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/meshes/stl/hand_link_0.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: db713961f804b452bb09f3d580f9c101 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/meshes/stl/shoulder_link.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5ebef98a1ec0f482a9a064ef7ffba9c6 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/meshes/stl/shoulder_link.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/meshes/stl/shoulder_link.stl -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/meshes/stl/shoulder_link.stl.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b3ffe34c2fd8b44d997a69c9beeda864 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/meshes/stl/shoulder_link_0.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: eefabca8b537f4c1e8f32142a089269f 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/meshes/stl/wrist_link.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 58f948edde5e84391b46117cdc69668a 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/meshes/stl/wrist_link.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/meshes/stl/wrist_link.stl -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/meshes/stl/wrist_link.stl.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4aeb0b8fd6fd0406d847cd56ba6dfd02 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/meshes/stl/wrist_link_0.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: db9b6a7131e9d4158ad6db5d1e70f481 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/niryo_one.urdf.xacro.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 541ddf6f6c548483fb69656cf1f706fc 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | niryo_one_urdf 4 | 2.3.1 5 | Provides URDF files for Moveit! and IKfast plugin 6 | Edouard Renard 7 | Rémi Lux 8 | GPLv3 9 | 10 | catkin 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Assets/URDF/niryo_one/niryo_one_urdf/package.xml.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8f8a045a6b47c454599da56a53b64f76 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/Packages/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "com.unity.ide.rider": "2.0.7", 4 | "com.unity.ide.visualstudio": "2.0.8", 5 | "com.unity.ide.vscode": "1.2.3", 6 | "com.unity.robotics.ros-tcp-connector": "https://github.com/Unity-Technologies/ROS-TCP-Connector.git?path=/com.unity.robotics.ros-tcp-connector#v0.7.0", 7 | "com.unity.robotics.urdf-importer": "https://github.com/Unity-Technologies/URDF-Importer.git?path=/com.unity.robotics.urdf-importer#v0.5.2", 8 | "com.unity.test-framework": "1.1.24", 9 | "com.unity.textmeshpro": "3.0.6", 10 | "com.unity.timeline": "1.4.8", 11 | "com.unity.ugui": "1.0.0", 12 | "com.unity.modules.ai": "1.0.0", 13 | "com.unity.modules.androidjni": "1.0.0", 14 | "com.unity.modules.animation": "1.0.0", 15 | "com.unity.modules.assetbundle": "1.0.0", 16 | "com.unity.modules.audio": "1.0.0", 17 | "com.unity.modules.cloth": "1.0.0", 18 | "com.unity.modules.director": "1.0.0", 19 | "com.unity.modules.imageconversion": "1.0.0", 20 | "com.unity.modules.imgui": "1.0.0", 21 | "com.unity.modules.jsonserialize": "1.0.0", 22 | "com.unity.modules.particlesystem": "1.0.0", 23 | "com.unity.modules.physics": "1.0.0", 24 | "com.unity.modules.physics2d": "1.0.0", 25 | "com.unity.modules.screencapture": "1.0.0", 26 | "com.unity.modules.terrain": "1.0.0", 27 | "com.unity.modules.terrainphysics": "1.0.0", 28 | "com.unity.modules.tilemap": "1.0.0", 29 | "com.unity.modules.ui": "1.0.0", 30 | "com.unity.modules.uielements": "1.0.0", 31 | "com.unity.modules.umbra": "1.0.0", 32 | "com.unity.modules.unityanalytics": "1.0.0", 33 | "com.unity.modules.unitywebrequest": "1.0.0", 34 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0", 35 | "com.unity.modules.unitywebrequestaudio": "1.0.0", 36 | "com.unity.modules.unitywebrequesttexture": "1.0.0", 37 | "com.unity.modules.unitywebrequestwww": "1.0.0", 38 | "com.unity.modules.vehicles": "1.0.0", 39 | "com.unity.modules.video": "1.0.0", 40 | "com.unity.modules.vr": "1.0.0", 41 | "com.unity.modules.wind": "1.0.0", 42 | "com.unity.modules.xr": "1.0.0" 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/ProjectSettings/AudioManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!11 &1 4 | AudioManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Volume: 1 8 | Rolloff Scale: 1 9 | Doppler Factor: 1 10 | Default Speaker Mode: 2 11 | m_SampleRate: 0 12 | m_DSPBufferSize: 1024 13 | m_VirtualVoiceCount: 512 14 | m_RealVoiceCount: 32 15 | m_SpatializerPlugin: 16 | m_AmbisonicDecoderPlugin: 17 | m_DisableAudio: 0 18 | m_VirtualizeEffects: 1 19 | m_RequestedDSPBufferSize: 1024 20 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/ProjectSettings/ClusterInputManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!236 &1 4 | ClusterInputManager: 5 | m_ObjectHideFlags: 0 6 | m_Inputs: [] 7 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/ProjectSettings/DynamicsManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!55 &1 4 | PhysicsManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 13 7 | m_Gravity: {x: 0, y: -9.81, z: 0} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_BounceThreshold: 2 10 | m_DefaultMaxDepenetrationVelocity: 10 11 | m_SleepThreshold: 0.005 12 | m_DefaultContactOffset: 0.01 13 | m_DefaultSolverIterations: 6 14 | m_DefaultSolverVelocityIterations: 1 15 | m_QueriesHitBackfaces: 0 16 | m_QueriesHitTriggers: 1 17 | m_EnableAdaptiveForce: 0 18 | m_ClothInterCollisionDistance: 0 19 | m_ClothInterCollisionStiffness: 0 20 | m_ContactsGeneration: 1 21 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 22 | m_AutoSimulation: 1 23 | m_AutoSyncTransforms: 0 24 | m_ReuseCollisionCallbacks: 1 25 | m_ClothInterCollisionSettingsToggle: 0 26 | m_ClothGravity: {x: 0, y: -9.81, z: 0} 27 | m_ContactPairsMode: 0 28 | m_BroadphaseType: 0 29 | m_WorldBounds: 30 | m_Center: {x: 0, y: 0, z: 0} 31 | m_Extent: {x: 250, y: 250, z: 250} 32 | m_WorldSubdivisions: 8 33 | m_FrictionType: 0 34 | m_EnableEnhancedDeterminism: 0 35 | m_EnableUnifiedHeightmaps: 1 36 | m_SolverType: 1 37 | m_DefaultMaxAngularSpeed: 7 38 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/ProjectSettings/EditorBuildSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1045 &1 4 | EditorBuildSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Scenes: 8 | - enabled: 0 9 | path: Assets/Tests/PlayMode/PlayModeTestScenes/TargetPlacementTest.unity 10 | guid: 3d328f38f71b71e47bb8d96869012ffe 11 | - enabled: 1 12 | path: Assets/Tests/PlayMode/PlayModeTestScenes/TargetPlacementTest.unity 13 | guid: 3d328f38f71b71e47bb8d96869012ffe 14 | m_configObjects: {} 15 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/ProjectSettings/EditorSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!159 &1 4 | EditorSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 11 7 | m_SerializationMode: 2 8 | m_LineEndingsForNewScripts: 1 9 | m_DefaultBehaviorMode: 0 10 | m_PrefabRegularEnvironment: {fileID: 0} 11 | m_PrefabUIEnvironment: {fileID: 0} 12 | m_SpritePackerMode: 0 13 | m_SpritePackerPaddingPower: 1 14 | m_EtcTextureCompressorBehavior: 1 15 | m_EtcTextureFastCompressor: 1 16 | m_EtcTextureNormalCompressor: 2 17 | m_EtcTextureBestCompressor: 4 18 | m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef;rsp;asmref 19 | m_ProjectGenerationRootNamespace: 20 | m_EnableTextureStreamingInEditMode: 1 21 | m_EnableTextureStreamingInPlayMode: 1 22 | m_AsyncShaderCompilation: 1 23 | m_CachingShaderPreprocessor: 1 24 | m_PrefabModeAllowAutoSave: 1 25 | m_EnterPlayModeOptionsEnabled: 0 26 | m_EnterPlayModeOptions: 3 27 | m_GameObjectNamingDigits: 1 28 | m_GameObjectNamingScheme: 0 29 | m_AssetNamingUsesSpace: 1 30 | m_UseLegacyProbeSampleCount: 0 31 | m_SerializeInlineMappingsOnOneLine: 1 32 | m_DisableCookiesInLightmapper: 0 33 | m_AssetPipelineMode: 1 34 | m_CacheServerMode: 0 35 | m_CacheServerEndpoint: 36 | m_CacheServerNamespacePrefix: default 37 | m_CacheServerEnableDownload: 1 38 | m_CacheServerEnableUpload: 1 39 | m_CacheServerEnableAuth: 0 40 | m_CacheServerEnableTls: 0 41 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/ProjectSettings/GraphicsSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!30 &1 4 | GraphicsSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 13 7 | m_Deferred: 8 | m_Mode: 1 9 | m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0} 10 | m_DeferredReflections: 11 | m_Mode: 1 12 | m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0} 13 | m_ScreenSpaceShadows: 14 | m_Mode: 1 15 | m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0} 16 | m_LegacyDeferred: 17 | m_Mode: 1 18 | m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0} 19 | m_DepthNormals: 20 | m_Mode: 1 21 | m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0} 22 | m_MotionVectors: 23 | m_Mode: 1 24 | m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0} 25 | m_LightHalo: 26 | m_Mode: 1 27 | m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0} 28 | m_LensFlare: 29 | m_Mode: 1 30 | m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0} 31 | m_AlwaysIncludedShaders: 32 | - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0} 33 | - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0} 34 | - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0} 35 | - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0} 36 | - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0} 37 | - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0} 38 | m_PreloadedShaders: [] 39 | m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, 40 | type: 0} 41 | m_CustomRenderPipeline: {fileID: 0} 42 | m_TransparencySortMode: 0 43 | m_TransparencySortAxis: {x: 0, y: 0, z: 1} 44 | m_DefaultRenderingPath: 1 45 | m_DefaultMobileRenderingPath: 1 46 | m_TierSettings: [] 47 | m_LightmapStripping: 0 48 | m_FogStripping: 0 49 | m_InstancingStripping: 0 50 | m_LightmapKeepPlain: 1 51 | m_LightmapKeepDirCombined: 1 52 | m_LightmapKeepDynamicPlain: 1 53 | m_LightmapKeepDynamicDirCombined: 1 54 | m_LightmapKeepShadowMask: 1 55 | m_LightmapKeepSubtractive: 1 56 | m_FogKeepLinear: 1 57 | m_FogKeepExp: 1 58 | m_FogKeepExp2: 1 59 | m_AlbedoSwatchInfos: [] 60 | m_LightsUseLinearIntensity: 0 61 | m_LightsUseColorTemperature: 0 62 | m_LogWhenShaderIsCompiled: 0 63 | m_AllowEnlightenSupportForUpgradedProject: 0 64 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/ProjectSettings/NavMeshAreas.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!126 &1 4 | NavMeshProjectSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | areas: 8 | - name: Walkable 9 | cost: 1 10 | - name: Not Walkable 11 | cost: 1 12 | - name: Jump 13 | cost: 2 14 | - name: 15 | cost: 1 16 | - name: 17 | cost: 1 18 | - name: 19 | cost: 1 20 | - name: 21 | cost: 1 22 | - name: 23 | cost: 1 24 | - name: 25 | cost: 1 26 | - name: 27 | cost: 1 28 | - name: 29 | cost: 1 30 | - name: 31 | cost: 1 32 | - name: 33 | cost: 1 34 | - name: 35 | cost: 1 36 | - name: 37 | cost: 1 38 | - name: 39 | cost: 1 40 | - name: 41 | cost: 1 42 | - name: 43 | cost: 1 44 | - name: 45 | cost: 1 46 | - name: 47 | cost: 1 48 | - name: 49 | cost: 1 50 | - name: 51 | cost: 1 52 | - name: 53 | cost: 1 54 | - name: 55 | cost: 1 56 | - name: 57 | cost: 1 58 | - name: 59 | cost: 1 60 | - name: 61 | cost: 1 62 | - name: 63 | cost: 1 64 | - name: 65 | cost: 1 66 | - name: 67 | cost: 1 68 | - name: 69 | cost: 1 70 | - name: 71 | cost: 1 72 | m_LastAgentTypeID: -887442657 73 | m_Settings: 74 | - serializedVersion: 2 75 | agentTypeID: 0 76 | agentRadius: 0.5 77 | agentHeight: 2 78 | agentSlope: 45 79 | agentClimb: 0.75 80 | ledgeDropHeight: 0 81 | maxJumpAcrossDistance: 0 82 | minRegionArea: 2 83 | manualCellSize: 0 84 | cellSize: 0.16666667 85 | manualTileSize: 0 86 | tileSize: 256 87 | accuratePlacement: 0 88 | debug: 89 | m_Flags: 0 90 | m_SettingNames: 91 | - Humanoid 92 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/ProjectSettings/PackageManagerSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &1 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 61 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 13964, guid: 0000000000000000e000000000000000, type: 0} 13 | m_Name: 14 | m_EditorClassIdentifier: 15 | m_EnablePreviewPackages: 0 16 | m_EnablePackageDependencies: 1 17 | m_AdvancedSettingsExpanded: 1 18 | m_ScopedRegistriesSettingsExpanded: 1 19 | oneTimeWarningShown: 0 20 | m_Registries: 21 | - m_Id: main 22 | m_Name: 23 | m_Url: https://packages.unity.com 24 | m_Scopes: [] 25 | m_IsDefault: 1 26 | m_Capabilities: 7 27 | m_UserSelectedRegistryName: 28 | m_UserAddingNewScopedRegistry: 0 29 | m_RegistryInfoDraft: 30 | m_ErrorMessage: 31 | m_Original: 32 | m_Id: 33 | m_Name: 34 | m_Url: 35 | m_Scopes: [] 36 | m_IsDefault: 0 37 | m_Capabilities: 0 38 | m_Modified: 0 39 | m_Name: 40 | m_Url: 41 | m_Scopes: 42 | - 43 | m_SelectedScopeIndex: 0 44 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/ProjectSettings/Physics2DSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!19 &1 4 | Physics2DSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 4 7 | m_Gravity: {x: 0, y: -9.81} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_VelocityIterations: 8 10 | m_PositionIterations: 3 11 | m_VelocityThreshold: 1 12 | m_MaxLinearCorrection: 0.2 13 | m_MaxAngularCorrection: 8 14 | m_MaxTranslationSpeed: 100 15 | m_MaxRotationSpeed: 360 16 | m_BaumgarteScale: 0.2 17 | m_BaumgarteTimeOfImpactScale: 0.75 18 | m_TimeToSleep: 0.5 19 | m_LinearSleepTolerance: 0.01 20 | m_AngularSleepTolerance: 2 21 | m_DefaultContactOffset: 0.01 22 | m_JobOptions: 23 | serializedVersion: 2 24 | useMultithreading: 0 25 | useConsistencySorting: 0 26 | m_InterpolationPosesPerJob: 100 27 | m_NewContactsPerJob: 30 28 | m_CollideContactsPerJob: 100 29 | m_ClearFlagsPerJob: 200 30 | m_ClearBodyForcesPerJob: 200 31 | m_SyncDiscreteFixturesPerJob: 50 32 | m_SyncContinuousFixturesPerJob: 50 33 | m_FindNearestContactsPerJob: 100 34 | m_UpdateTriggerContactsPerJob: 100 35 | m_IslandSolverCostThreshold: 100 36 | m_IslandSolverBodyCostScale: 1 37 | m_IslandSolverContactCostScale: 10 38 | m_IslandSolverJointCostScale: 10 39 | m_IslandSolverBodiesPerJob: 50 40 | m_IslandSolverContactsPerJob: 50 41 | m_AutoSimulation: 1 42 | m_QueriesHitTriggers: 1 43 | m_QueriesStartInColliders: 1 44 | m_CallbacksOnDisable: 1 45 | m_ReuseCollisionCallbacks: 1 46 | m_AutoSyncTransforms: 0 47 | m_AlwaysShowColliders: 0 48 | m_ShowColliderSleep: 1 49 | m_ShowColliderContacts: 0 50 | m_ShowColliderAABB: 0 51 | m_ContactArrowScale: 0.2 52 | m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412} 53 | m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432} 54 | m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745} 55 | m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804} 56 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 57 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/ProjectSettings/PresetManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1386491679 &1 4 | PresetManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_DefaultPresets: {} 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/ProjectSettings/ProjectVersion.txt: -------------------------------------------------------------------------------- 1 | m_EditorVersion: 2020.3.11f1 2 | m_EditorVersionWithRevision: 2020.3.11f1 (99c7afb366b3) 3 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/ProjectSettings/TagManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!78 &1 4 | TagManager: 5 | serializedVersion: 2 6 | tags: 7 | - robot 8 | layers: 9 | - Default 10 | - TransparentFX 11 | - Ignore Raycast 12 | - 13 | - Water 14 | - UI 15 | - 16 | - 17 | - 18 | - 19 | - 20 | - 21 | - 22 | - 23 | - 24 | - 25 | - 26 | - 27 | - 28 | - 29 | - 30 | - 31 | - 32 | - 33 | - 34 | - 35 | - 36 | - 37 | - 38 | - 39 | - 40 | - 41 | m_SortingLayers: 42 | - name: Default 43 | uniqueID: 0 44 | locked: 0 45 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/ProjectSettings/TimeManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!5 &1 4 | TimeManager: 5 | m_ObjectHideFlags: 0 6 | Fixed Timestep: 0.02 7 | Maximum Allowed Timestep: 0.33333334 8 | m_TimeScale: 1 9 | Maximum Particle Timestep: 0.03 10 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/ProjectSettings/TimelineSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &1 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 61 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: a287be6c49135cd4f9b2b8666c39d999, type: 3} 13 | m_Name: 14 | m_EditorClassIdentifier: 15 | assetDefaultFramerate: 60 16 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/ProjectSettings/UnityConnectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!310 &1 4 | UnityConnectSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 1 7 | m_Enabled: 0 8 | m_TestMode: 0 9 | m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events 10 | m_EventUrl: https://cdp.cloud.unity3d.com/v1/events 11 | m_ConfigUrl: https://config.uca.cloud.unity3d.com 12 | m_TestInitMode: 0 13 | CrashReportingSettings: 14 | m_EventUrl: https://perf-events.cloud.unity3d.com 15 | m_Enabled: 0 16 | m_LogBufferSize: 10 17 | m_CaptureEditorExceptions: 1 18 | UnityPurchasingSettings: 19 | m_Enabled: 0 20 | m_TestMode: 0 21 | UnityAnalyticsSettings: 22 | m_Enabled: 0 23 | m_TestMode: 0 24 | m_InitializeOnStartup: 1 25 | UnityAdsSettings: 26 | m_Enabled: 0 27 | m_InitializeOnStartup: 1 28 | m_TestMode: 0 29 | m_IosGameId: 30 | m_AndroidGameId: 31 | m_GameIds: {} 32 | m_GameId: 33 | PerformanceReportingSettings: 34 | m_Enabled: 0 35 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/ProjectSettings/VFXManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!937362698 &1 4 | VFXManager: 5 | m_ObjectHideFlags: 0 6 | m_IndirectShader: {fileID: 0} 7 | m_CopyBufferShader: {fileID: 0} 8 | m_SortShader: {fileID: 0} 9 | m_StripUpdateShader: {fileID: 0} 10 | m_RenderPipeSettingsPath: 11 | m_FixedTimeStep: 0.016666668 12 | m_MaxDeltaTime: 0.05 13 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/ProjectSettings/VersionControlSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!890905787 &1 4 | VersionControlSettings: 5 | m_ObjectHideFlags: 0 6 | m_Mode: Visible Meta Files 7 | m_CollabEditorSettings: 8 | inProgressEnabled: 1 9 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/PickAndPlaceProject/ProjectSettings/XRSettings.asset: -------------------------------------------------------------------------------- 1 | { 2 | "m_SettingKeys": [ 3 | "VR Device Disabled", 4 | "VR Device User Alert" 5 | ], 6 | "m_SettingValues": [ 7 | "False", 8 | "False" 9 | ] 10 | } -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/.gitignore: -------------------------------------------------------------------------------- 1 | build 2 | devel 3 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_moveit/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.0.2) 2 | project(niryo_moveit) 3 | 4 | find_package(catkin REQUIRED COMPONENTS 5 | rospy 6 | std_msgs 7 | geometry_msgs 8 | ros_tcp_endpoint 9 | message_generation 10 | moveit_msgs 11 | sensor_msgs 12 | controller_manager 13 | roslaunch 14 | trajectory_msgs 15 | ) 16 | roslaunch_add_file_check(launch) 17 | 18 | add_message_files(DIRECTORY msg) 19 | 20 | add_service_files(DIRECTORY srv) 21 | 22 | generate_messages( 23 | DEPENDENCIES 24 | geometry_msgs 25 | std_msgs 26 | moveit_msgs 27 | sensor_msgs 28 | ) 29 | 30 | catkin_package() 31 | 32 | catkin_install_python(PROGRAMS 33 | scripts/mover.py 34 | scripts/trajectory_subscriber.py 35 | scripts/sim_real_pnp.py 36 | DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} 37 | ) 38 | 39 | install(DIRECTORY launch DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} 40 | PATTERN "setup_assistant.launch" EXCLUDE) 41 | install(DIRECTORY config DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}) 42 | 43 | ############# 44 | ## Testing ## 45 | ############# 46 | 47 | ## Add gtest based cpp test target and link libraries 48 | # catkin_add_gtest(${PROJECT_NAME}-test test/test_niryo_moveit.cpp) 49 | # if(TARGET ${PROJECT_NAME}-test) 50 | # target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME}) 51 | # endif() 52 | 53 | ## Add folders to be run by python nosetests 54 | # catkin_add_nosetests(test) 55 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_moveit/README.md: -------------------------------------------------------------------------------- 1 | ### Prerequisites 2 | 3 | Ensure physics solver is set to `Temporal Gauss Seidel` in [Physics Manager](https://docs.unity3d.com/Manual/class-PhysicsManager.html) 4 | 5 | ### ROS & Simulated Arm Only 6 | -- 7 | 8 | **Terminal 1** 9 | 10 | ``` 11 | roscore & 12 | rosparam set ROS_IP 192.168.50.149 13 | rosparam set ROS_TCP_PORT 10000 14 | rosparam set UNITY_IP 192.168.50.13 15 | rosparam set UNITY_SERVER_PORT 5005 16 | rosrun niryo_moveit server_endpoint.py 17 | ``` 18 | 19 | **Terminal 2** 20 | 21 | `rosrun niryo_moveit mover.py` 22 | 23 | **Terminal 3** 24 | 25 | `roslaunch niryo_moveit demo.launch` 26 | 27 | **Unity** 28 | 29 | Press play in the Editor and press `Send Joint Angles` button in scene. 30 | 31 | 32 | ### Converting to Niryo One & Simulated Arm: 33 | -- 34 | 35 | Convert the mover service to publish to the `“niryo_one/commander/robot_action` topic of a `RobotMoveCommand` message type. 36 | 37 | **RobotMoveCommand.msg** 38 | 39 | ``` 40 | int32 cmd_type 41 | 42 | float64[] joints 43 | geometry_msgs/Point position 44 | niryo_one_msgs/RPY rpy 45 | niryo_one_msgs/ShiftPose shift 46 | niryo_one_msgs/TrajectoryPlan Trajectory 47 | geometry_msgs/Pose pose_quat 48 | string saved_position_name 49 | int32 saved_trajectory_id 50 | ``` 51 | 52 | **TrajectoryPlan.msg** 53 | 54 | ``` 55 | moveit_msgs/RobotState trajectory_start 56 | string group_name 57 | moveit_msgs/RobotTrajectory trajectory 58 | ``` 59 | 60 | **ROS Side** 61 | 62 | The current `mover.py` returns a plan with a `RobotTrajectory` and `RobotState` so it is likely that we will be able to convert our service to return the success of planning a trajectory while also publishing the trajectories to the corresponding topic. 63 | 64 | **Unity Side** 65 | 66 | Convert the current service call into a publisher and subscriber. Subscribe to the same topic as the real robot and move the simulated robot accordiingly. 67 | 68 | 69 | ### Creating Tutorials 70 | -- 71 | 72 | - Be sure to update all URDFs to include gripper 73 | 74 | 75 | 76 | ### Resources Used 77 | -- 78 | 79 | - [MoveIt](https://github.com/ros-planning/moveit) 80 | - All of the launch and config files used in this package were copied from 81 | [Niryo One ROS Stack](https://github.com/NiryoRobotics/niryo_one_ros) and edited to suit our reduced use case. 82 | 83 | 84 | Questions: 85 | --- 86 | - Why does trajectory planning fail when the target pose is about halfway up the robot? Are there constraints being enforced somewhere? 87 | 88 | 89 | Notes: 90 | --- 91 | Changing from Unity coords to ROS coords: 92 | 93 | ``` 94 | Unity: (x, y z) 95 | ROS: (z, -x, y) 96 | ``` 97 | 98 | 99 | 0 0.249 0 100 | 101 | 0, 0, 0.249 -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_moveit/config/controllers.yaml: -------------------------------------------------------------------------------- 1 | controller_list: 2 | - name: "niryo_one_follow_joint_trajectory_controller" 3 | action_ns: follow_joint_trajectory 4 | type: FollowJointTrajectory 5 | default: true 6 | joints: 7 | - joint_1 8 | - joint_2 9 | - joint_3 10 | - joint_4 11 | - joint_5 12 | - joint_6 13 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_moveit/config/joint_limits.yaml: -------------------------------------------------------------------------------- 1 | # joint_limits.yaml allows the dynamics properties specified in the URDF to be overwritten or augmented as needed 2 | # Specific joint properties can be changed with the keys [max_position, min_position, max_velocity, max_acceleration] 3 | # Joint limits can be turned off with [has_velocity_limits, has_acceleration_limits] 4 | joint_limits: 5 | joint_1: 6 | has_velocity_limits: true 7 | max_velocity: 2.2 8 | has_acceleration_limits: true 9 | max_acceleration: 1.5 10 | joint_2: 11 | has_velocity_limits: true 12 | max_velocity: 2.0 13 | has_acceleration_limits: true 14 | max_acceleration: 1.5 15 | joint_3: 16 | has_velocity_limits: true 17 | max_velocity: 2.0 18 | has_acceleration_limits: true 19 | max_acceleration: 1.4 20 | joint_4: 21 | has_velocity_limits: true 22 | max_velocity: 2.0 23 | has_acceleration_limits: true 24 | max_acceleration: 1.3 25 | joint_5: 26 | has_velocity_limits: true 27 | max_velocity: 2.5 28 | has_acceleration_limits: true 29 | max_acceleration: 1.8 30 | joint_6: 31 | has_velocity_limits: true 32 | max_velocity: 3.14 33 | has_acceleration_limits: true 34 | max_acceleration: 2.6 35 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_moveit/config/kinematics.yaml: -------------------------------------------------------------------------------- 1 | arm: 2 | kinematics_solver: kdl_kinematics_plugin/KDLKinematicsPlugin 3 | kinematics_solver_attempts: 3 4 | kinematics_solver_search_resolution: 0.005 5 | kinematics_solver_timeout: 0.005 6 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_moveit/config/niryo_one_controllers.yaml: -------------------------------------------------------------------------------- 1 | # Settings for ros_control control loop 2 | hardware_control_loop: 3 | loop_hz: 25 4 | 5 | # Publish all joint states ----------------------- 6 | joint_state_controller: 7 | type: "joint_state_controller/JointStateController" 8 | publish_rate: 50 9 | 10 | # Joint Trajectory Controller - position based ----------------------- 11 | niryo_one_follow_joint_trajectory_controller: 12 | type: "position_controllers/JointTrajectoryController" 13 | joints: 14 | - joint_1 15 | - joint_2 16 | - joint_3 17 | - joint_4 18 | - joint_5 19 | - joint_6 20 | constraints: 21 | goal_time: 1.0 22 | stopped_velocity_tolerance: 0.05 23 | joint_1: {trajectory: 0.5, goal: 0.2} 24 | joint_2: {trajectory: 0.5, goal: 0.2} 25 | joint_3: {trajectory: 0.5, goal: 0.2} 26 | joint_4: {trajectory: 0.5, goal: 0.2} 27 | joint_5: {trajectory: 1.0, goal: 0.3} 28 | joint_6: {trajectory: 1.0, goal: 0.3} 29 | stop_trajectory_duration: 1.0 30 | state_publish_rate: 20 31 | #action_monitor_rate: 20 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_moveit/config/niryo_one_driver.yaml: -------------------------------------------------------------------------------- 1 | # 2 | # ### Params for Niryo One driver ### 3 | # 4 | 5 | # 6 | # Communication with motors 7 | # 8 | 9 | # Dynamixel bus 10 | dxl_baudrate: 1000000 11 | dxl_uart_device_name: "/dev/serial0" 12 | 13 | # CAN bus 14 | spi_channel: 0 15 | spi_baudrate: 1000000 16 | gpio_can_interrupt: 25 17 | 18 | calibration_timeout: 40 19 | 20 | # 21 | # Read/Write/Check frequencies 22 | # Those params have been chosen to get a good (connection performance + speed / CPU usage) ratio 23 | # 24 | 25 | ros_control_loop_frequency: 100.0 26 | 27 | niryo_one_hw_check_connection_frequency: 2.0 28 | publish_hw_status_frequency: 2.0 29 | publish_software_version_frequency: 2.0 30 | publish_learning_mode_frequency: 2.0 31 | read_rpi_diagnostics_frequency: 0.25 32 | 33 | dxl_hardware_control_loop_frequency: 100.0 34 | dxl_hw_write_frequency: 50.0 35 | dxl_hw_data_read_frequency: 15.0 36 | dxl_hw_status_read_frequency: 0.5 37 | 38 | can_hardware_control_loop_frequency: 1500.0 39 | can_hw_write_frequency: 50.0 40 | can_hw_check_connection_frequency: 3.0 41 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_moveit/config/niryo_one_motors.yaml: -------------------------------------------------------------------------------- 1 | # 2 | # 3 | # List of all required and authorized motors (motors ids) for Niryo One V2 4 | # 5 | # (please read carefuly before editing anything) 6 | # 7 | # You should not need to edit this file, unless 8 | # - you want to debug on some detached motors 9 | # - you are developing new features 10 | # - you really know what you are doing 11 | # 12 | # 13 | 14 | can_required_motors: # Axis 1-3 of Niryo One (stepper 1 -> id 1, stepper 2 -> id 2, ...) 15 | # Edit only for debug purposes (ex : you want to test some motors separately and detached from the robot) 16 | # --> Commented ids will make associated motor disable (and thus not trigger an error if not connected) 17 | # Before editing, please be sure that you know what you're doing 18 | - 1 # Axis 1 enabled if not commented 19 | - 2 # Axis 2 enabled if not commented 20 | - 3 # Axis 3 enabled if not commented 21 | 22 | can_authorized_motors: 23 | - 1 # Axis 1 enabled if not commented 24 | - 2 # Axis 2 enabled if not commented 25 | - 3 # Axis 3 enabled if not commented 26 | - 6 # id for conveyor belt 1 27 | - 7 # id for conveyor belt 2 28 | 29 | dxl_required_motors: # axis 4, 5 and 6 of Niryo One. 30 | # Edit only for debug purposes (ex : you want to test some motors separately and detached from the robot) 31 | # --> Commented ids will make associated motor disable (and thus not trigger an error if not connected) 32 | # Before editing, please be sure that you know what you're doing 33 | - 2 # -> id of Axis 4 34 | - 3 # -> id of Axis 5 35 | - 6 # -> id of Axis 6 36 | 37 | dxl_authorized_motors: # here include all Dynamixel tools that can possibly be attached to Niryo One 38 | - 2 # -> id of Axis 4 39 | - 3 # -> id of Axis 5 40 | - 6 # -> id of Axis 6 41 | - 11 # id of Gripper 1 42 | - 12 # id of Gripper 2 43 | - 13 # id of Gripper 3 44 | - 31 # if of Vacuum Pump 1 45 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_moveit/config/params.yaml: -------------------------------------------------------------------------------- 1 | ROS_IP: 127.0.0.1 2 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_moveit/config/robot_command_validation.yaml: -------------------------------------------------------------------------------- 1 | # 2 | # 3 | # Validation for a RobotMoveCommand 4 | # (taken from urdf) 5 | # 6 | 7 | joint_limits: 8 | j1: 9 | min: -3.05433 10 | max: 3.05433 11 | j2: 12 | min: -1.91986 13 | max: 0.640187 14 | j3: 15 | min: -1.397485 16 | max: 1.570796 17 | j4: 18 | min: -3.05433 19 | max: 3.05433 20 | j5: 21 | min: -1.74533 22 | max: 1.91986 23 | j6: 24 | min: -2.57436 25 | max: 2.57436 26 | 27 | position_limits: 28 | x: 29 | min: -0.50 30 | max: 0.50 31 | y: 32 | min: -0.50 33 | max: 0.50 34 | z: 35 | min: -0.15 36 | max: 0.65 37 | 38 | rpy_limits: 39 | roll: 40 | min: -3.14159 41 | max: 3.14159 42 | pitch: 43 | min: -3.14159 44 | max: 3.14159 45 | yaw: 46 | min: -3.14159 47 | max: 3.14159 48 | 49 | tool_limits: 50 | gripper_open_speed: 51 | min: 0 52 | max: 1023 53 | gripper_close_speed: 54 | min: 0 55 | max: 1023 56 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_moveit/config/stepper_params.yaml: -------------------------------------------------------------------------------- 1 | # 2 | # Stepper caracteristics for hardware V2 3 | # 4 | 5 | stepper_1_gear_ratio: 6.0625 6 | stepper_2_gear_ratio: 8.3125 7 | stepper_3_gear_ratio: 7.875 8 | 9 | stepper_6_gear_ratio: 5.0 10 | stepper_7_gear_ratio: 5.0 11 | 12 | stepper_1_offset_position: 3.05433 13 | stepper_2_offset_position: 0.640187 14 | stepper_3_offset_position: -1.397485 15 | 16 | stepper_1_home_position: 0.0 17 | stepper_2_home_position: 0.640187 18 | stepper_3_home_position: -1.397485 19 | 20 | stepper_1_direction: -1.0 21 | stepper_2_direction: -1.0 22 | stepper_3_direction: 1.0 23 | 24 | stepper_6_direction: -1.0 25 | stepper_7_direction: -1.0 26 | 27 | stepper_1_max_effort: 90 28 | stepper_2_max_effort: 130 29 | stepper_3_max_effort: 120 30 | 31 | stepper_6_max_effort: 90 32 | stepper_7_max_effort: 90 33 | 34 | # Params still used in the driver code but motor 4 will be disabled 35 | stepper_4_gear_ratio: 5.0 36 | stepper_4_offset_position: 2.791 37 | stepper_4_home_position: 0.0 38 | stepper_4_direction: -1.0 39 | stepper_4_max_effort: 90 40 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_moveit/launch/controllers.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 27 | 28 | 29 | 30 | 31 | 32 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_moveit/launch/demo.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_moveit/launch/niryo_one_base.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_moveit/launch/niryo_one_moveit_controller_manager.launch.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_moveit/launch/ompl_planning_pipeline.launch.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 8 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_moveit/launch/part_2.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_moveit/launch/part_3.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_moveit/launch/part_4.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_moveit/launch/planning_context.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_moveit/launch/planning_pipeline.launch.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_moveit/launch/trajectory_execution.launch.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_moveit/msg/NiryoMoveitJoints.msg: -------------------------------------------------------------------------------- 1 | float64[6] joints 2 | geometry_msgs/Pose pick_pose 3 | geometry_msgs/Pose place_pose 4 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_moveit/msg/NiryoTrajectory.msg: -------------------------------------------------------------------------------- 1 | moveit_msgs/RobotTrajectory[] trajectory -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_moveit/package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | niryo_moveit 4 | 0.0.0 5 | The niryo_moveit package 6 | 7 | 8 | Unity Robotics 9 | 10 | Apache 2.0 11 | 12 | message_generation 13 | 14 | message_runtime 15 | 16 | catkin 17 | rospy 18 | std_msgs 19 | geometry_msgs 20 | ros_tcp_endpoint 21 | moveit_msgs 22 | sensor_msgs 23 | controller_manager 24 | roslaunch 25 | rospy 26 | std_msgs 27 | geometry_msgs 28 | ros_tcp_endpoint 29 | rospy 30 | std_msgs 31 | geometry_msgs 32 | ros_tcp_endpoint 33 | 34 | 35 | moveit_ros_move_group 36 | moveit_fake_controller_manager 37 | moveit_kinematics 38 | moveit_planners_ompl 39 | moveit_ros_visualization 40 | joint_state_publisher 41 | joint_state_publisher_gui 42 | robot_state_publisher 43 | xacro 44 | topic_tools 45 | moveit_msgs 46 | sensor_msgs 47 | controller_manager 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_moveit/scripts/trajectory_subscriber.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | """ 3 | Subscribes to SourceDestination topic. 4 | Uses MoveIt to compute a trajectory from the target to the destination. 5 | Trajectory is then published to PickAndPlaceTrajectory topic. 6 | """ 7 | import rospy 8 | 9 | from niryo_moveit.msg import NiryoMoveitJoints, NiryoTrajectory 10 | from moveit_msgs.msg import RobotTrajectory 11 | 12 | 13 | def callback(data): 14 | rospy.loginfo(rospy.get_caller_id() + "I heard:\n%s", data) 15 | 16 | def listener(): 17 | rospy.init_node('Trajectory_Subscriber', anonymous=True) 18 | rospy.Subscriber("/niryo_joints", NiryoMoveitJoints, callback) 19 | 20 | # spin() simply keeps python from exiting until this node is stopped 21 | rospy.spin() 22 | 23 | 24 | if __name__ == '__main__': 25 | listener() 26 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_moveit/srv/MoverService.srv: -------------------------------------------------------------------------------- 1 | NiryoMoveitJoints joints_input 2 | geometry_msgs/Pose pick_pose 3 | geometry_msgs/Pose place_pose 4 | --- 5 | moveit_msgs/RobotTrajectory[] trajectories -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_one_urdf/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8.3) 2 | project(niryo_one_urdf) 3 | 4 | find_package(catkin REQUIRED) 5 | 6 | catkin_package() 7 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_one_urdf/CMakeLists.txt.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8c1d9a03c98624c1fb61752315933e81 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_one_urdf/Gripper1.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d5f9e2056743149ee87abdfb7f3c9101 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_one_urdf/Gripper1/G1_ClampLeft.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/pick_and_place/ROS/src/niryo_one_urdf/Gripper1/G1_ClampLeft.STL -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_one_urdf/Gripper1/G1_ClampLeft.STL.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5980987391af14380be2883a3adb6f2a 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_one_urdf/Gripper1/G1_ClampLeft.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3ea77836ee2c24f16b2da97235ec8c37 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_one_urdf/Gripper1/G1_ClampLeft_0.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 41b541f4f2e3a44e7b272e55632276cb 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_one_urdf/Gripper1/G1_ClampRight.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/pick_and_place/ROS/src/niryo_one_urdf/Gripper1/G1_ClampRight.STL -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_one_urdf/Gripper1/G1_ClampRight.STL.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: eec962a7db6dc4a9c860251ea6503894 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_one_urdf/Gripper1/G1_ClampRight.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 42fceb4a5adbf4768b05c89f2329f32a 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_one_urdf/Gripper1/G1_ClampRight_0.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 98979a49565474a15baa01a132ac2239 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_one_urdf/Gripper1/G1_MainSupport.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/pick_and_place/ROS/src/niryo_one_urdf/Gripper1/G1_MainSupport.STL -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_one_urdf/Gripper1/G1_MainSupport.STL.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3ab1236015b34425c91c72bcca6432c5 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_one_urdf/Gripper1/G1_MainSupport.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4143f41bf12af4b399c9956cfd8dc36b 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_one_urdf/Gripper1/G1_MainSupport_0.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 784437cc4f93f4be49f359cd3557c9ef 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_one_urdf/Gripper1/G1_Rod.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/pick_and_place/ROS/src/niryo_one_urdf/Gripper1/G1_Rod.STL -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_one_urdf/Gripper1/G1_Rod.STL.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9bc6747645c2f4083bba2c4586835937 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_one_urdf/Gripper1/G1_Rod.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5eecd5da92eb64eb6876d43ca0009083 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_one_urdf/Gripper1/G1_Rod_0.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 074568097c0d84948aef80ec4b952db6 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_one_urdf/Gripper1/G1_ServoHead.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/pick_and_place/ROS/src/niryo_one_urdf/Gripper1/G1_ServoHead.STL -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_one_urdf/Gripper1/G1_ServoHead.STL.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 342a7a6c47a8a47b5bf18ba83b27bd05 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_one_urdf/Gripper1/G1_ServoHead.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b5285d56c80284484bba2f4cb57d5f2d 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_one_urdf/Gripper1/G1_ServoHead_0.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 98a9bd67ba1ce488396b619cb3860e2a 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_one_urdf/README.md: -------------------------------------------------------------------------------- 1 | # Niryo One description package 2 | 3 | This package contains URDF file and meshes (collada + stl) for Niryo One. 4 | 5 | **Note** : 3D visualization is not available on the Niryo One Raspberry Pi image. To use the following commands, you must have installed ROS on your computer and downloaded the Niryo One ROS packages. 6 | 7 | * To display Niryo One on Rviz : 8 | 9 | ``` 10 | roslaunch niryo_one_description display.launch 11 | ``` 12 | 13 | Also, as you can see there is a file named "without\_mesh\_niryo\_one.urdf". This file is used on the Raspberry Pi 3 to avoid a segmentation fault when using visuals, due to some ARM dependencies of Moveit!. 14 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_one_urdf/README.md.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 20d62ddd1848e438cb28cf14c2260b8d 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_one_urdf/meshes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bf4c96104ece6446fa733baa00e44124 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_one_urdf/meshes/collada.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e8d408f512897473fa7c634a3b561bd9 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_one_urdf/meshes/stl.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 730bd5c2a16ac4d868ec824eb28d4529 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_one_urdf/meshes/stl/arm_link.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1284db36cf102407bbb57801336b14fe 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_one_urdf/meshes/stl/arm_link.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/pick_and_place/ROS/src/niryo_one_urdf/meshes/stl/arm_link.stl -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_one_urdf/meshes/stl/arm_link.stl.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0209032410fe44dd1b04444a5571647e 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_one_urdf/meshes/stl/arm_link_0.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 83d362a3c44a7450ebeb99ec97679eae 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_one_urdf/meshes/stl/base_link.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0715ec37629714284992b1431fc45b7f 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_one_urdf/meshes/stl/base_link.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/pick_and_place/ROS/src/niryo_one_urdf/meshes/stl/base_link.stl -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_one_urdf/meshes/stl/base_link.stl.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f19f2883bd57842009297f6c4f961538 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_one_urdf/meshes/stl/base_link_0.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d3731a6854bc24115bd1cf31a667bf76 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_one_urdf/meshes/stl/elbow_link.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2f2a56c3a65cc4a95b046d19ce2f801b 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_one_urdf/meshes/stl/elbow_link.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/pick_and_place/ROS/src/niryo_one_urdf/meshes/stl/elbow_link.stl -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_one_urdf/meshes/stl/elbow_link.stl.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7f2535c1c8a424510bbe3777624303d9 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_one_urdf/meshes/stl/elbow_link_0.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6429f46ae83b94bcb8422dc22631bba9 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_one_urdf/meshes/stl/forearm_link.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f5b69848e1ce5499a812c846f2bc7e86 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_one_urdf/meshes/stl/forearm_link.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/pick_and_place/ROS/src/niryo_one_urdf/meshes/stl/forearm_link.stl -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_one_urdf/meshes/stl/forearm_link.stl.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4ed27f759c9a543f4b8c343dd3b95dba 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_one_urdf/meshes/stl/forearm_link_0.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 29694b37d8c0e40e3ab0caaf47cf5c5a 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_one_urdf/meshes/stl/hand_link.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 390b85a1f90c14440b9c6bf868d147ff 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_one_urdf/meshes/stl/hand_link.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/pick_and_place/ROS/src/niryo_one_urdf/meshes/stl/hand_link.stl -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_one_urdf/meshes/stl/hand_link.stl.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0bc7a75d349784af785cc71b59ec9497 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_one_urdf/meshes/stl/hand_link_0.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: db713961f804b452bb09f3d580f9c101 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_one_urdf/meshes/stl/shoulder_link.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5ebef98a1ec0f482a9a064ef7ffba9c6 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_one_urdf/meshes/stl/shoulder_link.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/pick_and_place/ROS/src/niryo_one_urdf/meshes/stl/shoulder_link.stl -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_one_urdf/meshes/stl/shoulder_link.stl.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b3ffe34c2fd8b44d997a69c9beeda864 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_one_urdf/meshes/stl/shoulder_link_0.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: eefabca8b537f4c1e8f32142a089269f 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_one_urdf/meshes/stl/wrist_link.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 58f948edde5e84391b46117cdc69668a 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_one_urdf/meshes/stl/wrist_link.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/pick_and_place/ROS/src/niryo_one_urdf/meshes/stl/wrist_link.stl -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_one_urdf/meshes/stl/wrist_link.stl.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4aeb0b8fd6fd0406d847cd56ba6dfd02 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_one_urdf/meshes/stl/wrist_link_0.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: db9b6a7131e9d4158ad6db5d1e70f481 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_one_urdf/niryo_one.urdf.xacro.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 541ddf6f6c548483fb69656cf1f706fc 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_one_urdf/package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | niryo_one_urdf 4 | 2.3.1 5 | Provides URDF files for Moveit! and IKfast plugin 6 | Edouard Renard 7 | Rémi Lux 8 | GPLv3 9 | 10 | catkin 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/ROS/src/niryo_one_urdf/package.xml.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8f8a045a6b47c454599da56a53b64f76 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/Scripts/SourceDestinationPublisher.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using RosMessageTypes.Geometry; 3 | using RosMessageTypes.NiryoMoveit; 4 | using Unity.Robotics.ROSTCPConnector; 5 | using Unity.Robotics.ROSTCPConnector.ROSGeometry; 6 | using Unity.Robotics.UrdfImporter; 7 | using UnityEngine; 8 | 9 | public class SourceDestinationPublisher : MonoBehaviour 10 | { 11 | const int k_NumRobotJoints = 6; 12 | 13 | public static readonly string[] LinkNames = 14 | { "world/base_link/shoulder_link", "/arm_link", "/elbow_link", "/forearm_link", "/wrist_link", "/hand_link" }; 15 | 16 | // Variables required for ROS communication 17 | [SerializeField] 18 | string m_TopicName = "/niryo_joints"; 19 | 20 | [SerializeField] 21 | GameObject m_NiryoOne; 22 | [SerializeField] 23 | GameObject m_Target; 24 | [SerializeField] 25 | GameObject m_TargetPlacement; 26 | readonly Quaternion m_PickOrientation = Quaternion.Euler(90, 90, 0); 27 | 28 | // Robot Joints 29 | UrdfJointRevolute[] m_JointArticulationBodies; 30 | 31 | // ROS Connector 32 | ROSConnection m_Ros; 33 | 34 | void Start() 35 | { 36 | // Get ROS connection static instance 37 | m_Ros = ROSConnection.GetOrCreateInstance(); 38 | m_Ros.RegisterPublisher(m_TopicName); 39 | 40 | m_JointArticulationBodies = new UrdfJointRevolute[k_NumRobotJoints]; 41 | 42 | var linkName = string.Empty; 43 | for (var i = 0; i < k_NumRobotJoints; i++) 44 | { 45 | linkName += LinkNames[i]; 46 | m_JointArticulationBodies[i] = m_NiryoOne.transform.Find(linkName).GetComponent(); 47 | } 48 | } 49 | 50 | public void Publish() 51 | { 52 | var sourceDestinationMessage = new NiryoMoveitJointsMsg(); 53 | 54 | for (var i = 0; i < k_NumRobotJoints; i++) 55 | { 56 | sourceDestinationMessage.joints[i] = m_JointArticulationBodies[i].GetPosition(); 57 | } 58 | 59 | // Pick Pose 60 | sourceDestinationMessage.pick_pose = new PoseMsg 61 | { 62 | position = m_Target.transform.position.To(), 63 | orientation = Quaternion.Euler(90, m_Target.transform.eulerAngles.y, 0).To() 64 | }; 65 | 66 | // Place Pose 67 | sourceDestinationMessage.place_pose = new PoseMsg 68 | { 69 | position = m_TargetPlacement.transform.position.To(), 70 | orientation = m_PickOrientation.To() 71 | }; 72 | 73 | // Finally send the message to server_endpoint.py running in ROS 74 | m_Ros.Publish(m_TopicName, sourceDestinationMessage); 75 | } 76 | } 77 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/docker/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ros:melodic-ros-base 2 | 3 | RUN sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F42ED6FBAB17C654 4 | 5 | RUN sudo apt-get update && sudo apt-get install -y vim iputils-ping net-tools python-pip ros-melodic-robot-state-publisher ros-melodic-moveit ros-melodic-rosbridge-suite ros-melodic-joy ros-melodic-ros-control ros-melodic-ros-controllers ros-melodic-tf2-web-republisher dos2unix 6 | 7 | RUN sudo -H pip install rospkg jsonpickle 8 | 9 | ENV ROS_WORKSPACE=/catkin_ws 10 | 11 | # Copy each directory explicitly to avoid workspace cruft 12 | COPY ./ROS/src/moveit_msgs $ROS_WORKSPACE/src/moveit_msgs 13 | COPY ./ROS/src/niryo_moveit $ROS_WORKSPACE/src/niryo_moveit 14 | COPY ./ROS/src/niryo_one_ros $ROS_WORKSPACE/src/niryo_one_ros 15 | COPY ./ROS/src/niryo_one_urdf $ROS_WORKSPACE/src/niryo_one_urdf 16 | COPY ./ROS/src/ros_tcp_endpoint $ROS_WORKSPACE/src/ros_tcp_endpoint 17 | 18 | COPY ./docker/set-up-workspace /setup.sh 19 | COPY docker/tutorial / 20 | 21 | RUN /bin/bash -c "find $ROS_WORKSPACE -type f -print0 | xargs -0 dos2unix" 22 | 23 | RUN dos2unix /tutorial && dos2unix /setup.sh && chmod +x /setup.sh && /setup.sh && rm /setup.sh 24 | 25 | WORKDIR $ROS_WORKSPACE 26 | 27 | # making sure the file modes are executable 28 | RUN chmod +x src/niryo_moveit/scripts/*.py 29 | 30 | ENTRYPOINT ["/tutorial"] 31 | 32 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/docker/set-up-workspace: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | source /opt/ros/melodic/setup.bash 4 | cd $ROS_WORKSPACE 5 | catkin_make 6 | -------------------------------------------------------------------------------- /tutorials/pick_and_place/docker/tutorial: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | source $ROS_WORKSPACE/devel/setup.bash 3 | echo "ROS_IP: $(hostname -i)" > $ROS_WORKSPACE/src/niryo_moveit/config/params.yaml 4 | 5 | exec "$@" -------------------------------------------------------------------------------- /tutorials/pick_and_place/img/0_docker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/pick_and_place/img/0_docker.png -------------------------------------------------------------------------------- /tutorials/pick_and_place/img/0_pick_place.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/pick_and_place/img/0_pick_place.gif -------------------------------------------------------------------------------- /tutorials/pick_and_place/img/0_unity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/pick_and_place/img/0_unity.png -------------------------------------------------------------------------------- /tutorials/pick_and_place/img/1_base.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/pick_and_place/img/1_base.png -------------------------------------------------------------------------------- /tutorials/pick_and_place/img/1_camera.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/pick_and_place/img/1_camera.png -------------------------------------------------------------------------------- /tutorials/pick_and_place/img/1_controller.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/pick_and_place/img/1_controller.png -------------------------------------------------------------------------------- /tutorials/pick_and_place/img/1_cube.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/pick_and_place/img/1_cube.png -------------------------------------------------------------------------------- /tutorials/pick_and_place/img/1_dll.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/pick_and_place/img/1_dll.png -------------------------------------------------------------------------------- /tutorials/pick_and_place/img/1_end.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/pick_and_place/img/1_end.gif -------------------------------------------------------------------------------- /tutorials/pick_and_place/img/1_force.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/pick_and_place/img/1_force.png -------------------------------------------------------------------------------- /tutorials/pick_and_place/img/1_hub.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/pick_and_place/img/1_hub.png -------------------------------------------------------------------------------- /tutorials/pick_and_place/img/1_physics.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/pick_and_place/img/1_physics.png -------------------------------------------------------------------------------- /tutorials/pick_and_place/img/2_browser.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/pick_and_place/img/2_browser.png -------------------------------------------------------------------------------- /tutorials/pick_and_place/img/2_echo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/pick_and_place/img/2_echo.png -------------------------------------------------------------------------------- /tutorials/pick_and_place/img/2_joints.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/pick_and_place/img/2_joints.gif -------------------------------------------------------------------------------- /tutorials/pick_and_place/img/2_menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/pick_and_place/img/2_menu.png -------------------------------------------------------------------------------- /tutorials/pick_and_place/img/2_msg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/pick_and_place/img/2_msg.png -------------------------------------------------------------------------------- /tutorials/pick_and_place/img/2_onclick.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/pick_and_place/img/2_onclick.png -------------------------------------------------------------------------------- /tutorials/pick_and_place/img/2_robottraj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/pick_and_place/img/2_robottraj.png -------------------------------------------------------------------------------- /tutorials/pick_and_place/img/2_ros_unity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/pick_and_place/img/2_ros_unity.png -------------------------------------------------------------------------------- /tutorials/pick_and_place/img/2_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/pick_and_place/img/2_settings.png -------------------------------------------------------------------------------- /tutorials/pick_and_place/img/2_sourcedest.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/pick_and_place/img/2_sourcedest.gif -------------------------------------------------------------------------------- /tutorials/pick_and_place/img/2_srv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/pick_and_place/img/2_srv.png -------------------------------------------------------------------------------- /tutorials/pick_and_place/img/2_target.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/pick_and_place/img/2_target.gif -------------------------------------------------------------------------------- /tutorials/pick_and_place/img/2_text.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/pick_and_place/img/2_text.png -------------------------------------------------------------------------------- /tutorials/pick_and_place/img/2_values.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/pick_and_place/img/2_values.png -------------------------------------------------------------------------------- /tutorials/pick_and_place/img/3_gripper.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/pick_and_place/img/3_gripper.gif -------------------------------------------------------------------------------- /tutorials/pick_and_place/img/3_init.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/pick_and_place/img/3_init.gif -------------------------------------------------------------------------------- /tutorials/pick_and_place/img/3_onclick.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/pick_and_place/img/3_onclick.png -------------------------------------------------------------------------------- /tutorials/pick_and_place/img/3_swap.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/pick_and_place/img/3_swap.gif -------------------------------------------------------------------------------- /tutorials/pick_and_place/img/3_target.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/pick_and_place/img/3_target.gif -------------------------------------------------------------------------------- /tutorials/pick_and_place/img/3_target.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/pick_and_place/img/3_target.png -------------------------------------------------------------------------------- /tutorials/pick_and_place/img/4_build_niryo_msgs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/pick_and_place/img/4_build_niryo_msgs.png -------------------------------------------------------------------------------- /tutorials/pick_and_place/img/4_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/pick_and_place/img/4_button.png -------------------------------------------------------------------------------- /tutorials/pick_and_place/img/4_new_flow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/pick_and_place/img/4_new_flow.png -------------------------------------------------------------------------------- /tutorials/pick_and_place/img/4_old_flow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/pick_and_place/img/4_old_flow.png -------------------------------------------------------------------------------- /tutorials/pick_and_place/img/4_pick_and_place.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/pick_and_place/img/4_pick_and_place.gif -------------------------------------------------------------------------------- /tutorials/pick_and_place/img/4_script.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/pick_and_place/img/4_script.png -------------------------------------------------------------------------------- /tutorials/pick_and_place/img/hub_addproject.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/pick_and_place/img/hub_addproject.png -------------------------------------------------------------------------------- /tutorials/quick_setup.md: -------------------------------------------------------------------------------- 1 | # Installing the Unity Robotics packages 2 | 3 | This page provides brief instructions on installing the Unity Robotics packages. Head over to the [Pick-and-Place Tutorial](pick_and_place/README.md) for more detailed instructions and steps for building a sample project. 4 | 5 | 1. Create or open a Unity project. 6 | > Note: If you are adding the URDF-Importer, ensure you are using a [2020.2.0](https://unity3d.com/unity/whats-new/2020.2.0)+ version of Unity Editor. 7 | 8 | 1. Open `Window` -> `Package Manager`. 9 | 10 | 1. In the Package Manager window, find and click the `+` button in the upper lefthand corner of the window. Select `Add package from git URL...`. 11 | 12 | ![](../images/packman.png) 13 | 14 | 1. Enter the git URL for the desired package. Note: you can append a version tag to the end of the git url, like `#v0.4.0` or `#v0.5.0`, to declare a specific package version, or exclude the tag to get the latest from the package's `main` branch. 15 | 1. For the [ROS-TCP-Connector](https://github.com/Unity-Technologies/ROS-TCP-Connector), enter `https://github.com/Unity-Technologies/ROS-TCP-Connector.git?path=/com.unity.robotics.ros-tcp-connector`. 16 | 1. For the [URDF-Importer](https://github.com/Unity-Technologies/URDF-Importer), enter `https://github.com/Unity-Technologies/URDF-Importer.git?path=/com.unity.robotics.urdf-importer`. 17 | 18 | 1. Click `Add`. 19 | 20 | To install from a local clone of the repository, see [installing a local package](https://docs.unity3d.com/Manual/upm-ui-local.html) in the Unity manual. 21 | -------------------------------------------------------------------------------- /tutorials/ros_unity_integration/README.md: -------------------------------------------------------------------------------- 1 | # ROS–Unity Integration 2 | 3 | ## Editor Version 4 | Most of our projects are developed/tested on Unity Editor version 2020.2.0f9 or later. We expect that anything 2020.2+ should be compatible, and will be actively working to ensure this for future versions. 2020.1.X and below are unlikely to work well, if at all, and we strongly encourage updating to a more recent version to support the bleeding edge updates to Unity's physics and simulation components that we are leveraging. 5 | 6 | ## ROS–Unity Communication 7 | ![](images/unity_ros.png) 8 | 9 | A TCP endpoint running as a ROS node, which facilitates message passing to and from Unity and ROS. 10 | 11 | The messages being passed between Unity and ROS are expected to be serialized as ROS would internally serialize them. To achieve this, the `MessageGeneration` plugin (from the [ROS TCP Connector](https://github.com/Unity-Technologies/ROS-TCP-Connector) repo) can generate C# classes, including serialization and deserialization functions, from ROS `.msg` files. 12 | 13 | The `ROSConnection` plugin (also from [ROS TCP Connector](https://github.com/Unity-Technologies/ROS-TCP-Connector)) provides the Unity scripts necessary to publish, subscribe, or call a service. 14 | 15 | --- 16 | 17 | We're currently working on lots of things! As a first step for these tutorials, please take a short moment fill out our [survey](https://unitysoftware.co1.qualtrics.com/jfe/form/SV_0ojVkDVW0nNrHkW) to help us identify what products and packages to build next. 18 | 19 | --- 20 | 21 | 22 | ## Tutorials 23 | - [ROS–Unity Integration: Initial Setup](setup.md) - ROS–Unity Initial Setup 24 | - [ROS–Unity Integration: Network Description](network.md) - Description of network settings and troubleshooting 25 | - [ROS–Unity Integration: Publisher](publisher.md) - Publish messages from a Unity Scene 26 | - [ROS–Unity Integration: Subscriber](subscriber.md) - Subscribe to receive messages in a Unity Scene 27 | - [ROS–Unity Integration: Unity Service](unity_service.md) - Implement a service inside a Unity Scene 28 | - [ROS–Unity Integration: Service Call](service_call.md) - Call an external service from a Unity Scene 29 | 30 | ## Example Unity Scripts 31 | 32 | Example scripts implemented in tutorials: 33 | 34 | - `unity_scripts/RosPublisherExample.cs` 35 | - Publishes the position of a GameObject every 0.5 seconds. 36 | 37 | - `unity_scripts/RosSubscriberExample.cs` 38 | - Subscribes to a topic that accepts color messages and uses them to change the color of a GameObject in the Unity scene. 39 | 40 | - `unity_scripts/RosUnityServiceExample.cs` 41 | - Runs a service in the Unity scene that takes a GameObject's name and responds with the Pose of that object. 42 | 43 | - `unity_scripts/RosServiceExample.cs` 44 | - Returns a destination position for a GameObject to move towards each time the service is called. 45 | 46 | -------------------------------------------------------------------------------- /tutorials/ros_unity_integration/images/add_package.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/ros_unity_integration/images/add_package.png -------------------------------------------------------------------------------- /tutorials/ros_unity_integration/images/add_package_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/ros_unity_integration/images/add_package_2.png -------------------------------------------------------------------------------- /tutorials/ros_unity_integration/images/create_cube.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/ros_unity_integration/images/create_cube.png -------------------------------------------------------------------------------- /tutorials/ros_unity_integration/images/docker_cli.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/ros_unity_integration/images/docker_cli.png -------------------------------------------------------------------------------- /tutorials/ros_unity_integration/images/generate_messages_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/ros_unity_integration/images/generate_messages_1.png -------------------------------------------------------------------------------- /tutorials/ros_unity_integration/images/generate_messages_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/ros_unity_integration/images/generate_messages_2.png -------------------------------------------------------------------------------- /tutorials/ros_unity_integration/images/generate_messages_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/ros_unity_integration/images/generate_messages_3.png -------------------------------------------------------------------------------- /tutorials/ros_unity_integration/images/move_tool.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/ros_unity_integration/images/move_tool.png -------------------------------------------------------------------------------- /tutorials/ros_unity_integration/images/ros1_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/ros_unity_integration/images/ros1_icon.png -------------------------------------------------------------------------------- /tutorials/ros_unity_integration/images/ros2_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/ros_unity_integration/images/ros2_icon.png -------------------------------------------------------------------------------- /tutorials/ros_unity_integration/images/ros2_protocol.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/ros_unity_integration/images/ros2_protocol.png -------------------------------------------------------------------------------- /tutorials/ros_unity_integration/images/settings_ros_ip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/ros_unity_integration/images/settings_ros_ip.png -------------------------------------------------------------------------------- /tutorials/ros_unity_integration/images/tcp_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/ros_unity_integration/images/tcp_1.gif -------------------------------------------------------------------------------- /tutorials/ros_unity_integration/images/tcp_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/ros_unity_integration/images/tcp_2.gif -------------------------------------------------------------------------------- /tutorials/ros_unity_integration/images/tcp_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/ros_unity_integration/images/tcp_3.gif -------------------------------------------------------------------------------- /tutorials/ros_unity_integration/images/troubleshoot-docker-unity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/ros_unity_integration/images/troubleshoot-docker-unity.png -------------------------------------------------------------------------------- /tutorials/ros_unity_integration/images/troubleshoot-port-firewall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/ros_unity_integration/images/troubleshoot-port-firewall.png -------------------------------------------------------------------------------- /tutorials/ros_unity_integration/images/troubleshoot-unity-firewall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/ros_unity_integration/images/troubleshoot-unity-firewall.png -------------------------------------------------------------------------------- /tutorials/ros_unity_integration/images/troubleshoot-windows-firewall_i.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/ros_unity_integration/images/troubleshoot-windows-firewall_i.png -------------------------------------------------------------------------------- /tutorials/ros_unity_integration/images/troubleshoot_hud_success.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/ros_unity_integration/images/troubleshoot_hud_success.png -------------------------------------------------------------------------------- /tutorials/ros_unity_integration/images/unity-tab-square-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/ros_unity_integration/images/unity-tab-square-white.png -------------------------------------------------------------------------------- /tutorials/ros_unity_integration/images/unity_ros.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/ros_unity_integration/images/unity_ros.png -------------------------------------------------------------------------------- /tutorials/ros_unity_integration/ros2_docker/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ros:foxy-ros-base 2 | 3 | # Make ROS2 Workspace Dirss 4 | RUN mkdir -p /home/dev_ws/src 5 | 6 | # Copy ROS2 packages into workspace 7 | COPY ./ros2_packages/ /home/dev_ws/src 8 | 9 | #Check out ROS-TCP-Endpoint, ROS2 version 10 | RUN git clone https://github.com/Unity-Technologies/ROS-TCP-Endpoint /home/dev_ws/src/ros_tcp_endpoint -b ROS2v0.7.0 11 | 12 | # Reference script with commands to source workspace 13 | COPY ./ros2_docker/source_ros.sh /home/dev_ws/source_ros.sh 14 | 15 | # Change to workspace on sign in 16 | RUN echo "cd home/dev_ws" >> ~/.bashrc 17 | 18 | # Build the workspace 19 | RUN cd home/dev_ws && . /opt/ros/foxy/setup.sh && colcon build 20 | 21 | # Source the workspace on sign in 22 | RUN echo ". install/local_setup.bash" >> ~/.bashrc 23 | -------------------------------------------------------------------------------- /tutorials/ros_unity_integration/ros2_docker/source_ros.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | source /opt/ros/$ROS_DISTRO/setup.bash 4 | . install/local_setup.bash 5 | ros2 launch ros2_test test_launcher.py 6 | -------------------------------------------------------------------------------- /tutorials/ros_unity_integration/ros2_packages/unity_robotics_demo/package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | unity_robotics_demo 5 | 0.0.1 6 | Package for use in ROS-Unity Integration tutorials (ROS2 version) 7 | Unity Robotics 8 | TODO: License declaration 9 | 10 | ament_copyright 11 | ament_flake8 12 | ament_pep257 13 | python3-pytest 14 | 15 | rclpy 16 | std_msgs 17 | 18 | rosidl_default_generators 19 | rosidl_default_runtime 20 | rosidl_interface_packages 21 | 22 | 23 | ament_python 24 | 25 | 26 | -------------------------------------------------------------------------------- /tutorials/ros_unity_integration/ros2_packages/unity_robotics_demo/resource/unity_robotics_demo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/ros_unity_integration/ros2_packages/unity_robotics_demo/resource/unity_robotics_demo -------------------------------------------------------------------------------- /tutorials/ros_unity_integration/ros2_packages/unity_robotics_demo/setup.cfg: -------------------------------------------------------------------------------- 1 | [develop] 2 | script-dir=$base/lib/unity_robotics_demo 3 | [install] 4 | install-scripts=$base/lib/unity_robotics_demo 5 | -------------------------------------------------------------------------------- /tutorials/ros_unity_integration/ros2_packages/unity_robotics_demo/setup.py: -------------------------------------------------------------------------------- 1 | import glob 2 | import os 3 | 4 | from setuptools import setup 5 | 6 | package_name = 'unity_robotics_demo' 7 | 8 | setup( 9 | name=package_name, 10 | version='0.0.1', 11 | packages=[package_name], 12 | data_files=[ 13 | ('share/ament_index/resource_index/packages', ['resource/' + package_name]), 14 | ('share/' + package_name, ['package.xml']), 15 | ], 16 | install_requires=['setuptools'], 17 | zip_safe=True, 18 | maintainer='Unity Robotics', 19 | maintainer_email='unity-robotics@unity3d.com', 20 | description='ROS2 Unity Integration Testing', 21 | license='TODO: License declaration', 22 | tests_require=['pytest'], 23 | entry_points={ 24 | 'console_scripts': [ 25 | 'color_publisher = unity_robotics_demo.color_publisher:main', 26 | 'position_service = unity_robotics_demo.position_service:main', 27 | ], 28 | }, 29 | ) 30 | -------------------------------------------------------------------------------- /tutorials/ros_unity_integration/ros2_packages/unity_robotics_demo/test/test_copyright.py: -------------------------------------------------------------------------------- 1 | # Copyright 2015 Open Source Robotics Foundation, Inc. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from ament_copyright.main import main 16 | import pytest 17 | 18 | 19 | @pytest.mark.copyright 20 | @pytest.mark.linter 21 | def test_copyright(): 22 | rc = main(argv=['.', 'test']) 23 | assert rc == 0, 'Found errors' 24 | -------------------------------------------------------------------------------- /tutorials/ros_unity_integration/ros2_packages/unity_robotics_demo/test/test_flake8.py: -------------------------------------------------------------------------------- 1 | # Copyright 2017 Open Source Robotics Foundation, Inc. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from ament_flake8.main import main_with_errors 16 | import pytest 17 | 18 | 19 | @pytest.mark.flake8 20 | @pytest.mark.linter 21 | def test_flake8(): 22 | rc, errors = main_with_errors(argv=[]) 23 | assert rc == 0, \ 24 | 'Found %d code style errors / warnings:\n' % len(errors) + \ 25 | '\n'.join(errors) 26 | -------------------------------------------------------------------------------- /tutorials/ros_unity_integration/ros2_packages/unity_robotics_demo/test/test_pep257.py: -------------------------------------------------------------------------------- 1 | # Copyright 2015 Open Source Robotics Foundation, Inc. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from ament_pep257.main import main 16 | import pytest 17 | 18 | 19 | @pytest.mark.linter 20 | @pytest.mark.pep257 21 | def test_pep257(): 22 | rc = main(argv=['.', 'test']) 23 | assert rc == 0, 'Found code style errors / warnings' 24 | -------------------------------------------------------------------------------- /tutorials/ros_unity_integration/ros2_packages/unity_robotics_demo/unity_robotics_demo/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/ros_unity_integration/ros2_packages/unity_robotics_demo/unity_robotics_demo/__init__.py -------------------------------------------------------------------------------- /tutorials/ros_unity_integration/ros2_packages/unity_robotics_demo/unity_robotics_demo/color_publisher.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | import random 4 | import rclpy 5 | 6 | from rclpy.node import Node 7 | 8 | from unity_robotics_demo_msgs.msg import UnityColor 9 | 10 | 11 | class ColorPublisher(Node): 12 | 13 | def __init__(self): 14 | super().__init__('color_publisher') 15 | self.publisher_ = self.create_publisher(UnityColor, 'color', 10) 16 | timer_period = 0.5 # seconds 17 | self.timer = self.create_timer(timer_period, self.timer_callback) 18 | self.i = 0 19 | self.do_publish() 20 | 21 | def do_publish(self): 22 | if self.i == 0: 23 | color = UnityColor() 24 | color.r = random.randint(0, 255) 25 | color.g = random.randint(0, 255) 26 | color.b = random.randint(0, 255) 27 | color.a = 1 28 | self.get_logger().info(f'Publishing: {color}') 29 | self.publisher_.publish(color) 30 | 31 | self.i += 1 32 | 33 | def timer_callback(self): 34 | quit() 35 | 36 | 37 | def main(args=None): 38 | rclpy.init(args=args) 39 | 40 | color_pub = ColorPublisher() 41 | 42 | while rclpy.ok(): 43 | rclpy.spin_once(color_pub) 44 | 45 | #color_pub.destroy_node() 46 | #rclpy.shutdown() 47 | 48 | 49 | if __name__ == '__main__': 50 | main() 51 | -------------------------------------------------------------------------------- /tutorials/ros_unity_integration/ros2_packages/unity_robotics_demo/unity_robotics_demo/position_service.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | import random 4 | import rclpy 5 | 6 | from unity_robotics_demo_msgs.srv import PositionService 7 | 8 | from rclpy.node import Node 9 | 10 | class PositionServiceNode(Node): 11 | 12 | def __init__(self): 13 | super().__init__('position_service_node') 14 | self.srv = self.create_service(PositionService, 'pos_srv', self.new_position_callback) 15 | 16 | def new_position_callback(self, request, response): 17 | response.output.pos_x = random.uniform(-4.0, 4.0) 18 | response.output.pos_z = random.uniform(-4.0, 4.0) 19 | 20 | return response 21 | 22 | 23 | def main(args=None): 24 | rclpy.init(args=args) 25 | 26 | pos_service = PositionServiceNode() 27 | 28 | rclpy.spin(pos_service) 29 | 30 | rclpy.shutdown() 31 | 32 | 33 | if __name__ == '__main__': 34 | main() 35 | -------------------------------------------------------------------------------- /tutorials/ros_unity_integration/ros2_packages/unity_robotics_demo_msgs/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.5) 2 | project(unity_robotics_demo_msgs) 3 | 4 | # find dependencies 5 | find_package(rosidl_default_generators REQUIRED) 6 | find_package(builtin_interfaces REQUIRED) 7 | find_package(geometry_msgs REQUIRED) 8 | find_package(std_msgs REQUIRED) 9 | 10 | rosidl_generate_interfaces(${PROJECT_NAME} 11 | "msg/PosRot.msg" 12 | "msg/UnityColor.msg" 13 | "srv/PositionService.srv" 14 | "srv/ObjectPoseService.srv" 15 | DEPENDENCIES builtin_interfaces geometry_msgs std_msgs 16 | ) 17 | 18 | if(BUILD_TESTING) 19 | find_package(ament_lint_auto REQUIRED) 20 | # the following line skips the linter which checks for copyrights 21 | # uncomment the line when a copyright and license is not present in all source files 22 | #set(ament_cmake_copyright_FOUND TRUE) 23 | # the following line skips cpplint (only works in a git repo) 24 | # uncomment the line when this package is not in a git repo 25 | #set(ament_cmake_cpplint_FOUND TRUE) 26 | ament_lint_auto_find_test_dependencies() 27 | endif() 28 | 29 | ament_package() 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /tutorials/ros_unity_integration/ros2_packages/unity_robotics_demo_msgs/msg/PosRot.msg: -------------------------------------------------------------------------------- 1 | float32 pos_x 2 | float32 pos_y 3 | float32 pos_z 4 | float32 rot_x 5 | float32 rot_y 6 | float32 rot_z 7 | float32 rot_w -------------------------------------------------------------------------------- /tutorials/ros_unity_integration/ros2_packages/unity_robotics_demo_msgs/msg/UnityColor.msg: -------------------------------------------------------------------------------- 1 | int32 r 2 | int32 g 3 | int32 b 4 | int32 a 5 | -------------------------------------------------------------------------------- /tutorials/ros_unity_integration/ros2_packages/unity_robotics_demo_msgs/package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | unity_robotics_demo_msgs 5 | 0.0.1 6 | Messages used by ROS-Unity Integration tutorial (ROS2 version) 7 | Unity Robotics 8 | TODO: License declaration 9 | 10 | ament_cmake 11 | 12 | ament_lint_auto 13 | ament_lint_common 14 | 15 | rosidl_default_generators 16 | 17 | rosidl_default_runtime 18 | 19 | rosidl_interface_packages 20 | 21 | 22 | 23 | ament_cmake 24 | 25 | 26 | -------------------------------------------------------------------------------- /tutorials/ros_unity_integration/ros2_packages/unity_robotics_demo_msgs/srv/ObjectPoseService.srv: -------------------------------------------------------------------------------- 1 | string object_name 2 | --- 3 | geometry_msgs/Pose object_pose 4 | -------------------------------------------------------------------------------- /tutorials/ros_unity_integration/ros2_packages/unity_robotics_demo_msgs/srv/PositionService.srv: -------------------------------------------------------------------------------- 1 | PosRot input 2 | --- 3 | PosRot output -------------------------------------------------------------------------------- /tutorials/ros_unity_integration/ros_docker/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ros:melodic-ros-base 2 | 3 | ENV ROS_WORKSPACE=/catkin_ws 4 | 5 | # Copy packages 6 | COPY ./ros_packages/ $ROS_WORKSPACE/src/ 7 | 8 | RUN git clone https://github.com/Unity-Technologies/ROS-TCP-Endpoint $ROS_WORKSPACE/src/ros_tcp_endpoint -b v0.7.0 9 | 10 | COPY ./ros_docker/set-up-workspace /setup.sh 11 | #COPY docker/tutorial / 12 | 13 | RUN chmod +x /setup.sh && /setup.sh && rm /setup.sh 14 | 15 | WORKDIR $ROS_WORKSPACE 16 | 17 | # Source the workspace on sign in 18 | RUN echo ". devel/setup.bash" >> ~/.bashrc 19 | 20 | # making sure the file modes are executable 21 | RUN chmod +x src/ros_tcp_endpoint/src/ros_tcp_endpoint/*.py 22 | 23 | #ENTRYPOINT ["/tutorial"] 24 | 25 | -------------------------------------------------------------------------------- /tutorials/ros_unity_integration/ros_docker/set-up-workspace: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | source /opt/ros/$ROS_DISTRO/setup.bash 4 | cd $ROS_WORKSPACE 5 | catkin_make -------------------------------------------------------------------------------- /tutorials/ros_unity_integration/ros_packages/unity_robotics_demo/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8.3) 2 | project(unity_robotics_demo) 3 | 4 | find_package(catkin REQUIRED COMPONENTS 5 | rospy 6 | std_msgs 7 | geometry_msgs 8 | ros_tcp_endpoint 9 | message_generation 10 | ) 11 | 12 | catkin_package(CATKIN_DEPENDS 13 | ros_tcp_endpoint 14 | message_runtime) 15 | 16 | catkin_install_python(PROGRAMS 17 | scripts/position_service.py 18 | scripts/color_publisher.py 19 | DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} 20 | ) 21 | 22 | 23 | ############# 24 | ## Testing ## 25 | ############# 26 | 27 | ## Add gtest based cpp test target and link libraries 28 | # catkin_add_gtest(${PROJECT_NAME}-test test/test_robotics_demo.cpp) 29 | # if(TARGET ${PROJECT_NAME}-test) 30 | # target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME}) 31 | # endif() 32 | 33 | ## Add folders to be run by python nosetests 34 | # catkin_add_nosetests(test) 35 | -------------------------------------------------------------------------------- /tutorials/ros_unity_integration/ros_packages/unity_robotics_demo/launch/robo_demo.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /tutorials/ros_unity_integration/ros_packages/unity_robotics_demo/package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | unity_robotics_demo 4 | 0.0.0 5 | The unity_robotics_demo package (ROS1 version) 6 | 7 | Unity Robotics 8 | 9 | 10 | Apache 2.0 11 | 12 | catkin 13 | rospy 14 | message_generation 15 | std_msgs 16 | ros_tcp_endpoint 17 | unity_robotics_demo_msgs 18 | rospy 19 | std_msgs 20 | ros_tcp_endpoint 21 | unity_robotics_demo_msgs 22 | message_runtime 23 | rospy 24 | std_msgs 25 | ros_tcp_endpoint 26 | unity_robotics_demo_msgs 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /tutorials/ros_unity_integration/ros_packages/unity_robotics_demo/scripts/color_publisher.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | import random 4 | import rospy 5 | import rosgraph 6 | import time 7 | from unity_robotics_demo_msgs.msg import UnityColor 8 | 9 | 10 | TOPIC_NAME = 'color' 11 | NODE_NAME = 'color_publisher' 12 | 13 | 14 | def post_color(): 15 | pub = rospy.Publisher(TOPIC_NAME, UnityColor, queue_size=10) 16 | rospy.init_node(NODE_NAME, anonymous=True) 17 | 18 | r = random.randint(0, 255) 19 | g = random.randint(0, 255) 20 | b = random.randint(0, 255) 21 | color = UnityColor(r, g, b, 1) 22 | 23 | wait_for_connections(pub, TOPIC_NAME) 24 | pub.publish(color) 25 | 26 | time.sleep(0.1) 27 | 28 | 29 | def wait_for_connections(pub, topic): 30 | ros_master = rosgraph.Master('/rostopic') 31 | topic = rosgraph.names.script_resolve_name('rostopic', topic) 32 | num_subs = 0 33 | for sub in ros_master.getSystemState()[1]: 34 | if sub[0] == topic: 35 | num_subs+=1 36 | 37 | for i in range(10): 38 | if pub.get_num_connections() == num_subs: 39 | return 40 | time.sleep(0.1) 41 | raise RuntimeError("failed to get publisher") 42 | 43 | 44 | if __name__ == '__main__': 45 | try: 46 | post_color() 47 | except rospy.ROSInterruptException: 48 | pass 49 | -------------------------------------------------------------------------------- /tutorials/ros_unity_integration/ros_packages/unity_robotics_demo/scripts/position_service.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | from __future__ import print_function 4 | 5 | import random 6 | import rospy 7 | 8 | from unity_robotics_demo_msgs.srv import PositionService, PositionServiceResponse 9 | 10 | 11 | def new_position(req): 12 | print("Request: \n{}".format(req.input)) 13 | req.input.pos_x = random.uniform(-4.0, 4.0) 14 | req.input.pos_z = random.uniform(-4.0, 4.0) 15 | 16 | return PositionServiceResponse(req.input) 17 | 18 | 19 | def translate_position_server(): 20 | rospy.init_node('position_server') 21 | s = rospy.Service('pos_srv', PositionService, new_position) 22 | print("Ready to move cubes!") 23 | rospy.spin() 24 | 25 | 26 | if __name__ == "__main__": 27 | translate_position_server() 28 | -------------------------------------------------------------------------------- /tutorials/ros_unity_integration/ros_packages/unity_robotics_demo_msgs/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8.3) 2 | project(unity_robotics_demo_msgs) 3 | 4 | find_package(catkin REQUIRED COMPONENTS 5 | rospy 6 | std_msgs 7 | geometry_msgs 8 | message_generation 9 | ) 10 | 11 | add_message_files(FILES 12 | PosRot.msg 13 | UnityColor.msg 14 | ) 15 | add_service_files(FILES 16 | ObjectPoseService.srv 17 | PositionService.srv 18 | ) 19 | 20 | generate_messages( 21 | DEPENDENCIES 22 | geometry_msgs 23 | std_msgs 24 | ) 25 | 26 | catkin_package(CATKIN_DEPENDS 27 | message_runtime) 28 | 29 | ############# 30 | ## Testing ## 31 | ############# 32 | 33 | ## Add gtest based cpp test target and link libraries 34 | # catkin_add_gtest(${PROJECT_NAME}-test test/test_robotics_demo.cpp) 35 | # if(TARGET ${PROJECT_NAME}-test) 36 | # target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME}) 37 | # endif() 38 | 39 | ## Add folders to be run by python nosetests 40 | # catkin_add_nosetests(test) 41 | -------------------------------------------------------------------------------- /tutorials/ros_unity_integration/ros_packages/unity_robotics_demo_msgs/msg/PosRot.msg: -------------------------------------------------------------------------------- 1 | float32 pos_x 2 | float32 pos_y 3 | float32 pos_z 4 | float32 rot_x 5 | float32 rot_y 6 | float32 rot_z 7 | float32 rot_w -------------------------------------------------------------------------------- /tutorials/ros_unity_integration/ros_packages/unity_robotics_demo_msgs/msg/UnityColor.msg: -------------------------------------------------------------------------------- 1 | int32 r 2 | int32 g 3 | int32 b 4 | int32 a 5 | -------------------------------------------------------------------------------- /tutorials/ros_unity_integration/ros_packages/unity_robotics_demo_msgs/package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | unity_robotics_demo_msgs 4 | 0.0.1 5 | Messages for the unity_robotics_demo package (ROS1 version) 6 | 7 | Unity Robotics 8 | 9 | 10 | Apache 2.0 11 | 12 | catkin 13 | message_generation 14 | std_msgs 15 | rospy 16 | std_msgs 17 | message_runtime 18 | rospy 19 | std_msgs 20 | ros_tcp_endpoint 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /tutorials/ros_unity_integration/ros_packages/unity_robotics_demo_msgs/srv/ObjectPoseService.srv: -------------------------------------------------------------------------------- 1 | string object_name 2 | --- 3 | geometry_msgs/Pose object_pose 4 | -------------------------------------------------------------------------------- /tutorials/ros_unity_integration/ros_packages/unity_robotics_demo_msgs/srv/PositionService.srv: -------------------------------------------------------------------------------- 1 | PosRot input 2 | --- 3 | PosRot output -------------------------------------------------------------------------------- /tutorials/ros_unity_integration/subscriber.md: -------------------------------------------------------------------------------- 1 | # ROS–Unity Integration: Subscriber 2 | 3 | Create a simple Unity scene which subscribes to a [ROS topic](http://wiki.ros.org/ROS/Tutorials/UnderstandingTopics#ROS_Topics) to change the colour of a GameObject. 4 | 5 | ## Setting Up 6 | 7 | - Follow the [ROS–Unity Demo Setup](setup.md) guide if you haven't already done so. 8 | 9 | ## Create Unity Subscriber 10 | 11 | - In Unity, create a new C# script and name it `RosSubscriberExample`. Paste the following code into the new script file. 12 | (Alternatively, you can drag the script file into Unity from `tutorials/ros_unity_integration/unity_scripts/RosSubscriberExample.cs`.) 13 | 14 | ```csharp 15 | using UnityEngine; 16 | using Unity.Robotics.ROSTCPConnector; 17 | using RosColor = RosMessageTypes.UnityRoboticsDemo.UnityColorMsg; 18 | 19 | public class RosSubscriberExample : MonoBehaviour 20 | { 21 | public GameObject cube; 22 | 23 | void Start() 24 | { 25 | ROSConnection.GetOrCreateInstance().Subscribe("color", ColorChange); 26 | } 27 | 28 | void ColorChange(RosColor colorMessage) 29 | { 30 | cube.GetComponent().material.color = new Color32((byte)colorMessage.r, (byte)colorMessage.g, (byte)colorMessage.b, (byte)colorMessage.a); 31 | } 32 | } 33 | ``` 34 | 35 | - Create an empty GameObject and name it `RosSubscriber` 36 | - Attach the `RosSubscriberExample` script to the `RosSubscriber` GameObject and drag the cube GameObject onto the `cube` parameter in the Inspector window. 37 | 38 | - Press play in the editor 39 | 40 | ### In ROS Terminal Window 41 | Let's send a color message to change the color of the cube GameObject in Unity to a random color. 42 | 43 | a) ros1 In ROS1, run: `rosrun unity_robotics_demo color_publisher.py` 44 | 45 | b) ros2 In ROS2, instead run: `ros2 run unity_robotics_demo color_publisher` 46 | 47 | > Please reference [networking troubleshooting](network.md) doc if any errors are thrown. 48 | 49 | ![](images/tcp_2.gif) 50 | 51 | Continue to the [ROS–Unity Integration Unity Service](unity_service.md). -------------------------------------------------------------------------------- /tutorials/ros_unity_integration/unity_scripts/RosPublisherExample.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using Unity.Robotics.ROSTCPConnector; 3 | using RosMessageTypes.UnityRoboticsDemo; 4 | 5 | /// 6 | /// 7 | /// 8 | public class RosPublisherExample : MonoBehaviour 9 | { 10 | ROSConnection ros; 11 | public string topicName = "pos_rot"; 12 | 13 | // The game object 14 | public GameObject cube; 15 | // Publish the cube's position and rotation every N seconds 16 | public float publishMessageFrequency = 0.5f; 17 | 18 | // Used to determine how much time has elapsed since the last message was published 19 | private float timeElapsed; 20 | 21 | void Start() 22 | { 23 | // start the ROS connection 24 | ros = ROSConnection.GetOrCreateInstance(); 25 | ros.RegisterPublisher(topicName); 26 | } 27 | 28 | private void Update() 29 | { 30 | timeElapsed += Time.deltaTime; 31 | 32 | if (timeElapsed > publishMessageFrequency) 33 | { 34 | cube.transform.rotation = Random.rotation; 35 | 36 | PosRotMsg cubePos = new PosRotMsg( 37 | cube.transform.position.x, 38 | cube.transform.position.y, 39 | cube.transform.position.z, 40 | cube.transform.rotation.x, 41 | cube.transform.rotation.y, 42 | cube.transform.rotation.z, 43 | cube.transform.rotation.w 44 | ); 45 | 46 | // Finally send the message to server_endpoint.py running in ROS 47 | ros.Publish(topicName, cubePos); 48 | 49 | timeElapsed = 0; 50 | } 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /tutorials/ros_unity_integration/unity_scripts/RosServiceCallExample.cs: -------------------------------------------------------------------------------- 1 | using RosMessageTypes.UnityRoboticsDemo; 2 | using UnityEngine; 3 | using Unity.Robotics.ROSTCPConnector; 4 | 5 | public class RosServiceCallExample : MonoBehaviour 6 | { 7 | ROSConnection ros; 8 | 9 | public string serviceName = "pos_srv"; 10 | 11 | public GameObject cube; 12 | 13 | // Cube movement conditions 14 | public float delta = 1.0f; 15 | public float speed = 2.0f; 16 | private Vector3 destination; 17 | 18 | float awaitingResponseUntilTimestamp = -1; 19 | 20 | void Start() 21 | { 22 | ros = ROSConnection.GetOrCreateInstance(); 23 | ros.RegisterRosService(serviceName); 24 | destination = cube.transform.position; 25 | } 26 | 27 | private void Update() 28 | { 29 | // Move our position a step closer to the target. 30 | float step = speed * Time.deltaTime; // calculate distance to move 31 | cube.transform.position = Vector3.MoveTowards(cube.transform.position, destination, step); 32 | 33 | if (Vector3.Distance(cube.transform.position, destination) < delta && Time.time > awaitingResponseUntilTimestamp) 34 | { 35 | Debug.Log("Destination reached."); 36 | 37 | PosRotMsg cubePos = new PosRotMsg( 38 | cube.transform.position.x, 39 | cube.transform.position.y, 40 | cube.transform.position.z, 41 | cube.transform.rotation.x, 42 | cube.transform.rotation.y, 43 | cube.transform.rotation.z, 44 | cube.transform.rotation.w 45 | ); 46 | 47 | PositionServiceRequest positionServiceRequest = new PositionServiceRequest(cubePos); 48 | 49 | // Send message to ROS and return the response 50 | ros.SendServiceMessage(serviceName, positionServiceRequest, Callback_Destination); 51 | awaitingResponseUntilTimestamp = Time.time + 1.0f; // don't send again for 1 second, or until we receive a response 52 | } 53 | } 54 | 55 | void Callback_Destination(PositionServiceResponse response) 56 | { 57 | awaitingResponseUntilTimestamp = -1; 58 | destination = new Vector3(response.output.pos_x, response.output.pos_y, response.output.pos_z); 59 | Debug.Log("New Destination: " + destination); 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /tutorials/ros_unity_integration/unity_scripts/RosSubscriberExample.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using Unity.Robotics.ROSTCPConnector; 3 | using RosColor = RosMessageTypes.UnityRoboticsDemo.UnityColorMsg; 4 | 5 | public class RosSubscriberExample : MonoBehaviour 6 | { 7 | public GameObject cube; 8 | 9 | void Start() 10 | { 11 | ROSConnection.GetOrCreateInstance().Subscribe("color", ColorChange); 12 | } 13 | 14 | void ColorChange(RosColor colorMessage) 15 | { 16 | cube.GetComponent().material.color = new Color32((byte)colorMessage.r, (byte)colorMessage.g, (byte)colorMessage.b, (byte)colorMessage.a); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /tutorials/ros_unity_integration/unity_scripts/RosUnityServiceExample.cs: -------------------------------------------------------------------------------- 1 | using RosMessageTypes.UnityRoboticsDemo; 2 | using UnityEngine; 3 | using Unity.Robotics.ROSTCPConnector; 4 | using Unity.Robotics.ROSTCPConnector.ROSGeometry; 5 | 6 | /// 7 | /// Example demonstration of implementing a UnityService that receives a Request message from another ROS node and sends a Response back 8 | /// 9 | public class RosUnityServiceExample : MonoBehaviour 10 | { 11 | [SerializeField] 12 | string m_ServiceName = "obj_pose_srv"; 13 | 14 | void Start() 15 | { 16 | // register the service with ROS 17 | ROSConnection.GetOrCreateInstance().ImplementService(m_ServiceName, GetObjectPose); 18 | } 19 | 20 | /// 21 | /// Callback to respond to the request 22 | /// 23 | /// service request containing the object name 24 | /// service response containing the object pose (or 0 if object not found) 25 | private ObjectPoseServiceResponse GetObjectPose(ObjectPoseServiceRequest request) 26 | { 27 | // process the service request 28 | Debug.Log("Received request for object: " + request.object_name); 29 | 30 | // prepare a response 31 | ObjectPoseServiceResponse objectPoseResponse = new ObjectPoseServiceResponse(); 32 | // Find a game object with the requested name 33 | GameObject gameObject = GameObject.Find(request.object_name); 34 | if (gameObject) 35 | { 36 | // Fill-in the response with the object pose converted from Unity coordinate to ROS coordinate system 37 | objectPoseResponse.object_pose.position = gameObject.transform.position.To(); 38 | objectPoseResponse.object_pose.orientation = gameObject.transform.rotation.To(); 39 | } 40 | 41 | return objectPoseResponse; 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /tutorials/urdf_importer/images/ConvexMeshComparison.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/urdf_importer/images/ConvexMeshComparison.png -------------------------------------------------------------------------------- /tutorials/urdf_importer/images/DH_parameter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/urdf_importer/images/DH_parameter.png -------------------------------------------------------------------------------- /tutorials/urdf_importer/images/Unity_coordinate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/urdf_importer/images/Unity_coordinate.png -------------------------------------------------------------------------------- /tutorials/urdf_importer/images/articulation_axis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/urdf_importer/images/articulation_axis.png -------------------------------------------------------------------------------- /tutorials/urdf_importer/images/hooke.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/urdf_importer/images/hooke.png -------------------------------------------------------------------------------- /tutorials/urdf_importer/images/link_control.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/urdf_importer/images/link_control.gif -------------------------------------------------------------------------------- /tutorials/urdf_importer/images/link_hierarchy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/urdf_importer/images/link_hierarchy.png -------------------------------------------------------------------------------- /tutorials/urdf_importer/images/link_selection.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/urdf_importer/images/link_selection.gif -------------------------------------------------------------------------------- /tutorials/urdf_importer/images/primitive_scale.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/urdf_importer/images/primitive_scale.png -------------------------------------------------------------------------------- /tutorials/urdf_importer/images/prismatic_articulation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/urdf_importer/images/prismatic_articulation.png -------------------------------------------------------------------------------- /tutorials/urdf_importer/images/urdf_comparator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/Unity-Robotics-Hub/904cfad685ea0dcb229f5033a7c6116d687dd50d/tutorials/urdf_importer/images/urdf_comparator.png --------------------------------------------------------------------------------