Skip to content

Commit f333349

Browse files
johnwasonLevi-Armstrong
authored andcommitted
Python package updates for command language
1 parent 6615aff commit f333349

File tree

113 files changed

+4136
-4884
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

113 files changed

+4136
-4884
lines changed

tesseract_python/.gitignore

Lines changed: 138 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,138 @@
1+
# Byte-compiled / optimized / DLL files
2+
__pycache__/
3+
*.py[cod]
4+
*$py.class
5+
6+
# C extensions
7+
*.so
8+
9+
# Distribution / packaging
10+
.Python
11+
build/
12+
develop-eggs/
13+
dist/
14+
downloads/
15+
eggs/
16+
.eggs/
17+
lib/
18+
lib64/
19+
parts/
20+
sdist/
21+
var/
22+
wheels/
23+
share/python-wheels/
24+
*.egg-info/
25+
.installed.cfg
26+
*.egg
27+
MANIFEST
28+
29+
# PyInstaller
30+
# Usually these files are written by a python script from a template
31+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
32+
*.manifest
33+
*.spec
34+
35+
# Installer logs
36+
pip-log.txt
37+
pip-delete-this-directory.txt
38+
39+
# Unit test / coverage reports
40+
htmlcov/
41+
.tox/
42+
.nox/
43+
.coverage
44+
.coverage.*
45+
.cache
46+
nosetests.xml
47+
coverage.xml
48+
*.cover
49+
*.py,cover
50+
.hypothesis/
51+
.pytest_cache/
52+
cover/
53+
54+
# Translations
55+
*.mo
56+
*.pot
57+
58+
# Django stuff:
59+
*.log
60+
local_settings.py
61+
db.sqlite3
62+
db.sqlite3-journal
63+
64+
# Flask stuff:
65+
instance/
66+
.webassets-cache
67+
68+
# Scrapy stuff:
69+
.scrapy
70+
71+
# Sphinx documentation
72+
docs/_build/
73+
74+
# PyBuilder
75+
.pybuilder/
76+
target/
77+
78+
# Jupyter Notebook
79+
.ipynb_checkpoints
80+
81+
# IPython
82+
profile_default/
83+
ipython_config.py
84+
85+
# pyenv
86+
# For a library or package, you might want to ignore these files since the code is
87+
# intended to run in multiple environments; otherwise, check them in:
88+
# .python-version
89+
90+
# pipenv
91+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
92+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
93+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
94+
# install all needed dependencies.
95+
#Pipfile.lock
96+
97+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow
98+
__pypackages__/
99+
100+
# Celery stuff
101+
celerybeat-schedule
102+
celerybeat.pid
103+
104+
# SageMath parsed files
105+
*.sage.py
106+
107+
# Environments
108+
.env
109+
.venv
110+
env/
111+
venv/
112+
ENV/
113+
env.bak/
114+
venv.bak/
115+
116+
# Spyder project settings
117+
.spyderproject
118+
.spyproject
119+
120+
# Rope project settings
121+
.ropeproject
122+
123+
# mkdocs documentation
124+
/site
125+
126+
# mypy
127+
.mypy_cache/
128+
.dmypy.json
129+
dmypy.json
130+
131+
# Pyre type checker
132+
.pyre/
133+
134+
# pytype static type analyzer
135+
.pytype/
136+
137+
# Cython debug symbols
138+
cython_debug/

tesseract_python/CMakeLists.txt

