2025-11-10 16:54:06 +08:00
|
|
|
find_package(Eigen3 3.3 REQUIRED NO_MODULE)
|
|
|
|
|
find_package(osqp REQUIRED)
|
|
|
|
|
find_package(OsqpEigen REQUIRED)
|
|
|
|
|
find_package(PkgConfig REQUIRED)
|
2025-12-05 16:33:11 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
add_library(ik_solver SHARED
|
|
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}/src/ik_solver_creator.cpp
|
|
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}/src/pinocchio_dls_ik_solver.cpp
|
|
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}/src/pinocchio_qp_ik_solver.cpp
|
|
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}/src/bias_srs_ik_slover.cpp
|
|
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}/src/joints_limit_analyzer.cpp
|
|
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}/src/opt_psi_limit_bias_solver.cpp
|
|
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}/src/opt_psi_selector.cpp
|
2025-11-10 16:54:06 +08:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
target_include_directories(ik_solver PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
|
|
|
|
|
|
2025-12-05 16:33:11 +08:00
|
|
|
target_link_libraries(ik_solver PUBLIC
|
|
|
|
|
pinocchio_default
|
|
|
|
|
pinocchio_parsers
|
|
|
|
|
pinocchio_collision
|
2025-11-10 16:54:06 +08:00
|
|
|
Eigen3::Eigen
|
|
|
|
|
OsqpEigen::OsqpEigen
|
2025-12-05 16:33:11 +08:00
|
|
|
|
2025-11-10 16:54:06 +08:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
add_library(cmvr_es::ik_solver ALIAS ik_solver)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# --------------------------------------------------------
|
|
|
|
|
# Unit test
|
|
|
|
|
# --------------------------------------------------------
|
|
|
|
|
find_package(glog REQUIRED)
|
|
|
|
|
find_package(PkgConfig REQUIRED)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
include_directories(
|
2025-12-05 16:33:11 +08:00
|
|
|
${CMAKE_SOURCE_DIR}/third_party/gtest/1.17.0/include
|
2025-11-10 16:54:06 +08:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
link_directories(
|
|
|
|
|
${CMAKE_SOURCE_DIR}/third_party/gtest/1.17.0/lib
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-12-05 16:33:11 +08:00
|
|
|
|
2025-11-10 16:54:06 +08:00
|
|
|
add_executable(srs_ik_test
|
2025-12-05 16:33:11 +08:00
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}/src/srs_ik_test.cpp
|
2025-11-10 16:54:06 +08:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
target_link_libraries(srs_ik_test
|
|
|
|
|
PRIVATE
|
2025-12-05 16:33:11 +08:00
|
|
|
cmvr_es::mujoco_viewer
|
2025-11-10 16:54:06 +08:00
|
|
|
gtest
|
|
|
|
|
gtest_main
|
|
|
|
|
pthread
|
|
|
|
|
glog::glog
|
|
|
|
|
proto-objects
|
|
|
|
|
Eigen3::Eigen
|
|
|
|
|
OsqpEigen::OsqpEigen
|
|
|
|
|
cmvr_es::utils
|
|
|
|
|
cmvr_es::ik_solver
|
2025-12-05 16:33:11 +08:00
|
|
|
|
2025-11-10 16:54:06 +08:00
|
|
|
)
|
2025-12-05 16:33:11 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
add_executable(ik_test
|
|
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}/src/ik_test.cpp
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
target_link_libraries(ik_test
|
|
|
|
|
PRIVATE
|
|
|
|
|
cmvr_es::ik_solver
|
|
|
|
|
cmvr_es::mujoco_viewer
|
|
|
|
|
gtest
|
|
|
|
|
gtest_main
|
|
|
|
|
pthread
|
|
|
|
|
glog::glog
|
|
|
|
|
proto-objects
|
|
|
|
|
|
|
|
|
|
)
|
|
|
|
|
|