diff --git a/.gitignore b/.gitignore index 7fe44418..0382a3e3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ .DS_Store .idea .vscode/ -*~ +tutorials/pick_and_place/PickAndPlaceProject/Packages/packages-lock.json diff --git a/tutorials/pick_and_place/PickAndPlaceProject/.gitignore b/tutorials/pick_and_place/PickAndPlaceProject/.gitignore index 72c27e4f..c3af38f1 100644 --- a/tutorials/pick_and_place/PickAndPlaceProject/.gitignore +++ b/tutorials/pick_and_place/PickAndPlaceProject/.gitignore @@ -15,7 +15,7 @@ /[Mm]emoryCaptures/ # Asset meta data should only be ignored when the corresponding asset is also ignored -!/[Aa]ssets/**/*.meta +# !/[Aa]ssets/**/*.meta # Uncomment this line if you wish to ignore the asset store tools plugin # /[Aa]ssets/AssetStoreTools* diff --git a/tutorials/pick_and_place/PickAndPlaceProject/Packages/manifest.json b/tutorials/pick_and_place/PickAndPlaceProject/Packages/manifest.json index 569b7897..20a48000 100644 --- a/tutorials/pick_and_place/PickAndPlaceProject/Packages/manifest.json +++ b/tutorials/pick_and_place/PickAndPlaceProject/Packages/manifest.json @@ -5,7 +5,7 @@ "com.unity.ide.visualstudio": "2.0.3", "com.unity.ide.vscode": "1.2.2", "com.unity.robotics.urdf-importer": "https://github.com/Unity-Technologies/URDF-Importer.git#v0.0.4", - "com.unity.robotics.ros-tcp-connector": "https://github.com/Unity-Technologies/ROS-TCP-Connector.git#v0.0.3", + "com.unity.robotics.ros-tcp-connector": "https://github.com/Unity-Technologies/ROS-TCP-Connector.git#v0.1.1", "com.unity.test-framework": "1.1.18", "com.unity.textmeshpro": "3.0.1", "com.unity.timeline": "1.4.3", diff --git a/tutorials/pick_and_place/PickAndPlaceProject/Packages/packages-lock.json b/tutorials/pick_and_place/PickAndPlaceProject/Packages/packages-lock.json deleted file mode 100644 index a598e109..00000000 --- a/tutorials/pick_and_place/PickAndPlaceProject/Packages/packages-lock.json +++ /dev/null @@ -1,350 +0,0 @@ -{ - "dependencies": { - "com.unity.collab-proxy": { - "version": "1.3.9", - "depth": 0, - "source": "registry", - "dependencies": {}, - "url": "https://packages.unity.com" - }, - "com.unity.ext.nunit": { - "version": "1.0.0", - "depth": 1, - "source": "registry", - "dependencies": {}, - "url": "https://packages.unity.com" - }, - "com.unity.ide.rider": { - "version": "2.0.7", - "depth": 0, - "source": "registry", - "dependencies": { - "com.unity.test-framework": "1.1.1" - }, - "url": "https://packages.unity.com" - }, - "com.unity.ide.visualstudio": { - "version": "2.0.3", - "depth": 0, - "source": "registry", - "dependencies": {}, - "url": "https://packages.unity.com" - }, - "com.unity.ide.vscode": { - "version": "1.2.2", - "depth": 0, - "source": "registry", - "dependencies": {}, - "url": "https://packages.unity.com" - }, - "com.unity.robotics.ros-tcp-connector": { - "version": "https://github.com/Unity-Technologies/ROS-TCP-Connector.git#v0.0.3", - "depth": 0, - "source": "git", - "dependencies": {}, - "hash": "251c159b0a4bab0950c43e6a3be4524876d2549f" - }, - "com.unity.robotics.urdf-importer": { - "version": "https://github.com/Unity-Technologies/URDF-Importer.git#v0.0.4", - "depth": 0, - "source": "git", - "dependencies": {}, - "hash": "ca9f90f7d3fda94747e4dd4fa9702e6799af938e" - }, - "com.unity.test-framework": { - "version": "1.1.18", - "depth": 0, - "source": "registry", - "dependencies": { - "com.unity.ext.nunit": "1.0.0", - "com.unity.modules.imgui": "1.0.0", - "com.unity.modules.jsonserialize": "1.0.0" - }, - "url": "https://packages.unity.com" - }, - "com.unity.textmeshpro": { - "version": "3.0.1", - "depth": 0, - "source": "registry", - "dependencies": { - "com.unity.ugui": "1.0.0" - }, - "url": "https://packages.unity.com" - }, - "com.unity.timeline": { - "version": "1.4.3", - "depth": 0, - "source": "registry", - "dependencies": { - "com.unity.modules.director": "1.0.0", - "com.unity.modules.animation": "1.0.0", - "com.unity.modules.audio": "1.0.0", - "com.unity.modules.particlesystem": "1.0.0" - }, - "url": "https://packages.unity.com" - }, - "com.unity.ugui": { - "version": "1.0.0", - "depth": 0, - "source": "builtin", - "dependencies": { - "com.unity.modules.ui": "1.0.0", - "com.unity.modules.imgui": "1.0.0" - } - }, - "com.unity.modules.ai": { - "version": "1.0.0", - "depth": 0, - "source": "builtin", - "dependencies": {} - }, - "com.unity.modules.androidjni": { - "version": "1.0.0", - "depth": 0, - "source": "builtin", - "dependencies": {} - }, - "com.unity.modules.animation": { - "version": "1.0.0", - "depth": 0, - "source": "builtin", - "dependencies": {} - }, - "com.unity.modules.assetbundle": { - "version": "1.0.0", - "depth": 0, - "source": "builtin", - "dependencies": {} - }, - "com.unity.modules.audio": { - "version": "1.0.0", - "depth": 0, - "source": "builtin", - "dependencies": {} - }, - "com.unity.modules.cloth": { - "version": "1.0.0", - "depth": 0, - "source": "builtin", - "dependencies": { - "com.unity.modules.physics": "1.0.0" - } - }, - "com.unity.modules.director": { - "version": "1.0.0", - "depth": 0, - "source": "builtin", - "dependencies": { - "com.unity.modules.audio": "1.0.0", - "com.unity.modules.animation": "1.0.0" - } - }, - "com.unity.modules.imageconversion": { - "version": "1.0.0", - "depth": 0, - "source": "builtin", - "dependencies": {} - }, - "com.unity.modules.imgui": { - "version": "1.0.0", - "depth": 0, - "source": "builtin", - "dependencies": {} - }, - "com.unity.modules.jsonserialize": { - "version": "1.0.0", - "depth": 0, - "source": "builtin", - "dependencies": {} - }, - "com.unity.modules.particlesystem": { - "version": "1.0.0", - "depth": 0, - "source": "builtin", - "dependencies": {} - }, - "com.unity.modules.physics": { - "version": "1.0.0", - "depth": 0, - "source": "builtin", - "dependencies": {} - }, - "com.unity.modules.physics2d": { - "version": "1.0.0", - "depth": 0, - "source": "builtin", - "dependencies": {} - }, - "com.unity.modules.screencapture": { - "version": "1.0.0", - "depth": 0, - "source": "builtin", - "dependencies": { - "com.unity.modules.imageconversion": "1.0.0" - } - }, - "com.unity.modules.subsystems": { - "version": "1.0.0", - "depth": 1, - "source": "builtin", - "dependencies": { - "com.unity.modules.jsonserialize": "1.0.0" - } - }, - "com.unity.modules.terrain": { - "version": "1.0.0", - "depth": 0, - "source": "builtin", - "dependencies": {} - }, - "com.unity.modules.terrainphysics": { - "version": "1.0.0", - "depth": 0, - "source": "builtin", - "dependencies": { - "com.unity.modules.physics": "1.0.0", - "com.unity.modules.terrain": "1.0.0" - } - }, - "com.unity.modules.tilemap": { - "version": "1.0.0", - "depth": 0, - "source": "builtin", - "dependencies": { - "com.unity.modules.physics2d": "1.0.0" - } - }, - "com.unity.modules.ui": { - "version": "1.0.0", - "depth": 0, - "source": "builtin", - "dependencies": {} - }, - "com.unity.modules.uielements": { - "version": "1.0.0", - "depth": 0, - "source": "builtin", - "dependencies": { - "com.unity.modules.ui": "1.0.0", - "com.unity.modules.imgui": "1.0.0", - "com.unity.modules.jsonserialize": "1.0.0", - "com.unity.modules.uielementsnative": "1.0.0" - } - }, - "com.unity.modules.uielementsnative": { - "version": "1.0.0", - "depth": 1, - "source": "builtin", - "dependencies": { - "com.unity.modules.ui": "1.0.0", - "com.unity.modules.imgui": "1.0.0", - "com.unity.modules.jsonserialize": "1.0.0" - } - }, - "com.unity.modules.umbra": { - "version": "1.0.0", - "depth": 0, - "source": "builtin", - "dependencies": {} - }, - "com.unity.modules.unityanalytics": { - "version": "1.0.0", - "depth": 0, - "source": "builtin", - "dependencies": { - "com.unity.modules.unitywebrequest": "1.0.0", - "com.unity.modules.jsonserialize": "1.0.0" - } - }, - "com.unity.modules.unitywebrequest": { - "version": "1.0.0", - "depth": 0, - "source": "builtin", - "dependencies": {} - }, - "com.unity.modules.unitywebrequestassetbundle": { - "version": "1.0.0", - "depth": 0, - "source": "builtin", - "dependencies": { - "com.unity.modules.assetbundle": "1.0.0", - "com.unity.modules.unitywebrequest": "1.0.0" - } - }, - "com.unity.modules.unitywebrequestaudio": { - "version": "1.0.0", - "depth": 0, - "source": "builtin", - "dependencies": { - "com.unity.modules.unitywebrequest": "1.0.0", - "com.unity.modules.audio": "1.0.0" - } - }, - "com.unity.modules.unitywebrequesttexture": { - "version": "1.0.0", - "depth": 0, - "source": "builtin", - "dependencies": { - "com.unity.modules.unitywebrequest": "1.0.0", - "com.unity.modules.imageconversion": "1.0.0" - } - }, - "com.unity.modules.unitywebrequestwww": { - "version": "1.0.0", - "depth": 0, - "source": "builtin", - "dependencies": { - "com.unity.modules.unitywebrequest": "1.0.0", - "com.unity.modules.unitywebrequestassetbundle": "1.0.0", - "com.unity.modules.unitywebrequestaudio": "1.0.0", - "com.unity.modules.audio": "1.0.0", - "com.unity.modules.assetbundle": "1.0.0", - "com.unity.modules.imageconversion": "1.0.0" - } - }, - "com.unity.modules.vehicles": { - "version": "1.0.0", - "depth": 0, - "source": "builtin", - "dependencies": { - "com.unity.modules.physics": "1.0.0" - } - }, - "com.unity.modules.video": { - "version": "1.0.0", - "depth": 0, - "source": "builtin", - "dependencies": { - "com.unity.modules.audio": "1.0.0", - "com.unity.modules.ui": "1.0.0", - "com.unity.modules.unitywebrequest": "1.0.0" - } - }, - "com.unity.modules.vr": { - "version": "1.0.0", - "depth": 0, - "source": "builtin", - "dependencies": { - "com.unity.modules.jsonserialize": "1.0.0", - "com.unity.modules.physics": "1.0.0", - "com.unity.modules.xr": "1.0.0" - } - }, - "com.unity.modules.wind": { - "version": "1.0.0", - "depth": 0, - "source": "builtin", - "dependencies": {} - }, - "com.unity.modules.xr": { - "version": "1.0.0", - "depth": 0, - "source": "builtin", - "dependencies": { - "com.unity.modules.physics": "1.0.0", - "com.unity.modules.jsonserialize": "1.0.0", - "com.unity.modules.subsystems": "1.0.0" - } - } - } -} diff --git a/tutorials/pick_and_place/ROS/src/niryo_moveit/CMakeLists.txt b/tutorials/pick_and_place/ROS/src/niryo_moveit/CMakeLists.txt index 8ee0d33e..10110e42 100644 --- a/tutorials/pick_and_place/ROS/src/niryo_moveit/CMakeLists.txt +++ b/tutorials/pick_and_place/ROS/src/niryo_moveit/CMakeLists.txt @@ -1,18 +1,11 @@ cmake_minimum_required(VERSION 3.0.2) project(niryo_moveit) -## Compile as C++11, supported in ROS Kinetic and newer -# add_compile_options(-std=c++11) - -## Find catkin macros and libraries -## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz) -## is used, also find other catkin packages find_package(catkin REQUIRED COMPONENTS - roscpp rospy std_msgs geometry_msgs - tcp_endpoint + ros_tcp_endpoint message_generation moveit_msgs sensor_msgs @@ -22,59 +15,10 @@ find_package(catkin REQUIRED COMPONENTS ) roslaunch_add_file_check(launch) -## System dependencies are found with CMake's conventions -# find_package(Boost REQUIRED COMPONENTS system) - -## Uncomment this if the package has a setup.py. This macro ensures -## modules and global scripts declared therein get installed -## See http://ros.org/doc/api/catkin/html/user_guide/setup_dot_py.html -# catkin_python_setup() - -################################################ -## Declare ROS messages, services and actions ## -################################################ - -## To declare and build messages, services or actions from within this -## package, follow these steps: -## * Let MSG_DEP_SET be the set of packages whose message types you use in -## your messages/services/actions (e.g. std_msgs, actionlib_msgs, ...). -## * In the file package.xml: -## * add a build_depend tag for "message_generation" -## * add a build_depend and a exec_depend tag for each package in MSG_DEP_SET -## * If MSG_DEP_SET isn't empty the following dependency has been pulled in -## but can be declared for certainty nonetheless: -## * add a exec_depend tag for "message_runtime" -## * In this file (CMakeLists.txt): -## * add "message_generation" and every package in MSG_DEP_SET to -## find_package(catkin REQUIRED COMPONENTS ...) -## * add "message_runtime" and every package in MSG_DEP_SET to -## catkin_package(CATKIN_DEPENDS ...) -## * uncomment the add_*_files sections below as needed -## and list every .msg/.srv/.action file to be processed -## * uncomment the generate_messages entry below -## * add every package in MSG_DEP_SET to generate_messages(DEPENDENCIES ...) - -## Generate messages in the 'msg' folder -add_message_files( - FILES - NiryoMoveitJoints.msg - NiryoTrajectory.msg -) - -## Generate services in the 'srv' folder -add_service_files( - FILES - MoverService.srv -) +add_message_files(DIRECTORY msg) -## Generate actions in the 'action' folder -# add_action_files( -# FILES -# Action1.action -# Action2.action -# ) +add_service_files(DIRECTORY srv) -## Generate added messages and services with any dependencies listed here generate_messages( DEPENDENCIES geometry_msgs @@ -83,92 +27,8 @@ generate_messages( sensor_msgs ) -################################################ -## Declare ROS dynamic reconfigure parameters ## -################################################ - -## To declare and build dynamic reconfigure parameters within this -## package, follow these steps: -## * In the file package.xml: -## * add a build_depend and a exec_depend tag for "dynamic_reconfigure" -## * In this file (CMakeLists.txt): -## * add "dynamic_reconfigure" to -## find_package(catkin REQUIRED COMPONENTS ...) -## * uncomment the "generate_dynamic_reconfigure_options" section below -## and list every .cfg file to be processed - -## Generate dynamic reconfigure parameters in the 'cfg' folder -# generate_dynamic_reconfigure_options( -# cfg/DynReconf1.cfg -# cfg/DynReconf2.cfg -# ) - -################################### -## catkin specific configuration ## -################################### -## The catkin_package macro generates cmake config files for your package -## Declare things to be passed to dependent projects -## INCLUDE_DIRS: uncomment this if your package contains header files -## LIBRARIES: libraries you create in this project that dependent projects also need -## CATKIN_DEPENDS: catkin_packages dependent projects also need -## DEPENDS: system dependencies of this project that dependent projects also need -catkin_package( -# INCLUDE_DIRS include -# LIBRARIES niryo_moveit -# CATKIN_DEPENDS rospy std_msgs -# DEPENDS system_lib -) - -########### -## Build ## -########### - -## Specify additional locations of header files -## Your package locations should be listed before other locations -include_directories( -# include - ${catkin_INCLUDE_DIRS} -) +catkin_package() -## Declare a C++ library -# add_library(${PROJECT_NAME} -# src/${PROJECT_NAME}/niryo_moveit.cpp -# ) - -## Add cmake target dependencies of the library -## as an example, code may need to be generated before libraries -## either from message generation or dynamic reconfigure -# add_dependencies(${PROJECT_NAME} ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) - -## Declare a C++ executable -## With catkin_make all packages are built within a single CMake context -## The recommended prefix ensures that target names across packages don't collide -# add_executable(${PROJECT_NAME}_node src/niryo_moveit_node.cpp) - -## Rename C++ executable without prefix -## The above recommended prefix causes long target names, the following renames the -## target back to the shorter version for ease of user use -## e.g. "rosrun someones_pkg node" instead of "rosrun someones_pkg someones_pkg_node" -# set_target_properties(${PROJECT_NAME}_node PROPERTIES OUTPUT_NAME node PREFIX "") - -## Add cmake target dependencies of the executable -## same as for the library above -# add_dependencies(${PROJECT_NAME}_node ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) - -## Specify libraries to link a library or executable target against -# target_link_libraries(${PROJECT_NAME}_node -# ${catkin_LIBRARIES} -# ) - -############# -## Install ## -############# - -# all install targets should use catkin DESTINATION variables -# See http://ros.org/doc/api/catkin/html/adv_user_guide/variables.html - -## Mark executable scripts (Python etc.) for installation -## in contrast to setup.py, you can choose the destination catkin_install_python(PROGRAMS scripts/mover.py scripts/server_endpoint.py @@ -176,35 +36,6 @@ catkin_install_python(PROGRAMS DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} ) -## Mark executables for installation -## See http://docs.ros.org/melodic/api/catkin/html/howto/format1/building_executables.html -# install(TARGETS ${PROJECT_NAME}_node -# RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} -# ) - -## Mark libraries for installation -## See http://docs.ros.org/melodic/api/catkin/html/howto/format1/building_libraries.html -# install(TARGETS ${PROJECT_NAME} -# ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} -# LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} -# RUNTIME DESTINATION ${CATKIN_GLOBAL_BIN_DESTINATION} -# ) - -## Mark cpp header files for installation -# install(DIRECTORY include/${PROJECT_NAME}/ -# DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} -# FILES_MATCHING PATTERN "*.h" -# PATTERN ".svn" EXCLUDE -# ) - -## Mark other files for installation (e.g. launch and bag files, etc.) -# install(FILES -# # myfile1 -# # myfile2 -# DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} -# ) - -# FROM panda MoveIt tutorial repo install(DIRECTORY launch DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} PATTERN "setup_assistant.launch" EXCLUDE) install(DIRECTORY config DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}) diff --git a/tutorials/pick_and_place/ROS/src/niryo_moveit/package.xml b/tutorials/pick_and_place/ROS/src/niryo_moveit/package.xml index d2afcb44..be63b778 100644 --- a/tutorials/pick_and_place/ROS/src/niryo_moveit/package.xml +++ b/tutorials/pick_and_place/ROS/src/niryo_moveit/package.xml @@ -5,34 +5,31 @@ The niryo_moveit package - unity + Unity Robotics - TODO + Apache 2.0 message_generation message_runtime catkin - roscpp rospy std_msgs geometry_msgs - tcp_endpoint + ros_tcp_endpoint moveit_msgs sensor_msgs controller_manager roslaunch - roscpp rospy std_msgs geometry_msgs - tcp_endpoint - roscpp + ros_tcp_endpoint rospy std_msgs geometry_msgs - tcp_endpoint + ros_tcp_endpoint moveit_ros_move_group diff --git a/tutorials/pick_and_place/ROS/src/niryo_moveit/scripts/server_endpoint.py b/tutorials/pick_and_place/ROS/src/niryo_moveit/scripts/server_endpoint.py index a2fb1f9c..53674b09 100755 --- a/tutorials/pick_and_place/ROS/src/niryo_moveit/scripts/server_endpoint.py +++ b/tutorials/pick_and_place/ROS/src/niryo_moveit/scripts/server_endpoint.py @@ -2,17 +2,15 @@ import rospy -from tcp_endpoint.RosTCPServer import TCPServer -from tcp_endpoint.RosPublisher import RosPublisher -from tcp_endpoint.RosSubscriber import RosSubscriber -from tcp_endpoint.RosService import RosService +from ros_tcp_endpoint import TcpServer, RosPublisher, RosSubscriber, RosService from niryo_moveit.msg import NiryoMoveitJoints, NiryoTrajectory from niryo_moveit.srv import MoverService + def main(): ros_node_name = rospy.get_param("/TCP_NODE_NAME", 'TCPServer') - tcp_server = TCPServer(ros_node_name) + tcp_server = TcpServer(ros_node_name) # Create ROS communication objects dictionary for routing messages tcp_server.source_destination_dict = { diff --git a/tutorials/pick_and_place/ROS/src/ros_tcp_endpoint b/tutorials/pick_and_place/ROS/src/ros_tcp_endpoint index 68ade1cc..8a1dde63 160000 --- a/tutorials/pick_and_place/ROS/src/ros_tcp_endpoint +++ b/tutorials/pick_and_place/ROS/src/ros_tcp_endpoint @@ -1 +1 @@ -Subproject commit 68ade1ccc078e9cfb090e2eeeeb62a2a8c394a9c +Subproject commit 8a1dde63f655bfa3a1c892c6e15ccae64f6c53a6 diff --git a/tutorials/pick_and_place/docker/Dockerfile b/tutorials/pick_and_place/docker/Dockerfile index 2e269e40..73d994ad 100644 --- a/tutorials/pick_and_place/docker/Dockerfile +++ b/tutorials/pick_and_place/docker/Dockerfile @@ -16,6 +16,8 @@ COPY ./ROS/src/ros_tcp_endpoint $ROS_WORKSPACE/src/ros_tcp_endpoint COPY ./docker/set-up-workspace /setup.sh COPY docker/tutorial / +RUN /bin/bash -c "find $ROS_WORKSPACE -type f -print0 | xargs -0 dos2unix" + RUN dos2unix /tutorial && dos2unix /setup.sh && chmod +x /setup.sh && /setup.sh && rm /setup.sh ENTRYPOINT ["/tutorial"] diff --git a/tutorials/ros_packages/robotics_demo/CMakeLists.txt b/tutorials/ros_packages/robotics_demo/CMakeLists.txt index 12f3639a..bd843c37 100644 --- a/tutorials/ros_packages/robotics_demo/CMakeLists.txt +++ b/tutorials/ros_packages/robotics_demo/CMakeLists.txt @@ -1,168 +1,28 @@ cmake_minimum_required(VERSION 2.8.3) project(robotics_demo) -## Compile as C++11, supported in ROS Kinetic and newer -# add_compile_options(-std=c++11) - -## Find catkin macros and libraries -## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz) -## is used, also find other catkin packages find_package(catkin REQUIRED COMPONENTS - roscpp rospy std_msgs geometry_msgs - tf_conversions - tcp_endpoint + ros_tcp_endpoint message_generation ) -## System dependencies are found with CMake's conventions -# find_package(Boost REQUIRED COMPONENTS system) - - -## Uncomment this if the package has a setup.py. This macro ensures -## modules and global scripts declared therein get installed -## See http://ros.org/doc/api/catkin/html/user_guide/setup_dot_py.html -# catkin_python_setup() - -################################################ -## Declare ROS messages, services and actions ## -################################################ +add_message_files(DIRECTORY msg) -## To declare and build messages, services or actions from within this -## package, follow these steps: -## * Let MSG_DEP_SET be the set of packages whose message types you use in -## your messages/services/actions (e.g. std_msgs, actionlib_msgs, ...). -## * In the file package.xml: -## * add a build_depend tag for "message_generation" -## * add a build_depend and a exec_depend tag for each package in MSG_DEP_SET -## * If MSG_DEP_SET isn't empty the following dependency has been pulled in -## but can be declared for certainty nonetheless: -## * add a exec_depend tag for "message_runtime" -## * In this file (CMakeLists.txt): -## * add "message_generation" and every package in MSG_DEP_SET to -## find_package(catkin REQUIRED COMPONENTS ...) -## * add "message_runtime" and every package in MSG_DEP_SET to -## catkin_package(CATKIN_DEPENDS ...) -## * uncomment the add_*_files sections below as needed -## and list every .msg/.srv/.action file to be processed -## * uncomment the generate_messages entry below -## * add every package in MSG_DEP_SET to generate_messages(DEPENDENCIES ...) - -## Generate messages in the 'msg' folder -add_message_files( - FILES - PosRot.msg - UnityColor.msg -) - -## Generate services in the 'srv' folder -add_service_files( - FILES - PositionService.srv -) +add_service_files(DIRECTORY srv) -## Generate actions in the 'action' folder -# add_action_files( -# FILES -# Action1.action -# Action2.action -# ) - -## Generate added messages and services with any dependencies listed here generate_messages( DEPENDENCIES geometry_msgs std_msgs ) -################################################ -## Declare ROS dynamic reconfigure parameters ## -################################################ - -## To declare and build dynamic reconfigure parameters within this -## package, follow these steps: -## * In the file package.xml: -## * add a build_depend and a exec_depend tag for "dynamic_reconfigure" -## * In this file (CMakeLists.txt): -## * add "dynamic_reconfigure" to -## find_package(catkin REQUIRED COMPONENTS ...) -## * uncomment the "generate_dynamic_reconfigure_options" section below -## and list every .cfg file to be processed +catkin_package(CATKIN_DEPENDS + ros_tcp_endpoint + message_runtime) -## Generate dynamic reconfigure parameters in the 'cfg' folder -# generate_dynamic_reconfigure_options( -# cfg/DynReconf1.cfg -# cfg/DynReconf2.cfg -# ) - -################################### -## catkin specific configuration ## -################################### -## The catkin_package macro generates cmake config files for your package -## Declare things to be passed to dependent projects -## INCLUDE_DIRS: uncomment this if your package contains header files -## LIBRARIES: libraries you create in this project that dependent projects also need -## CATKIN_DEPENDS: catkin_packages dependent projects also need -## DEPENDS: system dependencies of this project that dependent projects also need -catkin_package( -# INCLUDE_DIRS include -# LIBRARIES robotics_demo -# CATKIN_DEPENDS roscpp rospy std_msgs geometry_msgs tf_conversions tcp_endpoint -# DEPENDS system_lib -) - -########### -## Build ## -########### - -## Specify additional locations of header files -## Your package locations should be listed before other locations -include_directories( -# include - ${catkin_INCLUDE_DIRS} -) - -## Declare a C++ library -# add_library(${PROJECT_NAME} -# src/${PROJECT_NAME}/robotics_demo.cpp -# ) - -## Add cmake target dependencies of the library -## as an example, code may need to be generated before libraries -## either from message generation or dynamic reconfigure -# add_dependencies(${PROJECT_NAME} ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) - -## Declare a C++ executable -## With catkin_make all packages are built within a single CMake context -## The recommended prefix ensures that target names across packages don't collide -# add_executable(${PROJECT_NAME}_node src/robotics_demo_node.cpp) - -## Rename C++ executable without prefix -## The above recommended prefix causes long target names, the following renames the -## target back to the shorter version for ease of user use -## e.g. "rosrun someones_pkg node" instead of "rosrun someones_pkg someones_pkg_node" -# set_target_properties(${PROJECT_NAME}_node PROPERTIES OUTPUT_NAME node PREFIX "") - -## Add cmake target dependencies of the executable -## same as for the library above -# add_dependencies(${PROJECT_NAME}_node ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) - -## Specify libraries to link a library or executable target against -# target_link_libraries(${PROJECT_NAME}_node -# ${catkin_LIBRARIES} -# ) - -############# -## Install ## -############# - -# all install targets should use catkin DESTINATION variables -# See http://ros.org/doc/api/catkin/html/adv_user_guide/variables.html - -## Mark executable scripts (Python etc.) for installation -## in contrast to setup.py, you can choose the destination catkin_install_python(PROGRAMS scripts/server_endpoint.py scripts/position_service.py @@ -170,33 +30,6 @@ catkin_install_python(PROGRAMS DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} ) -## Mark executables for installation -## See http://docs.ros.org/melodic/api/catkin/html/howto/format1/building_executables.html -# install(TARGETS ${PROJECT_NAME}_node -# RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} -# ) - -## Mark libraries for installation -## See http://docs.ros.org/melodic/api/catkin/html/howto/format1/building_libraries.html -# install(TARGETS ${PROJECT_NAME} -# ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} -# LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} -# RUNTIME DESTINATION ${CATKIN_GLOBAL_BIN_DESTINATION} -# ) - -## Mark cpp header files for installation -# install(DIRECTORY include/${PROJECT_NAME}/ -# DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} -# FILES_MATCHING PATTERN "*.h" -# PATTERN ".svn" EXCLUDE -# ) - -## Mark other files for installation (e.g. launch and bag files, etc.) -# install(FILES -# # myfile1 -# # myfile2 -# DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} -# ) ############# ## Testing ## diff --git a/tutorials/ros_packages/robotics_demo/package.xml b/tutorials/ros_packages/robotics_demo/package.xml index d0790182..f7ee200f 100644 --- a/tutorials/ros_packages/robotics_demo/package.xml +++ b/tutorials/ros_packages/robotics_demo/package.xml @@ -4,63 +4,23 @@ 0.0.0 The robotics_demo package - - - - michaelp + Unity Robotics - - - - TODO + Apache 2.0 - - - - - - - - - - - - - - - - - - - - - - - message_generation - - - - - - message_runtime - - - - catkin - roscpp rospy + message_generation std_msgs - tcp_endpoint - roscpp + ros_tcp_endpoint rospy std_msgs - tcp_endpoint - roscpp + ros_tcp_endpoint + message_runtime rospy std_msgs - tcp_endpoint + ros_tcp_endpoint diff --git a/tutorials/ros_packages/robotics_demo/scripts/server_endpoint.py b/tutorials/ros_packages/robotics_demo/scripts/server_endpoint.py index c2467593..0485d971 100755 --- a/tutorials/ros_packages/robotics_demo/scripts/server_endpoint.py +++ b/tutorials/ros_packages/robotics_demo/scripts/server_endpoint.py @@ -2,10 +2,7 @@ import rospy -from tcp_endpoint.RosTCPServer import TCPServer -from tcp_endpoint.RosPublisher import RosPublisher -from tcp_endpoint.RosSubscriber import RosSubscriber -from tcp_endpoint.RosService import RosService +from ros_tcp_endpoint import TcpServer, RosPublisher, RosSubscriber, RosService from robotics_demo.msg import PosRot, UnityColor from robotics_demo.srv import PositionService @@ -14,7 +11,7 @@ def main(): ros_node_name = rospy.get_param("/TCP_NODE_NAME", 'TCPServer') buffer_size = rospy.get_param("/TCP_BUFFER_SIZE", 1024) connections = rospy.get_param("/TCP_CONNECTIONS", 10) - tcp_server = TCPServer(ros_node_name, buffer_size, connections) + tcp_server = TcpServer(ros_node_name, buffer_size, connections) tcp_server.source_destination_dict = { 'pos_srv': RosService('position_service', PositionService), diff --git a/tutorials/ros_unity_integration/publisher.md b/tutorials/ros_unity_integration/publisher.md index ead607d5..2e5cdf09 100644 --- a/tutorials/ros_unity_integration/publisher.md +++ b/tutorials/ros_unity_integration/publisher.md @@ -82,7 +82,7 @@ public class RosPublisherExample : MonoBehaviour - Add a plane and a cube to the empty Unity scene - Move the cube a little ways up so it is hovering above the plane -- Create an empty GameObject, name it `RosConnection` and attach the `Plugins/TcpConnector/ROSConnection` script. +- Create an empty GameObject, name it `RosConnection` and attach the `ROS TCP Connection/Runtime/TcpConnector/ROSConnection` script. - Change the host name and port to match the ROS IP and port variables defined when you set up ROS - Create another empty GameObject, name it `RosPublisher` and attach the `RosPublisherExample` script. - Drag the cube GameObject onto the `Cube` parameter diff --git a/tutorials/ros_unity_integration/server_endpoint.md b/tutorials/ros_unity_integration/server_endpoint.md index 2798c33e..330fee23 100644 --- a/tutorials/ros_unity_integration/server_endpoint.md +++ b/tutorials/ros_unity_integration/server_endpoint.md @@ -14,10 +14,7 @@ The following is an example of a server endpoint Python script that: import rospy -from tcp_endpoint.RosTCPServer import TCPServer -from tcp_endpoint.RosPublisher import RosPublisher -from tcp_endpoint.RosSubscriber import RosSubscriber -from tcp_endpoint.RosService import RosService +from ros_tcp_endpoint import TcpServer, RosPublisher, RosSubscriber, RosService from robotics_demo.msg import PosRot, UnityColor from robotics_demo.srv import PositionService @@ -26,7 +23,7 @@ def main(): ros_node_name = rospy.get_param("/TCP_NODE_NAME", 'TCPServer') buffer_size = rospy.get_param("/TCP_BUFFER_SIZE", 1024) connections = rospy.get_param("/TCP_CONNECTIONS", 10) - tcp_server = TCPServer(ros_node_name, buffer_size, connections) + tcp_server = TcpServer(ros_node_name, buffer_size, connections) tcp_server.source_destination_dict = { 'pos_srv': RosService('position_service', PositionService), @@ -46,13 +43,8 @@ if __name__ == "__main__": ## Import Statements for Services and Messages ```python -# TCP Endpoint package imports to enable ROS communication -from tcp_endpoint.RosTCPServer import TCPServer -from tcp_endpoint.RosPublisher import RosPublisher -from tcp_endpoint.RosSubscriber import RosSubscriber -from tcp_endpoint.RosService import RosService +from ros_tcp_endpoint import TcpServer, RosPublisher, RosSubscriber, RosService -# Import specific ROS Messages and Services from robotics_demo.msg import PosRot, UnityColor from robotics_demo.srv import PositionService ``` @@ -96,7 +88,7 @@ Requires: - The ROS node name ```python - tcp_server = TCPServer(ros_node_name) + tcp_server = TcpServer(ros_node_name) ``` ## Source Destination Dictionary diff --git a/tutorials/ros_unity_integration/setup.md b/tutorials/ros_unity_integration/setup.md index ac0c2a5a..e26e1e4d 100644 --- a/tutorials/ros_unity_integration/setup.md +++ b/tutorials/ros_unity_integration/setup.md @@ -26,15 +26,13 @@ Once ROS Core has started, it will print `started core service [/rosout]` to the ```yaml ROS_IP: ROS_TCP_PORT: 10000 - rosdistro: 'melodic' ``` e.g. ```yaml - ROS_IP: 192.168.50.149 + ROS_IP: 127.0.0.1 ROS_TCP_PORT: 10000 - rosdistro: 'melodic' ``` Ensure that the `ROS_TCP_PORT` is set to 10000.