Lines changed: 74 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -8,24 +8,54 @@ FILE (STRINGS "${CMAKE_CURRENT_SOURCE_DIR}/package.xml" tesseract_python_version
88
IF ("${tesseract_python_version1}" STREQUAL "" )
99
MESSAGE(FATAL_ERROR "Could not read tesseract_python version.")
1010
ENDIF()
11-
STRING (REGEX REPLACE "<version>([0-9]+\\.[0-9]+\\.[0-9]+)</version>" "\\1" tesseract_python_version ${tesseract_python_version1})
11+
STRING (REGEX REPLACE "<version>([0-9]+\\.[0-9]+\\.[0-9]+)</version>" "\\1" tesseract_python_version2 ${tesseract_python_version1})
12+
STRING (STRIP ${tesseract_python_version2} tesseract_python_version)
1213
MESSAGE(STATUS "tesseract_python version: ${tesseract_python_version}")
1314

15+
1416
if (NOT MSVC)
15-
#add_compile_options(-std=c++11 -Wall -Wextra -Wno-write-strings -Wno-unused-paramete -Wno-suggest-override)
16-
add_compile_options(-std=c++11 -w)
17+
add_compile_options(-w)
1718
else()
1819
add_compile_options(/bigobj)
1920
endif()
2021

21-
find_package(trajopt REQUIRED)
22-
find_package(tesseract REQUIRED)
22+
find_package(cmake_common_scripts REQUIRED)
2323
find_package(tesseract_motion_planners REQUIRED)
2424
find_package(tesseract_common REQUIRED)
2525
find_package(tesseract_geometry REQUIRED)
2626
find_package(tesseract_visualization REQUIRED)
27+
find_package(tesseract_collision REQUIRED)
28+
find_package(tesseract_urdf REQUIRED)
29+
find_package(tesseract_kinematics REQUIRED)
30+
find_package(tesseract_environment REQUIRED)
31+
find_package(tesseract_scene_graph REQUIRED)
32+
find_package(tesseract_command_language REQUIRED)
33+
find_package(tesseract_time_parameterization REQUIRED)
34+
find_package(tesseract_process_managers REQUIRED)
2735
find_package(PCL REQUIRED COMPONENTS core features filters io segmentation surface)
2836
find_package(trajopt REQUIRED)
37+
find_package(TinyXML2 REQUIRED)
38+
find_package(opw_kinematics REQUIRED)
39+
40+
tesseract_variables()
41+
42+
include_directories(
43+
${trajopt_INCLUDE_DIRS}
44+
${tesseract_common_INCLUDE_DIRS}
45+
${tesseract_geometry_INCLUDE_DIRS}
46+
${tesseract_collision_INCLUDE_DIRS}
47+
${tesseract_motion_planners_INCLUDE_DIRS}
48+
${tesseract_kinematics_INCLUDE_DIRS}
49+
${tesseract_urdf_INCLUDE_DIRS}
50+
${tesseract_scene_graph_INCLUDE_DIRS}
51+
${tesseract_environment_INCLUDE_DIRS}
52+
${tesseract_command_language_INCLUDE_DIRS}
53+
${tesseract_time_parameterization_INCLUDE_DIRS}
54+
${tesseract_visualization_INCLUDE_DIRS}
55+
${tesseract_process_managers_INCLUDE_DIRS}
56+
${opw_kinematics_INCLUDE_DIRS}
57+
${TinyXML2_INCLUDE_DIRS}
58+
)
2959

3060
if(NOT PYTHON_VERSION)
3161
set(PYTHON_VERSION $ENV{ROS_PYTHON_VERSION})
@@ -69,42 +99,32 @@ include(FindSWIG)
6999
find_package(SWIG 4.0 REQUIRED)
70100
include(UseSWIG)
71101

72-
# Primary tesseract_python library
73-
74-
set(SWIG_CXX_EXTENSION cxx)
75-
set_property(SOURCE swig/tesseract_python.i PROPERTY CPLUSPLUS ON)
76-
if (${PYTHON_VERSION_MAJOR} LESS 3)
77-
set_property(SOURCE swig/tesseract_python.i PROPERTY SWIG_FLAGS -relativeimport -threads)
78-
else()
79-
set_property(SOURCE swig/tesseract_python.i PROPERTY SWIG_FLAGS -relativeimport -threads -py3)
80-
endif()
81-
82-
set(CMAKE_SWIG_OUTDIR ${CMAKE_CURRENT_BINARY_DIR}/python/tesseract)
83-
set(SWIG_OUTFILE_DIR ${CMAKE_CURRENT_BINARY_DIR})
84-
swig_add_module(tesseract_python python swig/tesseract_python.i)
85-
swig_link_libraries(tesseract_python tesseract::tesseract_motion_planners_trajopt tesseract::tesseract_motion_planners_core tesseract::tesseract_visualization tesseract::tesseract trajopt::trajopt ${PYTHON_LIBRARIES} ${EIGEN3_LIBRARIES} ${PYTHON_LIBRARIES})
86-
target_include_directories(${SWIG_MODULE_tesseract_python_REAL_NAME} PUBLIC
87-
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>"
88-
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/swig>"
89-
"$<INSTALL_INTERFACE:include>")
90-
target_include_directories(${SWIG_MODULE_tesseract_python_REAL_NAME} SYSTEM PUBLIC
91-
${EIGEN3_INCLUDE_DIRS}
92-
${Boost_INCLUDE_DIRS}
93-
${TinyXML2_INCLUDE_DIRS}
94-
${PYTHON_INCLUDE_DIRS}
95-
${NUMPY_INCLUDE_DIR}
96-
$<TARGET_PROPERTY:tesseract::tesseract,INTERFACE_INCLUDE_DIRECTORIES>)
97-
98-
set_target_properties(${SWIG_MODULE_tesseract_python_REAL_NAME}
99-
PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/python/tesseract)
100-
set_target_properties(${SWIG_MODULE_tesseract_python_REAL_NAME}
101-
PROPERTIES LIBRARY_OUTPUT_DIRECTORY_RELEASE ${CMAKE_CURRENT_BINARY_DIR}/python/tesseract)
102-
set_target_properties(${SWIG_MODULE_tesseract_python_REAL_NAME}
103-
PROPERTIES LIBRARY_OUTPUT_DIRECTORY_RELWITHDEBINFO ${CMAKE_CURRENT_BINARY_DIR}/python/tesseract)
104-
105-
add_custom_command(TARGET ${SWIG_MODULE_tesseract_python_REAL_NAME} POST_BUILD COMMAND
106-
${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/swig/__init__.py
107-
$<SHELL_PATH:$<TARGET_FILE_DIR:${SWIG_MODULE_tesseract_python_REAL_NAME}>>/__init__.py)
102+
include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/tesseract_python_module.cmake)
103+
104+
tesseract_python_module(tesseract_common_python SWIG_SRCS swig/tesseract_common_python.i PACKAGE tesseract_common LIBS tesseract::tesseract_common )
105+
tesseract_python_module(tesseract_geometry_python SWIG_SRCS swig/tesseract_geometry_python.i PACKAGE tesseract_geometry LIBS tesseract::tesseract_geometry )
106+
tesseract_python_module(tesseract_collision_python SWIG_SRCS swig/tesseract_collision_python.i PACKAGE tesseract_collision LIBS tesseract::tesseract_collision_core )
107+
tesseract_python_module(tesseract_collision_bullet_python SWIG_SRCS swig/tesseract_collision_bullet_python.i PACKAGE tesseract_collision_bullet LIBS tesseract::tesseract_collision_bullet )
108+
tesseract_python_module(tesseract_collision_fcl_python SWIG_SRCS swig/tesseract_collision_fcl_python.i PACKAGE tesseract_collision_fcl LIBS tesseract::tesseract_collision_fcl )
109+
tesseract_python_module(tesseract_scene_graph_python SWIG_SRCS swig/tesseract_scene_graph_python.i PACKAGE tesseract_scene_graph LIBS tesseract::tesseract_scene_graph )
110+
tesseract_python_module(tesseract_urdf_python SWIG_SRCS swig/tesseract_urdf_python.i PACKAGE tesseract_urdf LIBS tesseract::tesseract_urdf )
111+
tesseract_python_module(tesseract_kinematics_python SWIG_SRCS swig/tesseract_kinematics_python.i PACKAGE tesseract_kinematics LIBS tesseract::tesseract_kinematics_core )
112+
tesseract_python_module(tesseract_kinematics_kdl_python SWIG_SRCS swig/tesseract_kinematics_kdl_python.i PACKAGE tesseract_kinematics_kdl LIBS tesseract::tesseract_kinematics_kdl )
113+
tesseract_python_module(tesseract_kinematics_opw_python SWIG_SRCS swig/tesseract_kinematics_opw_python.i PACKAGE tesseract_kinematics_opw LIBS tesseract::tesseract_kinematics_opw )
114+
tesseract_python_module(tesseract_environment_python SWIG_SRCS swig/tesseract_environment_python.i PACKAGE tesseract_environment LIBS tesseract::tesseract_environment_core tesseract::tesseract_environment_kdl )
115+
tesseract_python_module(tesseract_command_language_python SWIG_SRCS swig/tesseract_command_language_python.i PACKAGE tesseract_command_language LIBS tesseract::tesseract_command_language)
116+
tesseract_python_module(tesseract_motion_planners_python SWIG_SRCS swig/tesseract_motion_planners_python.i PACKAGE tesseract_motion_planners LIBS tesseract::tesseract_motion_planners_simple tesseract::tesseract_motion_planners_core )
117+
tesseract_python_module(tesseract_motion_planners_simple_python SWIG_SRCS swig/tesseract_motion_planners_simple_python.i PACKAGE tesseract_motion_planners_simple LIBS tesseract::tesseract_motion_planners_simple )
118+
tesseract_python_module(tesseract_motion_planners_trajopt_python SWIG_SRCS swig/tesseract_motion_planners_trajopt_python.i PACKAGE tesseract_motion_planners_trajopt LIBS tesseract::tesseract_motion_planners_trajopt )
119+
tesseract_python_module(tesseract_motion_planners_ompl_python SWIG_SRCS swig/tesseract_motion_planners_ompl_python.i PACKAGE tesseract_motion_planners_ompl LIBS tesseract::tesseract_motion_planners_ompl )
120+
tesseract_python_module(tesseract_motion_planners_descartes_python SWIG_SRCS swig/tesseract_motion_planners_descartes_python.i PACKAGE tesseract_motion_planners_descartes LIBS tesseract::tesseract_motion_planners_descartes )
121+
tesseract_python_module(tesseract_time_parameterization_python SWIG_SRCS swig/tesseract_time_parameterization_python.i PACKAGE tesseract_time_parameterization LIBS tesseract::tesseract_time_parameterization )
122+
tesseract_python_module(tesseract_visualization_python SWIG_SRCS swig/tesseract_visualization_python.i PACKAGE tesseract_visualization LIBS tesseract::tesseract_visualization)
123+
tesseract_python_module(tesseract_process_managers_python SWIG_SRCS swig/tesseract_process_managers_python.i PACKAGE tesseract_process_managers LIBS tesseract::tesseract_process_managers )
124+
125+
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/__package_init__.py.in ${CMAKE_CURRENT_BINARY_DIR}/python/tesseract/__init__.py @ONLY)
126+
127+
#install(CODE "MESSAGE(\"INSTALL TODO!\")")
108128

