Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -239,7 +239,7 @@ target_compile_definitions(viam-ur

target_link_libraries(viam-ur
PUBLIC
viam::trajex::service
viam::trajex::totg::tools
urcl
viam-cpp-sdk::viamapi # Proxy for gRPC
viam-cpp-sdk::viamsdk
Expand Down
182 changes: 125 additions & 57 deletions src/viam/trajex/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -133,10 +133,10 @@ endif()


#
# Targets
# Library targets
#

# Legacy target: reference implementation from third_party/trajectories submodule
# Legacy library: reference implementation from third_party/trajectories submodule
add_library(viam-trajex-totg-legacy)

set_target_properties(viam-trajex-totg-legacy PROPERTIES SYSTEM TRUE)
Expand All @@ -160,10 +160,10 @@ target_link_libraries(viam-trajex-totg-legacy
Eigen3::Eigen
)

add_library(viam::trajex::totg-legacy ALIAS viam-trajex-totg-legacy)
add_library(viam::trajex::totg::legacy ALIAS viam-trajex-totg-legacy)


# Core target: TOTG implementation
# New TOTG implementation
add_library(viam-trajex-totg)

target_sources(viam-trajex-totg
Expand Down Expand Up @@ -198,95 +198,113 @@ apply_wall_werror(viam-trajex-totg)
add_library(viam::trajex::totg ALIAS viam-trajex-totg)


# Service layer: Eigen-dependent helpers (always built) and the MLModelService
# wrapper (conditionally built when VIAM_TRAJEX_BUILD_SERVICE is ON).
add_library(viam-trajex-service)
# Support and tooling for new TOTG and legacy
add_library(viam-trajex-totg-tools)

target_sources(viam-trajex-service
target_sources(viam-trajex-totg-tools
PRIVATE
src/viam/trajex/service/colinearization.cpp
)

target_include_directories(viam-trajex-service
PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src>
$<INSTALL_INTERFACE:include>
src/viam/trajex/totg/tools/legacy.cpp
src/viam/trajex/totg/tools/planner.cpp
src/viam/trajex/totg/tools/replay.cpp
)

target_link_libraries(viam-trajex-service
target_link_libraries(viam-trajex-totg-tools
PUBLIC
Eigen3::Eigen
viam::trajex::totg
viam::trajex::totg-legacy
viam::trajex::totg::legacy
PRIVATE
jsoncpp_lib
)

apply_wall_werror(viam-trajex-service)
apply_wall_werror(viam-trajex-totg-tools)

add_library(viam::trajex::service ALIAS viam-trajex-service)
add_library(viam::trajex::totg::tools ALIAS viam-trajex-totg-tools)


#
# Service executable and SDK-dependent sources
# Always built (provides testing in both standalone and FetchContent modes)
# Only installed/packaged in standalone mode
#
# Service layer: SDK-facing MLModel service. Only layer that depends on viam-cpp-sdk.

if(NOT TARGET viam-cpp-sdk::viamsdk)
find_package(viam-cpp-sdk CONFIG REQUIRED viamsdk)
endif()

add_library(viam-trajex-service)

target_sources(viam-trajex-service
PRIVATE
src/viam/trajex/service/trajex_mlmodel_service.cpp
src/viam/trajex/service/mlmodel.cpp
)

target_include_directories(viam-trajex-service
PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src>
$<INSTALL_INTERFACE:include>
)

target_link_libraries(viam-trajex-service
PUBLIC
viam-cpp-sdk::viamsdk
PRIVATE
viam::trajex::totg::tools
)

add_executable(trajex-service
src/viam/trajex/service/main.cpp
apply_wall_werror(viam-trajex-service)

add_library(viam::trajex::service ALIAS viam-trajex-service)


#
# Service executable target
#

add_executable(viam-trajex-service-exe)

target_sources(viam-trajex-service-exe
PRIVATE
src/viam/trajex/service/main.cpp
)

set_target_properties(trajex-service PROPERTIES OUTPUT_NAME viam-trajex-service)
set_target_properties(viam-trajex-service-exe PROPERTIES OUTPUT_NAME viam-trajex-service)

target_link_libraries(trajex-service
target_link_libraries(viam-trajex-service-exe
PRIVATE
viam::trajex::service
)

apply_wall_werror(trajex-service)
apply_wall_werror(viam-trajex-service-exe)

add_executable(trajex-service-test
src/viam/trajex/service/test/trajex_mlmodel_service.cpp
)

target_link_libraries(trajex-service-test
#
# Tools
#

add_executable(viam-trajex-totg-replay-exe)

target_sources(viam-trajex-totg-replay-exe
PRIVATE
viam::trajex::service
Boost::boost
src/viam/trajex/totg/tools/replay_main.cpp
)

apply_wall_werror(trajex-service-test)
set_target_properties(viam-trajex-totg-replay-exe PROPERTIES OUTPUT_NAME viam-trajex-totg-replay)

add_test(
NAME trajex-service
COMMAND trajex-service-test
target_link_libraries(viam-trajex-totg-replay-exe
PRIVATE
viam::trajex::totg::tools
)

apply_wall_werror(viam-trajex-totg-replay-exe)


#
# Tests
#

enable_testing()

add_executable(trajex-test)
add_executable(viam-trajex-totg-test)

target_sources(trajex-test
target_sources(viam-trajex-totg-test
PRIVATE
src/viam/trajex/service/test/trajectory_planner.cpp
src/viam/trajex/totg/test/main.cpp
src/viam/trajex/totg/test/test_utils.cpp
src/viam/trajex/totg/test/waypoint_accumulator.cpp
Expand All @@ -301,43 +319,91 @@ target_sources(trajex-test
src/viam/trajex/totg/test/observers.cpp
)

target_link_libraries(trajex-test
target_link_libraries(viam-trajex-totg-test
PRIVATE
viam::trajex::service
viam::trajex::totg::tools
Boost::boost
jsoncpp_lib
)

apply_wall_werror(trajex-test)
target_compile_definitions(viam-trajex-totg-test PRIVATE
VIAM_TRAJEX_TEST_DATA_DIR="${CMAKE_CURRENT_SOURCE_DIR}/src/viam/trajex/totg/test/data"
)

apply_wall_werror(viam-trajex-totg-test)

add_test(
NAME trajex
COMMAND trajex-test
NAME viam-trajex-totg-test
COMMAND viam-trajex-totg-test
)


add_executable(trajex-types-test)
add_executable(viam-trajex-totg-tools-test)

target_sources(trajex-types-test
target_sources(viam-trajex-totg-tools-test
PRIVATE
src/viam/trajex/totg/tools/test/main.cpp
src/viam/trajex/totg/tools/test/legacy.cpp
src/viam/trajex/totg/tools/test/planner.cpp
)

target_link_libraries(viam-trajex-totg-tools-test
PRIVATE
viam::trajex::totg::tools
Boost::boost
)

apply_wall_werror(viam-trajex-totg-tools-test)

add_test(
NAME viam-trajex-totg-tools-test
COMMAND viam-trajex-totg-tools-test
)


add_executable(viam-trajex-types-test)

target_sources(viam-trajex-types-test
PRIVATE
src/viam/trajex/types/test.cpp
)

target_include_directories(trajex-types-test
target_include_directories(viam-trajex-types-test
PRIVATE
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src>
)

target_link_libraries(trajex-types-test
target_link_libraries(viam-trajex-types-test
PRIVATE
Boost::boost
)

apply_wall_werror(viam-trajex-types-test)

add_test(
NAME viam-trajex-types-test
COMMAND viam-trajex-types-test
)


add_executable(viam-trajex-service-test)

target_sources(viam-trajex-service-test
PRIVATE
src/viam/trajex/service/test/mlmodel.cpp
)

target_link_libraries(viam-trajex-service-test
PRIVATE
viam::trajex::service
Boost::boost
)

apply_wall_werror(trajex-types-test)
apply_wall_werror(viam-trajex-service-test)

add_test(
NAME trajex-types
COMMAND trajex-types-test
NAME viam-trajex-service-test
COMMAND viam-trajex-service-test
)


Expand All @@ -347,12 +413,14 @@ add_test(

include(GNUInstallDirs)

# Always install libraries (UR uses service library for colinearization)
# Always install libraries and diagnostic tools
install(
TARGETS
viam-trajex-totg-legacy
viam-trajex-totg
viam-trajex-totg-tools
viam-trajex-service
viam-trajex-totg-replay-exe
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
Expand All @@ -362,7 +430,7 @@ if(TRAJEX_STANDALONE_BUILD)
# Install service executable (standalone only)
install(
TARGETS
trajex-service
viam-trajex-service-exe
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)

Expand Down
40 changes: 0 additions & 40 deletions src/viam/trajex/src/viam/trajex/service/colinearization.hpp

This file was deleted.

6 changes: 3 additions & 3 deletions src/viam/trajex/src/viam/trajex/service/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
#include <viam/sdk/registry/registry.hpp>
#include <viam/sdk/services/mlmodel.hpp>

#include <viam/trajex/service/trajex_mlmodel_service.hpp>
#include <viam/trajex/service/mlmodel.hpp>

namespace {

Expand All @@ -20,9 +20,9 @@ int serve(const std::string& socket_path) try {
vsdk::API::get<vsdk::MLModelService>(),
vsdk::Model{"viam", "trajex", "mlmodel"},
[](vsdk::Dependencies deps, vsdk::ResourceConfig config) {
return std::make_shared<viam::trajex::trajex_mlmodel_service>(std::move(deps), std::move(config));
return std::make_shared<viam::trajex::service::mlmodel>(std::move(deps), std::move(config));
},
&viam::trajex::trajex_mlmodel_service::validate);
&viam::trajex::service::mlmodel::validate);

vsdk::Registry::get().register_model(registration);

Expand Down
Loading
Loading