Skip to content
Snippets Groups Projects
Unverified Commit f2a43041 authored by Wolfgang Merkt's avatar Wolfgang Merkt Committed by GitHub
Browse files

Add ROS-CI with support for optional dependencies qpmad, OSQP, ProxQP (#195)

* [CI] Add ROS-CI (ROS1 Noetic)

* [CI] proxsuite master -> main

* [CI] Use fork for proxqp to test package.xml fixes

* [CI] Use catkin-tools to build

* [CI] Build with colcon

* [CI] Recursive checkout

* [CI] Add metapackage to make sure upstream workspace builds

* [CI] Fix CMAKE_ARGS

* [CI] Proxsuite without vectorisation (simde not available)

* [CI] Add dependencies rosinstall

* [CI] Debug and Release builds

* Change to ignore Wdeprecated-declarations

* [CI] Try without metapackage

* dependencies.rosinstall: Change ProxQP back to official repo
parent f6a59584
No related branches found
No related tags found
No related merge requests found
Pipeline #24311 passed with warnings
name: CI - Linux - ROS
on: [push, pull_request]
jobs:
CI:
strategy:
matrix:
env:
- {ROS_DISTRO: noetic, CMAKE_BUILD_TYPE: Debug}
- {ROS_DISTRO: noetic, CMAKE_BUILD_TYPE: Release}
env:
CCACHE_DIR: /github/home/.ccache # Enable ccache
UPSTREAM_WORKSPACE: dependencies.rosinstall
CMAKE_ARGS: -DBUILD_WITH_OSQP=ON -DBUILD_WITH_PROXQP=ON -DBUILD_WITH_VECTORIZATION_SUPPORT=OFF # Simde is not available yet
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
# This step will fetch/store the directory used by ccache before/after the ci run
- uses: actions/cache@v3
with:
path: ${{ env.CCACHE_DIR }}
key: ccache-${{ matrix.env.ROS_DISTRO }}-${{ matrix.env.ROS_REPO }}
# Run industrial_ci
- uses: 'ros-industrial/industrial_ci@master'
env: ${{ matrix.env }}
......@@ -38,7 +38,7 @@ option(BUILD_WITH_OSQP "Support using the osqp solver" OFF)
# With pos, vel, acc awaiting renaming (e.g. in trajectory-base), we are
# producing a ton of deprecation warnings. Ignoring them for now; remove this
# once pos, vel, acc are renamed.
add_definitions(-Wno-deprecated)
add_definitions(-Wno-deprecated-declarations)
# We frequently convert between signed and unsigned integers for Eigen::Index.
# Ignore them for now.
......@@ -158,6 +158,18 @@ if(BUILD_WITH_PROXQP)
find_package(proxsuite REQUIRED)
list(APPEND ${PROJECT_NAME}_SOLVERS_HEADERS
include/tsid/solvers/solver-proxqp.hpp)
# Determine whether ot use the default target or the vectorized target, if
# available
set(proxsuite_INTERFACE proxsuite::proxsuite)
if(NOT TARGET proxsuite::proxsuite-vectorized)
message(
STATUS
"proxsuite::proxsuite-vectorized not available - defaulting to non-vectorized ProxQP"
)
else()
set(proxsuite_INTERFACE proxsuite::proxsuite-vectorized)
endif()
endif()
if(BUILD_WITH_OSQP)
......@@ -287,7 +299,7 @@ target_link_libraries(${PROJECT_NAME} PUBLIC pinocchio::pinocchio
if(BUILD_WITH_PROXQP)
target_compile_definitions(${PROJECT_NAME} PUBLIC -DTSID_WITH_PROXSUITE)
target_link_libraries(${PROJECT_NAME} PUBLIC proxsuite::proxsuite-vectorized)
target_link_libraries(${PROJECT_NAME} PUBLIC ${proxsuite_INTERFACE})
endif()
if(BUILD_WITH_OSQP)
......
- git:
uri: https://github.com/asherikov/qpmad.git
version: master
local-name: qpmad
- git:
uri: https://github.com/Simple-Robotics/proxsuite.git
version: devel
local-name: proxsuite
- git:
uri: https://github.com/ori-drs/osqp.git # fork for packaging
version: master
local-name: osqp
- git:
uri: https://github.com/robotology/osqp-eigen.git
version: master
local-name: osqp-eigen
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment