-
Notifications
You must be signed in to change notification settings - Fork 35
Tracker service v0.3.0: multiple scenes #943
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
229 commits
Select commit
Hold shift + click to select a range
a3e6b58
optional pybindings & migration to CMAKE_CURRENT_SOURCE_DIR
jdanieck fec2fe3
refactor C++ standard, switch to C++17 by default
jdanieck 52a0be6
Replace deprecated std::bind1st in the Apollo matcher with an equivalβ¦
jdanieck 1318ac8
introduce security_options INTERFACE
jdanieck 7eb41d4
use project-local include paths in RobotVision tests and benchmarks
jdanieck 4c75c41
Disable security hardening flags in Debug builds
jdanieck 4261f36
Consume Eigen, OpenCV, OpenMP, Python via imported targets (with Openβ¦
jdanieck c0e209a
general refactoring for readability
jdanieck 25f08ed
fix cpp tests discovery
jdanieck ee60c7b
add tracker service cmakelists
jdanieck fd1c20f
add license headers
jdanieck b2cf311
fix trivy issues
jdanieck 943f2fc
Merge branch 'main' into rv-cmake-refactor
jdanieck 73b18db
copy only necessary sources
jdanieck 7ce0ff6
refactor opencv handling
jdanieck cc5e55d
refactor security options handling
jdanieck 0b6bc4e
minor cleanup
jdanieck f6bfe3a
add Tracker Service design documents
jdanieck 33c0830
add build system foundation with Conan integration
jdanieck 9515533
add code formatting with clang-format
jdanieck 3a4d753
tracker: fix cmake preset usage and simplify clean target
jdanieck 011c829
add debugging capability
jdanieck 0107c5c
Logging skeleton (singleton Logger, LogEntry, structured JSON, versioβ¦
jdanieck dd95a1f
debugger settings
jdanieck 00a97ad
add basic ci
jdanieck c6641c0
run docker build in paralel in tracker ci
jdanieck fa8e078
fix docker build
jdanieck 6af76c1
use gha cache
jdanieck 503cfc0
empty
jdanieck fc0b3d8
use docker buildx to build
jdanieck dfdc391
empty
jdanieck 8faa112
integrate with main compose file
jdanieck 63fe9b3
add service tests
jdanieck f72abcf
split natvie build and tests
jdanieck ac8fae1
simplify test
jdanieck 8e7e1b9
simplifications
jdanieck aafb9e1
fix ut target
jdanieck ab94882
new linters
jdanieck 8903f3b
format python code
jdanieck 7b5d7db
better reporting
jdanieck c3a8adb
fix docker warnings
jdanieck cbba1b5
better ci jobs names
jdanieck c4784f0
add code coverage and more tets
jdanieck 090ef11
improve coverage report
jdanieck 85374ab
improve coverage in ci
jdanieck bf4a7d1
add readme
jdanieck f14bcfa
add python to github hooks
jdanieck 706768c
docs: remove ADR-0008, update references to PR #841
jdanieck fc7906f
Make tracker service cpu & mem limit configurable via env.
jdanieck 5fe8ba9
Move tracker to experimental images alongside mapping and cluster_anaβ¦
jdanieck f7f6557
Merge branch 'main' into tracker-service-design
jdanieck 4b86845
Merge branch 'tracker-service-design' into tracker-service-v0.1
jdanieck 1321e17
Parametrized Tracker image by build type.
jdanieck 47201f5
added pipx to install-deps
jdanieck 95aaec7
deleted docs from design branch
jdanieck 6d9acac
fix prettier style issues
jdanieck 3247c63
fix indent check
jdanieck f0d411f
fix gha linter issues
jdanieck 00e7f05
fix scorecard warnings
jdanieck 2231000
different approach for pip pinning by hash
jdanieck 178acd1
add hashes to tracker service requirements.txt
jdanieck 883509c
Revert "add hashes to tracker service requirements.txt"
jdanieck bae3042
Revert "different approach for pip pinning by hash"
jdanieck 6e514e4
Revert "fix scorecard warnings"
jdanieck b7b305b
Merge branch 'main' into tracker-service-v0.1
jdanieck 9ba6b82
put apt in quiet mode in Dockerfile
jdanieck 7509310
more apt silenece
jdanieck af12c2f
empty (for testing)
jdanieck bc97297
add scope to build cache in CI
jdanieck 5256fcb
empty (for testing)
jdanieck 3c25ff0
empty
jdanieck 52b0fa6
Merge branch 'main' into tracker-service-v0.1
tdorauintc 31a8d3a
empty
jdanieck 1906f2c
another regular layer caching instead of builtkit
jdanieck 1be476a
empty
jdanieck 6af9462
empty
jdanieck ad093db
set gha cache envs
jdanieck 2756795
use docker/build-push-action to manage docker build and caching
jdanieck 6f5ee58
empty
jdanieck 759acdb
split cmake configure & build in two layers
jdanieck 6fde5b8
Merge branch 'main' into tracker-service-v0.1
jdanieck 3b42eea
empty
jdanieck 14b2c97
increase code coverage
jdanieck a92364c
add gracefull shutdown test
jdanieck d4fb148
fix tests formatting
jdanieck 1dcbdeb
Merge branch 'main' into tracker-service-v0.1
jdanieck 3a4f780
add build dependencies on run targets
jdanieck c519b1b
simplify run_healthcheck_command() implementation
jdanieck 6934bcc
remove reduntant DifferentPorts unit test
jdanieck 912650c
validate inputs in healthcheck command
jdanieck 74cbbc7
small refactoring in healtcheck command
jdanieck a1e6d5d
refactor logging test to use custom sink
jdanieck 1737830
prettier fixes
jdanieck 183ca17
reduce ut count from 70 to 40
jdanieck 0e183f9
rename healthcheck to healthcheck_server
jdanieck 3a2d3a8
build opencv from source
jdanieck e51f1ad
link in robotvision
jdanieck 9913af1
link in robotvision (for image size comparision)
jdanieck 4a8f558
Merge branch 'tracker-service-v0.1' into tracker-service-v0.1.2
jdanieck 3a43a8b
add config file support with env overlay
jdanieck a04dfda
reduce tests count
jdanieck 590c9dc
Update tracker/Dockerfile
jdanieck 8950fe5
Update tracker/test/unit/config_loader_test.cpp
jdanieck 9dfdf6c
minor fixes
jdanieck 1ce6367
Merge branch 'tracker-service-v0.1.2' into tracker-service-v0.1.3
jdanieck 4dbc96f
Merge branch 'main' into tracker-service-v0.1.2
jdanieck 00bfc99
Merge branch 'tracker-service-v0.1.2' into tracker-service-v0.1.3
jdanieck 68ecfb5
Merge branch 'main' into tracker-service-v0.1.2
tdorauintc 80ea1d4
Merge branch 'main' into tracker-service-v0.1.2
tdorauintc 7164b2b
Merge branch 'main' into tracker-service-v0.1.2
jdanieck df6e4f3
fix README
jdanieck aa307d4
update cli section in readme
jdanieck 0f07fc3
Merge branch 'tracker-service-v0.1.2' into tracker-service-v0.1.3
jdanieck 87c5597
Merge branch 'main' into tracker-service-v0.1.2
tdorauintc c8dbd44
Update tracker/README.md
jdanieck c7e006a
Merge branch 'main' into tracker-service-v0.1.2
jdanieck 331819d
Merge branch 'tracker-service-v0.1.2' into tracker-service-v0.1.3
jdanieck f9c1c9a
Merge branch 'main' into tracker-service-v0.1.2
tdorauintc 76bae41
Merge branch 'tracker-service-v0.1.2' into tracker-service-v0.1.3
jdanieck 3738e2a
fix image builds in the Makefile
jdanieck 14f1846
Merge branch 'tracker-service-v0.1.2' into tracker-service-v0.1.3
jdanieck 9425c1c
better schema cli description
jdanieck ba05176
move env vars to seperate header
jdanieck b0b2f35
update schema & align implementation
jdanieck 80fb06c
fix linter issues
jdanieck 360f2fe
remove -release suffix
jdanieck 0d8253b
Merge branch 'main' into tracker-service-v0.1.2
jdanieck eaa8dc6
fix ci build
jdanieck d544f0e
Merge branch 'tracker-service-v0.1.2' into tracker-service-v0.1.3
jdanieck e097c84
add debugging & profiling into README
jdanieck fe0f1c0
fix & improve native debugging
jdanieck 35a1c06
fix & improve container debugging
jdanieck 85ecff6
fix & improve profiling
jdanieck 83fc75d
Merge branch 'main' into tracker-service-v0.1.3
jdanieck 8256990
add mqtt connection handling
jdanieck d5572ad
Merge branch 'main' into tracker-service-v0.1.3
scenescapecicd b1ad7d4
Merge branch 'main' into tracker-service-v0.1.3
jdanieck e3b2f1f
fix readme
jdanieck f48b216
update README to the current codebase
jdanieck 3e8a5b3
Merge branch 'tracker-service-v0.1.3' into tracker-service-v0.2.0
jdanieck 155af01
add mqtt helper targets to the makefile
jdanieck d97c171
more env overrides, simplify tests
jdanieck e875554
add broker targets for manual validation
jdanieck b51bbdc
Merge branch 'main' into tracker-service-v0.1.3
tdorauintc 9860553
git commit rename ssl to tls
jdanieck d007517
prettier fixes
jdanieck d4e1c98
Merge branch 'main' into tracker-service-v0.1.3
tdorauintc 4e3ac7d
shorten service tests
jdanieck b80965e
fix hadolint warnings
jdanieck 3fa7ba2
simplify ScopedEnv implementation
jdanieck 81cab58
simplify config loader by using JSON paths
jdanieck e271150
Merge branch 'main' into tracker-service-v0.1.3
jdanieck f07700a
Merge branch 'tracker-service-v0.1.3' into tracker-service-v0.2.0
jdanieck 910f38e
add ssl tests
jdanieck 026aeca
simplify tests
jdanieck 95c6a0f
test cleanup
jdanieck 0d00d1c
Merge branch 'main' into tracker-service-v0.2.0
jdanieck c352dfc
remove simdjson
jdanieck 2954661
Merge branch 'main' into tracker-service-v0.2.0
jdanieck ec6f467
improve coverage
jdanieck df3ee95
treat empty vars as unset
jdanieck 2bed405
exclude mqtt client from ut coverage
jdanieck 16144c1
reduce ut count
jdanieck c903d47
configure Tracker Service in docker compose
jdanieck bbb44b0
remove dead code
jdanieck b5d077d
fix default schema dir
jdanieck 6836f92
remove hardcoded number
jdanieck 2a65b86
remove redundant file
jdanieck 06b1b70
fix broker-start target
jdanieck d43e929
use json ptr in message handler
jdanieck 27ddbae
fix multiple topics subscription on down broker
jdanieck eddcb1d
unset proxy contidionally
jdanieck 75d7246
use dynamic broker ports in service tests
jdanieck 08f2c63
fix uts
jdanieck 572ee77
Merge branch 'main' into tracker-service-v0.2.0
jdanieck 24f2f09
add scenes handling
jdanieck 4fef31b
subscribe only to configured camers
jdanieck d171440
simplify config loader
jdanieck 1c3cd04
fix formatting
jdanieck a61bc32
fix tracker configuration in compose sample
jdanieck 0b47732
Merge branch 'tracker-service-v0.2.0' into tracker-service-v0.3.0
jdanieck ac63461
better logs
jdanieck 4505cba
Merge branch 'main' into tracker-service-v0.2.0
tdorauintc 3a05800
Merge branch 'tracker-service-v0.2.0' into tracker-service-v0.3.0
jdanieck 4689a26
improve logs
jdanieck df36e44
fix missing git commit in container logs
jdanieck 9f2f094
clarify comment
jdanieck 9dd5463
more tests
jdanieck f209c9c
optimize hot path
jdanieck bd58c54
unsubscribe from topic on mqtt handler stop
jdanieck e78ac29
optimize handleCameraMessage
jdanieck d9eeee9
optimize extractCameraId
jdanieck bf53951
optimize parseCameraMessage()
jdanieck 40e2574
remove redundant comments
jdanieck 01b7543
remove reduntant comment
jdanieck 7057175
refactor proxy handling
jdanieck 63cd848
fix mqtt client race
jdanieck 6447c03
fix exponential backoff precission
jdanieck cad2658
fix backoff ut
jdanieck ed4cedd
Merge branch 'tracker-service-v0.2.0' into tracker-service-v0.3.0
jdanieck 601e3af
fix the build
jdanieck 6038bdd
Merge branch 'main' into tracker-service-v0.2.0
dmytroye aa1e880
fix mqtt reconnect
jdanieck da774dc
Merge branch 'tracker-service-v0.2.0' into tracker-service-v0.3.0
jdanieck d3ba96b
Merge branch 'main' into tracker-service-v0.3.0
jdanieck b329f22
Merge branch 'main' into tracker-service-v0.3.0
jdanieck ac5e73e
Merge branch 'main' into tracker-service-v0.3.0
jdanieck 120969e
Merge branch 'main' into tracker-service-v0.3.0
saratpoluri 653fc22
Merge branch 'main' into tracker-service-v0.3.0
saratpoluri 9f06f3c
add extrinsics to the scene schema
jdanieck e4ba5b2
scene config in seperate file
jdanieck 033d5b7
require scene source config
jdanieck e78c97c
extract scenes config loading to separate class
jdanieck 9bcb2b7
Merge branch 'main' into tracker-service-v0.3.0
jdanieck 7852c65
validate topics for restricted characters
jdanieck 5eee1f5
validate categories for restricted characters
jdanieck ef7292a
Merge branch 'main' into tracker-service-v0.3.0
jdanieck d769660
remove duplicate log
jdanieck 1b806db
extract json helper
jdanieck 6926723
catch generic exception
jdanieck efa2bdb
revert WAs in .gitignore
jdanieck 0e50eb4
fix testscase description
jdanieck 789afcd
optimize message handler
jdanieck 34e13e1
improve logs
jdanieck c687b2b
fix service test
jdanieck 841c676
Merge branch 'main' into tracker-service-v0.3.0
jdanieck 262d412
make categories validation thread safe
jdanieck 39c4674
Merge branch 'main' into tracker-service-v0.3.0
scenescapecicd bcc9f05
Merge branch 'main' into tracker-service-v0.3.0
scenescapecicd File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,94 @@ | ||
| [ | ||
| { | ||
| "uid": "302cf49a-97ec-402d-a324-c5077b280b7b", | ||
| "name": "Queuing", | ||
| "cameras": [ | ||
| { | ||
| "uid": "atag-qcam1", | ||
| "name": "atag-qcam1", | ||
| "intrinsics": { | ||
| "fx": 905.0, | ||
| "fy": 905.0, | ||
| "cx": 640.0, | ||
| "cy": 360.0, | ||
| "distortion": { "k1": 0.0, "k2": 0.0, "p1": 0.0, "p2": 0.0 } | ||
| }, | ||
| "extrinsics": { | ||
| "translation": [ | ||
| 2.985857104493509, 0.2054078898442529, 2.7150546825598902 | ||
| ], | ||
| "rotation": [ | ||
| -135.08718965001765, 12.682032394455131, 19.24508172546946 | ||
| ], | ||
| "scale": [1.0, 1.0, 1.0] | ||
| } | ||
| }, | ||
| { | ||
| "uid": "atag-qcam2", | ||
| "name": "atag-qcam2", | ||
| "intrinsics": { | ||
| "fx": 905.0, | ||
| "fy": 905.0, | ||
| "cx": 640.0, | ||
| "cy": 360.0, | ||
| "distortion": { "k1": 0.0, "k2": 0.0, "p1": 0.0, "p2": 0.0 } | ||
| }, | ||
| "extrinsics": { | ||
| "translation": [ | ||
| -0.6544951215349519, 2.8628274940885503, 2.894955006060443 | ||
| ], | ||
| "rotation": [ | ||
| -150.5988934259539, 42.35138027480063, 52.29263795544898 | ||
| ], | ||
| "scale": [1.0, 1.0, 1.0] | ||
| } | ||
| } | ||
| ] | ||
| }, | ||
| { | ||
| "uid": "3bc091c7-e449-46a0-9540-29c499bca18c", | ||
| "name": "Retail", | ||
| "cameras": [ | ||
| { | ||
| "uid": "camera1", | ||
| "name": "camera1", | ||
| "intrinsics": { | ||
| "fx": 571.2592026968458, | ||
| "fy": 571.2592026968458, | ||
| "cx": 320.0, | ||
| "cy": 240.0, | ||
| "distortion": { "k1": 0.0, "k2": 0.0, "p1": 0.0, "p2": 0.0 } | ||
| }, | ||
| "extrinsics": { | ||
| "translation": [ | ||
| 2.6651330996559883, 1.0075648853123316, 2.603863333755973 | ||
| ], | ||
| "rotation": [ | ||
| -137.85924651441334, -19.441505783168942, -15.384890268257454 | ||
| ], | ||
| "scale": [1.0, 1.0, 1.0] | ||
| } | ||
| }, | ||
| { | ||
| "uid": "camera2", | ||
| "name": "camera2", | ||
| "intrinsics": { | ||
| "fx": 571.2592026968458, | ||
| "fy": 571.2592026968458, | ||
| "cx": 320.0, | ||
| "cy": 240.0, | ||
| "distortion": { "k1": 0.0, "k2": 0.0, "p1": 0.0, "p2": 0.0 } | ||
| }, | ||
| "extrinsics": { | ||
| "translation": [ | ||
| 4.034863921795162, 2.2777663107089894, 2.9551143733918663 | ||
| ], | ||
| "rotation": [ | ||
| -132.15360745910087, -8.172752500708558, -5.298590495090165 | ||
| ], | ||
| "scale": [1.0, 1.0, 1.0] | ||
| } | ||
| } | ||
| ] | ||
| } | ||
| ] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -15,5 +15,9 @@ | |
| "logging": { | ||
| "level": "info" | ||
| } | ||
| }, | ||
| "scenes": { | ||
| "source": "file", | ||
| "file_path": "scenes.json" | ||
| } | ||
| } | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,58 @@ | ||
| // SPDX-FileCopyrightText: 2026 Intel Corporation | ||
| // SPDX-License-Identifier: Apache-2.0 | ||
|
|
||
| #pragma once | ||
|
|
||
| #include <optional> | ||
| #include <stdexcept> | ||
| #include <string> | ||
|
|
||
| #include <rapidjson/pointer.h> | ||
| #include <rapidjson/rapidjson.h> | ||
|
|
||
| namespace tracker::detail { | ||
|
|
||
| /** | ||
| * @brief Get optional value from JSON using pointer path. | ||
| * @tparam T Expected value type (std::string or double) | ||
| * @param doc The JSON value to query | ||
| * @param pointer JSON pointer path (e.g., "/intrinsics/fx") | ||
| * @return Optional containing value if found and correct type, nullopt otherwise | ||
| */ | ||
| template <typename T> | ||
| std::optional<T> get_value(const rapidjson::Value& doc, const char* pointer) { | ||
| rapidjson::Pointer ptr(pointer); | ||
| if (auto* val = ptr.Get(doc)) { | ||
| if constexpr (std::is_same_v<T, std::string>) { | ||
| if (val->IsString()) { | ||
| return std::string(val->GetString()); | ||
| } | ||
| } else if constexpr (std::is_same_v<T, double>) { | ||
| if (val->IsNumber()) { | ||
| return val->GetDouble(); | ||
| } | ||
| } | ||
| } | ||
| return std::nullopt; | ||
| } | ||
|
|
||
| /** | ||
| * @brief Get required value from JSON using pointer path. | ||
| * @tparam T Expected value type (std::string or double) | ||
| * @param doc The JSON value to query | ||
| * @param pointer JSON pointer path (e.g., "/uid") | ||
| * @param context Context string for error messages (e.g., "scene", "camera") | ||
| * @return Value if found and correct type | ||
| * @throws std::runtime_error if value missing or wrong type | ||
| */ | ||
| template <typename T> | ||
| T require_value(const rapidjson::Value& doc, const char* pointer, const char* context) { | ||
| auto result = get_value<T>(doc, pointer); | ||
| if (!result.has_value()) { | ||
| throw std::runtime_error(std::string(context) + " missing required '" + (pointer + 1) + | ||
| "' field"); | ||
| } | ||
| return result.value(); | ||
| } | ||
|
|
||
| } // namespace tracker::detail |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.