109129
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake/setup.py.in" "${CMAKE_CURRENT_BINARY_DIR}/python/setup.py" @ONLY)
110130

@@ -124,7 +144,7 @@ if (${PYTHON_VERSION_MAJOR} LESS 3)
124144
--root=/ --prefix=${CMAKE_INSTALL_PREFIX} ${SETUPTOOLS_ARG_EXTRA} --single-version-externally-managed WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/python)")
125145
else()
126146
install(CODE "message(STATUS \"Running setup.py in ${CMAKE_CURRENT_BINARY_DIR}/python\")
127-
execute_process(COMMAND python3 setup.py install -f
147+
execute_process(COMMAND ${PYTHON_EXECUTABLE} setup.py install -f
128148
--root=/ --prefix=${CMAKE_INSTALL_PREFIX} ${SETUPTOOLS_ARG_EXTRA} --single-version-externally-managed WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/python)")
129149
endif()
130150

@@ -146,7 +166,18 @@ endif()
146166
if(TESSERACT_ENABLE_TESTING)
147167
enable_testing()
148168

149-
tesseract_add_run_tests_target(ENABLE ${TESSERACT_ENABLE_RUN_TESTING})
169+
add_run_tests_target(ENABLE ${TESSERACT_ENABLE_RUN_TESTING})
170+
171+
if (${TESSERACT_ENABLE_RUN_TESTING})
172+
add_dependencies(run_tests _tesseract_common_python _tesseract_geometry_python _tesseract_collision_python
173+
_tesseract_collision_bullet_python _tesseract_collision_fcl_python _tesseract_scene_graph_python
174+
_tesseract_urdf_python _tesseract_kinematics_python _tesseract_kinematics_kdl_python
175+
_tesseract_kinematics_opw_python _tesseract_environment_python _tesseract_command_language_python
176+
_tesseract_motion_planners_python _tesseract_motion_planners_simple_python
177+
_tesseract_motion_planners_trajopt_python _tesseract_motion_planners_ompl_python
178+
_tesseract_motion_planners_descartes_python _tesseract_time_parameterization_python
179+
_tesseract_visualization_python)
180+
endif()
150181

151182
add_test (NAME python-tests
152183
COMMAND ${PYTHON_EXECUTABLE} -m pytest -p no:cacheprovider
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
from __future__ import absolute_import
2+
3+
from .@PY_MOD_NAME@ import *

CATKIN_IGNORE renamed to tesseract_python/cmake/__package_init__.py.in

File renamed without changes.

tesseract_python/cmake/setup.py.in

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Based on https://github.com/robotraconteur/robotraconteur/blob/master/RobotRaconteurPython/setup.py.in
22

3-
from setuptools import setup, Distribution
3+
from setuptools import setup, Distribution, find_packages
44

55
# Suggested at https://stackoverflow.com/questions/24071491/how-can-i-make-a-python-wheel-from-an-existing-native-library
66
class BinaryDistribution(Distribution):
@@ -13,8 +13,8 @@ setup(name='tesseract',
1313
author='John Wason',
1414
author_email='wason@wasontech.com',
1515
url='http://robotraconteur.com/',
16-
packages=['tesseract'],
17-
package_data={'tesseract': ['_tesseract_python.pyd', '_tesseract_python.so']},
16+
packages=find_packages(include=['tesseract','tesseract.*']),
17+
package_data={'': ['*.pyd', '*.so']},
1818
distclass=BinaryDistribution,
1919
license='Apache-2.0',
2020
install_requires=['numpy'],
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
function(tesseract_python_module PY_MOD_NAME )
2+
3+
cmake_parse_arguments(PY_MOD "" "PACKAGE" "SWIG_SRCS;LIBS" ${ARGN})
4+
5+
list(GET PY_MOD_SWIG_SRCS 0 PY_MOD_SWIG_SRC1)
6+
7+
set(SWIG_CXX_EXTENSION cxx)
8+
set_property(SOURCE ${PY_MOD_SWIG_SRC1} PROPERTY CPLUSPLUS ON)
9+
if (${PYTHON_VERSION_MAJOR} LESS 3)
10+
set_property(SOURCE ${PY_MOD_SWIG_SRC1} PROPERTY SWIG_FLAGS -relativeimport -threads -doxygen -DSWIGPYTHON2 )
11+
else()
12+
set_property(SOURCE ${PY_MOD_SWIG_SRC1} PROPERTY SWIG_FLAGS -relativeimport -threads -doxygen -py3 )
13+
endif()
14+
set_property(SOURCE ${PY_MOD_SWIG_SRC1} PROPERTY USE_LIBRARY_INCLUDE_DIRECTORIES TRUE)
15+
16+
set(CMAKE_SWIG_OUTDIR ${CMAKE_CURRENT_BINARY_DIR}/python/tesseract/${PY_MOD_PACKAGE})
17+
set(SWIG_OUTFILE_DIR ${CMAKE_CURRENT_BINARY_DIR})
18+
19+
swig_add_module(${PY_MOD_NAME} python ${PY_MOD_SWIG_SRCS})
20+
swig_link_libraries(${PY_MOD_NAME} ${PY_MOD_LIBS} jsoncpp_lib
21+
yaml-cpp ${TinyXML2_LIBRARIES} ${EIGEN3_LIBRARIES} ${PYTHON_LIBRARIES})
22+
23+
set(PY_MOD_REAL_NAME1 SWIG_MODULE_${PY_MOD_NAME}_REAL_NAME)
24+
set(PY_MOD_REAL_NAME ${${PY_MOD_REAL_NAME1}})
25+
26+
target_include_directories(${PY_MOD_REAL_NAME} PUBLIC
27+
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>"
28+
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/swig>"
29+
"$<INSTALL_INTERFACE:include>")
30+
target_include_directories(${PY_MOD_REAL_NAME} SYSTEM PUBLIC
31+
${EIGEN3_INCLUDE_DIRS}
32+
${Boost_INCLUDE_DIRS}
33+
${TinyXML2_INCLUDE_DIRS}
34+
${PYTHON_INCLUDE_DIRS}
35+
${NUMPY_INCLUDE_DIR}
36+
)
37+
target_compile_definitions(${PY_MOD_REAL_NAME} PRIVATE -DSWIG_TYPE_TABLE=tesseract_python )
38+
39+
set_target_properties(${PY_MOD_REAL_NAME}
40+
PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/python/tesseract/${PY_MOD_PACKAGE})
41+
set_target_properties(${PY_MOD_REAL_NAME}
42+
PROPERTIES LIBRARY_OUTPUT_DIRECTORY_RELEASE ${CMAKE_CURRENT_BINARY_DIR}/python/tesseract/${PY_MOD_PACKAGE})
43+
set_target_properties(${PY_MOD_REAL_NAME}
44+
PROPERTIES LIBRARY_OUTPUT_DIRECTORY_RELWITHDEBINFO ${CMAKE_CURRENT_BINARY_DIR}/python/tesseract/${PY_MOD_PACKAGE})
45+
46+
target_compile_options(${PY_MOD_REAL_NAME} PRIVATE ${TESSERACT_COMPILE_OPTIONS_PRIVATE})
47+
target_compile_options(${PY_MOD_REAL_NAME} PUBLIC ${TESSERACT_COMPILE_OPTIONS_PUBLIC})
48+
target_cxx_version(${PY_MOD_REAL_NAME} PUBLIC VERSION ${TESSERACT_CXX_VERSION})
49+
50+
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/__init__.py.in ${CMAKE_CURRENT_BINARY_DIR}/python/tesseract/${PY_MOD_PACKAGE}/__init__.py @ONLY)
51+
52+
endfunction()

tesseract_python/package.xml

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,18 @@
88
<author >John Wason</author>
99

1010
<depend>trajopt</depend>
11-
<depend>tesseract_collision</depend>
1211
<depend>tesseract_motion_planners</depend>
13-
<depend>tesseract_kinematics</depend>
14-
<depend>tesseract_environment</depend>
15-
<depend>tesseract_scene_graph</depend>
1612
<depend>tesseract_common</depend>
13+
<depend>tesseract_geometry</depend>
1714
<depend>tesseract_visualization</depend>
15+
<depend>tesseract_collision</depend>
16+
<depend>tesseract_urdf</depend>
17+
<depend>tesseract_kinematics</depend>
18+
<depend>tesseract_scene_graph</depend>
19+
<depend>tesseract_environment</depend>
20+
<depend>tesseract_command_language</depend>
21+
<depend>tesseract_time_parameterization</depend>
22+
<depend>tesseract_process_managers</depend>
1823

1924
<depend condition="$ROS_PYTHON_VERSION == 2">python</depend>
2025
<depend condition="$ROS_PYTHON_VERSION == 2">python-numpy</depend>

0 commit comments

Comments
 (0)