diff --git a/CMakeLists.txt b/CMakeLists.txt index ea795503d6790c38d60fc8e95e4bf7ac48788ea7..e701cc6d22732b9695a778794c44515e5b0833be 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,62 +1,53 @@ -CMAKE_MINIMUM_REQUIRED(VERSION 2.8.3) +CMAKE_MINIMUM_REQUIRED(VERSION 3.1) +# Project properties SET(PROJECT_ORG pyrene-dev) SET(PROJECT_NAME talos_data) SET(PROJECT_DESCRIPTION "Talos urdf model, srdf model and other data") SET(PROJECT_URL "https://gepgitlab.laas.fr/${PROJECT_ORG}/${PROJECT_NAME}") +# Project options +OPTION(SUFFIX_SO_VERSION "Suffix library name with its version" ON) + +# Project configuration SET(PROJECT_USE_CMAKE_EXPORT TRUE) -SET(CXX_DISABLE_WERROR True) +SET(CXX_DISABLE_WERROR TRUE) SET(CMAKE_CXX_STANDARD 11) +SET(PACKAGE_EXTRA_MACROS "set(TALOS_DATA_PREFIX ${CMAKE_INSTALL_PREFIX})") -#include(cmake/ros.cmake) +# JRL-cmakemodule setup INCLUDE(cmake/base.cmake) -# Specify the project. -COMPUTE_PROJECT_ARGS(PROJECT_ARGS LANGUAGES CXX) +# Project definition +COMPUTE_PROJECT_ARGS(PROJECT_ARGS LANGUAGES CXX C) PROJECT(${PROJECT_NAME} ${PROJECT_ARGS}) -find_package(catkin REQUIRED COMPONENTS - roscpp) - -catkin_package( - # INCLUDE_DIRS include - # LIBRARIES talos_description - # CATKIN_DEPENDS roscpp - # DEPENDS system_lib - ) - -# Find xml_reflection +# Project dependencies ADD_PROJECT_DEPENDENCY(urdfdom REQUIRED) ADD_PROJECT_DEPENDENCY(gazebo REQUIRED) ADD_PROJECT_DEPENDENCY(roscpp) +find_package(catkin REQUIRED COMPONENTS roscpp) -# Needed due to the CMakeTarget from gazebo. -INCLUDE_DIRECTORIES(${GAZEBO_INCLUDE_DIRS}) -INCLUDE_DIRECTORIES(${catkin_INCLUDE_DIRS}) - - -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x") - - -SET(LIBRARY_NAME ${PROJECT_NAME}) +# Main Library +SET(${PROJECT_NAME}_HEADERS + ) -ADD_LIBRARY(${PROJECT_NAME} - SHARED +SET(${PROJECT_NAME}_SOURCES src/SpringPlugin.cc ) -TARGET_INCLUDE_DIRECTORIES(${PROJECT_NAME} PRIVATE ${GAZEBO_INCLUDE_DIRS}) -TARGET_INCLUDE_DIRECTORIES(${PROJECT_NAME} PRIVATE ${catkin_INCLUDE_DIRS}) +ADD_LIBRARY(${PROJECT_NAME} SHARED + ${${PROJECT_NAME}_SOURCES} ${${PROJECT_NAME}_HEADERS}) +TARGET_INCLUDE_DIRECTORIES(${PROJECT_NAME} PRIVATE ${GAZEBO_INCLUDE_DIRS} ${catkin_INCLUDE_DIRS}) -INSTALL(TARGETS - ${PROJECT_NAME} - EXPORT ${TARGETS_EXPORT_NAME} - DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} - LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} - ) +IF(SUFFIX_SO_VERSION) + SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES SOVERSION ${PROJECT_VERSION}) +ENDIF(SUFFIX_SO_VERSION) + +INSTALL(TARGETS ${PROJECT_NAME} EXPORT ${TARGETS_EXPORT_NAME} DESTINATION lib) FOREACH(dir config gazebo meshes robots urdf scripts srdf launch) - INSTALL(DIRECTORY ${dir}/ - DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/${dir}) + INSTALL(DIRECTORY ${dir} DESTINATION share/${PROJECT_NAME}) ENDFOREACH(dir) + +INSTALL(FILES package.xml DESTINATION share/${PROJECT_NAME}) diff --git a/cmake b/cmake index 61344038b1352d5a8de1e20db710c83be805d2eb..321eb1ccf1d94570eb564f3659b13ef3ef82239e 160000 --- a/cmake +++ b/cmake @@ -1 +1 @@ -Subproject commit 61344038b1352d5a8de1e20db710c83be805d2eb +Subproject commit 321eb1ccf1d94570eb564f3659b13ef3ef82239e diff --git a/package.xml b/package.xml index b7a924e7d6af7702e6204e1e7191af45b777364e..3666cd1e7c2315dbb61f281eaff8032509832429 100644 --- a/package.xml +++ b/package.xml @@ -1,7 +1,7 @@ <?xml version="1.0"?> <package format="2"> <name>talos_data</name> - <version>1.2.0</version> + <version>1.2.1</version> <description>The talos_data package</description> <maintainer email="olivier.stasse@laas.fr">Olivier Stasse</maintainer> @@ -15,11 +15,11 @@ <exec_depend>talos_description_calibration</exec_depend> <exec_depend>talos_description_inertial</exec_depend> <exec_depend>roscpp</exec_depend> - + <test_depend>rostest</test_depend> <test_depend>urdf_test</test_depend> <test_depend>roscpp</test_depend> - + <export> </export> diff --git a/scripts/start_talos_gazebo_16_04.py b/scripts/start_talos_gazebo_16_04.py new file mode 100644 index 0000000000000000000000000000000000000000..3a73661699284d476789e8a71c5552584fdc30bb --- /dev/null +++ b/scripts/start_talos_gazebo_16_04.py @@ -0,0 +1,55 @@ +#!/usr/bin/env python +# O. Stasse 17/01/2020 +# LAAS, CNRS + +# This file is a temporary fix for the ubuntu version 16.04 of the script start_talos_gazebo.py +# The path to talos_data cannot be retreive using the rospkg.RosPack() and get_path('talos_data') in 16.04. +# This should be investigated (see issue #4 "Hardcoded talos_data path for 16.04 in script start_talos_gazebo_16_04.py") + +import os +import rospy +import time +import roslaunch +from std_srvs.srv import Empty + +# Start roscore +import subprocess +roscore = subprocess.Popen('roscore') +time.sleep(1) + +# Start talos_gazebo +rospy.init_node('starting_talos_gazebo', anonymous=True) +uuid = roslaunch.rlutil.get_or_generate_uuid(None, False) +roslaunch.configure_logging(uuid) + +launch_gazebo_alone = roslaunch.parent.ROSLaunchParent(uuid, ["/opt/openrobots/share/talos_data/launch/talos_gazebo_alone.launch"]) +launch_gazebo_alone.start() +rospy.loginfo("talos_gazebo_alone started") + +rospy.wait_for_service("/gazebo/pause_physics") +gazebo_pause_physics = rospy.ServiceProxy('/gazebo/pause_physics', Empty) +gazebo_pause_physics() + +time.sleep(3) +# Spawn talos model in gazebo +launch_gazebo_spawn_hs = roslaunch.parent.ROSLaunchParent(uuid, ["/opt/openrobots/share/talos_data/launch/talos_gazebo_spawn_hs.launch"]) +launch_gazebo_spawn_hs.start() +rospy.loginfo("talos_gazebo_spawn_hs started") + +rospy.wait_for_service("/gains/arm_left_1_joint/set_parameters") +time.sleep(3) +gazebo_unpause_physics = rospy.ServiceProxy('/gazebo/unpause_physics', Empty) +gazebo_unpause_physics() + +# Start roscontrol +launch_bringup = roslaunch.parent.ROSLaunchParent(uuid, ["/opt/openrobots/share/talos_bringup/launch/talos_bringup.launch"]) +launch_bringup.start() +rospy.loginfo("talos_bringup started") + +# # Start sot +# Start sot in another terminal with "roslaunch roscontrol_sot_talos sot_talos_controller_gazebo.launch" +# in order to have the logs saved. Otherwise the data are not correctly dumped when the process is killed. + + +rospy.spin() +