Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • sw/armarx/robot-api
  • uwkce_singer/robot-api
  • untcg_hofmann/robot-api
  • ulqba_korosakov/RobotAPI
4 results
Show changes
Commits on Source (2472)
Showing
with 1940 additions and 1646 deletions
......@@ -76,3 +76,5 @@ etc/python/dist/*
data/RobotAPI/ArVizStorage/
.vscode/
.clang-format
.clang-tidy
stages:
- build-and-test
- deploy
- post-deploy-test
.build-and-test:
cache:
# https://docs.gitlab.com/ee/ci/caching/#share-caches-across-jobs-in-different-branches
key: one-key-to-rule-them-all
paths:
- .apt
- .ccache
before_script:
# Apt cache configuration.
- rm -rf /var/cache/apt/archives || true
- rm -f /etc/apt/apt.conf.d/docker-clean # Remove docker-clean script to avoid cache deletion.
- mkdir .apt || true
- ln -s "$CI_PROJECT_DIR/.apt" /var/cache/apt/archives
# Update apt info.
- apt-get update
# Ccache configuration and introspection.
- apt-get install ccache --yes
- ccache --set-config=cache_dir="$CI_PROJECT_DIR/.ccache"
- ccache --max-size=20G
- ccache --show-stats
# Activate Axii.
- source /axii/scripts/install_axii.sh
- _axii_auto_env_refresh
script:
- echo "ArmarX Workspace = '$ARMARX_WORKSPACE'"
# Use workspace configuration from project.
- cp "$CI_PROJECT_DIR/.gitlab/ci/armarx-workspace.json" "$ARMARX_WORKSPACE/armarx-workspace.json"
- cat "$ARMARX_WORKSPACE/armarx-workspace.json"
- axii workspace env
- _axii_auto_env_refresh
- echo "Workspace information:"
- axii workspace list-modules
- axii workspace list-modules --deps
- axii workspace info
- export PROJECT_MODULE="armarx/RobotAPI"
- export PROJECT_PATH_IN_WORKSPACE="$armarx__RobotAPI__PATH"
# Symlink project directory into Axii workspace.
- mkdir -p "$(dirname $PROJECT_PATH_IN_WORKSPACE)"
- ln -s "$CI_PROJECT_DIR" "$PROJECT_PATH_IN_WORKSPACE"
# Fix "CMake Error in CMakeLists.txt: Imported target "VirtualRobot" includes non-existent path "/usr/lib/include"
# (caused by at least dmp)
- mkdir -p /usr/lib/include
# Upgrade.
- axii workspace system --accept-apt-install
- axii workspace update --prefer-https
- axii workspace upgrade -m "$PROJECT_MODULE"
- ccache --show-stats
# Test.
# ToDo: Add and use `axii ws test -m "$PROJECT_MODULE"`
- cd "$PROJECT_PATH_IN_WORKSPACE/build"
- ctest --output-on-failure --output-junit "$CI_PROJECT_DIR/report.xml" .
artifacts:
reports:
junit: report.xml
build-and-test-bionic:
stage: build-and-test
extends: .build-and-test
image: git.h2t.iar.kit.edu:5050/sw/armarx/armarx-gui:latest-bionic
build-and-test-jammy:
stage: build-and-test
extends: .build-and-test
image: git.h2t.iar.kit.edu:5050/sw/armarx/armarx-gui:latest-jammy
docker-bionic:
stage: deploy
needs: ["build-and-test-bionic"]
image:
name: gcr.io/kaniko-project/executor:v1.9.0-debug
entrypoint: [""]
script:
- /kaniko/executor
--context "${CI_PROJECT_DIR}"
--dockerfile "${CI_PROJECT_DIR}/docker/bionic"
--destination "${CI_REGISTRY_IMAGE}:latest-bionic"
rules:
- if: $CI_COMMIT_BRANCH == "master"
docker-jammy:
stage: deploy
needs: ["build-and-test-jammy"]
image:
name: gcr.io/kaniko-project/executor:v1.9.0-debug
entrypoint: [""]
script:
- /kaniko/executor
--context "${CI_PROJECT_DIR}"
--dockerfile "${CI_PROJECT_DIR}/docker/jammy"
--destination "${CI_REGISTRY_IMAGE}:latest-jammy"
rules:
- if: $CI_COMMIT_BRANCH == "master"
.test-docker-image-common:
before_script:
- source /axii/scripts/install_axii.sh
- _axii_auto_env_refresh
script:
- echo "ArmarX Workspace = '$ARMARX_WORKSPACE'"
- printenv
- axii workspace list-modules
- axii workspace list-modules --deps
- axii workspace info
- echo "RobotAPI directory = '$RobotAPI_DIR'"
- which armarx
- which armarx-package
- armarx switch docker_test --ice-host 127.0.0.1 --ice-port 10000 --ice-default-host 127.0.0.1 --mongo-host 127.0.0.1 --mongo-port 10001
- armarx profile
- armarx status || true
- cd $ArmarXGui_DIR
- ctest --output-on-failure .
test-docker-image-bionic:
stage: post-deploy-test
needs: ["docker-bionic"]
extends: .test-docker-image-common
image: git.h2t.iar.kit.edu:5050/sw/armarx/robot-api:latest-bionic
rules:
- if: $CI_COMMIT_BRANCH == "master"
test-docker-image-jammy:
stage: post-deploy-test
needs: ["docker-jammy"]
extends: .test-docker-image-common
image: git.h2t.iar.kit.edu:5050/sw/armarx/robot-api:latest-jammy
rules:
- if: $CI_COMMIT_BRANCH == "master"
# ARON
##########################
/source/RobotAPI/libraries/aron/ @fratty @dreher
/source/RobotAPI/libraries/aron/ @plewnia @hyseni
/source/RobotAPI/interface/aron/ @fratty @dreher
/source/RobotAPI/interface/aron.ice @fratty @dreher
/source/RobotAPI/interface/aron/ @plewnia @hyseni
/source/RobotAPI/interface/aron.ice @plewnia @hyseni @dreher
# ArMem
/source/RobotAPI/components/armem/ @fratty @RainerKartmann @dreher
##########################
/source/RobotAPI/libraries/armem/ @fratty @RainerKartmann @dreher
/source/RobotAPI/libraries/armem_robot_localization/ @FabianReister
/source/RobotAPI/libraries/armem_robot_mapping/ @FabianReister
/source/RobotAPI/components/armem/ @plewnia
/source/RobotAPI/libraries/armem/ @plewnia
/source/RobotAPI/interface/armem/ @fratty @RainerKartmann @dreher
/source/RobotAPI/interface/armem.ice @fratty @RainerKartmann @dreher
/source/RobotAPI/interface/armem/ @plewnia
/source/RobotAPI/interface/armem.ice @plewnia @dreher
# ArMem client / helper libraries
##########################
/source/RobotAPI/libraries/armem_grasping/ @hyseni @reister
/source/RobotAPI/libraries/armem_gui/ @plewnia
/source/RobotAPI/libraries/armem_index/ @plewnia
/source/RobotAPI/libraries/armem_laser_scans/ @reister
/source/RobotAPI/libraries/armem_locations/ @plewnia
# /source/RobotAPI/libraries/armem_motions/
# /source/RobotAPI/libraries/armem_mps/
/source/RobotAPI/libraries/armem_objects/ @reister
# /source/RobotAPI/libraries/armem_reasoning/
/source/RobotAPI/libraries/armem_robot_state/ @reister
# /source/RobotAPI/libraries/armem_skills see below
# /source/RobotAPI/libraries/armem_system_state/
# /source/RobotAPI/libraries/armem_vision/
# Skill framework
##########################
/source/RobotAPI/interface/skills @meixner @rietsch
/source/RobotAPI/libraries/skills @meixner @rietsch
/source/RobotAPI/libraries/armem_skills @meixner @rietsch
# ArViz
##########################
/source/RobotAPI/components/ArViz @daab @meixner
# Others
##########################
/source/RobotAPI/libraries/ArmarXObjects @reister
/source/RobotAPI/libraries/diffik @meixner
/source/RobotAPI/libraries/natik @meixner
{
"modules": {
"tools/ccache/default": {},
"armarx/RobotAPI": {}
},
"global": {
"prepare": {
"cmake": {
"definitions": {
"CMAKE_BUILD_TYPE": "RelWithDebInfo",
"CMAKE_C_COMPILER_LAUNCHER": "$CCACHE",
"CMAKE_CXX_COMPILER_LAUNCHER": "$CCACHE"
}
}
}
}
}
......@@ -20,6 +20,7 @@ depends_on_armarx_package(ArmarXGui)
find_package(DMP QUIET)
find_package(OpenCV QUIET)
find_package(IVT COMPONENTS ivt ivtopencv QUIET)
find_package(manif QUIET)
add_subdirectory(source)
......
# RobotAPI
[Online Documentation](https://armarx.humanoids.kit.edu/d4/da3/RobotAPI-Overview.html),
in particular on
[ARON ("ArmarX Object Notation") / IDF (Interpretable Data Format)](https://armarx.humanoids.kit.edu/d9/d51/aron.html)
and
[ArMem ("ArmarX Memory Framework")](https://armarx.humanoids.kit.edu/d5/d6e/memory_system.html)
\ No newline at end of file
Stub to make the package tool work.
......@@ -114,6 +114,15 @@
<CollisionModel>
<File type="Inventor">convexModel/neck_yaw_link.wrl</File>
</CollisionModel>
<PrimitiveModel>
<Primitives>
<Sphere radius="140">
<Transform>
<Translation x="40" y="0" z="180" />
</Transform>
</Sphere>
</Primitives>
</PrimitiveModel>
<Child name="Head_Tilt"/>
</RobotNode>
......
......@@ -33,6 +33,16 @@
<CollisionModel>
<File type="Inventor">convexModel/shoulder_l.wrl</File>
</CollisionModel>
<PrimitiveModel>
<Primitives>
<Capsule height="80" radius="120">
<Transform>
<Translation x="0" y="0" z="-90" />
<rpy roll="90" pitch="0" yaw="00" unit="degree"/>
</Transform>
</Capsule>
</Primitives>
</PrimitiveModel>
<Child name="Shoulder 2 L"/>
</RobotNode>
......@@ -60,6 +70,15 @@
<CollisionModel>
<File type="Inventor">convexModel/shoulder2_l_rot.wrl</File>
</CollisionModel>
<PrimitiveModel>
<Primitives>
<Capsule height="310" radius="50">
<Transform>
<Translation x="0" y="150" z="0" />
</Transform>
</Capsule>
</Primitives>
</PrimitiveModel>
<Child name="Upperarm L"/>
</RobotNode>
......@@ -138,6 +157,16 @@
<CollisionModel>
<File type="Inventor">convexModel/underarm_l.wrl</File>
</CollisionModel>
<PrimitiveModel>
<Primitives>
<Capsule height="240" radius="50">
<Transform>
<Translation x="0" y="0" z="-110" />
<rpy roll="90" pitch="0" yaw="0" unit="degree"/>
</Transform>
</Capsule>
</Primitives>
</PrimitiveModel>
<Physics>
<CoM location="VisualizationBBoxCenter"/>
<Mass value="2.26566087" units="kg" />
......
......@@ -34,6 +34,16 @@
<CollisionModel>
<File type="Inventor">convexModel/shoulder_r.wrl</File>
</CollisionModel>
<PrimitiveModel>
<Primitives>
<Capsule height="80" radius="120">
<Transform>
<Translation x="0" y="0" z="90" />
<rpy roll="90" pitch="0" yaw="00" unit="degree"/>
</Transform>
</Capsule>
</Primitives>
</PrimitiveModel>
<Child name="Shoulder 2 R"/>
</RobotNode>
......@@ -59,6 +69,15 @@
<CollisionModel>
<File type="Inventor">convexModel/shoulder2_r_rot.wrl</File>
</CollisionModel>
<PrimitiveModel>
<Primitives>
<Capsule height="310" radius="50">
<Transform>
<Translation x="0" y="150" z="0" />
</Transform>
</Capsule>
</Primitives>
</PrimitiveModel>
<Child name="Upperarm R"/>
</RobotNode>
......@@ -133,6 +152,16 @@
<CollisionModel>
<File type="Inventor">convexModel/underarm_r.wrl</File>
</CollisionModel>
<PrimitiveModel>
<Primitives>
<Capsule height="240" radius="50">
<Transform>
<Translation x="0" y="0" z="-110" />
<rpy roll="90" pitch="0" yaw="0" unit="degree"/>
</Transform>
</Capsule>
</Primitives>
</PrimitiveModel>
<Physics>
<CoM location="VisualizationBBoxCenter"/>
<Mass value="2.26566087" units="kg" />
......
......@@ -70,6 +70,16 @@
<CollisionModel>
<File type="Inventor">convexModel/platform.wrl</File>
</CollisionModel>
<PrimitiveModel>
<Primitives>
<Capsule height="400" radius="390">
<Transform>
<Translation x="0" y="0" z="380" />
<rpy roll="90" pitch="0" yaw="0" unit="degree"/>
</Transform>
</Capsule>
</Primitives>
</PrimitiveModel>
<Child name="Laser Scanner Front"/>
<Child name="Laser Scanner Back Left"/>
<Child name="Laser Scanner Back Right"/>
......@@ -175,6 +185,16 @@
<CollisionModel>
<File type="Inventor">convexModel/torso.wrl</File>
</CollisionModel>
<PrimitiveModel>
<Primitives>
<Capsule height="400" radius="210">
<Transform>
<Translation x="0" y="-40" z="225" />
<rpy roll="90" pitch="0" yaw="0" unit="degree"/>
</Transform>
</Capsule>
</Primitives>
</PrimitiveModel>
<Child name="Center of Arms"/>
</RobotNode>
......
This diff is collapsed.
{
"modules": {
"armarx/RobotAPI": {}
},
"global": {
"prepare": {
"cmake": {
"definitions": {
"CMAKE_BUILD_TYPE": "RelWithDebInfo"
}
}
}
}
}
FROM git.h2t.iar.kit.edu:5050/sw/armarx/armarx-gui:latest-bionic
# Setup environment.
SHELL ["/bin/bash", "-c"]
# Setup apt environment.
RUN apt-get -qq update
# Setup repository in Docker.
WORKDIR $ARMARX_WORKSPACE/armarx/RobotAPI
COPY --chmod=755 . .
# Use workspace config.
COPY docker/armarx-workspace.json $ARMARX_WORKSPACE/armarx-workspace.json
# Fix "CMake Error in CMakeLists.txt: Imported target "VirtualRobot" includes non-existent path "/usr/lib/include"
# (caused by at least dmp)
RUN mkdir -p /usr/lib/include
# Run the upgrade.
RUN axii workspace system --accept-apt-install
# ToDo: Prevent this from updating the target itself.
RUN axii workspace update --prefer-https
RUN axii workspace upgrade
FROM git.h2t.iar.kit.edu:5050/sw/armarx/armarx-gui:latest-jammy
# Setup environment.
SHELL ["/bin/bash", "-c"]
# Setup apt environment.
RUN apt-get -qq update
# Setup repository in Docker.
WORKDIR $ARMARX_WORKSPACE/armarx/RobotAPI
COPY --chmod=755 . .
# Use workspace config.
COPY docker/armarx-workspace.json $ARMARX_WORKSPACE/armarx-workspace.json
# Run the upgrade.
RUN axii workspace system --accept-apt-install
# ToDo: Prevent this from updating the target itself.
RUN axii workspace update --prefer-https
RUN axii workspace upgrade
# Copyright (c) 2015, Georgia Tech Graphics Lab and Humanoid Robotics Lab
# This file is provided under the "BSD-style" License
# Find NLOPT
#
# This sets the following variables:
# NLOPT_FOUND
# NLOPT_INCLUDE_DIRS
# NLOPT_LIBRARIES
# NLOPT_DEFINITIONS
# NLOPT_VERSION
find_package(PkgConfig QUIET)
# Check to see if pkgconfig is installed.
pkg_check_modules(PC_NLOPT nlopt QUIET)
# Definitions
set(NLOPT_DEFINITIONS ${PC_NLOPT_CFLAGS_OTHER})
# Include directories
find_path(NLOPT_INCLUDE_DIRS
NAMES nlopt.h
HINTS ${PC_NLOPT_INCLUDEDIR}
PATHS "${CMAKE_INSTALL_PREFIX}/include")
# Libraries
find_library(NLOPT_LIBRARIES
NAMES nlopt nlopt_cxx
HINTS ${PC_NLOPT_LIBDIR})
# Version
set(NLOPT_VERSION ${PC_NLOPT_VERSION})
# Set (NAME)_FOUND if all the variables and the version are satisfied.
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(NLOPT
FAIL_MESSAGE DEFAULT_MSG
REQUIRED_VARS NLOPT_INCLUDE_DIRS NLOPT_LIBRARIES
VERSION_VAR NLOPT_VERSION)
# - Try to find OptoForceOMD
# Once done this will define
#
# OptoForceOMD_FOUND - OptoForceOMD found
# OptoForceOMD_INCLUDE_DIR - the OptoForceOMD include directory
# OptoForceOMD_LIBRARIES - OptoForceOMD library
#
FIND_PATH(OptoForceOMD_INCLUDE_DIR NAMES opto.h
PATHS
$ENV{OptoForceOMD_DIR}/include/
$ENV{OptoForceOMD_DIR}/include/OptoForceOMD/
${OptoForceOMD_DIR}/include/
${OptoForceOMD_DIR}/include/OptoForceOMD/
ENV CPATH
/usr/include/OptoForceOMD/
/usr/local/include/OptoForceOMD/
/opt/local/include/OptoForceOMD/
NO_DEFAULT_PATH
)
FIND_LIBRARY(OptoForceOMD_LIBRARIES NAMES libOMD.so
PATHS
$ENV{OptoForceOMD_DIR}/lib
${OptoForceOMD_DIR}/lib
ENV LD_LIBRARY_PATH
ENV LIBRARY_PATH
/usr/lib
/usr/local/lib
/opt/local/lib
NO_DEFAULT_PATH
)
include(FindPackageHandleStandardArgs)
# handle the QUIETLY and REQUIRED arguments and set OODL_YOUBOT_FOUND to TRUE
# if all listed variables are TRUE
find_package_handle_standard_args(OptoForceOMD DEFAULT_MSG
OptoForceOMD_LIBRARIES OptoForceOMD_INCLUDE_DIR)
set(OptoForceOMD_FOUND ${OPTOFORCEOMD_FOUND}) # CMake UPPERCASE-FUNTIME!
#message( "OptoForceOMD_FOUND:" ${OptoForceOMD_FOUND})
#message( "OPTOFORCEOMD_FOUND:" ${OPTOFORCEOMD_FOUND})
#message( "OptoForceOMD_LIBRARIES:" ${OptoForceOMD_LIBRARIES})
#message( "OptoForceOMD_INCLUDE_DIR:" ${OptoForceOMD_INCLUDE_DIR})
# show the OptoForceOMD_INCLUDE_DIR and OptoForceOMD_LIBRARY_DIR variables only in the advanced view
MARK_AS_ADVANCED(OptoForceOMD_INCLUDE_DIR OptoForceOMD_LIBRARIES)
# see https://github.com/intersvyaz/zerod/blob/master/cmake/modules/FindLibbson.cmake
# - Find libbson
# Find the native libbson includes and library.
# Once done this will define
#
# LIBBSON_INCLUDE_DIRS - where to find bson.h, etc.
# LIBBSON_LIBRARIES - List of libraries when using libbson.
# LIBBSON_FOUND - True if libbson found.
#
# LIBBSON_VERSION_STRING - The version of libbson found (x.y.z)
# LIBBSON_VERSION_MAJOR - The major version
# LIBBSON_VERSION_MINOR - The minor version
# LIBBSON_VERSION_MICRO - The micro version
FIND_PATH(LIBBSON_INCLUDE_DIR NAMES bson.h PATH_SUFFIXES libbson-1.0)
FIND_LIBRARY(LIBBSON_LIBRARY NAMES bson-1.0)
MARK_AS_ADVANCED(LIBBSON_LIBRARY LIBBSON_INCLUDE_DIR)
IF(LIBBSON_INCLUDE_DIR AND EXISTS "${LIBBSON_INCLUDE_DIR}/bson-version.h")
# Read and parse version header file for version number
file(READ "${LIBBSON_INCLUDE_DIR}/bson-version.h" _libbson_HEADER_CONTENTS)
IF(_libbson_HEADER_CONTENTS MATCHES ".*BSON_MAJOR_VERSION.*")
#define BSON_MAJOR_VERSION
string(REGEX REPLACE ".*#define +BSON_MAJOR_VERSION +\\(([0-9]+)\\).*" "\\1" LIBBSON_VERSION_MAJOR "${_libbson_HEADER_CONTENTS}")
string(REGEX REPLACE ".*#define +BSON_MINOR_VERSION +\\(([0-9]+)\\).*" "\\1" LIBBSON_VERSION_MINOR "${_libbson_HEADER_CONTENTS}")
string(REGEX REPLACE ".*#define +BSON_MICRO_VERSION +\\(([0-9]+)\\).*" "\\1" LIBBSON_VERSION_MICRO "${_libbson_HEADER_CONTENTS}")
ELSE()
SET(LIBBSON_VERSION_MAJOR 0)
SET(LIBBSON_VERSION_MINOR 0)
SET(LIBBSON_VERSION_MICRO 0)
ENDIF()
SET(LIBBSON_VERSION_STRING "${LIBBSON_VERSION_MAJOR}.${LIBBSON_VERSION_MINOR}.${LIBBSON_VERSION_MICRO}")
ENDIF()
# handle the QUIETLY and REQUIRED arguments and set LIBBSON_FOUND to TRUE if
# all listed variables are TRUE
INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(libbson-1.0
REQUIRED_VARS LIBBSON_LIBRARY LIBBSON_INCLUDE_DIR
VERSION_VAR LIBBSON_VERSION_STRING
)
IF(LIBBSON_FOUND)
SET(LIBBSON_INCLUDE_DIRS ${LIBBSON_INCLUDE_DIR})
SET(LIBBSON_LIBRARIES ${LIBBSON_LIBRARY})
ENDIF()
# see https://github.com/intersvyaz/freeradius-mongodb/blob/master/cmake/modules/FindLibmongoc.cmake
# - Find libmongoc
# Find the native libmongoc includes and library.
# Once done this will define
#
# LIBMONGOC_INCLUDE_DIRS - where to find mongoc.h, etc.
# LIBMONGOC_LIBRARIES - List of libraries when using libmongoc.
# LIBMONGOC_FOUND - True if libmongoc found.
#
# LIBMONGOC_VERSION_STRING - The version of libmongoc found (x.y.z)
# LIBMONGOC_VERSION_MAJOR - The major version
# LIBMONGOC_VERSION_MINOR - The minor version
# LIBMONGOC_VERSION_MICRO - The micro version
FIND_PATH(LIBMONGOC_INCLUDE_DIR NAMES mongoc.h PATH_SUFFIXES libmongoc-1.0)
FIND_LIBRARY(LIBMONGOC_LIBRARY NAMES mongoc-1.0)
MARK_AS_ADVANCED(LIBMONGOC_LIBRARY LIBMONGOC_INCLUDE_DIR)
IF(LIBMONGOC_INCLUDE_DIR AND EXISTS "${LIBMONGOC_INCLUDE_DIR}/mongoc-version.h")
# Read and parse version header file for version number
file(READ "${LIBMONGOC_INCLUDE_DIR}/mongoc-version.h" _libmongoc_HEADER_CONTENTS)
IF(_libmongoc_HEADER_CONTENTS MATCHES ".*MONGOC_MAJOR_VERSION.*")
string(REGEX REPLACE ".*#define +MONGOC_MAJOR_VERSION +\\(([0-9]+)\\).*" "\\1" LIBMONGOC_VERSION_MAJOR "${_libmongoc_HEADER_CONTENTS}")
string(REGEX REPLACE ".*#define +MONGOC_MINOR_VERSION +\\(([0-9]+)\\).*" "\\1" LIBMONGOC_VERSION_MINOR "${_libmongoc_HEADER_CONTENTS}")
string(REGEX REPLACE ".*#define +MONGOC_MICRO_VERSION +\\(([0-9]+)\\).*" "\\1" LIBMONGOC_VERSION_MICRO "${_libmongoc_HEADER_CONTENTS}")
ELSE()
SET(LIBMONGOC_VERSION_MAJOR 0)
SET(LIBMONGOC_VERSION_MINOR 0)
SET(LIBMONGOC_VERSION_MICRO 0)
ENDIF()
SET(LIBMONGOC_VERSION_STRING "${LIBMONGOC_VERSION_MAJOR}.${LIBMONGOC_VERSION_MINOR}.${LIBMONGOC_VERSION_MICRO}")
ENDIF()
# handle the QUIETLY and REQUIRED arguments and set LIBMONGOC_FOUND to TRUE if
# all listed variables are TRUE
INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(Libmongoc
REQUIRED_VARS LIBMONGOC_LIBRARY LIBMONGOC_INCLUDE_DIR
VERSION_VAR LIBMONGOC_VERSION_STRING
)
IF(LIBMONGOC_FOUND)
SET(LIBMONGOC_INCLUDE_DIRS ${LIBMONGOC_INCLUDE_DIR})
SET(LIBMONGOC_LIBRARIES ${LIBMONGOC_LIBRARY})
ENDIF()
# - Try to find sick_scan_base
# This module defines the following variables:
# sick_scan_base_FOUND : 1 if sick_scan_base was found, 0 otherwise
# sick_scan_base_INCLUDE_DIRS: directory where the headers can be found
include(FindPackageHandleStandardArgs)
if (DEFINED ENV{sick_scan_base_DIR})
if(NOT DEFINED sick_scan_base_DIR)
set(sick_scan_base_DIR $ENV{sick_scan_base_DIR})
endif()
endif()
#if(NOT "$ENV{sick_scan_base_DIR}" EQUAL "")
# set(sick_scan_base_DIR $ENV{sick_scan_base_DIR} CACHE PATH "Path to sick_scan_base" FORCE)
#endif()
set(HEADER_SEARCH_PATHS
${sick_scan_base_DIR}/include/
${sick_scan_base_DIR}/include/sick_scan/
${sick_scan_base_DIR}/include/tinyxml/
${sick_scan_base_DIR}/roswrap/src/include/
${sick_scan_base_DIR}/roswrap/src/rossimu/kinetic/include/
${sick_scan_base_DIR}/roswrap/src/cfgsimu/
ENV CPATH
/usr/include/
#/opt/ros/melodic/include/
#/opt/ros/melodic/include/sick_scan/
)
#find_path(sick_scan_base_INCLUDE_DIR_7 NAMES sick_scan_common.h PATHS ${HEADER_SEARCH_PATHS} NO_DEFAULT_PATH)
#if(sick_scan_base_INCLUDE_DIR_7)
# set(sick_scan_base_INCLUDE_DIRS ${sick_scan_base_INCLUDE_DIR_7})
#endif()
#find_library(sick_scan_base_LIBRARIES NAMES libsick_scan_lib.so PATHS /opt/ros/melodic/lib/ NO_DEFAULT_PATH)
find_library(sick_scan_base_LIBRARIES NAMES libsick_scan_generic.so PATHS ${sick_scan_base_DIR}/build NO_DEFAULT_PATH)
message(STATUS "sick_scan_base_LIBRARIES:${sick_scan_base_LIBRARIES}")
find_path(sick_scan_base_INCLUDE_DIR_0 NAMES sick_scan/sick_scan_common_tcp.h PATHS ${HEADER_SEARCH_PATHS} NO_DEFAULT_PATH)
find_path(sick_scan_base_INCLUDE_DIR_1 NAMES sick_generic_laser.h PATHS ${HEADER_SEARCH_PATHS} NO_DEFAULT_PATH)
find_path(sick_scan_base_INCLUDE_DIR_2 NAMES tinystr.h PATHS ${HEADER_SEARCH_PATHS} NO_DEFAULT_PATH)
find_path(sick_scan_base_INCLUDE_DIR_3 NAMES sick_scan/SickScanConfig.h PATHS ${HEADER_SEARCH_PATHS} NO_DEFAULT_PATH)
find_path(sick_scan_base_INCLUDE_DIR_4 NAMES dynamic_reconfigure/config_tools.h PATHS ${HEADER_SEARCH_PATHS} NO_DEFAULT_PATH)
find_path(sick_scan_base_INCLUDE_DIR_5 NAMES sick_scan/SickScanConfig.h PATHS ${HEADER_SEARCH_PATHS} NO_DEFAULT_PATH)
find_path(sick_scan_base_INCLUDE_DIR_6 NAMES sick_scan/rosconsole_simu.hpp PATHS ${HEADER_SEARCH_PATHS} NO_DEFAULT_PATH)
if(sick_scan_base_INCLUDE_DIR_0 AND sick_scan_base_INCLUDE_DIR_1 AND sick_scan_base_INCLUDE_DIR_2 AND sick_scan_base_INCLUDE_DIR_3 AND sick_scan_base_INCLUDE_DIR_4 AND sick_scan_base_INCLUDE_DIR_5 AND sick_scan_base_INCLUDE_DIR_6)
set(sick_scan_base_INCLUDE_DIRS ${sick_scan_base_INCLUDE_DIR_0} ${sick_scan_base_INCLUDE_DIR_1} ${sick_scan_base_INCLUDE_DIR_2} ${sick_scan_base_INCLUDE_DIR_3} ${sick_scan_base_INCLUDE_DIR_4} ${sick_scan_base_INCLUDE_DIR_5} ${sick_scan_base_INCLUDE_DIR_6})
endif()
message(STATUS "sick_scan_base_INCLUDE_DIRS:${sick_scan_base_INCLUDE_DIRS}")
find_package_handle_standard_args(sick_scan_base DEFAULT_MSG sick_scan_base_INCLUDE_DIRS sick_scan_base_LIBRARIES)
mark_as_advanced(sick_scan_base_INCLUDE_DIRS sick_scan_base_LIBRARIES)