From a5cd3528b79823adffb240549013a1993035a26b Mon Sep 17 00:00:00 2001 From: chyoo Date: Tue, 22 Sep 2026 17:32:51 +0900 Subject: [PATCH] feat: add configurable VDO.Ninja overview and floating window focus --- backups/base-before-week3-1790056644137.json | 1684 ++++ ...-modules-weeks12-before-1790057939723.json | 5051 +++++++++++ ...se-week2-modules-before-1790057813646.json | 2464 +++++ ...rses-before-remote-week-1790057512454.json | 6781 ++++++++++++++ ...eleted-accidental-week4-1790058146944.json | 38 + ...ion-environments-before-1790058406756.json | 4941 ++++++++++ .../learning-steps-before-1790058657635.json | 8050 +++++++++++++++++ scripts/add-base-remote-development-week.cjs | 134 + scripts/copy-remote-development-week.cjs | 107 + scripts/enrich-curriculum-steps.cjs | 92 + scripts/reseed-base-nav2-curriculum.sql | 2 +- scripts/update-jetson-bridge-artifact-url.sql | 31 + src/curriculum/curriculum.service.ts | 2 + .../curriculum-learning-copy.spec.ts | 33 + .../dto/update-instructor-platform.dto.ts | 8 + src/instructor/instructor.controller.ts | 2 + src/instructor/instructor.service.ts | 46 +- src/instructor/platform-camera.spec.ts | 23 + src/instructor/platform-camera.ts | 24 + 19 files changed, 29510 insertions(+), 3 deletions(-) create mode 100644 backups/base-before-week3-1790056644137.json create mode 100644 backups/base-modules-weeks12-before-1790057939723.json create mode 100644 backups/course-week2-modules-before-1790057813646.json create mode 100644 backups/courses-before-remote-week-1790057512454.json create mode 100644 backups/deleted-accidental-week4-1790058146944.json create mode 100644 backups/education-environments-before-1790058406756.json create mode 100644 backups/learning-steps-before-1790058657635.json create mode 100644 scripts/add-base-remote-development-week.cjs create mode 100644 scripts/copy-remote-development-week.cjs create mode 100644 scripts/enrich-curriculum-steps.cjs create mode 100644 scripts/update-jetson-bridge-artifact-url.sql create mode 100644 src/instructor/curriculum-learning-copy.spec.ts create mode 100644 src/instructor/platform-camera.spec.ts create mode 100644 src/instructor/platform-camera.ts diff --git a/backups/base-before-week3-1790056644137.json b/backups/base-before-week3-1790056644137.json new file mode 100644 index 0000000..9ac012c --- /dev/null +++ b/backups/base-before-week3-1790056644137.json @@ -0,0 +1,1684 @@ +{ + "id": "4eb01197-7605-4c3b-9a92-f9a3942050bd", + "slug": "futuredrive-autonomy-basic", + "title": "NAV2 기반 자율주행 교육 과정", + "subtitle": "ROS2, 시뮬레이션, SLAM부터 경로 계획과 제어까지", + "description": "ROS2와 NAV2 기반 시뮬레이션 및 플랫폼 실습을 통해 자율주행 시스템의 핵심 흐름을 학습하고 팀 프로젝트로 검증합니다.", + "organizationName": "퓨처드라이브", + "teacherId": "d077267d-420d-4bf6-b2ef-4f79a68251b6", + "isActive": true, + "createdAt": "2026-06-30T09:58:46.538Z", + "updatedAt": "2026-06-30T09:58:47.035Z", + "weeks": [ + { + "id": "119a0983-d68d-4579-925e-60daed0e1dec", + "courseId": "4eb01197-7605-4c3b-9a92-f9a3942050bd", + "week": 1, + "title": "ROS2 & Simulation", + "tags": [ + "MK-mini", + "진행중" + ], + "progress": 0, + "state": "current", + "duration": "1주", + "github": "https://github.com/ros-navigation/navigation2", + "overview": "ROS2 통신 구조와 Gazebo 시뮬레이션 환경을 구성하고, LiDAR SLAM·위치추정·경로 계획·제어까지 NAV2 자율주행 파이프라인을 실습합니다.", + "deliverable": "NAV2 모듈 소스 변경 내역, SLAM 결과 맵, 목표 지점 주행 검증 화면 및 실행 로그를 제출합니다.", + "requiresSourceSubmission": true, + "createdAt": "2026-06-30T09:58:46.538Z", + "updatedAt": "2026-06-30T09:58:46.538Z", + "modules": [ + { + "id": "dd8acfbd-7f66-41b7-a5ef-60c0bc669825", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 1, + "category": "Control", + "name": "NAV2-Control", + "folderName": "[lms-nav2-gazebo-control]nav2-control_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-control.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-control/1.0.0/prebuilt/amd64/0ab85a58f37a922b/lms-nav2-gazebo-control-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-control-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "0ab85a58f37a922b493ce21676573e3a8fd339f99a74cce9c4cba58aff9b1e35" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=turtlebot3" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "31ac8bd3-6b92-44bb-955c-248cda322e61", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 2, + "category": "Localization", + "name": "NAV2-Localization", + "folderName": "[lms-nav2-gazebo-localization]nav2-localization_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-localization.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-localization/1.0.0/prebuilt/latest/lms-nav2-gazebo-localization-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-localization-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "44c8d50205f001a196870d03f44d435582b96c51eb4445e50cc8db6203b2c0c9" + } + ], + "defaultParameters": [ + "localization_mode:=amcl" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "618ceb2e-45b8-4220-8469-9d6947e2abba", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 3, + "category": "Map", + "name": "NAV2-Map", + "folderName": "[lms-nav2-gazebo-map]nav2-map_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-map.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-map/1.0.0/prebuilt/latest/lms-nav2-gazebo-map-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-map-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "f409ce54c40aeeed8cf3fc06251c2e321887b3ec5f5827dfb74897a62780582f" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "fb5cd244-e132-4d3d-8248-70534df07309", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 4, + "category": "Perception", + "name": "NAV2-Perception", + "folderName": "[lms-nav2-gazebo-perception]nav2-perception_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-perception.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-perception/1.0.0/prebuilt/amd64/d18d59ac77130be1/lms-nav2-gazebo-perception-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-perception-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d18d59ac77130be1da9d16cb0716fbf4b2837132de1765726200b3a57217034e" + } + ], + "defaultParameters": [ + "sim_mode:=true" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "71503810-840b-4a6b-8537-735067bbf62e", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 5, + "category": "Perception", + "name": "NAV2-Perception3D", + "folderName": "[lms-nav2-gazebo-perception3d]nav2-perception3d_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-perception3D.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-perception3d/1.0.0/prebuilt/latest/lms-nav2-gazebo-perception3d-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-perception3d-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "bab9f7383f44950b6cf6cd8f97b4ae2d3ba61571d6b37c10b24922cc0348a7cc" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-11T06:01:46.944Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "b4bb8026-da5f-4a57-a9b0-4dc667f6acb9", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 6, + "category": "Planning", + "name": "NAV2-Planning", + "folderName": "[lms-nav2-gazebo-planning]nav2-planning_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-planning.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-planning/1.0.0/prebuilt/amd64/d1c51b0f211e1420/lms-nav2-gazebo-planning-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-planning-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d1c51b0f211e14208882947dd3bf642dd8ce997f54b37dfc0a4c8d66bd84d608" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "ec932f99-8911-4327-bc55-e38805bfa88a", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 7, + "category": "Simulator", + "name": "NAV2-Gazebo", + "folderName": "[lms-nav2-gazebo-simulator]nav2-simulator_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-simulator.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-simulator/1.0.0/prebuilt/amd64/2c97e7672eaec755/lms-nav2-gazebo-simulator-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-simulator-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2c97e7672eaec755eb300442a77b18bbcbaf6e0d305257dc9974724049756756" + } + ], + "defaultParameters": [ + "gui:=false", + "platform:=turtlebot3" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "c4eaa655-ff69-4aed-9c74-41552d2845f1", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 8, + "category": "Localization", + "name": "NAV2-SLAM", + "folderName": "[lms-nav2-gazebo-slam]nav2-slam_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-slam.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-slam/1.0.0/prebuilt/amd64/e5aa22340e275d70/lms-nav2-gazebo-slam-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-slam-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "e5aa22340e275d7063e5cd96f974620354760082d22e80b9a58205085d88e337" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "fb3e7227-2da4-453d-8798-e5b7b9d99da9", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 9, + "category": "Localization", + "name": "NAV2-SLAM3D", + "folderName": "[lms-nav2-gazebo-slam3d]nav2-slam3d_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-slam3D.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-slam3d/1.0.0/prebuilt/latest/lms-nav2-gazebo-slam3d-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-slam3d-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "ed59e1e6b5e816403475c44672247cf8747c14edcbfcf7f1939d2b2de1d3263d" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-11T06:01:46.944Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "6be04dd5-8705-4eb5-96cc-b69282ca7b03", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 10, + "category": "Vehicle", + "name": "NAV2-TurtleBot3Burger", + "folderName": "[lms-nav2-gazebo-vehicle]nav2-vehicle_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-vehicle.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-vehicle/1.0.0/prebuilt/latest/lms-nav2-gazebo-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "42e8179172c178978e5ae5d48e189164f6b8a5030fdaa0eba497ca86a97e96bb" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "platform:=turtlebot3", + "level:=2d" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "bafcb2ea-e4f1-458b-bcb1-5c84306ae845", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 11, + "category": "Vehicle", + "name": "NAV2-MKMini", + "folderName": "[lms-nav2-mkmini]nav2-mkmini_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-mkmini.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-mkmini/1.0.0/prebuilt/amd64/lms-nav2-mkmini-build-install-amd64.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-mkmini-build-install-amd64.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "6094d2aa5188a28153452aec08e28870984b36c1bc0c06fec8091901f6d26856" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "platform:=mkmini", + "level:=2d" + ], + "dockerImage": "future-nav2:humble-jetson_orin", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "6bcb11f1-28ce-4eff-aaa0-81737199a807", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 12, + "category": "Gui", + "name": "NAV2-Rviz2", + "folderName": "[lms-nav2-gazebo-gui]nav2-rviz2_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-gui.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-gui/1.0.0/prebuilt/latest/lms-nav2-gazebo-gui-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-gui-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2a816b08d9f39057a96641ce7ace341ce409f77e5043abe074e2e21ecaa871ca" + } + ], + "defaultParameters": [ + "rviz_config:=nav2" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-07T00:34:42.804Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "b77f3bd0-c7f5-47a6-aaf1-4c97b8d9ee61", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 13, + "category": "System", + "name": "NAV2-Yahboom-Agent", + "folderName": "[lms-nav2-yahboom-agent]yahboom_agent_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-agent.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-agent/1.0.0/prebuilt/arm64/ec2b2c4578fc71b9/lms-nav2-yahboom-agent-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-agent-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "ec2b2c4578fc71b95c720dcacca5e7c7c5d08400fc80ef21a16097d31869cf9d" + } + ], + "defaultParameters": [ + "serial_device:=/dev/ttyUSB0", + "baudrate:=921600" + ], + "dockerImage": "future-nav2:humble-yahboom-agent", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "55636ffe-88c4-4c0a-8d9b-96b678b9fb53", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 14, + "category": "Vehicle", + "name": "NAV2-Yahboom", + "folderName": "[lms-nav2-yahboom-vehicle]yahboom_vehicle_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-vehicle.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-vehicle/1.0.0/prebuilt/amd64/d54368061d520794/lms-nav2-yahboom-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d54368061d52079489a8d686461e6672ebb84ca0f531fb71f835717b3f2a031f" + }, + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-vehicle/1.0.0/prebuilt/arm64/f409c0b61ca9497d/lms-nav2-yahboom-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "f409c0b61ca9497d4cfd1c2af9f4e137d9316364cab664bb908818f6ecab8331" + } + ], + "defaultParameters": [ + "sim_mode:=false" + ], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:55:16.092Z" + }, + { + "id": "e42f92d1-0d5c-4d3f-a66f-0d1fe317637d", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 15, + "category": "Localization", + "name": "NAV2-Yahboom-Slam", + "folderName": "[lms-nav2-yahboom-slam]yahboom_slam_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-slam.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-slam/1.0.0/prebuilt/arm64/f6444fe604f50ee0/lms-nav2-yahboom-slam-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-slam-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "f6444fe604f50ee00831fc7db121bbebfea6be920b55a498ddc54fc317093c77" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "356f971a-8750-45f1-9ddd-a3c70bd72912", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 16, + "category": "Map", + "name": "NAV2-Yahboom-Map", + "folderName": "[lms-nav2-yahboom-map]yahboom_map_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-map.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-map/1.0.0/prebuilt/arm64/111981b9ab460ce4/lms-nav2-yahboom-map-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-map-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "111981b9ab460ce450334e5c367e97b7e757ef55d84330ca030b096d4a9c4792" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "421db22e-154d-4df9-8190-ccb65dec6b68", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 17, + "category": "Localization", + "name": "NAV2-Yahboom-Localization", + "folderName": "[lms-nav2-yahboom-localization]yahboom_localization_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-localization.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-localization/1.0.0/prebuilt/arm64/d6534d48841a751c/lms-nav2-yahboom-localization-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-localization-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "d6534d48841a751cb2e21fa73785df61fb81815b406c9c4152c9cbfd0ae59e48" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "fe514053-5b6b-4dad-b6d7-0191fa5e8ef4", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 18, + "category": "Planning", + "name": "NAV2-Yahboom-Planning", + "folderName": "[lms-nav2-yahboom-planning]yahboom_planning_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-planning.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-planning/1.0.0/prebuilt/arm64/050f4ed4acba795a/lms-nav2-yahboom-planning-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-planning-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "050f4ed4acba795affec8306b7eef116e9e86fd0f42e492da27c7fc624dc8570" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "276f4df2-f214-4ba9-aea6-04e23491a569", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 19, + "category": "Control", + "name": "NAV2-Yahboom-Control", + "folderName": "[lms-nav2-yahboom-control]yahboom_control_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-control.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-control/1.0.0/prebuilt/arm64/be7147024d890249/lms-nav2-yahboom-control-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-control-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "be7147024d89024915f1481a47a0909ea1d06196ef9e9797f260739999e09b3f" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "b1e9b92f-bbab-4759-9e9b-637dbe12066c", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 20, + "category": "Perception", + "name": "NAV2-Yahboom-Camera", + "folderName": "[lms-nav2-yahboom-camera]yahboom_camera_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-camera.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-camera/1.0.0/prebuilt/arm64/b950a71d5babcdb3/lms-nav2-yahboom-camera-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-camera-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "b950a71d5babcdb37e46c7674fb80d0ae8c076e7d7c1186042b1b1f6e7ee2d04" + } + ], + "defaultParameters": [ + "video_device:=/dev/video0" + ], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + } + ], + "topics": [ + { + "id": "8589e6da-b4e8-41bf-9fbe-895a294c5ee0", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "ROS2 기초", + "detail": "ROS Topic, Service, Action 통신과 TF 정의, ROS2 패키지 및 tree 구조를 실습합니다.", + "sortOrder": 1 + }, + { + "id": "894c7578-19d4-4d0c-8fdc-4e1741c101dd", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "Sensor Processing", + "detail": "LiDAR와 카메라 등 센서 데이터 처리 흐름과 Calibration 기초를 확인합니다.", + "sortOrder": 2 + }, + { + "id": "e87af89a-5161-43bf-a4a3-54d87506dccf", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "Simulation 환경 구축 Part 1", + "detail": "Gazebo 월드, 로봇 모델, 센서 토픽을 구성해 시뮬레이션 실습 환경을 만듭니다.", + "sortOrder": 3 + }, + { + "id": "f270cddf-3085-4ac8-8fd0-7fdcc7b0fcc7", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "Simulation 환경 구축 Part 2", + "detail": "시뮬레이션에서 활용할 수 있는 모빌리티 플랫폼과 실행 모듈 구성을 점검합니다.", + "sortOrder": 4 + }, + { + "id": "77c00ffb-0753-4ade-9304-fe7ae187932f", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "LiDAR SLAM", + "detail": "센서 데이터와 SLAM 알고리즘을 활용해 자율주행용 2D Map을 구축합니다.", + "sortOrder": 5 + }, + { + "id": "fd677129-6030-4013-8014-642b26f81799", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "LiDAR Localization", + "detail": "구축한 Map과 실시간 LiDAR 데이터를 이용해 현재 위치를 추정합니다.", + "sortOrder": 6 + }, + { + "id": "f05ec8bf-5e1c-4e4e-9073-f3ef06b516ae", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "Parameter Tuning", + "detail": "모듈 파라미터를 변경하고 결과를 비교해 알고리즘을 튜닝합니다.", + "sortOrder": 7 + }, + { + "id": "507221da-fd06-495d-8be5-c7ef1dee1cfd", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "[심화] Camera based SLAM", + "detail": "카메라 기반 Map 구축과 위치인식의 입력·출력 구조를 분석합니다.", + "sortOrder": 8 + }, + { + "id": "ee73c3ca-3a0d-423f-aa9d-f18b99bfd21e", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "Occupancy Map", + "detail": "장애물 인식을 위한 Occupancy Map과 costmap 반영 과정을 실습합니다.", + "sortOrder": 9 + }, + { + "id": "3d0dc30a-3279-4359-88bf-d56e23d52dd4", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "Planning", + "detail": "장애물 충돌 없이 목표 지점으로 이동하기 위한 전역·지역 경로 계획을 실습합니다.", + "sortOrder": 10 + }, + { + "id": "c445c2cf-fe70-4198-99ee-86c850c310b2", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "Control", + "detail": "생성한 경로를 추종하도록 속도 명령을 만들고 주행 결과를 검증합니다.", + "sortOrder": 11 + }, + { + "id": "76165a4c-1e99-4842-bbb7-c07704777516", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "[심화] 딥러닝 기반 객체 인식", + "detail": "딥러닝 기반 객체 인식 결과를 자율주행 데이터 흐름에 반영하는 방법을 학습합니다.", + "sortOrder": 12 + } + ], + "practices": [ + { + "id": "a3cacb48-2d1d-47c9-bf22-d36438d1ca3f", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "ROS2와 Gazebo 실행 환경", + "description": "Topic, Service, Action, TF를 확인하고 TurtleBot3 Gazebo 환경을 실행합니다.", + "sortOrder": 1 + }, + { + "id": "a4445367-9679-4af4-a21a-43b02be55c49", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "LiDAR SLAM과 Localization", + "description": "맵을 생성·저장하고 저장된 맵에서 AMCL 기반 위치추정을 검증합니다.", + "sortOrder": 2 + }, + { + "id": "7553cc6e-46f0-48f3-b0f9-52ae899aa864", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "경로 계획과 제어", + "description": "목표 지점을 설정하고 장애물 회피, 경로 계획, 제어 명령을 비교합니다.", + "sortOrder": 3 + } + ], + "references": [] + }, + { + "id": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "courseId": "4eb01197-7605-4c3b-9a92-f9a3942050bd", + "week": 2, + "title": "Autonomy Studio 팀 프로젝트", + "tags": [ + "MK-mini", + "진행예정" + ], + "progress": 0, + "state": "locked", + "duration": "1주", + "github": "https://github.com/ros-navigation/navigation2", + "overview": "3~4인 팀으로 자율주행 알고리즘이 필요한 문제 상황을 정의하고, 센서 구성과 NAV2 모듈을 조합해 시뮬레이션과 플랫폼에서 검증합니다.", + "deliverable": "팀 프로젝트 소스, 시스템 구성도, 시뮬레이션 및 플랫폼 주행 검증 결과, 발표 자료를 제출합니다.", + "requiresSourceSubmission": true, + "createdAt": "2026-06-30T09:58:46.538Z", + "updatedAt": "2026-06-30T09:58:46.538Z", + "modules": [ + { + "id": "238bd78c-14f7-4707-9964-4b8ace1cfb42", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 1, + "category": "Control", + "name": "NAV2-Control", + "folderName": "[lms-nav2-gazebo-control]nav2-control_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-control.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-control/1.0.0/prebuilt/amd64/0ab85a58f37a922b/lms-nav2-gazebo-control-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-control-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "0ab85a58f37a922b493ce21676573e3a8fd339f99a74cce9c4cba58aff9b1e35" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=turtlebot3" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "c892dd62-6cbe-43c0-84ce-bfb2086a872a", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 2, + "category": "Localization", + "name": "NAV2-Localization", + "folderName": "[lms-nav2-gazebo-localization]nav2-localization_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-localization.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-localization/1.0.0/prebuilt/latest/lms-nav2-gazebo-localization-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-localization-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "44c8d50205f001a196870d03f44d435582b96c51eb4445e50cc8db6203b2c0c9" + } + ], + "defaultParameters": [ + "localization_mode:=amcl" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "611ba2e2-6034-4121-bb9b-716df5e0ad96", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 3, + "category": "Map", + "name": "NAV2-Map", + "folderName": "[lms-nav2-gazebo-map]nav2-map_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-map.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-map/1.0.0/prebuilt/latest/lms-nav2-gazebo-map-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-map-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "f409ce54c40aeeed8cf3fc06251c2e321887b3ec5f5827dfb74897a62780582f" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "23417175-c667-452c-8398-1542ad036a94", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 4, + "category": "Perception", + "name": "NAV2-Perception", + "folderName": "[lms-nav2-gazebo-perception]nav2-perception_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-perception.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-perception/1.0.0/prebuilt/amd64/d18d59ac77130be1/lms-nav2-gazebo-perception-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-perception-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d18d59ac77130be1da9d16cb0716fbf4b2837132de1765726200b3a57217034e" + } + ], + "defaultParameters": [ + "sim_mode:=true" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "673cd838-f8c4-4fdc-88b9-c5b3f83c5886", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 5, + "category": "Perception", + "name": "NAV2-Perception3D", + "folderName": "[lms-nav2-gazebo-perception3d]nav2-perception3d_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-perception3D.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-perception3d/1.0.0/prebuilt/latest/lms-nav2-gazebo-perception3d-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-perception3d-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "bab9f7383f44950b6cf6cd8f97b4ae2d3ba61571d6b37c10b24922cc0348a7cc" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-11T06:01:46.967Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "d1e29d86-a9ae-40b7-b876-f3c99cf656c8", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 6, + "category": "Planning", + "name": "NAV2-Planning", + "folderName": "[lms-nav2-gazebo-planning]nav2-planning_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-planning.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-planning/1.0.0/prebuilt/amd64/d1c51b0f211e1420/lms-nav2-gazebo-planning-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-planning-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d1c51b0f211e14208882947dd3bf642dd8ce997f54b37dfc0a4c8d66bd84d608" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "04161c08-f266-445b-a1f1-a68272ee4988", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 7, + "category": "Simulator", + "name": "NAV2-Gazebo", + "folderName": "[lms-nav2-gazebo-simulator]nav2-simulator_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-simulator.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-simulator/1.0.0/prebuilt/amd64/2c97e7672eaec755/lms-nav2-gazebo-simulator-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-simulator-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2c97e7672eaec755eb300442a77b18bbcbaf6e0d305257dc9974724049756756" + } + ], + "defaultParameters": [ + "gui:=false", + "platform:=turtlebot3" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "4ee736db-533f-485b-abe6-62ed4eba5aae", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 8, + "category": "Localization", + "name": "NAV2-SLAM", + "folderName": "[lms-nav2-gazebo-slam]nav2-slam_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-slam.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-slam/1.0.0/prebuilt/amd64/e5aa22340e275d70/lms-nav2-gazebo-slam-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-slam-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "e5aa22340e275d7063e5cd96f974620354760082d22e80b9a58205085d88e337" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "a98a6eab-f771-4586-b8b4-4ab61300a762", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 9, + "category": "Localization", + "name": "NAV2-SLAM3D", + "folderName": "[lms-nav2-gazebo-slam3d]nav2-slam3d_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-slam3D.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-slam3d/1.0.0/prebuilt/latest/lms-nav2-gazebo-slam3d-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-slam3d-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "ed59e1e6b5e816403475c44672247cf8747c14edcbfcf7f1939d2b2de1d3263d" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-11T06:01:46.967Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "ff32df67-203c-4781-b770-68d19f5b4d5e", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 10, + "category": "Vehicle", + "name": "NAV2-TurtleBot3Burger", + "folderName": "[lms-nav2-gazebo-vehicle]nav2-vehicle_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-vehicle.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-vehicle/1.0.0/prebuilt/latest/lms-nav2-gazebo-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "42e8179172c178978e5ae5d48e189164f6b8a5030fdaa0eba497ca86a97e96bb" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "platform:=turtlebot3", + "level:=2d" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "921e73b2-ddc6-4fe0-84d2-2efb401ebf32", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 11, + "category": "Vehicle", + "name": "NAV2-MKMini", + "folderName": "[lms-nav2-mkmini]nav2-mkmini_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-mkmini.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-mkmini/1.0.0/prebuilt/amd64/lms-nav2-mkmini-build-install-amd64.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-mkmini-build-install-amd64.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "6094d2aa5188a28153452aec08e28870984b36c1bc0c06fec8091901f6d26856" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "platform:=mkmini", + "level:=2d" + ], + "dockerImage": "future-nav2:humble-jetson_orin", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "fadfb101-884b-4566-ad99-71f6ec4f2b14", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 12, + "category": "Gui", + "name": "NAV2-Rviz2", + "folderName": "[lms-nav2-gazebo-gui]nav2-rviz2_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-gui.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-gui/1.0.0/prebuilt/latest/lms-nav2-gazebo-gui-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-gui-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2a816b08d9f39057a96641ce7ace341ce409f77e5043abe074e2e21ecaa871ca" + } + ], + "defaultParameters": [ + "rviz_config:=nav2" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-07T00:34:42.804Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "517cdc75-6e49-4878-baf4-7703155bd45d", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 13, + "category": "System", + "name": "NAV2-Yahboom-Agent", + "folderName": "[lms-nav2-yahboom-agent]yahboom_agent_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-agent.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-agent/1.0.0/prebuilt/arm64/ec2b2c4578fc71b9/lms-nav2-yahboom-agent-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-agent-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "ec2b2c4578fc71b95c720dcacca5e7c7c5d08400fc80ef21a16097d31869cf9d" + } + ], + "defaultParameters": [ + "serial_device:=/dev/ttyUSB0", + "baudrate:=921600" + ], + "dockerImage": "future-nav2:humble-yahboom-agent", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "1072caee-d064-4c9b-8064-810ef90d7498", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 14, + "category": "Vehicle", + "name": "NAV2-Yahboom", + "folderName": "[lms-nav2-yahboom-vehicle]yahboom_vehicle_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-vehicle.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-vehicle/1.0.0/prebuilt/amd64/d54368061d520794/lms-nav2-yahboom-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d54368061d52079489a8d686461e6672ebb84ca0f531fb71f835717b3f2a031f" + }, + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-vehicle/1.0.0/prebuilt/arm64/f409c0b61ca9497d/lms-nav2-yahboom-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "f409c0b61ca9497d4cfd1c2af9f4e137d9316364cab664bb908818f6ecab8331" + } + ], + "defaultParameters": [ + "sim_mode:=false" + ], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:55:16.092Z" + }, + { + "id": "a046ffd3-1e0c-4fd7-943f-3af60a776a7f", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 15, + "category": "Localization", + "name": "NAV2-Yahboom-Slam", + "folderName": "[lms-nav2-yahboom-slam]yahboom_slam_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-slam.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-slam/1.0.0/prebuilt/arm64/f6444fe604f50ee0/lms-nav2-yahboom-slam-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-slam-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "f6444fe604f50ee00831fc7db121bbebfea6be920b55a498ddc54fc317093c77" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "715ef9e8-701f-40d0-987c-6ef272902c70", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 16, + "category": "Map", + "name": "NAV2-Yahboom-Map", + "folderName": "[lms-nav2-yahboom-map]yahboom_map_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-map.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-map/1.0.0/prebuilt/arm64/111981b9ab460ce4/lms-nav2-yahboom-map-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-map-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "111981b9ab460ce450334e5c367e97b7e757ef55d84330ca030b096d4a9c4792" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "dcd39368-069a-4b3d-a31d-510628edce8b", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 17, + "category": "Localization", + "name": "NAV2-Yahboom-Localization", + "folderName": "[lms-nav2-yahboom-localization]yahboom_localization_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-localization.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-localization/1.0.0/prebuilt/arm64/d6534d48841a751c/lms-nav2-yahboom-localization-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-localization-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "d6534d48841a751cb2e21fa73785df61fb81815b406c9c4152c9cbfd0ae59e48" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "fa788eeb-6ba4-4f69-89aa-ddf0c6b875a5", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 18, + "category": "Planning", + "name": "NAV2-Yahboom-Planning", + "folderName": "[lms-nav2-yahboom-planning]yahboom_planning_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-planning.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-planning/1.0.0/prebuilt/arm64/050f4ed4acba795a/lms-nav2-yahboom-planning-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-planning-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "050f4ed4acba795affec8306b7eef116e9e86fd0f42e492da27c7fc624dc8570" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "0a4f97e8-3dd6-4dd8-aa76-d327347c4dc7", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 19, + "category": "Control", + "name": "NAV2-Yahboom-Control", + "folderName": "[lms-nav2-yahboom-control]yahboom_control_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-control.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-control/1.0.0/prebuilt/arm64/be7147024d890249/lms-nav2-yahboom-control-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-control-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "be7147024d89024915f1481a47a0909ea1d06196ef9e9797f260739999e09b3f" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "de01197b-d7b1-4ebb-812b-4943befb8539", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 20, + "category": "Perception", + "name": "NAV2-Yahboom-Camera", + "folderName": "[lms-nav2-yahboom-camera]yahboom_camera_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-camera.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-camera/1.0.0/prebuilt/arm64/b950a71d5babcdb3/lms-nav2-yahboom-camera-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-camera-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "b950a71d5babcdb37e46c7674fb80d0ae8c076e7d7c1186042b1b1f6e7ee2d04" + } + ], + "defaultParameters": [ + "video_device:=/dev/video0" + ], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + } + ], + "topics": [ + { + "id": "4d081569-b820-44f5-82a2-b09180da6b6b", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "title": "프로젝트 주제와 역할 분담", + "detail": "팀별 자율주행 문제 상황과 목표, 역할, 검증 기준을 정의합니다.", + "sortOrder": 1 + }, + { + "id": "1655d608-2828-45b3-91a6-4986a3f85581", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "title": "센서·모듈 구성 설계", + "detail": "센서 입력과 NAV2 모듈 조합, ROS 토픽 및 실행 순서를 설계합니다.", + "sortOrder": 2 + }, + { + "id": "0e053b97-39a0-4ff1-9def-185082626827", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "title": "알고리즘 구현과 튜닝", + "detail": "SLAM, Localization, Planning, Control 파라미터를 수정하고 성능을 비교합니다.", + "sortOrder": 3 + }, + { + "id": "9379f099-ec25-442d-ab6e-81a7002831ca", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "title": "시뮬레이션·플랫폼 검증", + "detail": "Gazebo 시뮬레이션과 실제 플랫폼에서 주행 시나리오를 검증합니다.", + "sortOrder": 4 + }, + { + "id": "edc67d22-32ef-46f8-8164-66f2328f6bb5", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "title": "결과 제출과 발표", + "detail": "소스, 실행 로그, 검증 결과를 정리해 팀 프로젝트 결과를 제출하고 발표합니다.", + "sortOrder": 5 + } + ], + "practices": [ + { + "id": "e63803b3-b888-44b9-9cf0-13d9783eab70", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "title": "팀 자율주행 시나리오 구현", + "description": "팀별 시나리오에 맞춰 NAV2 모듈을 구성하고 소스를 수정합니다.", + "sortOrder": 1 + }, + { + "id": "49a1f5db-0f86-4be3-8a3b-9866ef86b80d", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "title": "통합 주행 검증", + "description": "시뮬레이션과 플랫폼에서 재현 가능한 주행 결과를 확보합니다.", + "sortOrder": 2 + } + ], + "references": [] + } + ], + "environmentProfiles": [ + { + "id": "89ff37ab-bf54-43bb-87c8-c965237362bd", + "courseId": "4eb01197-7605-4c3b-9a92-f9a3942050bd", + "week": 1, + "platformKey": "NAV2", + "profileType": "NAV2", + "name": "로컬", + "config": { + "type": "NAV2", + "bridge": { + "env": { + "ROBOT_STACK": "nav2" + }, + "name": "nav2-ros-bridge", + "port": 8765, + "image": "slam-ros-bridge:latest" + }, + "target": "local", + "viewer": { + "stack": "nav2" + }, + "runtime": { + "steps": [], + "containers": [] + }, + "moduleSet": { + "target": "local", + "modules": [ + { + "id": "dd8acfbd-7f66-41b7-a5ef-60c0bc669825" + }, + { + "id": "31ac8bd3-6b92-44bb-955c-248cda322e61" + }, + { + "id": "618ceb2e-45b8-4220-8469-9d6947e2abba" + }, + { + "id": "fb5cd244-e132-4d3d-8248-70534df07309" + }, + { + "id": "b4bb8026-da5f-4a57-a9b0-4dc667f6acb9" + }, + { + "id": "ec932f99-8911-4327-bc55-e38805bfa88a" + }, + { + "id": "c4eaa655-ff69-4aed-9c74-41552d2845f1" + }, + { + "id": "6be04dd5-8705-4eb5-96cc-b69282ca7b03" + }, + { + "id": "bafcb2ea-e4f1-458b-bcb1-5c84306ae845", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "platform:=mkmini", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "6bcb11f1-28ce-4eff-aaa0-81737199a807", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "rviz_config:=nav2" + ] + } + ], + "includeUnlisted": false + }, + "runtimeImages": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/nav2/gazebo/latest/future-nav2-gazebo-humble.tar.zst", + "image": "future-nav2-gazebo:humble", + "fileName": "future-nav2-gazebo-humble.tar.zst", + "required": true, + "checksumSha256": "54230e039c1fa5dc82615cef3828c5acae7b8bea8e921b70cfdc5351d8301644" + } + ] + }, + "enabled": true, + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-08-11T06:47:47.270Z" + }, + { + "id": "336b8cf4-57b2-4bb2-b809-8007dddd630f", + "courseId": "4eb01197-7605-4c3b-9a92-f9a3942050bd", + "week": 1, + "platformKey": "PLATFORM", + "profileType": "PLATFORM", + "name": "플랫폼", + "config": { + "type": "PLATFORM", + "bridge": { + "env": { + "ROBOT_STACK": "nav2" + }, + "name": "nav2-ros-bridge", + "port": 8765, + "image": "slam-ros-bridge:latest" + }, + "target": "remote-jetson", + "viewer": { + "stack": "nav2" + }, + "moduleSet": { + "target": "platform", + "modules": [ + { + "id": "dd8acfbd-7f66-41b7-a5ef-60c0bc669825", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "31ac8bd3-6b92-44bb-955c-248cda322e61" + }, + { + "id": "618ceb2e-45b8-4220-8469-9d6947e2abba" + }, + { + "id": "fb5cd244-e132-4d3d-8248-70534df07309", + "defaultParameters": [ + "sim_mode:=false" + ] + }, + { + "id": "71503810-840b-4a6b-8537-735067bbf62e" + }, + { + "id": "b4bb8026-da5f-4a57-a9b0-4dc667f6acb9" + }, + { + "id": "c4eaa655-ff69-4aed-9c74-41552d2845f1" + }, + { + "id": "fb3e7227-2da4-453d-8798-e5b7b9d99da9" + }, + { + "id": "bafcb2ea-e4f1-458b-bcb1-5c84306ae845" + } + ], + "includeUnlisted": false + }, + "runtimeKind": "real", + "runtimeImages": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/slam-ros-bridge/arm64/20260819-0659d4cf5578/slam-ros-bridge-jetson-orin.tar.zst", + "image": "slam-ros-bridge:jetson_orin", + "fileName": "slam-ros-bridge-jetson-orin.tar.zst", + "required": true, + "checksumSha256": "0659d4cf5578c43bc9c25e4a4fc5d226ccd5b7bec43becfdff83b5390717114e" + }, + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/nav2/jetson-orin/latest/future-nav2-humble-jetson-orin.tar.zst", + "image": "future-nav2:humble-jetson_orin", + "fileName": "future-nav2-humble-jetson-orin.tar.zst", + "required": true + } + ] + }, + "enabled": true, + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-16T05:04:25.399Z" + }, + { + "id": "19175b62-d8a2-458b-9a63-8b3fa9d8889e", + "courseId": "4eb01197-7605-4c3b-9a92-f9a3942050bd", + "week": 2, + "platformKey": "NAV2", + "profileType": "NAV2", + "name": "로컬", + "config": { + "type": "NAV2", + "bridge": { + "env": { + "ROBOT_STACK": "nav2" + }, + "name": "nav2-ros-bridge", + "port": 8765, + "image": "slam-ros-bridge:latest" + }, + "target": "local", + "viewer": { + "stack": "nav2" + }, + "runtime": { + "steps": [], + "containers": [] + }, + "moduleSet": { + "target": "local", + "modules": [ + { + "id": "238bd78c-14f7-4707-9964-4b8ace1cfb42" + }, + { + "id": "c892dd62-6cbe-43c0-84ce-bfb2086a872a" + }, + { + "id": "611ba2e2-6034-4121-bb9b-716df5e0ad96" + }, + { + "id": "23417175-c667-452c-8398-1542ad036a94" + }, + { + "id": "d1e29d86-a9ae-40b7-b876-f3c99cf656c8" + }, + { + "id": "04161c08-f266-445b-a1f1-a68272ee4988" + }, + { + "id": "4ee736db-533f-485b-abe6-62ed4eba5aae" + }, + { + "id": "ff32df67-203c-4781-b770-68d19f5b4d5e" + }, + { + "id": "921e73b2-ddc6-4fe0-84d2-2efb401ebf32", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "platform:=mkmini", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "fadfb101-884b-4566-ad99-71f6ec4f2b14", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "rviz_config:=nav2" + ] + } + ], + "includeUnlisted": false + }, + "runtimeImages": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/nav2/gazebo/latest/future-nav2-gazebo-humble.tar.zst", + "image": "future-nav2-gazebo:humble", + "fileName": "future-nav2-gazebo-humble.tar.zst", + "required": true, + "checksumSha256": "54230e039c1fa5dc82615cef3828c5acae7b8bea8e921b70cfdc5351d8301644" + } + ] + }, + "enabled": true, + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-09T06:53:28.516Z" + }, + { + "id": "377e58bf-039b-48f9-8db0-48dba4ba5549", + "courseId": "4eb01197-7605-4c3b-9a92-f9a3942050bd", + "week": 2, + "platformKey": "PLATFORM", + "profileType": "PLATFORM", + "name": "플랫폼", + "config": { + "type": "PLATFORM", + "bridge": { + "env": { + "ROBOT_STACK": "nav2" + }, + "name": "nav2-ros-bridge", + "port": 8765, + "image": "slam-ros-bridge:latest" + }, + "target": "remote-jetson", + "viewer": { + "stack": "nav2" + }, + "moduleSet": { + "target": "platform", + "modules": [ + { + "id": "238bd78c-14f7-4707-9964-4b8ace1cfb42", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "c892dd62-6cbe-43c0-84ce-bfb2086a872a" + }, + { + "id": "611ba2e2-6034-4121-bb9b-716df5e0ad96" + }, + { + "id": "23417175-c667-452c-8398-1542ad036a94", + "defaultParameters": [ + "sim_mode:=false" + ] + }, + { + "id": "673cd838-f8c4-4fdc-88b9-c5b3f83c5886" + }, + { + "id": "d1e29d86-a9ae-40b7-b876-f3c99cf656c8" + }, + { + "id": "4ee736db-533f-485b-abe6-62ed4eba5aae" + }, + { + "id": "a98a6eab-f771-4586-b8b4-4ab61300a762" + }, + { + "id": "921e73b2-ddc6-4fe0-84d2-2efb401ebf32" + } + ], + "includeUnlisted": false + }, + "runtimeKind": "real", + "runtimeImages": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/slam-ros-bridge/arm64/20260819-0659d4cf5578/slam-ros-bridge-jetson-orin.tar.zst", + "image": "slam-ros-bridge:jetson_orin", + "fileName": "slam-ros-bridge-jetson-orin.tar.zst", + "required": true, + "checksumSha256": "0659d4cf5578c43bc9c25e4a4fc5d226ccd5b7bec43becfdff83b5390717114e" + }, + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/nav2/jetson-orin/latest/future-nav2-humble-jetson-orin.tar.zst", + "image": "future-nav2:humble-jetson_orin", + "fileName": "future-nav2-humble-jetson-orin.tar.zst", + "required": true + } + ] + }, + "enabled": true, + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-16T05:04:25.399Z" + } + ], + "weekMaps": [ + { + "id": "9c285104-c28f-441e-82b8-eea9b7dccb1e", + "courseId": "4eb01197-7605-4c3b-9a92-f9a3942050bd", + "week": 1, + "mapKey": "nav2-turtlebot3-world", + "sortOrder": 1, + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-08-04T01:27:57.076Z" + }, + { + "id": "560cce3d-22d0-4511-9ec7-630e60530393", + "courseId": "4eb01197-7605-4c3b-9a92-f9a3942050bd", + "week": 1, + "mapKey": "nav2-turtlebot3-house", + "sortOrder": 2, + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-08-04T01:27:57.076Z" + }, + { + "id": "e5898473-568c-4986-95b0-63b908c6e023", + "courseId": "4eb01197-7605-4c3b-9a92-f9a3942050bd", + "week": 2, + "mapKey": "nav2-turtlebot3-world", + "sortOrder": 1, + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-08-04T01:27:57.076Z" + }, + { + "id": "8fbffe1c-7ed7-463a-a1bc-c838522853d0", + "courseId": "4eb01197-7605-4c3b-9a92-f9a3942050bd", + "week": 2, + "mapKey": "nav2-turtlebot3-house", + "sortOrder": 2, + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-08-04T01:27:57.076Z" + } + ] +} \ No newline at end of file diff --git a/backups/base-modules-weeks12-before-1790057939723.json b/backups/base-modules-weeks12-before-1790057939723.json new file mode 100644 index 0000000..73305e2 --- /dev/null +++ b/backups/base-modules-weeks12-before-1790057939723.json @@ -0,0 +1,5051 @@ +[ + { + "id": "4eb01197-7605-4c3b-9a92-f9a3942050bd", + "slug": "futuredrive-autonomy-basic", + "title": "NAV2 기반 자율주행 교육 과정", + "subtitle": "ROS2, 시뮬레이션, SLAM부터 경로 계획과 제어까지", + "description": "ROS2와 NAV2 기반 시뮬레이션 및 플랫폼 실습을 통해 자율주행 시스템의 핵심 흐름을 학습하고 팀 프로젝트로 검증합니다.", + "organizationName": "퓨처드라이브", + "teacherId": "d077267d-420d-4bf6-b2ef-4f79a68251b6", + "isActive": true, + "createdAt": "2026-06-30T09:58:46.538Z", + "updatedAt": "2026-06-30T09:58:47.035Z", + "weeks": [ + { + "id": "119a0983-d68d-4579-925e-60daed0e1dec", + "courseId": "4eb01197-7605-4c3b-9a92-f9a3942050bd", + "week": 1, + "title": "ROS2 & Simulation", + "tags": [ + "MK-mini", + "진행중" + ], + "progress": 0, + "state": "current", + "duration": "1주", + "github": "https://github.com/ros-navigation/navigation2", + "overview": "ROS2 통신 구조와 Gazebo 시뮬레이션 환경을 구성하고, LiDAR SLAM·위치추정·경로 계획·제어까지 NAV2 자율주행 파이프라인을 실습합니다.", + "deliverable": "NAV2 모듈 소스 변경 내역, SLAM 결과 맵, 목표 지점 주행 검증 화면 및 실행 로그를 제출합니다.", + "requiresSourceSubmission": true, + "createdAt": "2026-06-30T09:58:46.538Z", + "updatedAt": "2026-06-30T09:58:46.538Z", + "modules": [ + { + "id": "dd8acfbd-7f66-41b7-a5ef-60c0bc669825", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 1, + "category": "Control", + "name": "NAV2-Control", + "folderName": "[lms-nav2-gazebo-control]nav2-control_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-control.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-control/1.0.0/prebuilt/amd64/0ab85a58f37a922b/lms-nav2-gazebo-control-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-control-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "0ab85a58f37a922b493ce21676573e3a8fd339f99a74cce9c4cba58aff9b1e35" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=turtlebot3" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "31ac8bd3-6b92-44bb-955c-248cda322e61", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 2, + "category": "Localization", + "name": "NAV2-Localization", + "folderName": "[lms-nav2-gazebo-localization]nav2-localization_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-localization.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-localization/1.0.0/prebuilt/latest/lms-nav2-gazebo-localization-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-localization-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "44c8d50205f001a196870d03f44d435582b96c51eb4445e50cc8db6203b2c0c9" + } + ], + "defaultParameters": [ + "localization_mode:=amcl" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "618ceb2e-45b8-4220-8469-9d6947e2abba", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 3, + "category": "Map", + "name": "NAV2-Map", + "folderName": "[lms-nav2-gazebo-map]nav2-map_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-map.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-map/1.0.0/prebuilt/latest/lms-nav2-gazebo-map-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-map-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "f409ce54c40aeeed8cf3fc06251c2e321887b3ec5f5827dfb74897a62780582f" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "fb5cd244-e132-4d3d-8248-70534df07309", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 4, + "category": "Perception", + "name": "NAV2-Perception", + "folderName": "[lms-nav2-gazebo-perception]nav2-perception_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-perception.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-perception/1.0.0/prebuilt/amd64/d18d59ac77130be1/lms-nav2-gazebo-perception-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-perception-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d18d59ac77130be1da9d16cb0716fbf4b2837132de1765726200b3a57217034e" + } + ], + "defaultParameters": [ + "sim_mode:=true" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "71503810-840b-4a6b-8537-735067bbf62e", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 5, + "category": "Perception", + "name": "NAV2-Perception3D", + "folderName": "[lms-nav2-gazebo-perception3d]nav2-perception3d_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-perception3D.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-perception3d/1.0.0/prebuilt/latest/lms-nav2-gazebo-perception3d-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-perception3d-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "bab9f7383f44950b6cf6cd8f97b4ae2d3ba61571d6b37c10b24922cc0348a7cc" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-11T06:01:46.944Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "b4bb8026-da5f-4a57-a9b0-4dc667f6acb9", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 6, + "category": "Planning", + "name": "NAV2-Planning", + "folderName": "[lms-nav2-gazebo-planning]nav2-planning_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-planning.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-planning/1.0.0/prebuilt/amd64/d1c51b0f211e1420/lms-nav2-gazebo-planning-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-planning-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d1c51b0f211e14208882947dd3bf642dd8ce997f54b37dfc0a4c8d66bd84d608" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "ec932f99-8911-4327-bc55-e38805bfa88a", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 7, + "category": "Simulator", + "name": "NAV2-Gazebo", + "folderName": "[lms-nav2-gazebo-simulator]nav2-simulator_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-simulator.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-simulator/1.0.0/prebuilt/amd64/2c97e7672eaec755/lms-nav2-gazebo-simulator-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-simulator-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2c97e7672eaec755eb300442a77b18bbcbaf6e0d305257dc9974724049756756" + } + ], + "defaultParameters": [ + "gui:=false", + "platform:=turtlebot3" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "c4eaa655-ff69-4aed-9c74-41552d2845f1", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 8, + "category": "Localization", + "name": "NAV2-SLAM", + "folderName": "[lms-nav2-gazebo-slam]nav2-slam_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-slam.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-slam/1.0.0/prebuilt/amd64/e5aa22340e275d70/lms-nav2-gazebo-slam-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-slam-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "e5aa22340e275d7063e5cd96f974620354760082d22e80b9a58205085d88e337" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "fb3e7227-2da4-453d-8798-e5b7b9d99da9", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 9, + "category": "Localization", + "name": "NAV2-SLAM3D", + "folderName": "[lms-nav2-gazebo-slam3d]nav2-slam3d_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-slam3D.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-slam3d/1.0.0/prebuilt/latest/lms-nav2-gazebo-slam3d-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-slam3d-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "ed59e1e6b5e816403475c44672247cf8747c14edcbfcf7f1939d2b2de1d3263d" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-11T06:01:46.944Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "6be04dd5-8705-4eb5-96cc-b69282ca7b03", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 10, + "category": "Vehicle", + "name": "NAV2-TurtleBot3Burger", + "folderName": "[lms-nav2-gazebo-vehicle]nav2-vehicle_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-vehicle.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-vehicle/1.0.0/prebuilt/latest/lms-nav2-gazebo-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "42e8179172c178978e5ae5d48e189164f6b8a5030fdaa0eba497ca86a97e96bb" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "platform:=turtlebot3", + "level:=2d" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "bafcb2ea-e4f1-458b-bcb1-5c84306ae845", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 11, + "category": "Vehicle", + "name": "NAV2-MKMini", + "folderName": "[lms-nav2-mkmini]nav2-mkmini_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-mkmini.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-mkmini/1.0.0/prebuilt/amd64/lms-nav2-mkmini-build-install-amd64.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-mkmini-build-install-amd64.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "6094d2aa5188a28153452aec08e28870984b36c1bc0c06fec8091901f6d26856" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "platform:=mkmini", + "level:=2d" + ], + "dockerImage": "future-nav2:humble-jetson_orin", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "6bcb11f1-28ce-4eff-aaa0-81737199a807", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 12, + "category": "Gui", + "name": "NAV2-Rviz2", + "folderName": "[lms-nav2-gazebo-gui]nav2-rviz2_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-gui.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-gui/1.0.0/prebuilt/latest/lms-nav2-gazebo-gui-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-gui-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2a816b08d9f39057a96641ce7ace341ce409f77e5043abe074e2e21ecaa871ca" + } + ], + "defaultParameters": [ + "rviz_config:=nav2" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-07T00:34:42.804Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "b77f3bd0-c7f5-47a6-aaf1-4c97b8d9ee61", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 13, + "category": "System", + "name": "NAV2-Yahboom-Agent", + "folderName": "[lms-nav2-yahboom-agent]yahboom_agent_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-agent.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-agent/1.0.0/prebuilt/arm64/ec2b2c4578fc71b9/lms-nav2-yahboom-agent-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-agent-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "ec2b2c4578fc71b95c720dcacca5e7c7c5d08400fc80ef21a16097d31869cf9d" + } + ], + "defaultParameters": [ + "serial_device:=/dev/ttyUSB0", + "baudrate:=921600" + ], + "dockerImage": "future-nav2:humble-yahboom-agent", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "55636ffe-88c4-4c0a-8d9b-96b678b9fb53", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 14, + "category": "Vehicle", + "name": "NAV2-Yahboom", + "folderName": "[lms-nav2-yahboom-vehicle]yahboom_vehicle_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-vehicle.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-vehicle/1.0.0/prebuilt/amd64/d54368061d520794/lms-nav2-yahboom-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d54368061d52079489a8d686461e6672ebb84ca0f531fb71f835717b3f2a031f" + }, + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-vehicle/1.0.0/prebuilt/arm64/f409c0b61ca9497d/lms-nav2-yahboom-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "f409c0b61ca9497d4cfd1c2af9f4e137d9316364cab664bb908818f6ecab8331" + } + ], + "defaultParameters": [ + "sim_mode:=false" + ], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:55:16.092Z" + }, + { + "id": "e42f92d1-0d5c-4d3f-a66f-0d1fe317637d", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 15, + "category": "Localization", + "name": "NAV2-Yahboom-Slam", + "folderName": "[lms-nav2-yahboom-slam]yahboom_slam_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-slam.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-slam/1.0.0/prebuilt/arm64/f6444fe604f50ee0/lms-nav2-yahboom-slam-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-slam-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "f6444fe604f50ee00831fc7db121bbebfea6be920b55a498ddc54fc317093c77" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "356f971a-8750-45f1-9ddd-a3c70bd72912", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 16, + "category": "Map", + "name": "NAV2-Yahboom-Map", + "folderName": "[lms-nav2-yahboom-map]yahboom_map_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-map.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-map/1.0.0/prebuilt/arm64/111981b9ab460ce4/lms-nav2-yahboom-map-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-map-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "111981b9ab460ce450334e5c367e97b7e757ef55d84330ca030b096d4a9c4792" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "421db22e-154d-4df9-8190-ccb65dec6b68", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 17, + "category": "Localization", + "name": "NAV2-Yahboom-Localization", + "folderName": "[lms-nav2-yahboom-localization]yahboom_localization_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-localization.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-localization/1.0.0/prebuilt/arm64/d6534d48841a751c/lms-nav2-yahboom-localization-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-localization-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "d6534d48841a751cb2e21fa73785df61fb81815b406c9c4152c9cbfd0ae59e48" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "fe514053-5b6b-4dad-b6d7-0191fa5e8ef4", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 18, + "category": "Planning", + "name": "NAV2-Yahboom-Planning", + "folderName": "[lms-nav2-yahboom-planning]yahboom_planning_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-planning.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-planning/1.0.0/prebuilt/arm64/050f4ed4acba795a/lms-nav2-yahboom-planning-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-planning-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "050f4ed4acba795affec8306b7eef116e9e86fd0f42e492da27c7fc624dc8570" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "276f4df2-f214-4ba9-aea6-04e23491a569", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 19, + "category": "Control", + "name": "NAV2-Yahboom-Control", + "folderName": "[lms-nav2-yahboom-control]yahboom_control_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-control.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-control/1.0.0/prebuilt/arm64/be7147024d890249/lms-nav2-yahboom-control-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-control-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "be7147024d89024915f1481a47a0909ea1d06196ef9e9797f260739999e09b3f" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "b1e9b92f-bbab-4759-9e9b-637dbe12066c", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 20, + "category": "Perception", + "name": "NAV2-Yahboom-Camera", + "folderName": "[lms-nav2-yahboom-camera]yahboom_camera_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-camera.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-camera/1.0.0/prebuilt/arm64/b950a71d5babcdb3/lms-nav2-yahboom-camera-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-camera-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "b950a71d5babcdb37e46c7674fb80d0ae8c076e7d7c1186042b1b1f6e7ee2d04" + } + ], + "defaultParameters": [ + "video_device:=/dev/video0" + ], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + } + ], + "topics": [ + { + "id": "8589e6da-b4e8-41bf-9fbe-895a294c5ee0", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "ROS2 기초", + "detail": "ROS Topic, Service, Action 통신과 TF 정의, ROS2 패키지 및 tree 구조를 실습합니다.", + "sortOrder": 1 + }, + { + "id": "894c7578-19d4-4d0c-8fdc-4e1741c101dd", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "Sensor Processing", + "detail": "LiDAR와 카메라 등 센서 데이터 처리 흐름과 Calibration 기초를 확인합니다.", + "sortOrder": 2 + }, + { + "id": "e87af89a-5161-43bf-a4a3-54d87506dccf", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "Simulation 환경 구축 Part 1", + "detail": "Gazebo 월드, 로봇 모델, 센서 토픽을 구성해 시뮬레이션 실습 환경을 만듭니다.", + "sortOrder": 3 + }, + { + "id": "f270cddf-3085-4ac8-8fd0-7fdcc7b0fcc7", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "Simulation 환경 구축 Part 2", + "detail": "시뮬레이션에서 활용할 수 있는 모빌리티 플랫폼과 실행 모듈 구성을 점검합니다.", + "sortOrder": 4 + }, + { + "id": "77c00ffb-0753-4ade-9304-fe7ae187932f", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "LiDAR SLAM", + "detail": "센서 데이터와 SLAM 알고리즘을 활용해 자율주행용 2D Map을 구축합니다.", + "sortOrder": 5 + }, + { + "id": "fd677129-6030-4013-8014-642b26f81799", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "LiDAR Localization", + "detail": "구축한 Map과 실시간 LiDAR 데이터를 이용해 현재 위치를 추정합니다.", + "sortOrder": 6 + }, + { + "id": "f05ec8bf-5e1c-4e4e-9073-f3ef06b516ae", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "Parameter Tuning", + "detail": "모듈 파라미터를 변경하고 결과를 비교해 알고리즘을 튜닝합니다.", + "sortOrder": 7 + }, + { + "id": "507221da-fd06-495d-8be5-c7ef1dee1cfd", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "[심화] Camera based SLAM", + "detail": "카메라 기반 Map 구축과 위치인식의 입력·출력 구조를 분석합니다.", + "sortOrder": 8 + }, + { + "id": "ee73c3ca-3a0d-423f-aa9d-f18b99bfd21e", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "Occupancy Map", + "detail": "장애물 인식을 위한 Occupancy Map과 costmap 반영 과정을 실습합니다.", + "sortOrder": 9 + }, + { + "id": "3d0dc30a-3279-4359-88bf-d56e23d52dd4", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "Planning", + "detail": "장애물 충돌 없이 목표 지점으로 이동하기 위한 전역·지역 경로 계획을 실습합니다.", + "sortOrder": 10 + }, + { + "id": "c445c2cf-fe70-4198-99ee-86c850c310b2", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "Control", + "detail": "생성한 경로를 추종하도록 속도 명령을 만들고 주행 결과를 검증합니다.", + "sortOrder": 11 + }, + { + "id": "76165a4c-1e99-4842-bbb7-c07704777516", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "[심화] 딥러닝 기반 객체 인식", + "detail": "딥러닝 기반 객체 인식 결과를 자율주행 데이터 흐름에 반영하는 방법을 학습합니다.", + "sortOrder": 12 + } + ], + "practices": [ + { + "id": "a3cacb48-2d1d-47c9-bf22-d36438d1ca3f", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "ROS2와 Gazebo 실행 환경", + "description": "Topic, Service, Action, TF를 확인하고 TurtleBot3 Gazebo 환경을 실행합니다.", + "sortOrder": 1 + }, + { + "id": "a4445367-9679-4af4-a21a-43b02be55c49", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "LiDAR SLAM과 Localization", + "description": "맵을 생성·저장하고 저장된 맵에서 AMCL 기반 위치추정을 검증합니다.", + "sortOrder": 2 + }, + { + "id": "7553cc6e-46f0-48f3-b0f9-52ae899aa864", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "경로 계획과 제어", + "description": "목표 지점을 설정하고 장애물 회피, 경로 계획, 제어 명령을 비교합니다.", + "sortOrder": 3 + } + ] + }, + { + "id": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "courseId": "4eb01197-7605-4c3b-9a92-f9a3942050bd", + "week": 2, + "title": "Autonomy Studio 팀 프로젝트", + "tags": [ + "MK-mini", + "진행예정" + ], + "progress": 0, + "state": "locked", + "duration": "1주", + "github": "https://github.com/ros-navigation/navigation2", + "overview": "3~4인 팀으로 자율주행 알고리즘이 필요한 문제 상황을 정의하고, 센서 구성과 NAV2 모듈을 조합해 시뮬레이션과 플랫폼에서 검증합니다.", + "deliverable": "팀 프로젝트 소스, 시스템 구성도, 시뮬레이션 및 플랫폼 주행 검증 결과, 발표 자료를 제출합니다.", + "requiresSourceSubmission": true, + "createdAt": "2026-06-30T09:58:46.538Z", + "updatedAt": "2026-06-30T09:58:46.538Z", + "modules": [ + { + "id": "238bd78c-14f7-4707-9964-4b8ace1cfb42", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 1, + "category": "Control", + "name": "NAV2-Control", + "folderName": "[lms-nav2-gazebo-control]nav2-control_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-control.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-control/1.0.0/prebuilt/amd64/0ab85a58f37a922b/lms-nav2-gazebo-control-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-control-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "0ab85a58f37a922b493ce21676573e3a8fd339f99a74cce9c4cba58aff9b1e35" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=turtlebot3" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "c892dd62-6cbe-43c0-84ce-bfb2086a872a", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 2, + "category": "Localization", + "name": "NAV2-Localization", + "folderName": "[lms-nav2-gazebo-localization]nav2-localization_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-localization.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-localization/1.0.0/prebuilt/latest/lms-nav2-gazebo-localization-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-localization-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "44c8d50205f001a196870d03f44d435582b96c51eb4445e50cc8db6203b2c0c9" + } + ], + "defaultParameters": [ + "localization_mode:=amcl" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "611ba2e2-6034-4121-bb9b-716df5e0ad96", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 3, + "category": "Map", + "name": "NAV2-Map", + "folderName": "[lms-nav2-gazebo-map]nav2-map_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-map.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-map/1.0.0/prebuilt/latest/lms-nav2-gazebo-map-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-map-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "f409ce54c40aeeed8cf3fc06251c2e321887b3ec5f5827dfb74897a62780582f" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "23417175-c667-452c-8398-1542ad036a94", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 4, + "category": "Perception", + "name": "NAV2-Perception", + "folderName": "[lms-nav2-gazebo-perception]nav2-perception_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-perception.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-perception/1.0.0/prebuilt/amd64/d18d59ac77130be1/lms-nav2-gazebo-perception-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-perception-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d18d59ac77130be1da9d16cb0716fbf4b2837132de1765726200b3a57217034e" + } + ], + "defaultParameters": [ + "sim_mode:=true" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "673cd838-f8c4-4fdc-88b9-c5b3f83c5886", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 5, + "category": "Perception", + "name": "NAV2-Perception3D", + "folderName": "[lms-nav2-gazebo-perception3d]nav2-perception3d_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-perception3D.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-perception3d/1.0.0/prebuilt/latest/lms-nav2-gazebo-perception3d-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-perception3d-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "bab9f7383f44950b6cf6cd8f97b4ae2d3ba61571d6b37c10b24922cc0348a7cc" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-11T06:01:46.967Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "d1e29d86-a9ae-40b7-b876-f3c99cf656c8", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 6, + "category": "Planning", + "name": "NAV2-Planning", + "folderName": "[lms-nav2-gazebo-planning]nav2-planning_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-planning.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-planning/1.0.0/prebuilt/amd64/d1c51b0f211e1420/lms-nav2-gazebo-planning-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-planning-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d1c51b0f211e14208882947dd3bf642dd8ce997f54b37dfc0a4c8d66bd84d608" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "04161c08-f266-445b-a1f1-a68272ee4988", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 7, + "category": "Simulator", + "name": "NAV2-Gazebo", + "folderName": "[lms-nav2-gazebo-simulator]nav2-simulator_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-simulator.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-simulator/1.0.0/prebuilt/amd64/2c97e7672eaec755/lms-nav2-gazebo-simulator-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-simulator-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2c97e7672eaec755eb300442a77b18bbcbaf6e0d305257dc9974724049756756" + } + ], + "defaultParameters": [ + "gui:=false", + "platform:=turtlebot3" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "4ee736db-533f-485b-abe6-62ed4eba5aae", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 8, + "category": "Localization", + "name": "NAV2-SLAM", + "folderName": "[lms-nav2-gazebo-slam]nav2-slam_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-slam.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-slam/1.0.0/prebuilt/amd64/e5aa22340e275d70/lms-nav2-gazebo-slam-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-slam-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "e5aa22340e275d7063e5cd96f974620354760082d22e80b9a58205085d88e337" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "a98a6eab-f771-4586-b8b4-4ab61300a762", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 9, + "category": "Localization", + "name": "NAV2-SLAM3D", + "folderName": "[lms-nav2-gazebo-slam3d]nav2-slam3d_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-slam3D.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-slam3d/1.0.0/prebuilt/latest/lms-nav2-gazebo-slam3d-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-slam3d-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "ed59e1e6b5e816403475c44672247cf8747c14edcbfcf7f1939d2b2de1d3263d" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-11T06:01:46.967Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "ff32df67-203c-4781-b770-68d19f5b4d5e", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 10, + "category": "Vehicle", + "name": "NAV2-TurtleBot3Burger", + "folderName": "[lms-nav2-gazebo-vehicle]nav2-vehicle_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-vehicle.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-vehicle/1.0.0/prebuilt/latest/lms-nav2-gazebo-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "42e8179172c178978e5ae5d48e189164f6b8a5030fdaa0eba497ca86a97e96bb" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "platform:=turtlebot3", + "level:=2d" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "921e73b2-ddc6-4fe0-84d2-2efb401ebf32", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 11, + "category": "Vehicle", + "name": "NAV2-MKMini", + "folderName": "[lms-nav2-mkmini]nav2-mkmini_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-mkmini.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-mkmini/1.0.0/prebuilt/amd64/lms-nav2-mkmini-build-install-amd64.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-mkmini-build-install-amd64.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "6094d2aa5188a28153452aec08e28870984b36c1bc0c06fec8091901f6d26856" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "platform:=mkmini", + "level:=2d" + ], + "dockerImage": "future-nav2:humble-jetson_orin", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "fadfb101-884b-4566-ad99-71f6ec4f2b14", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 12, + "category": "Gui", + "name": "NAV2-Rviz2", + "folderName": "[lms-nav2-gazebo-gui]nav2-rviz2_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-gui.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-gui/1.0.0/prebuilt/latest/lms-nav2-gazebo-gui-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-gui-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2a816b08d9f39057a96641ce7ace341ce409f77e5043abe074e2e21ecaa871ca" + } + ], + "defaultParameters": [ + "rviz_config:=nav2" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-07T00:34:42.804Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "517cdc75-6e49-4878-baf4-7703155bd45d", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 13, + "category": "System", + "name": "NAV2-Yahboom-Agent", + "folderName": "[lms-nav2-yahboom-agent]yahboom_agent_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-agent.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-agent/1.0.0/prebuilt/arm64/ec2b2c4578fc71b9/lms-nav2-yahboom-agent-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-agent-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "ec2b2c4578fc71b95c720dcacca5e7c7c5d08400fc80ef21a16097d31869cf9d" + } + ], + "defaultParameters": [ + "serial_device:=/dev/ttyUSB0", + "baudrate:=921600" + ], + "dockerImage": "future-nav2:humble-yahboom-agent", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "1072caee-d064-4c9b-8064-810ef90d7498", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 14, + "category": "Vehicle", + "name": "NAV2-Yahboom", + "folderName": "[lms-nav2-yahboom-vehicle]yahboom_vehicle_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-vehicle.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-vehicle/1.0.0/prebuilt/amd64/d54368061d520794/lms-nav2-yahboom-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d54368061d52079489a8d686461e6672ebb84ca0f531fb71f835717b3f2a031f" + }, + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-vehicle/1.0.0/prebuilt/arm64/f409c0b61ca9497d/lms-nav2-yahboom-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "f409c0b61ca9497d4cfd1c2af9f4e137d9316364cab664bb908818f6ecab8331" + } + ], + "defaultParameters": [ + "sim_mode:=false" + ], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:55:16.092Z" + }, + { + "id": "a046ffd3-1e0c-4fd7-943f-3af60a776a7f", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 15, + "category": "Localization", + "name": "NAV2-Yahboom-Slam", + "folderName": "[lms-nav2-yahboom-slam]yahboom_slam_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-slam.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-slam/1.0.0/prebuilt/arm64/f6444fe604f50ee0/lms-nav2-yahboom-slam-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-slam-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "f6444fe604f50ee00831fc7db121bbebfea6be920b55a498ddc54fc317093c77" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "715ef9e8-701f-40d0-987c-6ef272902c70", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 16, + "category": "Map", + "name": "NAV2-Yahboom-Map", + "folderName": "[lms-nav2-yahboom-map]yahboom_map_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-map.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-map/1.0.0/prebuilt/arm64/111981b9ab460ce4/lms-nav2-yahboom-map-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-map-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "111981b9ab460ce450334e5c367e97b7e757ef55d84330ca030b096d4a9c4792" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "dcd39368-069a-4b3d-a31d-510628edce8b", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 17, + "category": "Localization", + "name": "NAV2-Yahboom-Localization", + "folderName": "[lms-nav2-yahboom-localization]yahboom_localization_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-localization.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-localization/1.0.0/prebuilt/arm64/d6534d48841a751c/lms-nav2-yahboom-localization-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-localization-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "d6534d48841a751cb2e21fa73785df61fb81815b406c9c4152c9cbfd0ae59e48" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "fa788eeb-6ba4-4f69-89aa-ddf0c6b875a5", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 18, + "category": "Planning", + "name": "NAV2-Yahboom-Planning", + "folderName": "[lms-nav2-yahboom-planning]yahboom_planning_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-planning.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-planning/1.0.0/prebuilt/arm64/050f4ed4acba795a/lms-nav2-yahboom-planning-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-planning-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "050f4ed4acba795affec8306b7eef116e9e86fd0f42e492da27c7fc624dc8570" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "0a4f97e8-3dd6-4dd8-aa76-d327347c4dc7", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 19, + "category": "Control", + "name": "NAV2-Yahboom-Control", + "folderName": "[lms-nav2-yahboom-control]yahboom_control_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-control.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-control/1.0.0/prebuilt/arm64/be7147024d890249/lms-nav2-yahboom-control-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-control-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "be7147024d89024915f1481a47a0909ea1d06196ef9e9797f260739999e09b3f" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "de01197b-d7b1-4ebb-812b-4943befb8539", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 20, + "category": "Perception", + "name": "NAV2-Yahboom-Camera", + "folderName": "[lms-nav2-yahboom-camera]yahboom_camera_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-camera.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-camera/1.0.0/prebuilt/arm64/b950a71d5babcdb3/lms-nav2-yahboom-camera-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-camera-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "b950a71d5babcdb37e46c7674fb80d0ae8c076e7d7c1186042b1b1f6e7ee2d04" + } + ], + "defaultParameters": [ + "video_device:=/dev/video0" + ], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + } + ], + "topics": [ + { + "id": "4d081569-b820-44f5-82a2-b09180da6b6b", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "title": "프로젝트 주제와 역할 분담", + "detail": "팀별 자율주행 문제 상황과 목표, 역할, 검증 기준을 정의합니다.", + "sortOrder": 1 + }, + { + "id": "1655d608-2828-45b3-91a6-4986a3f85581", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "title": "센서·모듈 구성 설계", + "detail": "센서 입력과 NAV2 모듈 조합, ROS 토픽 및 실행 순서를 설계합니다.", + "sortOrder": 2 + }, + { + "id": "0e053b97-39a0-4ff1-9def-185082626827", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "title": "알고리즘 구현과 튜닝", + "detail": "SLAM, Localization, Planning, Control 파라미터를 수정하고 성능을 비교합니다.", + "sortOrder": 3 + }, + { + "id": "9379f099-ec25-442d-ab6e-81a7002831ca", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "title": "시뮬레이션·플랫폼 검증", + "detail": "Gazebo 시뮬레이션과 실제 플랫폼에서 주행 시나리오를 검증합니다.", + "sortOrder": 4 + }, + { + "id": "edc67d22-32ef-46f8-8164-66f2328f6bb5", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "title": "결과 제출과 발표", + "detail": "소스, 실행 로그, 검증 결과를 정리해 팀 프로젝트 결과를 제출하고 발표합니다.", + "sortOrder": 5 + } + ], + "practices": [ + { + "id": "e63803b3-b888-44b9-9cf0-13d9783eab70", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "title": "팀 자율주행 시나리오 구현", + "description": "팀별 시나리오에 맞춰 NAV2 모듈을 구성하고 소스를 수정합니다.", + "sortOrder": 1 + }, + { + "id": "49a1f5db-0f86-4be3-8a3b-9866ef86b80d", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "title": "통합 주행 검증", + "description": "시뮬레이션과 플랫폼에서 재현 가능한 주행 결과를 확보합니다.", + "sortOrder": 2 + } + ] + }, + { + "id": "10eeb415-c568-4ed5-9ef6-8eeb23b68c7d", + "courseId": "4eb01197-7605-4c3b-9a92-f9a3942050bd", + "week": 3, + "title": "원격 개발", + "tags": [ + "MK-mini", + "진행예정" + ], + "progress": 0, + "state": "locked", + "duration": "1주", + "github": "https://github.com/ros-navigation/navigation2", + "overview": "원거리 MK-mini 플랫폼을 연결하고 원격으로 코드를 편집·빌드·실행합니다. 로컬 MK-mini 시뮬레이션과 실차에서 SLAM 및 자율주행을 검증합니다.", + "deliverable": "SLAM 저장 맵, 자율주행 검증 결과, 원격 개발 소스 변경 내역 및 실행 로그를 제출합니다.", + "requiresSourceSubmission": true, + "createdAt": "2026-09-22T05:57:24.295Z", + "updatedAt": "2026-09-22T05:57:24.295Z", + "modules": [ + { + "id": "73b34795-5848-44fa-a097-c48de8405c2b", + "weekId": "10eeb415-c568-4ed5-9ef6-8eeb23b68c7d", + "sortOrder": 1, + "category": "Control", + "name": "NAV2-Control", + "folderName": "[lms-nav2-gazebo-control]nav2-control_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-control.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-control/1.0.0/prebuilt/amd64/0ab85a58f37a922b/lms-nav2-gazebo-control-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-control-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "0ab85a58f37a922b493ce21676573e3a8fd339f99a74cce9c4cba58aff9b1e35" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T05:57:24.417Z", + "updatedAt": "2026-09-22T05:57:24.417Z" + }, + { + "id": "f823ab59-d4a1-4b18-b84f-d06fc6c11e33", + "weekId": "10eeb415-c568-4ed5-9ef6-8eeb23b68c7d", + "sortOrder": 2, + "category": "Localization", + "name": "NAV2-Localization", + "folderName": "[lms-nav2-gazebo-localization]nav2-localization_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-localization.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-localization/1.0.0/prebuilt/latest/lms-nav2-gazebo-localization-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-localization-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "44c8d50205f001a196870d03f44d435582b96c51eb4445e50cc8db6203b2c0c9" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d", + "localization_mode:=amcl" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T05:57:24.448Z", + "updatedAt": "2026-09-22T05:57:24.448Z" + }, + { + "id": "2377a171-689f-4f00-b92a-c7138e00d90a", + "weekId": "10eeb415-c568-4ed5-9ef6-8eeb23b68c7d", + "sortOrder": 3, + "category": "Map", + "name": "NAV2-Map", + "folderName": "[lms-nav2-gazebo-map]nav2-map_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-map.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-map/1.0.0/prebuilt/latest/lms-nav2-gazebo-map-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-map-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "f409ce54c40aeeed8cf3fc06251c2e321887b3ec5f5827dfb74897a62780582f" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T05:57:24.464Z", + "updatedAt": "2026-09-22T05:57:24.464Z" + }, + { + "id": "6d61da3c-70f6-4ceb-b134-b6d319249a3c", + "weekId": "10eeb415-c568-4ed5-9ef6-8eeb23b68c7d", + "sortOrder": 4, + "category": "Perception", + "name": "NAV2-Perception", + "folderName": "[lms-nav2-gazebo-perception]nav2-perception_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-perception.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-perception/1.0.0/prebuilt/amd64/d18d59ac77130be1/lms-nav2-gazebo-perception-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-perception-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d18d59ac77130be1da9d16cb0716fbf4b2837132de1765726200b3a57217034e" + } + ], + "defaultParameters": [ + "sim_mode:=true" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T05:57:24.481Z", + "updatedAt": "2026-09-22T05:57:24.481Z" + }, + { + "id": "ff6cba53-96f9-4fee-b378-4317ea52ae21", + "weekId": "10eeb415-c568-4ed5-9ef6-8eeb23b68c7d", + "sortOrder": 5, + "category": "Perception", + "name": "NAV2-Perception3D", + "folderName": "[lms-nav2-gazebo-perception3d]nav2-perception3d_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-perception3D.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-perception3d/1.0.0/prebuilt/latest/lms-nav2-gazebo-perception3d-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-perception3d-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "bab9f7383f44950b6cf6cd8f97b4ae2d3ba61571d6b37c10b24922cc0348a7cc" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T05:57:24.496Z", + "updatedAt": "2026-09-22T05:57:24.496Z" + }, + { + "id": "495b0f80-1d87-4b38-9625-370e70de2d49", + "weekId": "10eeb415-c568-4ed5-9ef6-8eeb23b68c7d", + "sortOrder": 6, + "category": "Planning", + "name": "NAV2-Planning", + "folderName": "[lms-nav2-gazebo-planning]nav2-planning_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-planning.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-planning/1.0.0/prebuilt/amd64/d1c51b0f211e1420/lms-nav2-gazebo-planning-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-planning-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d1c51b0f211e14208882947dd3bf642dd8ce997f54b37dfc0a4c8d66bd84d608" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T05:57:24.512Z", + "updatedAt": "2026-09-22T05:57:24.512Z" + }, + { + "id": "d1535889-73e8-4300-8677-6260fd8dd436", + "weekId": "10eeb415-c568-4ed5-9ef6-8eeb23b68c7d", + "sortOrder": 7, + "category": "Simulator", + "name": "NAV2-Gazebo", + "folderName": "[lms-nav2-gazebo-simulator]nav2-simulator_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-simulator.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-simulator/1.0.0/prebuilt/amd64/2c97e7672eaec755/lms-nav2-gazebo-simulator-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-simulator-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2c97e7672eaec755eb300442a77b18bbcbaf6e0d305257dc9974724049756756" + } + ], + "defaultParameters": [ + "gui:=false", + "platform:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T05:57:24.528Z", + "updatedAt": "2026-09-22T05:57:24.528Z" + }, + { + "id": "da4f1d95-6270-47dc-b7e8-5529784cad29", + "weekId": "10eeb415-c568-4ed5-9ef6-8eeb23b68c7d", + "sortOrder": 8, + "category": "Localization", + "name": "NAV2-SLAM", + "folderName": "[lms-nav2-gazebo-slam]nav2-slam_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-slam.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-slam/1.0.0/prebuilt/amd64/e5aa22340e275d70/lms-nav2-gazebo-slam-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-slam-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "e5aa22340e275d7063e5cd96f974620354760082d22e80b9a58205085d88e337" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T05:57:24.544Z", + "updatedAt": "2026-09-22T05:57:24.544Z" + }, + { + "id": "316fa7e6-dd9c-4c89-a911-8ccf8605a24b", + "weekId": "10eeb415-c568-4ed5-9ef6-8eeb23b68c7d", + "sortOrder": 9, + "category": "Localization", + "name": "NAV2-SLAM3D", + "folderName": "[lms-nav2-gazebo-slam3d]nav2-slam3d_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-slam3D.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-slam3d/1.0.0/prebuilt/latest/lms-nav2-gazebo-slam3d-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-slam3d-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "ed59e1e6b5e816403475c44672247cf8747c14edcbfcf7f1939d2b2de1d3263d" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T05:57:24.558Z", + "updatedAt": "2026-09-22T05:57:24.558Z" + }, + { + "id": "3b164b3e-16d2-452b-9a5f-7cdb367e4916", + "weekId": "10eeb415-c568-4ed5-9ef6-8eeb23b68c7d", + "sortOrder": 10, + "category": "Vehicle", + "name": "NAV2-MKMini", + "folderName": "[lms-nav2-mkmini]nav2-mkmini_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-mkmini.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-mkmini/1.0.0/prebuilt/amd64/lms-nav2-mkmini-build-install-amd64.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-mkmini-build-install-amd64.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "6094d2aa5188a28153452aec08e28870984b36c1bc0c06fec8091901f6d26856" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "platform:=mkmini", + "robot:=mkmini", + "level:=2d", + "simulator:=gazebo" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T05:57:24.574Z", + "updatedAt": "2026-09-22T05:57:24.574Z" + }, + { + "id": "b4b253d8-c202-4c28-bcd7-6c8bdee37d52", + "weekId": "10eeb415-c568-4ed5-9ef6-8eeb23b68c7d", + "sortOrder": 11, + "category": "Gui", + "name": "NAV2-Rviz2", + "folderName": "[lms-nav2-gazebo-gui]nav2-rviz2_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-gui.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-gui/1.0.0/prebuilt/latest/lms-nav2-gazebo-gui-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-gui-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2a816b08d9f39057a96641ce7ace341ce409f77e5043abe074e2e21ecaa871ca" + } + ], + "defaultParameters": [ + "rviz_config:=nav2" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T05:57:24.589Z", + "updatedAt": "2026-09-22T05:57:24.589Z" + } + ], + "topics": [ + { + "id": "c80efebe-4f60-4da2-b4c0-a09d159f54b5", + "weekId": "10eeb415-c568-4ed5-9ef6-8eeb23b68c7d", + "title": "SLAM", + "detail": "원거리 MK-mini 플랫폼에 연결하여 모듈 소스와 파라미터를 수정하고, 센서 토픽을 확인하며 SLAM 맵을 생성·저장합니다. 로컬 MK-mini 시뮬레이션에서 먼저 검증합니다.", + "sortOrder": 1 + }, + { + "id": "b29d3f27-5530-45e9-8920-4233af999297", + "weekId": "10eeb415-c568-4ed5-9ef6-8eeb23b68c7d", + "title": "자율주행", + "detail": "저장한 맵으로 위치추정·경로 계획·제어 모듈을 구성하고 목표 지점 주행을 검증합니다. 원격 코드 편집과 빌드, 실행 로그 분석 및 파라미터 튜닝을 실습합니다.", + "sortOrder": 2 + } + ], + "practices": [ + { + "id": "737bb4ba-6dcb-4b03-8e4c-573bcf414e76", + "weekId": "10eeb415-c568-4ed5-9ef6-8eeb23b68c7d", + "title": "SLAM", + "description": "원거리 MK-mini 플랫폼에 연결하여 모듈 소스와 파라미터를 수정하고, 센서 토픽을 확인하며 SLAM 맵을 생성·저장합니다. 로컬 MK-mini 시뮬레이션에서 먼저 검증합니다.", + "sortOrder": 1 + }, + { + "id": "a3f8dc80-5f7d-45b2-9f45-9f488a5d4a3c", + "weekId": "10eeb415-c568-4ed5-9ef6-8eeb23b68c7d", + "title": "자율주행", + "description": "저장한 맵으로 위치추정·경로 계획·제어 모듈을 구성하고 목표 지점 주행을 검증합니다. 원격 코드 편집과 빌드, 실행 로그 분석 및 파라미터 튜닝을 실습합니다.", + "sortOrder": 2 + } + ] + } + ], + "environmentProfiles": [ + { + "id": "89ff37ab-bf54-43bb-87c8-c965237362bd", + "courseId": "4eb01197-7605-4c3b-9a92-f9a3942050bd", + "week": 1, + "platformKey": "NAV2", + "profileType": "NAV2", + "name": "로컬", + "config": { + "type": "NAV2", + "bridge": { + "env": { + "ROBOT_STACK": "nav2" + }, + "name": "nav2-ros-bridge", + "port": 8765, + "image": "slam-ros-bridge:latest" + }, + "target": "local", + "viewer": { + "stack": "nav2" + }, + "runtime": { + "steps": [], + "containers": [] + }, + "moduleSet": { + "target": "local", + "modules": [ + { + "id": "dd8acfbd-7f66-41b7-a5ef-60c0bc669825" + }, + { + "id": "31ac8bd3-6b92-44bb-955c-248cda322e61" + }, + { + "id": "618ceb2e-45b8-4220-8469-9d6947e2abba" + }, + { + "id": "fb5cd244-e132-4d3d-8248-70534df07309" + }, + { + "id": "b4bb8026-da5f-4a57-a9b0-4dc667f6acb9" + }, + { + "id": "ec932f99-8911-4327-bc55-e38805bfa88a" + }, + { + "id": "c4eaa655-ff69-4aed-9c74-41552d2845f1" + }, + { + "id": "6be04dd5-8705-4eb5-96cc-b69282ca7b03" + }, + { + "id": "bafcb2ea-e4f1-458b-bcb1-5c84306ae845", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "platform:=mkmini", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "6bcb11f1-28ce-4eff-aaa0-81737199a807", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "rviz_config:=nav2" + ] + } + ], + "includeUnlisted": false + }, + "runtimeImages": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/nav2/gazebo/latest/future-nav2-gazebo-humble.tar.zst", + "image": "future-nav2-gazebo:humble", + "fileName": "future-nav2-gazebo-humble.tar.zst", + "required": true, + "checksumSha256": "54230e039c1fa5dc82615cef3828c5acae7b8bea8e921b70cfdc5351d8301644" + } + ] + }, + "enabled": true, + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-08-11T06:47:47.270Z" + }, + { + "id": "336b8cf4-57b2-4bb2-b809-8007dddd630f", + "courseId": "4eb01197-7605-4c3b-9a92-f9a3942050bd", + "week": 1, + "platformKey": "PLATFORM", + "profileType": "PLATFORM", + "name": "플랫폼", + "config": { + "type": "PLATFORM", + "bridge": { + "env": { + "ROBOT_STACK": "nav2" + }, + "name": "nav2-ros-bridge", + "port": 8765, + "image": "slam-ros-bridge:latest" + }, + "target": "remote-jetson", + "viewer": { + "stack": "nav2" + }, + "moduleSet": { + "target": "platform", + "modules": [ + { + "id": "dd8acfbd-7f66-41b7-a5ef-60c0bc669825", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "31ac8bd3-6b92-44bb-955c-248cda322e61" + }, + { + "id": "618ceb2e-45b8-4220-8469-9d6947e2abba" + }, + { + "id": "fb5cd244-e132-4d3d-8248-70534df07309", + "defaultParameters": [ + "sim_mode:=false" + ] + }, + { + "id": "71503810-840b-4a6b-8537-735067bbf62e" + }, + { + "id": "b4bb8026-da5f-4a57-a9b0-4dc667f6acb9" + }, + { + "id": "c4eaa655-ff69-4aed-9c74-41552d2845f1" + }, + { + "id": "fb3e7227-2da4-453d-8798-e5b7b9d99da9" + }, + { + "id": "bafcb2ea-e4f1-458b-bcb1-5c84306ae845" + } + ], + "includeUnlisted": false + }, + "runtimeKind": "real", + "runtimeImages": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/slam-ros-bridge/arm64/20260819-0659d4cf5578/slam-ros-bridge-jetson-orin.tar.zst", + "image": "slam-ros-bridge:jetson_orin", + "fileName": "slam-ros-bridge-jetson-orin.tar.zst", + "required": true, + "checksumSha256": "0659d4cf5578c43bc9c25e4a4fc5d226ccd5b7bec43becfdff83b5390717114e" + }, + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/nav2/jetson-orin/latest/future-nav2-humble-jetson-orin.tar.zst", + "image": "future-nav2:humble-jetson_orin", + "fileName": "future-nav2-humble-jetson-orin.tar.zst", + "required": true + } + ] + }, + "enabled": true, + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-16T05:04:25.399Z" + }, + { + "id": "19175b62-d8a2-458b-9a63-8b3fa9d8889e", + "courseId": "4eb01197-7605-4c3b-9a92-f9a3942050bd", + "week": 2, + "platformKey": "NAV2", + "profileType": "NAV2", + "name": "로컬", + "config": { + "type": "NAV2", + "bridge": { + "env": { + "ROBOT_STACK": "nav2" + }, + "name": "nav2-ros-bridge", + "port": 8765, + "image": "slam-ros-bridge:latest" + }, + "target": "local", + "viewer": { + "stack": "nav2" + }, + "runtime": { + "steps": [], + "containers": [] + }, + "moduleSet": { + "target": "local", + "modules": [ + { + "id": "238bd78c-14f7-4707-9964-4b8ace1cfb42" + }, + { + "id": "c892dd62-6cbe-43c0-84ce-bfb2086a872a" + }, + { + "id": "611ba2e2-6034-4121-bb9b-716df5e0ad96" + }, + { + "id": "23417175-c667-452c-8398-1542ad036a94" + }, + { + "id": "d1e29d86-a9ae-40b7-b876-f3c99cf656c8" + }, + { + "id": "04161c08-f266-445b-a1f1-a68272ee4988" + }, + { + "id": "4ee736db-533f-485b-abe6-62ed4eba5aae" + }, + { + "id": "ff32df67-203c-4781-b770-68d19f5b4d5e" + }, + { + "id": "921e73b2-ddc6-4fe0-84d2-2efb401ebf32", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "platform:=mkmini", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "fadfb101-884b-4566-ad99-71f6ec4f2b14", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "rviz_config:=nav2" + ] + } + ], + "includeUnlisted": false + }, + "runtimeImages": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/nav2/gazebo/latest/future-nav2-gazebo-humble.tar.zst", + "image": "future-nav2-gazebo:humble", + "fileName": "future-nav2-gazebo-humble.tar.zst", + "required": true, + "checksumSha256": "54230e039c1fa5dc82615cef3828c5acae7b8bea8e921b70cfdc5351d8301644" + } + ] + }, + "enabled": true, + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-09T06:53:28.516Z" + }, + { + "id": "377e58bf-039b-48f9-8db0-48dba4ba5549", + "courseId": "4eb01197-7605-4c3b-9a92-f9a3942050bd", + "week": 2, + "platformKey": "PLATFORM", + "profileType": "PLATFORM", + "name": "플랫폼", + "config": { + "type": "PLATFORM", + "bridge": { + "env": { + "ROBOT_STACK": "nav2" + }, + "name": "nav2-ros-bridge", + "port": 8765, + "image": "slam-ros-bridge:latest" + }, + "target": "remote-jetson", + "viewer": { + "stack": "nav2" + }, + "moduleSet": { + "target": "platform", + "modules": [ + { + "id": "238bd78c-14f7-4707-9964-4b8ace1cfb42", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "c892dd62-6cbe-43c0-84ce-bfb2086a872a" + }, + { + "id": "611ba2e2-6034-4121-bb9b-716df5e0ad96" + }, + { + "id": "23417175-c667-452c-8398-1542ad036a94", + "defaultParameters": [ + "sim_mode:=false" + ] + }, + { + "id": "673cd838-f8c4-4fdc-88b9-c5b3f83c5886" + }, + { + "id": "d1e29d86-a9ae-40b7-b876-f3c99cf656c8" + }, + { + "id": "4ee736db-533f-485b-abe6-62ed4eba5aae" + }, + { + "id": "a98a6eab-f771-4586-b8b4-4ab61300a762" + }, + { + "id": "921e73b2-ddc6-4fe0-84d2-2efb401ebf32" + } + ], + "includeUnlisted": false + }, + "runtimeKind": "real", + "runtimeImages": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/slam-ros-bridge/arm64/20260819-0659d4cf5578/slam-ros-bridge-jetson-orin.tar.zst", + "image": "slam-ros-bridge:jetson_orin", + "fileName": "slam-ros-bridge-jetson-orin.tar.zst", + "required": true, + "checksumSha256": "0659d4cf5578c43bc9c25e4a4fc5d226ccd5b7bec43becfdff83b5390717114e" + }, + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/nav2/jetson-orin/latest/future-nav2-humble-jetson-orin.tar.zst", + "image": "future-nav2:humble-jetson_orin", + "fileName": "future-nav2-humble-jetson-orin.tar.zst", + "required": true + } + ] + }, + "enabled": true, + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-16T05:04:25.399Z" + }, + { + "id": "119ece78-9921-4c01-9334-669d91aca149", + "courseId": "4eb01197-7605-4c3b-9a92-f9a3942050bd", + "week": 3, + "platformKey": "NAV2", + "profileType": "NAV2", + "name": "로컬", + "config": { + "type": "NAV2", + "bridge": { + "env": { + "ROBOT_STACK": "nav2" + }, + "name": "nav2-ros-bridge", + "port": 8765, + "image": "slam-ros-bridge:latest" + }, + "target": "local", + "viewer": { + "stack": "nav2" + }, + "runtime": { + "steps": [], + "containers": [] + }, + "moduleSet": { + "target": "local", + "modules": [ + { + "id": "73b34795-5848-44fa-a097-c48de8405c2b", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "f823ab59-d4a1-4b18-b84f-d06fc6c11e33", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d", + "localization_mode:=amcl" + ] + }, + { + "id": "2377a171-689f-4f00-b92a-c7138e00d90a", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "6d61da3c-70f6-4ceb-b134-b6d319249a3c", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true" + ] + }, + { + "id": "495b0f80-1d87-4b38-9625-370e70de2d49", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "d1535889-73e8-4300-8677-6260fd8dd436", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "gui:=false", + "platform:=mkmini" + ] + }, + { + "id": "da4f1d95-6270-47dc-b7e8-5529784cad29", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "3b164b3e-16d2-452b-9a5f-7cdb367e4916", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "platform:=mkmini", + "robot:=mkmini", + "level:=2d", + "simulator:=gazebo" + ] + }, + { + "id": "b4b253d8-c202-4c28-bcd7-6c8bdee37d52", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "rviz_config:=nav2" + ] + } + ], + "includeUnlisted": false + }, + "runtimeImages": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/nav2/gazebo/latest/future-nav2-gazebo-humble.tar.zst", + "image": "future-nav2-gazebo:humble", + "fileName": "future-nav2-gazebo-humble.tar.zst", + "required": true, + "checksumSha256": "54230e039c1fa5dc82615cef3828c5acae7b8bea8e921b70cfdc5351d8301644" + } + ] + }, + "enabled": true, + "createdAt": "2026-09-22T05:57:24.606Z", + "updatedAt": "2026-09-22T05:57:24.606Z" + }, + { + "id": "8e36f6bc-15cd-45a5-9122-737a8422ec09", + "courseId": "4eb01197-7605-4c3b-9a92-f9a3942050bd", + "week": 3, + "platformKey": "PLATFORM", + "profileType": "PLATFORM", + "name": "플랫폼", + "config": { + "type": "PLATFORM", + "bridge": { + "env": { + "ROBOT_STACK": "nav2" + }, + "name": "nav2-ros-bridge", + "port": 8765, + "image": "slam-ros-bridge:latest" + }, + "target": "remote-jetson", + "viewer": { + "stack": "nav2" + }, + "moduleSet": { + "target": "platform", + "modules": [ + { + "id": "73b34795-5848-44fa-a097-c48de8405c2b", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "f823ab59-d4a1-4b18-b84f-d06fc6c11e33", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini", + "level:=2d", + "localization_mode:=amcl" + ] + }, + { + "id": "2377a171-689f-4f00-b92a-c7138e00d90a", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "6d61da3c-70f6-4ceb-b134-b6d319249a3c", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false" + ] + }, + { + "id": "ff6cba53-96f9-4fee-b378-4317ea52ae21", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini" + ] + }, + { + "id": "495b0f80-1d87-4b38-9625-370e70de2d49", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "da4f1d95-6270-47dc-b7e8-5529784cad29", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "316fa7e6-dd9c-4c89-a911-8ccf8605a24b", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini" + ] + }, + { + "id": "3b164b3e-16d2-452b-9a5f-7cdb367e4916", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "platform:=mkmini", + "robot:=mkmini", + "level:=2d" + ] + } + ], + "includeUnlisted": false + }, + "runtimeKind": "real", + "runtimeImages": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/slam-ros-bridge/arm64/20260819-0659d4cf5578/slam-ros-bridge-jetson-orin.tar.zst", + "image": "slam-ros-bridge:jetson_orin", + "fileName": "slam-ros-bridge-jetson-orin.tar.zst", + "required": true, + "checksumSha256": "0659d4cf5578c43bc9c25e4a4fc5d226ccd5b7bec43becfdff83b5390717114e" + }, + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/nav2/jetson-orin/latest/future-nav2-humble-jetson-orin.tar.zst", + "image": "future-nav2:humble-jetson_orin", + "fileName": "future-nav2-humble-jetson-orin.tar.zst", + "required": true + } + ] + }, + "enabled": true, + "createdAt": "2026-09-22T05:57:24.639Z", + "updatedAt": "2026-09-22T05:57:24.639Z" + } + ], + "instructorCurriculumWeekOverrides": [ + { + "id": "1ae44253-20e6-47a0-914f-6f14b1f3d97a", + "organizationId": "b545a634-e877-4935-8041-c83e352b1fb7", + "organizationName": "퓨처드라이브", + "courseId": "4eb01197-7605-4c3b-9a92-f9a3942050bd", + "week": 2, + "tagLabel": "MK-mini", + "title": "Autonomy Studio 팀 프로젝트", + "duration": "1주", + "overview": "3~4인 팀으로 자율주행 알고리즘이 필요한 문제 상황을 정의하고, 센서 구성과 NAV2 모듈을 조합해 시뮬레이션과 플랫폼에서 검증합니다.", + "deliverable": "팀 프로젝트 소스, 시스템 구성도, 시뮬레이션 및 플랫폼 주행 검증 결과, 발표 자료를 제출합니다.", + "requiresSourceSubmission": true, + "isTeamProject": false, + "learningSteps": [ + { + "title": "프로젝트 주제와 역할 분담", + "concepts": [], + "videoUrl": "", + "description": "팀별 자율주행 문제 상황과 목표, 역할, 검증 기준을 정의합니다.", + "videoEnabled": false + }, + { + "title": "센서·모듈 구성 설계", + "concepts": [], + "videoUrl": "", + "description": "센서 입력과 NAV2 모듈 조합, ROS 토픽 및 실행 순서를 설계합니다.", + "videoEnabled": false + }, + { + "title": "알고리즘 구현과 튜닝", + "concepts": [], + "videoUrl": "", + "description": "SLAM, Localization, Planning, Control 파라미터를 수정하고 성능을 비교합니다.", + "videoEnabled": false + }, + { + "title": "시뮬레이션·플랫폼 검증", + "concepts": [], + "videoUrl": "", + "description": "Gazebo 시뮬레이션과 실제 플랫폼에서 주행 시나리오를 검증합니다.", + "videoEnabled": false + }, + { + "title": "결과 제출과 발표", + "concepts": [], + "videoUrl": "", + "description": "소스, 실행 로그, 검증 결과를 정리해 팀 프로젝트 결과를 제출하고 발표합니다.", + "videoEnabled": false + } + ], + "topics": [ + "프로젝트 주제와 역할 분담", + "센서·모듈 구성 설계", + "알고리즘 구현과 튜닝", + "시뮬레이션·플랫폼 검증", + "결과 제출과 발표" + ], + "topicDetails": [ + "팀별 자율주행 문제 상황과 목표, 역할, 검증 기준을 정의합니다.", + "센서 입력과 NAV2 모듈 조합, ROS 토픽 및 실행 순서를 설계합니다.", + "SLAM, Localization, Planning, Control 파라미터를 수정하고 성능을 비교합니다.", + "Gazebo 시뮬레이션과 실제 플랫폼에서 주행 시나리오를 검증합니다.", + "소스, 실행 로그, 검증 결과를 정리해 팀 프로젝트 결과를 제출하고 발표합니다." + ], + "topicVideoUrls": [ + "", + "", + "", + "", + "" + ], + "practiceContents": [ + { + "title": "팀 자율주행 시나리오 구현", + "description": "팀별 시나리오에 맞춰 NAV2 모듈을 구성하고 소스를 수정합니다." + }, + { + "title": "통합 주행 검증", + "description": "시뮬레이션과 플랫폼에서 재현 가능한 주행 결과를 확보합니다." + } + ], + "disabledModuleIds": [], + "createdAt": "2026-09-10T01:09:16.147Z", + "updatedAt": "2026-09-10T01:09:22.868Z" + }, + { + "id": "8882c821-4095-4314-8139-a05dca1abcc3", + "organizationId": "b545a634-e877-4935-8041-c83e352b1fb7", + "organizationName": "퓨처드라이브", + "courseId": "4eb01197-7605-4c3b-9a92-f9a3942050bd", + "week": 1, + "tagLabel": "MK-mini", + "title": "ROS2 & Simulation", + "duration": "1주", + "overview": "ROS2 통신 구조와 Gazebo 시뮬레이션 환경을 구성하고, LiDAR SLAM·위치추정·경로 계획·제어까지 NAV2 자율주행 파이프라인을 실습합니다.", + "deliverable": "NAV2 모듈 소스 변경 내역, SLAM 결과 맵, 목표 지점 주행 검증 화면 및 실행 로그를 제출합니다.", + "requiresSourceSubmission": true, + "isTeamProject": false, + "learningSteps": [ + { + "title": "ROS2 기초", + "concepts": [], + "videoUrl": "https://www.youtube.com/watch?v=gyskLlvX3oI&list=PLNWNEEf8BvG45noktLVI9N0SmD72BpmH7", + "description": "ROS Topic, Service, Action 통신과 TF 정의, ROS2 패키지 및 tree 구조를 실습합니다.", + "videoEnabled": true + }, + { + "title": "Sensor Processing", + "concepts": [], + "videoUrl": "", + "description": "LiDAR와 카메라 등 센서 데이터 처리 흐름과 Calibration 기초를 확인합니다.", + "videoEnabled": false + }, + { + "title": "Simulation 환경 구축 Part 1", + "concepts": [], + "videoUrl": "", + "description": "Gazebo 월드, 로봇 모델, 센서 토픽을 구성해 시뮬레이션 실습 환경을 만듭니다.", + "videoEnabled": false + }, + { + "title": "Simulation 환경 구축 Part 2", + "concepts": [], + "videoUrl": "", + "description": "시뮬레이션에서 활용할 수 있는 모빌리티 플랫폼과 실행 모듈 구성을 점검합니다.", + "videoEnabled": false + }, + { + "title": "LiDAR SLAM", + "concepts": [], + "videoUrl": "", + "description": "센서 데이터와 SLAM 알고리즘을 활용해 자율주행용 2D Map을 구축합니다.", + "videoEnabled": false + }, + { + "title": "LiDAR Localization", + "concepts": [], + "videoUrl": "", + "description": "구축한 Map과 실시간 LiDAR 데이터를 이용해 현재 위치를 추정합니다.", + "videoEnabled": false + }, + { + "title": "Parameter Tuning", + "concepts": [], + "videoUrl": "", + "description": "모듈 파라미터를 변경하고 결과를 비교해 알고리즘을 튜닝합니다.", + "videoEnabled": false + }, + { + "title": "[심화] Camera based SLAM", + "concepts": [], + "videoUrl": "", + "description": "카메라 기반 Map 구축과 위치인식의 입력·출력 구조를 분석합니다.", + "videoEnabled": false + }, + { + "title": "Occupancy Map", + "concepts": [], + "videoUrl": "", + "description": "장애물 인식을 위한 Occupancy Map과 costmap 반영 과정을 실습합니다.", + "videoEnabled": false + }, + { + "title": "Planning", + "concepts": [], + "videoUrl": "", + "description": "장애물 충돌 없이 목표 지점으로 이동하기 위한 전역·지역 경로 계획을 실습합니다.", + "videoEnabled": false + }, + { + "title": "Control", + "concepts": [], + "videoUrl": "", + "description": "생성한 경로를 추종하도록 속도 명령을 만들고 주행 결과를 검증합니다.", + "videoEnabled": false + }, + { + "title": "[심화] 딥러닝 기반 객체 인식", + "concepts": [], + "videoUrl": "", + "description": "딥러닝 기반 객체 인식 결과를 자율주행 데이터 흐름에 반영하는 방법을 학습합니다.", + "videoEnabled": false + } + ], + "topics": [ + "ROS2 기초", + "Sensor Processing", + "Simulation 환경 구축 Part 1", + "Simulation 환경 구축 Part 2", + "LiDAR SLAM", + "LiDAR Localization", + "Parameter Tuning", + "[심화] Camera based SLAM", + "Occupancy Map", + "Planning", + "Control", + "[심화] 딥러닝 기반 객체 인식" + ], + "topicDetails": [ + "ROS Topic, Service, Action 통신과 TF 정의, ROS2 패키지 및 tree 구조를 실습합니다.", + "LiDAR와 카메라 등 센서 데이터 처리 흐름과 Calibration 기초를 확인합니다.", + "Gazebo 월드, 로봇 모델, 센서 토픽을 구성해 시뮬레이션 실습 환경을 만듭니다.", + "시뮬레이션에서 활용할 수 있는 모빌리티 플랫폼과 실행 모듈 구성을 점검합니다.", + "센서 데이터와 SLAM 알고리즘을 활용해 자율주행용 2D Map을 구축합니다.", + "구축한 Map과 실시간 LiDAR 데이터를 이용해 현재 위치를 추정합니다.", + "모듈 파라미터를 변경하고 결과를 비교해 알고리즘을 튜닝합니다.", + "카메라 기반 Map 구축과 위치인식의 입력·출력 구조를 분석합니다.", + "장애물 인식을 위한 Occupancy Map과 costmap 반영 과정을 실습합니다.", + "장애물 충돌 없이 목표 지점으로 이동하기 위한 전역·지역 경로 계획을 실습합니다.", + "생성한 경로를 추종하도록 속도 명령을 만들고 주행 결과를 검증합니다.", + "딥러닝 기반 객체 인식 결과를 자율주행 데이터 흐름에 반영하는 방법을 학습합니다." + ], + "topicVideoUrls": [ + "https://www.youtube.com/watch?v=gyskLlvX3oI&list=PLNWNEEf8BvG45noktLVI9N0SmD72BpmH7", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "practiceContents": [ + { + "title": "ROS2와 Gazebo 실행 환경", + "description": "Topic, Service, Action, TF를 확인하고 TurtleBot3 Gazebo 환경을 실행합니다." + }, + { + "title": "LiDAR SLAM과 Localization", + "description": "맵을 생성·저장하고 저장된 맵에서 AMCL 기반 위치추정을 검증합니다." + }, + { + "title": "경로 계획과 제어", + "description": "목표 지점을 설정하고 장애물 회피, 경로 계획, 제어 명령을 비교합니다." + } + ], + "disabledModuleIds": [], + "createdAt": "2026-08-07T00:22:12.058Z", + "updatedAt": "2026-09-10T01:08:00.565Z" + } + ] + }, + { + "id": "8e296f81-8445-455c-b1a2-47f2ce9099a4", + "slug": "nav2-autonomy-50419393-77f", + "title": "2026 하반기 퓨처드라이브 테스트", + "subtitle": "ROS2, 시뮬레이션, SLAM부터 경로 계획과 제어까지", + "description": "ROS2와 NAV2 기반 시뮬레이션 및 플랫폼 실습을 통해 자율주행 시스템의 핵심 흐름을 학습하고 팀 프로젝트로 검증합니다.", + "organizationName": "퓨처드라이브", + "teacherId": "50419393-77f7-40c3-ac97-ddfe884e5cb2", + "isActive": true, + "createdAt": "2026-08-12T06:54:50.872Z", + "updatedAt": "2026-08-12T06:54:50.872Z", + "weeks": [ + { + "id": "d2047273-91d8-49dd-89a1-0e348f43f265", + "courseId": "8e296f81-8445-455c-b1a2-47f2ce9099a4", + "week": 1, + "title": "ROS2 & Simulation", + "tags": [ + "MK-mini", + "진행중" + ], + "progress": 0, + "state": "current", + "duration": "1주", + "github": "https://github.com/ros-navigation/navigation2", + "overview": "ROS2 통신 구조와 Gazebo 시뮬레이션 환경을 구성하고, LiDAR SLAM·위치추정·경로 계획·제어까지 NAV2 자율주행 파이프라인을 실습합니다.", + "deliverable": "NAV2 모듈 소스 변경 내역, SLAM 결과 맵, 목표 지점 주행 검증 화면 및 실행 로그를 제출합니다.", + "requiresSourceSubmission": true, + "createdAt": "2026-08-12T06:54:50.874Z", + "updatedAt": "2026-08-12T06:54:50.874Z", + "modules": [ + { + "id": "f5abf8ab-280b-4ad4-93d7-142bb22fb4bb", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 1, + "category": "Control", + "name": "NAV2-Control", + "folderName": "[lms-nav2-gazebo-control]nav2-control_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-control.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-control/1.0.0/prebuilt/amd64/0ab85a58f37a922b/lms-nav2-gazebo-control-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-control-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "0ab85a58f37a922b493ce21676573e3a8fd339f99a74cce9c4cba58aff9b1e35" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=turtlebot3" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.880Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "18805cbf-c01f-4ea5-956d-cced888b2697", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 2, + "category": "Localization", + "name": "NAV2-Localization", + "folderName": "[lms-nav2-gazebo-localization]nav2-localization_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-localization.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-localization/1.0.0/prebuilt/latest/lms-nav2-gazebo-localization-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-localization-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "44c8d50205f001a196870d03f44d435582b96c51eb4445e50cc8db6203b2c0c9" + } + ], + "defaultParameters": [ + "localization_mode:=amcl" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.883Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "e01c68d3-7f31-4359-89dd-ed32055c082c", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 3, + "category": "Map", + "name": "NAV2-Map", + "folderName": "[lms-nav2-gazebo-map]nav2-map_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-map.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-map/1.0.0/prebuilt/latest/lms-nav2-gazebo-map-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-map-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "f409ce54c40aeeed8cf3fc06251c2e321887b3ec5f5827dfb74897a62780582f" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.884Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "0817062b-045c-45c0-9d36-ae9e0ea456b0", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 4, + "category": "Perception", + "name": "NAV2-Perception", + "folderName": "[lms-nav2-gazebo-perception]nav2-perception_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-perception.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-perception/1.0.0/prebuilt/amd64/d18d59ac77130be1/lms-nav2-gazebo-perception-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-perception-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d18d59ac77130be1da9d16cb0716fbf4b2837132de1765726200b3a57217034e" + } + ], + "defaultParameters": [ + "sim_mode:=true" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.886Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "3b98d72a-a744-46ee-a12b-69241d7c7248", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 5, + "category": "Perception", + "name": "NAV2-Perception3D", + "folderName": "[lms-nav2-gazebo-perception3d]nav2-perception3d_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-perception3D.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-perception3d/1.0.0/prebuilt/latest/lms-nav2-gazebo-perception3d-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-perception3d-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "bab9f7383f44950b6cf6cd8f97b4ae2d3ba61571d6b37c10b24922cc0348a7cc" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.887Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "645b6f17-a8a1-49d9-b6c7-ff5caf01dd4b", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 6, + "category": "Planning", + "name": "NAV2-Planning", + "folderName": "[lms-nav2-gazebo-planning]nav2-planning_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-planning.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-planning/1.0.0/prebuilt/amd64/d1c51b0f211e1420/lms-nav2-gazebo-planning-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-planning-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d1c51b0f211e14208882947dd3bf642dd8ce997f54b37dfc0a4c8d66bd84d608" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.889Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "303687ab-542a-415b-a991-434e49a93922", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 7, + "category": "Simulator", + "name": "NAV2-Gazebo", + "folderName": "[lms-nav2-gazebo-simulator]nav2-simulator_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-simulator.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-simulator/1.0.0/prebuilt/amd64/2c97e7672eaec755/lms-nav2-gazebo-simulator-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-simulator-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2c97e7672eaec755eb300442a77b18bbcbaf6e0d305257dc9974724049756756" + } + ], + "defaultParameters": [ + "gui:=false", + "platform:=turtlebot3" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.890Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "6b2c5597-be2e-4c81-a2a9-7df4a180c8c6", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 8, + "category": "Localization", + "name": "NAV2-SLAM", + "folderName": "[lms-nav2-gazebo-slam]nav2-slam_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-slam.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-slam/1.0.0/prebuilt/amd64/e5aa22340e275d70/lms-nav2-gazebo-slam-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-slam-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "e5aa22340e275d7063e5cd96f974620354760082d22e80b9a58205085d88e337" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.891Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "bcbd0382-5ec5-4bcb-90a9-0492f5f628b9", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 9, + "category": "Localization", + "name": "NAV2-SLAM3D", + "folderName": "[lms-nav2-gazebo-slam3d]nav2-slam3d_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-slam3D.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-slam3d/1.0.0/prebuilt/latest/lms-nav2-gazebo-slam3d-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-slam3d-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "ed59e1e6b5e816403475c44672247cf8747c14edcbfcf7f1939d2b2de1d3263d" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.893Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "efc492b5-afdc-4d01-935e-ea71ac3047d0", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 10, + "category": "Vehicle", + "name": "NAV2-TurtleBot3Burger", + "folderName": "[lms-nav2-gazebo-vehicle]nav2-vehicle_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-vehicle.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-vehicle/1.0.0/prebuilt/latest/lms-nav2-gazebo-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "42e8179172c178978e5ae5d48e189164f6b8a5030fdaa0eba497ca86a97e96bb" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "platform:=turtlebot3", + "level:=2d" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.894Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "6d4a2cb8-b816-4f04-9874-8e8a03222a35", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 11, + "category": "Vehicle", + "name": "NAV2-MKMini", + "folderName": "[lms-nav2-mkmini]nav2-mkmini_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-mkmini.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-mkmini/1.0.0/prebuilt/amd64/lms-nav2-mkmini-build-install-amd64.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-mkmini-build-install-amd64.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "6094d2aa5188a28153452aec08e28870984b36c1bc0c06fec8091901f6d26856" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "platform:=mkmini", + "level:=2d" + ], + "dockerImage": "future-nav2:humble-jetson_orin", + "createdAt": "2026-08-12T06:54:50.895Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "5cfd7b92-eb8b-46b3-b6f0-c5c24c5f8676", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 12, + "category": "Gui", + "name": "NAV2-Rviz2", + "folderName": "[lms-nav2-gazebo-gui]nav2-rviz2_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-gui.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-gui/1.0.0/prebuilt/latest/lms-nav2-gazebo-gui-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-gui-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2a816b08d9f39057a96641ce7ace341ce409f77e5043abe074e2e21ecaa871ca" + } + ], + "defaultParameters": [ + "rviz_config:=nav2" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.896Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "9b92dae5-575d-44a9-bf9f-f0bd1b128dff", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 13, + "category": "System", + "name": "NAV2-Yahboom-Agent", + "folderName": "[lms-nav2-yahboom-agent]yahboom_agent_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-agent.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-agent/1.0.0/prebuilt/arm64/ec2b2c4578fc71b9/lms-nav2-yahboom-agent-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-agent-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "ec2b2c4578fc71b95c720dcacca5e7c7c5d08400fc80ef21a16097d31869cf9d" + } + ], + "defaultParameters": [ + "serial_device:=/dev/ttyUSB0", + "baudrate:=921600" + ], + "dockerImage": "future-nav2:humble-yahboom-agent", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "ffacc8a8-08ac-4633-9eb2-24f18606d875", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 14, + "category": "Vehicle", + "name": "NAV2-Yahboom", + "folderName": "[lms-nav2-yahboom-vehicle]yahboom_vehicle_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-vehicle.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-vehicle/1.0.0/prebuilt/amd64/d54368061d520794/lms-nav2-yahboom-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d54368061d52079489a8d686461e6672ebb84ca0f531fb71f835717b3f2a031f" + }, + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-vehicle/1.0.0/prebuilt/arm64/f409c0b61ca9497d/lms-nav2-yahboom-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "f409c0b61ca9497d4cfd1c2af9f4e137d9316364cab664bb908818f6ecab8331" + } + ], + "defaultParameters": [ + "sim_mode:=false" + ], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "130b973e-dae3-4a98-a9d9-65e12107d8ac", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 15, + "category": "Localization", + "name": "NAV2-Yahboom-Slam", + "folderName": "[lms-nav2-yahboom-slam]yahboom_slam_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-slam.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-slam/1.0.0/prebuilt/arm64/f6444fe604f50ee0/lms-nav2-yahboom-slam-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-slam-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "f6444fe604f50ee00831fc7db121bbebfea6be920b55a498ddc54fc317093c77" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "2c34469d-0a53-459f-9698-468fba0048ba", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 16, + "category": "Map", + "name": "NAV2-Yahboom-Map", + "folderName": "[lms-nav2-yahboom-map]yahboom_map_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-map.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-map/1.0.0/prebuilt/arm64/111981b9ab460ce4/lms-nav2-yahboom-map-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-map-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "111981b9ab460ce450334e5c367e97b7e757ef55d84330ca030b096d4a9c4792" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "88186ea4-da6e-423f-b3e6-9d4176692617", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 17, + "category": "Localization", + "name": "NAV2-Yahboom-Localization", + "folderName": "[lms-nav2-yahboom-localization]yahboom_localization_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-localization.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-localization/1.0.0/prebuilt/arm64/d6534d48841a751c/lms-nav2-yahboom-localization-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-localization-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "d6534d48841a751cb2e21fa73785df61fb81815b406c9c4152c9cbfd0ae59e48" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "e4bf535f-ed53-4ca9-840c-c025cb997fa5", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 18, + "category": "Planning", + "name": "NAV2-Yahboom-Planning", + "folderName": "[lms-nav2-yahboom-planning]yahboom_planning_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-planning.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-planning/1.0.0/prebuilt/arm64/050f4ed4acba795a/lms-nav2-yahboom-planning-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-planning-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "050f4ed4acba795affec8306b7eef116e9e86fd0f42e492da27c7fc624dc8570" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "bc33d3d7-ccaf-4d1c-8490-7bc09122bdb2", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 19, + "category": "Control", + "name": "NAV2-Yahboom-Control", + "folderName": "[lms-nav2-yahboom-control]yahboom_control_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-control.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-control/1.0.0/prebuilt/arm64/be7147024d890249/lms-nav2-yahboom-control-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-control-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "be7147024d89024915f1481a47a0909ea1d06196ef9e9797f260739999e09b3f" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "8140fefb-7aa2-48ba-a52e-09f2cf3caaca", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 20, + "category": "Perception", + "name": "NAV2-Yahboom-Camera", + "folderName": "[lms-nav2-yahboom-camera]yahboom_camera_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-camera.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-camera/1.0.0/prebuilt/arm64/b950a71d5babcdb3/lms-nav2-yahboom-camera-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-camera-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "b950a71d5babcdb37e46c7674fb80d0ae8c076e7d7c1186042b1b1f6e7ee2d04" + } + ], + "defaultParameters": [ + "video_device:=/dev/video0" + ], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + } + ], + "topics": [ + { + "id": "39b65ead-8df4-44b9-a337-12e21b3bf376", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "title": "ROS2 기초", + "detail": "ROS Topic, Service, Action 통신과 TF 정의, ROS2 패키지 및 tree 구조를 실습합니다.", + "sortOrder": 1 + }, + { + "id": "c2db3fad-3545-4685-9e75-7455ee9e0dec", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "title": "Sensor Processing", + "detail": "LiDAR와 카메라 등 센서 데이터 처리 흐름과 Calibration 기초를 확인합니다.", + "sortOrder": 2 + }, + { + "id": "c54a19d2-2507-4569-bbc3-fef151edb793", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "title": "Simulation 환경 구축 Part 1", + "detail": "Gazebo 월드, 로봇 모델, 센서 토픽을 구성해 시뮬레이션 실습 환경을 만듭니다.", + "sortOrder": 3 + }, + { + "id": "2b77f2d9-68e7-41fc-a4b3-2808f2137646", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "title": "Simulation 환경 구축 Part 2", + "detail": "시뮬레이션에서 활용할 수 있는 모빌리티 플랫폼과 실행 모듈 구성을 점검합니다.", + "sortOrder": 4 + }, + { + "id": "d4721074-0b74-46c2-8728-73e4e04968ad", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "title": "LiDAR SLAM", + "detail": "센서 데이터와 SLAM 알고리즘을 활용해 자율주행용 2D Map을 구축합니다.", + "sortOrder": 5 + }, + { + "id": "8c5934f5-fdbe-40f9-9032-15393c0010fb", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "title": "LiDAR Localization", + "detail": "구축한 Map과 실시간 LiDAR 데이터를 이용해 현재 위치를 추정합니다.", + "sortOrder": 6 + }, + { + "id": "85893d34-2a1a-40a4-8a09-64d2dc7e35aa", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "title": "Parameter Tuning", + "detail": "모듈 파라미터를 변경하고 결과를 비교해 알고리즘을 튜닝합니다.", + "sortOrder": 7 + }, + { + "id": "55e73514-28d4-4840-8d5f-be94d804ad49", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "title": "[심화] Camera based SLAM", + "detail": "카메라 기반 Map 구축과 위치인식의 입력·출력 구조를 분석합니다.", + "sortOrder": 8 + }, + { + "id": "c8dc09c3-34c0-439a-b38f-22b59df16b95", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "title": "Occupancy Map", + "detail": "장애물 인식을 위한 Occupancy Map과 costmap 반영 과정을 실습합니다.", + "sortOrder": 9 + }, + { + "id": "a3bfb023-c5ca-46a3-82d6-7ac68a87197f", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "title": "Planning", + "detail": "장애물 충돌 없이 목표 지점으로 이동하기 위한 전역·지역 경로 계획을 실습합니다.", + "sortOrder": 10 + }, + { + "id": "dd8004d8-94ff-4668-bd94-3574334714b1", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "title": "Control", + "detail": "생성한 경로를 추종하도록 속도 명령을 만들고 주행 결과를 검증합니다.", + "sortOrder": 11 + }, + { + "id": "905ebc42-9648-4b99-a347-43ffd89cf408", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "title": "[심화] 딥러닝 기반 객체 인식", + "detail": "딥러닝 기반 객체 인식 결과를 자율주행 데이터 흐름에 반영하는 방법을 학습합니다.", + "sortOrder": 12 + } + ], + "practices": [ + { + "id": "084bf79b-d292-4379-9735-e591943b4819", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "title": "ROS2와 Gazebo 실행 환경", + "description": "Topic, Service, Action, TF를 확인하고 TurtleBot3 Gazebo 환경을 실행합니다.", + "sortOrder": 1 + }, + { + "id": "3cc51467-6739-4dd7-bc7e-de9752e86647", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "title": "LiDAR SLAM과 Localization", + "description": "맵을 생성·저장하고 저장된 맵에서 AMCL 기반 위치추정을 검증합니다.", + "sortOrder": 2 + }, + { + "id": "09741348-896f-4916-abb0-699cbc25095e", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "title": "경로 계획과 제어", + "description": "목표 지점을 설정하고 장애물 회피, 경로 계획, 제어 명령을 비교합니다.", + "sortOrder": 3 + } + ] + }, + { + "id": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "courseId": "8e296f81-8445-455c-b1a2-47f2ce9099a4", + "week": 2, + "title": "Autonomy Studio 팀 프로젝트", + "tags": [ + "MK-mini", + "진행예정" + ], + "progress": 0, + "state": "locked", + "duration": "1주", + "github": "https://github.com/ros-navigation/navigation2", + "overview": "3~4인 팀으로 자율주행 알고리즘이 필요한 문제 상황을 정의하고, 센서 구성과 NAV2 모듈을 조합해 시뮬레이션과 플랫폼에서 검증합니다.", + "deliverable": "팀 프로젝트 소스, 시스템 구성도, 시뮬레이션 및 플랫폼 주행 검증 결과, 발표 자료를 제출합니다.", + "requiresSourceSubmission": true, + "createdAt": "2026-08-12T06:54:50.897Z", + "updatedAt": "2026-08-12T06:54:50.897Z", + "modules": [ + { + "id": "b966f562-170a-4dbf-ae0d-35ebf3b3d0c8", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 1, + "category": "Control", + "name": "NAV2-Control", + "folderName": "[lms-nav2-gazebo-control]nav2-control_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-control.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-control/1.0.0/prebuilt/amd64/0ab85a58f37a922b/lms-nav2-gazebo-control-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-control-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "0ab85a58f37a922b493ce21676573e3a8fd339f99a74cce9c4cba58aff9b1e35" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=turtlebot3" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.900Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "f9115dd5-b318-4e70-a031-d71360f92745", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 2, + "category": "Localization", + "name": "NAV2-Localization", + "folderName": "[lms-nav2-gazebo-localization]nav2-localization_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-localization.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-localization/1.0.0/prebuilt/latest/lms-nav2-gazebo-localization-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-localization-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "44c8d50205f001a196870d03f44d435582b96c51eb4445e50cc8db6203b2c0c9" + } + ], + "defaultParameters": [ + "localization_mode:=amcl" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.902Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "497bd74c-d8b2-4121-baa7-d0ca2bb56b2f", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 3, + "category": "Map", + "name": "NAV2-Map", + "folderName": "[lms-nav2-gazebo-map]nav2-map_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-map.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-map/1.0.0/prebuilt/latest/lms-nav2-gazebo-map-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-map-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "f409ce54c40aeeed8cf3fc06251c2e321887b3ec5f5827dfb74897a62780582f" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.923Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "c6b2e359-954c-46f8-999a-02db7263431e", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 4, + "category": "Perception", + "name": "NAV2-Perception", + "folderName": "[lms-nav2-gazebo-perception]nav2-perception_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-perception.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-perception/1.0.0/prebuilt/amd64/d18d59ac77130be1/lms-nav2-gazebo-perception-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-perception-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d18d59ac77130be1da9d16cb0716fbf4b2837132de1765726200b3a57217034e" + } + ], + "defaultParameters": [ + "sim_mode:=true" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.925Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "b8816337-7c45-4c45-b0c4-8679313b2e4a", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 5, + "category": "Perception", + "name": "NAV2-Perception3D", + "folderName": "[lms-nav2-gazebo-perception3d]nav2-perception3d_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-perception3D.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-perception3d/1.0.0/prebuilt/latest/lms-nav2-gazebo-perception3d-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-perception3d-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "bab9f7383f44950b6cf6cd8f97b4ae2d3ba61571d6b37c10b24922cc0348a7cc" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.926Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "e30ffd05-131b-4cb0-a9b2-53f7d19fe7de", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 6, + "category": "Planning", + "name": "NAV2-Planning", + "folderName": "[lms-nav2-gazebo-planning]nav2-planning_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-planning.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-planning/1.0.0/prebuilt/amd64/d1c51b0f211e1420/lms-nav2-gazebo-planning-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-planning-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d1c51b0f211e14208882947dd3bf642dd8ce997f54b37dfc0a4c8d66bd84d608" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.928Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "9166ebc6-147d-4d51-bd86-8f88df88ae9e", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 7, + "category": "Simulator", + "name": "NAV2-Gazebo", + "folderName": "[lms-nav2-gazebo-simulator]nav2-simulator_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-simulator.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-simulator/1.0.0/prebuilt/amd64/2c97e7672eaec755/lms-nav2-gazebo-simulator-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-simulator-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2c97e7672eaec755eb300442a77b18bbcbaf6e0d305257dc9974724049756756" + } + ], + "defaultParameters": [ + "gui:=false", + "platform:=turtlebot3" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.930Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "1cc184c7-83e0-4762-9dfa-f48306ea8c96", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 8, + "category": "Localization", + "name": "NAV2-SLAM", + "folderName": "[lms-nav2-gazebo-slam]nav2-slam_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-slam.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-slam/1.0.0/prebuilt/amd64/e5aa22340e275d70/lms-nav2-gazebo-slam-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-slam-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "e5aa22340e275d7063e5cd96f974620354760082d22e80b9a58205085d88e337" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.932Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "36cab3bd-093e-41d7-bc3f-6d999f9dcf22", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 9, + "category": "Localization", + "name": "NAV2-SLAM3D", + "folderName": "[lms-nav2-gazebo-slam3d]nav2-slam3d_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-slam3D.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-slam3d/1.0.0/prebuilt/latest/lms-nav2-gazebo-slam3d-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-slam3d-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "ed59e1e6b5e816403475c44672247cf8747c14edcbfcf7f1939d2b2de1d3263d" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.934Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "3b145e73-05f9-4d16-93f0-ec493bd93a04", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 10, + "category": "Vehicle", + "name": "NAV2-TurtleBot3Burger", + "folderName": "[lms-nav2-gazebo-vehicle]nav2-vehicle_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-vehicle.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-vehicle/1.0.0/prebuilt/latest/lms-nav2-gazebo-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "42e8179172c178978e5ae5d48e189164f6b8a5030fdaa0eba497ca86a97e96bb" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "platform:=turtlebot3", + "level:=2d" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.937Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "7849797a-1087-4e1c-a0e6-fc0ac25066a0", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 11, + "category": "Vehicle", + "name": "NAV2-MKMini", + "folderName": "[lms-nav2-mkmini]nav2-mkmini_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-mkmini.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-mkmini/1.0.0/prebuilt/amd64/lms-nav2-mkmini-build-install-amd64.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-mkmini-build-install-amd64.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "6094d2aa5188a28153452aec08e28870984b36c1bc0c06fec8091901f6d26856" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "platform:=mkmini", + "level:=2d" + ], + "dockerImage": "future-nav2:humble-jetson_orin", + "createdAt": "2026-08-12T06:54:50.939Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "409523ba-25fb-4376-ac7e-185ab85f54f1", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 12, + "category": "Gui", + "name": "NAV2-Rviz2", + "folderName": "[lms-nav2-gazebo-gui]nav2-rviz2_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-gui.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-gui/1.0.0/prebuilt/latest/lms-nav2-gazebo-gui-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-gui-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2a816b08d9f39057a96641ce7ace341ce409f77e5043abe074e2e21ecaa871ca" + } + ], + "defaultParameters": [ + "rviz_config:=nav2" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.941Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "ced7672a-46e1-4531-9226-a49b3bd617d4", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 13, + "category": "System", + "name": "NAV2-Yahboom-Agent", + "folderName": "[lms-nav2-yahboom-agent]yahboom_agent_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-agent.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-agent/1.0.0/prebuilt/arm64/ec2b2c4578fc71b9/lms-nav2-yahboom-agent-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-agent-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "ec2b2c4578fc71b95c720dcacca5e7c7c5d08400fc80ef21a16097d31869cf9d" + } + ], + "defaultParameters": [ + "serial_device:=/dev/ttyUSB0", + "baudrate:=921600" + ], + "dockerImage": "future-nav2:humble-yahboom-agent", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "ec74a0c5-a8a4-40f6-8c92-1ad2b234155c", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 14, + "category": "Vehicle", + "name": "NAV2-Yahboom", + "folderName": "[lms-nav2-yahboom-vehicle]yahboom_vehicle_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-vehicle.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-vehicle/1.0.0/prebuilt/amd64/d54368061d520794/lms-nav2-yahboom-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d54368061d52079489a8d686461e6672ebb84ca0f531fb71f835717b3f2a031f" + }, + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-vehicle/1.0.0/prebuilt/arm64/f409c0b61ca9497d/lms-nav2-yahboom-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "f409c0b61ca9497d4cfd1c2af9f4e137d9316364cab664bb908818f6ecab8331" + } + ], + "defaultParameters": [ + "sim_mode:=false" + ], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:55:16.092Z" + }, + { + "id": "e03f0c95-2b3c-4697-9f84-32094d34a9ac", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 15, + "category": "Localization", + "name": "NAV2-Yahboom-Slam", + "folderName": "[lms-nav2-yahboom-slam]yahboom_slam_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-slam.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-slam/1.0.0/prebuilt/arm64/f6444fe604f50ee0/lms-nav2-yahboom-slam-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-slam-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "f6444fe604f50ee00831fc7db121bbebfea6be920b55a498ddc54fc317093c77" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "2fc3f487-1f31-4ad2-98ec-1ffd71bf5765", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 16, + "category": "Map", + "name": "NAV2-Yahboom-Map", + "folderName": "[lms-nav2-yahboom-map]yahboom_map_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-map.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-map/1.0.0/prebuilt/arm64/111981b9ab460ce4/lms-nav2-yahboom-map-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-map-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "111981b9ab460ce450334e5c367e97b7e757ef55d84330ca030b096d4a9c4792" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "eb938a93-f178-40e7-af97-b51db3fcb24f", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 17, + "category": "Localization", + "name": "NAV2-Yahboom-Localization", + "folderName": "[lms-nav2-yahboom-localization]yahboom_localization_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-localization.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-localization/1.0.0/prebuilt/arm64/d6534d48841a751c/lms-nav2-yahboom-localization-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-localization-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "d6534d48841a751cb2e21fa73785df61fb81815b406c9c4152c9cbfd0ae59e48" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "3730f0db-957d-4478-a1e3-2bfa6ab1e850", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 18, + "category": "Planning", + "name": "NAV2-Yahboom-Planning", + "folderName": "[lms-nav2-yahboom-planning]yahboom_planning_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-planning.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-planning/1.0.0/prebuilt/arm64/050f4ed4acba795a/lms-nav2-yahboom-planning-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-planning-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "050f4ed4acba795affec8306b7eef116e9e86fd0f42e492da27c7fc624dc8570" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "6e9c3116-7ffe-48eb-a8dc-31e19427fe4a", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 19, + "category": "Control", + "name": "NAV2-Yahboom-Control", + "folderName": "[lms-nav2-yahboom-control]yahboom_control_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-control.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-control/1.0.0/prebuilt/arm64/be7147024d890249/lms-nav2-yahboom-control-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-control-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "be7147024d89024915f1481a47a0909ea1d06196ef9e9797f260739999e09b3f" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "8d2f2a89-5bb1-47fd-bc67-b6ad4e1dea33", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 20, + "category": "Perception", + "name": "NAV2-Yahboom-Camera", + "folderName": "[lms-nav2-yahboom-camera]yahboom_camera_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-camera.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-camera/1.0.0/prebuilt/arm64/b950a71d5babcdb3/lms-nav2-yahboom-camera-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-camera-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "b950a71d5babcdb37e46c7674fb80d0ae8c076e7d7c1186042b1b1f6e7ee2d04" + } + ], + "defaultParameters": [ + "video_device:=/dev/video0" + ], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + } + ], + "topics": [ + { + "id": "547d0e28-d4ba-4702-9997-1ec7d460ce52", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "title": "프로젝트 주제와 역할 분담", + "detail": "팀별 자율주행 문제 상황과 목표, 역할, 검증 기준을 정의합니다.", + "sortOrder": 1 + }, + { + "id": "e5e209c0-096d-403a-b1a6-5f1a5669cd26", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "title": "센서·모듈 구성 설계", + "detail": "센서 입력과 NAV2 모듈 조합, ROS 토픽 및 실행 순서를 설계합니다.", + "sortOrder": 2 + }, + { + "id": "7bedfd65-c358-491e-87cd-ea313015d643", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "title": "알고리즘 구현과 튜닝", + "detail": "SLAM, Localization, Planning, Control 파라미터를 수정하고 성능을 비교합니다.", + "sortOrder": 3 + }, + { + "id": "f0b41fa3-4a12-40a3-9d36-84e81aa3f4e0", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "title": "시뮬레이션·플랫폼 검증", + "detail": "Gazebo 시뮬레이션과 실제 플랫폼에서 주행 시나리오를 검증합니다.", + "sortOrder": 4 + }, + { + "id": "394cc4e2-abb5-435b-b6b1-33d0e47856e8", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "title": "결과 제출과 발표", + "detail": "소스, 실행 로그, 검증 결과를 정리해 팀 프로젝트 결과를 제출하고 발표합니다.", + "sortOrder": 5 + } + ], + "practices": [ + { + "id": "4fc8713c-d003-4dc1-982f-a52906518d4b", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "title": "팀 자율주행 시나리오 구현", + "description": "팀별 시나리오에 맞춰 NAV2 모듈을 구성하고 소스를 수정합니다.", + "sortOrder": 1 + }, + { + "id": "5c5ec0e7-20cb-4366-8988-22e59f14c7cb", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "title": "통합 주행 검증", + "description": "시뮬레이션과 플랫폼에서 재현 가능한 주행 결과를 확보합니다.", + "sortOrder": 2 + } + ] + }, + { + "id": "4255e11e-4882-477a-840b-f64b8ae8c6db", + "courseId": "8e296f81-8445-455c-b1a2-47f2ce9099a4", + "week": 3, + "title": "원격 개발", + "tags": [ + "MK-mini", + "진행예정" + ], + "progress": 0, + "state": "locked", + "duration": "1주", + "github": "https://github.com/ros-navigation/navigation2", + "overview": "원거리 MK-mini 플랫폼을 연결하고 원격으로 코드를 편집·빌드·실행합니다. 로컬 MK-mini 시뮬레이션과 실차에서 SLAM 및 자율주행을 검증합니다.", + "deliverable": "SLAM 저장 맵, 자율주행 검증 결과, 원격 개발 소스 변경 내역 및 실행 로그를 제출합니다.", + "requiresSourceSubmission": true, + "createdAt": "2026-09-22T06:11:53.084Z", + "updatedAt": "2026-09-22T06:11:53.084Z", + "modules": [ + { + "id": "644f8ee6-2103-4809-8961-de00db3c224e", + "weekId": "4255e11e-4882-477a-840b-f64b8ae8c6db", + "sortOrder": 1, + "category": "Control", + "name": "NAV2-Control", + "folderName": "[lms-nav2-gazebo-control]nav2-control_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-control.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-control/1.0.0/prebuilt/amd64/0ab85a58f37a922b/lms-nav2-gazebo-control-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-control-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "0ab85a58f37a922b493ce21676573e3a8fd339f99a74cce9c4cba58aff9b1e35" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T06:11:53.161Z", + "updatedAt": "2026-09-22T06:11:53.161Z" + }, + { + "id": "5ded14c7-0d95-49a5-b39a-2af32cd30fb7", + "weekId": "4255e11e-4882-477a-840b-f64b8ae8c6db", + "sortOrder": 2, + "category": "Localization", + "name": "NAV2-Localization", + "folderName": "[lms-nav2-gazebo-localization]nav2-localization_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-localization.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-localization/1.0.0/prebuilt/latest/lms-nav2-gazebo-localization-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-localization-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "44c8d50205f001a196870d03f44d435582b96c51eb4445e50cc8db6203b2c0c9" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d", + "localization_mode:=amcl" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T06:11:53.177Z", + "updatedAt": "2026-09-22T06:11:53.177Z" + }, + { + "id": "64f36b02-c1b1-4815-af43-451dce90b9ee", + "weekId": "4255e11e-4882-477a-840b-f64b8ae8c6db", + "sortOrder": 3, + "category": "Map", + "name": "NAV2-Map", + "folderName": "[lms-nav2-gazebo-map]nav2-map_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-map.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-map/1.0.0/prebuilt/latest/lms-nav2-gazebo-map-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-map-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "f409ce54c40aeeed8cf3fc06251c2e321887b3ec5f5827dfb74897a62780582f" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T06:11:53.193Z", + "updatedAt": "2026-09-22T06:11:53.193Z" + }, + { + "id": "7fc02d9c-4c38-4b9c-8ea6-79e827010a17", + "weekId": "4255e11e-4882-477a-840b-f64b8ae8c6db", + "sortOrder": 4, + "category": "Perception", + "name": "NAV2-Perception", + "folderName": "[lms-nav2-gazebo-perception]nav2-perception_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-perception.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-perception/1.0.0/prebuilt/amd64/d18d59ac77130be1/lms-nav2-gazebo-perception-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-perception-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d18d59ac77130be1da9d16cb0716fbf4b2837132de1765726200b3a57217034e" + } + ], + "defaultParameters": [ + "sim_mode:=true" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T06:11:53.210Z", + "updatedAt": "2026-09-22T06:11:53.210Z" + }, + { + "id": "61ba3bc3-7623-41e0-a3c7-b0f7bf424075", + "weekId": "4255e11e-4882-477a-840b-f64b8ae8c6db", + "sortOrder": 5, + "category": "Perception", + "name": "NAV2-Perception3D", + "folderName": "[lms-nav2-gazebo-perception3d]nav2-perception3d_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-perception3D.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-perception3d/1.0.0/prebuilt/latest/lms-nav2-gazebo-perception3d-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-perception3d-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "bab9f7383f44950b6cf6cd8f97b4ae2d3ba61571d6b37c10b24922cc0348a7cc" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T06:11:53.226Z", + "updatedAt": "2026-09-22T06:11:53.226Z" + }, + { + "id": "ef43520e-f4a4-4cb0-bc75-96f07664c28b", + "weekId": "4255e11e-4882-477a-840b-f64b8ae8c6db", + "sortOrder": 6, + "category": "Planning", + "name": "NAV2-Planning", + "folderName": "[lms-nav2-gazebo-planning]nav2-planning_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-planning.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-planning/1.0.0/prebuilt/amd64/d1c51b0f211e1420/lms-nav2-gazebo-planning-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-planning-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d1c51b0f211e14208882947dd3bf642dd8ce997f54b37dfc0a4c8d66bd84d608" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T06:11:53.242Z", + "updatedAt": "2026-09-22T06:11:53.242Z" + }, + { + "id": "f6e540a6-130c-4da5-b9ea-5c3e8f63cc58", + "weekId": "4255e11e-4882-477a-840b-f64b8ae8c6db", + "sortOrder": 7, + "category": "Simulator", + "name": "NAV2-Gazebo", + "folderName": "[lms-nav2-gazebo-simulator]nav2-simulator_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-simulator.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-simulator/1.0.0/prebuilt/amd64/2c97e7672eaec755/lms-nav2-gazebo-simulator-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-simulator-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2c97e7672eaec755eb300442a77b18bbcbaf6e0d305257dc9974724049756756" + } + ], + "defaultParameters": [ + "gui:=false", + "platform:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T06:11:53.258Z", + "updatedAt": "2026-09-22T06:11:53.258Z" + }, + { + "id": "75e52819-88c3-48bc-ac2c-5ef3fa057410", + "weekId": "4255e11e-4882-477a-840b-f64b8ae8c6db", + "sortOrder": 8, + "category": "Localization", + "name": "NAV2-SLAM", + "folderName": "[lms-nav2-gazebo-slam]nav2-slam_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-slam.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-slam/1.0.0/prebuilt/amd64/e5aa22340e275d70/lms-nav2-gazebo-slam-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-slam-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "e5aa22340e275d7063e5cd96f974620354760082d22e80b9a58205085d88e337" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T06:11:53.275Z", + "updatedAt": "2026-09-22T06:11:53.275Z" + }, + { + "id": "bc7e3156-7b27-4f92-a991-bf7599b2d9e8", + "weekId": "4255e11e-4882-477a-840b-f64b8ae8c6db", + "sortOrder": 9, + "category": "Localization", + "name": "NAV2-SLAM3D", + "folderName": "[lms-nav2-gazebo-slam3d]nav2-slam3d_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-slam3D.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-slam3d/1.0.0/prebuilt/latest/lms-nav2-gazebo-slam3d-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-slam3d-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "ed59e1e6b5e816403475c44672247cf8747c14edcbfcf7f1939d2b2de1d3263d" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T06:11:53.291Z", + "updatedAt": "2026-09-22T06:11:53.291Z" + }, + { + "id": "9293c430-cf1b-43da-83e1-a385927adf1d", + "weekId": "4255e11e-4882-477a-840b-f64b8ae8c6db", + "sortOrder": 10, + "category": "Vehicle", + "name": "NAV2-MKMini", + "folderName": "[lms-nav2-mkmini]nav2-mkmini_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-mkmini.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-mkmini/1.0.0/prebuilt/amd64/lms-nav2-mkmini-build-install-amd64.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-mkmini-build-install-amd64.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "6094d2aa5188a28153452aec08e28870984b36c1bc0c06fec8091901f6d26856" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "platform:=mkmini", + "robot:=mkmini", + "level:=2d", + "simulator:=gazebo" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T06:11:53.307Z", + "updatedAt": "2026-09-22T06:11:53.307Z" + }, + { + "id": "3e8324cb-c747-40a6-8cab-e5fa9473300e", + "weekId": "4255e11e-4882-477a-840b-f64b8ae8c6db", + "sortOrder": 11, + "category": "Gui", + "name": "NAV2-Rviz2", + "folderName": "[lms-nav2-gazebo-gui]nav2-rviz2_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-gui.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-gui/1.0.0/prebuilt/latest/lms-nav2-gazebo-gui-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-gui-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2a816b08d9f39057a96641ce7ace341ce409f77e5043abe074e2e21ecaa871ca" + } + ], + "defaultParameters": [ + "rviz_config:=nav2" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T06:11:53.323Z", + "updatedAt": "2026-09-22T06:11:53.323Z" + } + ], + "topics": [ + { + "id": "3764b382-ab4a-4162-9be8-d70b72d63ee2", + "weekId": "4255e11e-4882-477a-840b-f64b8ae8c6db", + "title": "SLAM", + "detail": "원거리 MK-mini 플랫폼에 연결하여 모듈 소스와 파라미터를 수정하고, 센서 토픽을 확인하며 SLAM 맵을 생성·저장합니다. 로컬 MK-mini 시뮬레이션에서 먼저 검증합니다.", + "sortOrder": 1 + }, + { + "id": "ca9b8bb3-9cf9-4964-816c-95bfa59fa087", + "weekId": "4255e11e-4882-477a-840b-f64b8ae8c6db", + "title": "자율주행", + "detail": "저장한 맵으로 위치추정·경로 계획·제어 모듈을 구성하고 목표 지점 주행을 검증합니다. 원격 코드 편집과 빌드, 실행 로그 분석 및 파라미터 튜닝을 실습합니다.", + "sortOrder": 2 + } + ], + "practices": [ + { + "id": "0771ea3f-26b2-41a9-8280-998902bbc7bb", + "weekId": "4255e11e-4882-477a-840b-f64b8ae8c6db", + "title": "SLAM", + "description": "원거리 MK-mini 플랫폼에 연결하여 모듈 소스와 파라미터를 수정하고, 센서 토픽을 확인하며 SLAM 맵을 생성·저장합니다. 로컬 MK-mini 시뮬레이션에서 먼저 검증합니다.", + "sortOrder": 1 + }, + { + "id": "aba77659-e707-43e9-854e-87b419939de5", + "weekId": "4255e11e-4882-477a-840b-f64b8ae8c6db", + "title": "자율주행", + "description": "저장한 맵으로 위치추정·경로 계획·제어 모듈을 구성하고 목표 지점 주행을 검증합니다. 원격 코드 편집과 빌드, 실행 로그 분석 및 파라미터 튜닝을 실습합니다.", + "sortOrder": 2 + } + ] + } + ], + "environmentProfiles": [ + { + "id": "c7b9a405-5d88-4273-8686-edd51c7562ae", + "courseId": "8e296f81-8445-455c-b1a2-47f2ce9099a4", + "week": 1, + "platformKey": "NAV2", + "profileType": "NAV2", + "name": "로컬", + "config": { + "type": "NAV2", + "bridge": { + "env": { + "ROBOT_STACK": "nav2" + }, + "name": "nav2-ros-bridge", + "port": 8765, + "image": "slam-ros-bridge:latest" + }, + "target": "local", + "viewer": { + "stack": "nav2" + }, + "runtime": { + "steps": [], + "containers": [] + }, + "moduleSet": { + "target": "local", + "modules": [ + { + "id": "f5abf8ab-280b-4ad4-93d7-142bb22fb4bb", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "robot:=turtlebot3" + ] + }, + { + "id": "18805cbf-c01f-4ea5-956d-cced888b2697", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "localization_mode:=amcl" + ] + }, + { + "id": "e01c68d3-7f31-4359-89dd-ed32055c082c", + "dockerImage": "future-nav2-gazebo:humble" + }, + { + "id": "0817062b-045c-45c0-9d36-ae9e0ea456b0", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true" + ] + }, + { + "id": "645b6f17-a8a1-49d9-b6c7-ff5caf01dd4b", + "dockerImage": "future-nav2-gazebo:humble" + }, + { + "id": "303687ab-542a-415b-a991-434e49a93922", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "gui:=false", + "platform:=turtlebot3" + ] + }, + { + "id": "6b2c5597-be2e-4c81-a2a9-7df4a180c8c6", + "dockerImage": "future-nav2-gazebo:humble" + }, + { + "id": "efc492b5-afdc-4d01-935e-ea71ac3047d0", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "platform:=turtlebot3", + "level:=2d" + ] + }, + { + "id": "6d4a2cb8-b816-4f04-9874-8e8a03222a35", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "platform:=mkmini", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "5cfd7b92-eb8b-46b3-b6f0-c5c24c5f8676", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "rviz_config:=nav2" + ] + }, + { + "id": "ffacc8a8-08ac-4633-9eb2-24f18606d875", + "dockerImage": "future-nav2:humble-yahboom", + "defaultParameters": [ + "sim_mode:=true" + ] + } + ], + "includeUnlisted": false + }, + "runtimeImages": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/nav2/gazebo/latest/future-nav2-gazebo-humble.tar.zst", + "image": "future-nav2-gazebo:humble", + "fileName": "future-nav2-gazebo-humble.tar.zst", + "required": true, + "checksumSha256": "54230e039c1fa5dc82615cef3828c5acae7b8bea8e921b70cfdc5351d8301644" + } + ] + }, + "enabled": true, + "createdAt": "2026-08-12T06:54:50.945Z", + "updatedAt": "2026-09-22T05:52:15.667Z" + }, + { + "id": "07f87f3f-5c93-4ea6-b9f3-4228960adfa5", + "courseId": "8e296f81-8445-455c-b1a2-47f2ce9099a4", + "week": 1, + "platformKey": "PLATFORM", + "profileType": "PLATFORM", + "name": "플랫폼", + "config": { + "type": "PLATFORM", + "bridge": { + "env": { + "ROBOT_STACK": "nav2" + }, + "name": "nav2-ros-bridge", + "port": 8765, + "image": "slam-ros-bridge:latest" + }, + "target": "remote-jetson", + "viewer": { + "stack": "nav2" + }, + "moduleSet": { + "target": "platform", + "modules": [ + { + "id": "ffacc8a8-08ac-4633-9eb2-24f18606d875", + "dockerImage": "future-nav2:humble-yahboom", + "defaultParameters": [ + "sim_mode:=false" + ] + }, + { + "id": "9b92dae5-575d-44a9-bf9f-f0bd1b128dff", + "dockerImage": "future-nav2:humble-yahboom-agent", + "defaultParameters": [ + "serial_device:=/dev/ttyUSB0", + "baudrate:=921600" + ] + }, + { + "id": "8140fefb-7aa2-48ba-a52e-09f2cf3caaca", + "dockerImage": "future-nav2:humble-yahboom", + "defaultParameters": [ + "video_device:=/dev/video0" + ] + }, + { + "id": "130b973e-dae3-4a98-a9d9-65e12107d8ac", + "dockerImage": "future-nav2:humble-yahboom" + }, + { + "id": "88186ea4-da6e-423f-b3e6-9d4176692617", + "dockerImage": "future-nav2:humble-yahboom" + }, + { + "id": "bc33d3d7-ccaf-4d1c-8490-7bc09122bdb2", + "dockerImage": "future-nav2:humble-yahboom" + }, + { + "id": "e4bf535f-ed53-4ca9-840c-c025cb997fa5", + "dockerImage": "future-nav2:humble-yahboom" + }, + { + "id": "2c34469d-0a53-459f-9698-468fba0048ba", + "dockerImage": "future-nav2:humble-yahboom" + } + ], + "includeUnlisted": false + }, + "runtimeKind": "real", + "runtimeImages": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/slam-ros-bridge/arm64/20260819-0659d4cf5578/slam-ros-bridge-jetson-orin.tar.zst", + "image": "slam-ros-bridge:jetson_orin", + "fileName": "slam-ros-bridge-jetson-orin.tar.zst", + "required": true, + "checksumSha256": "0659d4cf5578c43bc9c25e4a4fc5d226ccd5b7bec43becfdff83b5390717114e" + }, + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/nav2/jetson-orin/latest/future-nav2-humble-jetson-orin.tar.zst", + "image": "future-nav2:humble-jetson_orin", + "fileName": "future-nav2-humble-jetson-orin.tar.zst", + "required": true + } + ] + }, + "enabled": true, + "createdAt": "2026-08-12T06:54:50.945Z", + "updatedAt": "2026-09-22T05:52:15.667Z" + }, + { + "id": "1323c10b-aeb5-4e9f-99c9-472f5759cb69", + "courseId": "8e296f81-8445-455c-b1a2-47f2ce9099a4", + "week": 2, + "platformKey": "NAV2", + "profileType": "NAV2", + "name": "로컬", + "config": { + "type": "NAV2", + "bridge": { + "env": { + "ROBOT_STACK": "nav2" + }, + "name": "nav2-ros-bridge", + "port": 8765, + "image": "slam-ros-bridge:latest" + }, + "target": "local", + "viewer": { + "stack": "nav2" + }, + "runtime": { + "steps": [], + "containers": [] + }, + "moduleSet": { + "target": "local", + "modules": [ + { + "id": "b966f562-170a-4dbf-ae0d-35ebf3b3d0c8", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "robot:=turtlebot3" + ] + }, + { + "id": "f9115dd5-b318-4e70-a031-d71360f92745", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "localization_mode:=amcl" + ] + }, + { + "id": "497bd74c-d8b2-4121-baa7-d0ca2bb56b2f", + "dockerImage": "future-nav2-gazebo:humble" + }, + { + "id": "c6b2e359-954c-46f8-999a-02db7263431e", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true" + ] + }, + { + "id": "e30ffd05-131b-4cb0-a9b2-53f7d19fe7de", + "dockerImage": "future-nav2-gazebo:humble" + }, + { + "id": "9166ebc6-147d-4d51-bd86-8f88df88ae9e", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "gui:=false", + "platform:=turtlebot3" + ] + }, + { + "id": "1cc184c7-83e0-4762-9dfa-f48306ea8c96", + "dockerImage": "future-nav2-gazebo:humble" + }, + { + "id": "3b145e73-05f9-4d16-93f0-ec493bd93a04", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "platform:=turtlebot3", + "level:=2d" + ] + }, + { + "id": "7849797a-1087-4e1c-a0e6-fc0ac25066a0", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "platform:=mkmini", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "409523ba-25fb-4376-ac7e-185ab85f54f1", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "rviz_config:=nav2" + ] + }, + { + "id": "ec74a0c5-a8a4-40f6-8c92-1ad2b234155c", + "dockerImage": "future-nav2:humble-yahboom", + "defaultParameters": [ + "sim_mode:=true" + ] + } + ], + "includeUnlisted": false + }, + "runtimeImages": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/nav2/gazebo/latest/future-nav2-gazebo-humble.tar.zst", + "image": "future-nav2-gazebo:humble", + "fileName": "future-nav2-gazebo-humble.tar.zst", + "required": true, + "checksumSha256": "54230e039c1fa5dc82615cef3828c5acae7b8bea8e921b70cfdc5351d8301644" + } + ] + }, + "enabled": true, + "createdAt": "2026-08-12T06:54:50.945Z", + "updatedAt": "2026-09-22T06:16:53.801Z" + }, + { + "id": "587c8b3a-0c80-4431-818d-a3bf8565cb2f", + "courseId": "8e296f81-8445-455c-b1a2-47f2ce9099a4", + "week": 2, + "platformKey": "PLATFORM", + "profileType": "PLATFORM", + "name": "플랫폼", + "config": { + "type": "PLATFORM", + "bridge": { + "env": { + "ROBOT_STACK": "nav2" + }, + "name": "nav2-ros-bridge", + "port": 8765, + "image": "slam-ros-bridge:latest" + }, + "target": "remote-jetson", + "viewer": { + "stack": "nav2" + }, + "moduleSet": { + "target": "platform", + "modules": [ + { + "id": "ec74a0c5-a8a4-40f6-8c92-1ad2b234155c", + "dockerImage": "future-nav2:humble-yahboom", + "defaultParameters": [ + "sim_mode:=false" + ] + }, + { + "id": "ced7672a-46e1-4531-9226-a49b3bd617d4", + "dockerImage": "future-nav2:humble-yahboom-agent", + "defaultParameters": [ + "serial_device:=/dev/ttyUSB0", + "baudrate:=921600" + ] + }, + { + "id": "8d2f2a89-5bb1-47fd-bc67-b6ad4e1dea33", + "dockerImage": "future-nav2:humble-yahboom", + "defaultParameters": [ + "video_device:=/dev/video0" + ] + }, + { + "id": "e03f0c95-2b3c-4697-9f84-32094d34a9ac", + "dockerImage": "future-nav2:humble-yahboom" + }, + { + "id": "eb938a93-f178-40e7-af97-b51db3fcb24f", + "dockerImage": "future-nav2:humble-yahboom" + }, + { + "id": "6e9c3116-7ffe-48eb-a8dc-31e19427fe4a", + "dockerImage": "future-nav2:humble-yahboom" + }, + { + "id": "3730f0db-957d-4478-a1e3-2bfa6ab1e850", + "dockerImage": "future-nav2:humble-yahboom" + }, + { + "id": "2fc3f487-1f31-4ad2-98ec-1ffd71bf5765", + "dockerImage": "future-nav2:humble-yahboom" + } + ], + "includeUnlisted": false + }, + "runtimeKind": "real", + "runtimeImages": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/slam-ros-bridge/arm64/20260819-0659d4cf5578/slam-ros-bridge-jetson-orin.tar.zst", + "image": "slam-ros-bridge:jetson_orin", + "fileName": "slam-ros-bridge-jetson-orin.tar.zst", + "required": true, + "checksumSha256": "0659d4cf5578c43bc9c25e4a4fc5d226ccd5b7bec43becfdff83b5390717114e" + }, + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/nav2/jetson-orin/latest/future-nav2-humble-jetson-orin.tar.zst", + "image": "future-nav2:humble-jetson_orin", + "fileName": "future-nav2-humble-jetson-orin.tar.zst", + "required": true + } + ] + }, + "enabled": true, + "createdAt": "2026-08-12T06:54:50.945Z", + "updatedAt": "2026-09-22T06:16:53.866Z" + }, + { + "id": "93b1f4d4-8640-4e6a-8c2c-1a0d6d8e7a6b", + "courseId": "8e296f81-8445-455c-b1a2-47f2ce9099a4", + "week": 3, + "platformKey": "NAV2", + "profileType": "NAV2", + "name": "로컬", + "config": { + "type": "NAV2", + "bridge": { + "env": { + "ROBOT_STACK": "nav2" + }, + "name": "nav2-ros-bridge", + "port": 8765, + "image": "slam-ros-bridge:latest" + }, + "target": "local", + "viewer": { + "stack": "nav2" + }, + "runtime": { + "steps": [], + "containers": [] + }, + "moduleSet": { + "target": "local", + "modules": [ + { + "id": "644f8ee6-2103-4809-8961-de00db3c224e", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "5ded14c7-0d95-49a5-b39a-2af32cd30fb7", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d", + "localization_mode:=amcl" + ] + }, + { + "id": "64f36b02-c1b1-4815-af43-451dce90b9ee", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "7fc02d9c-4c38-4b9c-8ea6-79e827010a17", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true" + ] + }, + { + "id": "ef43520e-f4a4-4cb0-bc75-96f07664c28b", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "f6e540a6-130c-4da5-b9ea-5c3e8f63cc58", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "gui:=false", + "platform:=mkmini" + ] + }, + { + "id": "75e52819-88c3-48bc-ac2c-5ef3fa057410", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "9293c430-cf1b-43da-83e1-a385927adf1d", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "platform:=mkmini", + "robot:=mkmini", + "level:=2d", + "simulator:=gazebo" + ] + }, + { + "id": "3e8324cb-c747-40a6-8cab-e5fa9473300e", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "rviz_config:=nav2" + ] + } + ], + "includeUnlisted": false + }, + "runtimeImages": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/nav2/gazebo/latest/future-nav2-gazebo-humble.tar.zst", + "image": "future-nav2-gazebo:humble", + "fileName": "future-nav2-gazebo-humble.tar.zst", + "required": true, + "checksumSha256": "54230e039c1fa5dc82615cef3828c5acae7b8bea8e921b70cfdc5351d8301644" + } + ] + }, + "enabled": true, + "createdAt": "2026-09-22T06:11:53.339Z", + "updatedAt": "2026-09-22T06:11:53.339Z" + }, + { + "id": "0e9654b5-a12a-49ba-abba-ca00ee296be8", + "courseId": "8e296f81-8445-455c-b1a2-47f2ce9099a4", + "week": 3, + "platformKey": "PLATFORM", + "profileType": "PLATFORM", + "name": "플랫폼", + "config": { + "type": "PLATFORM", + "bridge": { + "env": { + "ROBOT_STACK": "nav2" + }, + "name": "nav2-ros-bridge", + "port": 8765, + "image": "slam-ros-bridge:latest" + }, + "target": "remote-jetson", + "viewer": { + "stack": "nav2" + }, + "moduleSet": { + "target": "platform", + "modules": [ + { + "id": "644f8ee6-2103-4809-8961-de00db3c224e", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "5ded14c7-0d95-49a5-b39a-2af32cd30fb7", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini", + "level:=2d", + "localization_mode:=amcl" + ] + }, + { + "id": "64f36b02-c1b1-4815-af43-451dce90b9ee", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "7fc02d9c-4c38-4b9c-8ea6-79e827010a17", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false" + ] + }, + { + "id": "61ba3bc3-7623-41e0-a3c7-b0f7bf424075", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini" + ] + }, + { + "id": "ef43520e-f4a4-4cb0-bc75-96f07664c28b", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "75e52819-88c3-48bc-ac2c-5ef3fa057410", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "bc7e3156-7b27-4f92-a991-bf7599b2d9e8", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini" + ] + }, + { + "id": "9293c430-cf1b-43da-83e1-a385927adf1d", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "platform:=mkmini", + "robot:=mkmini", + "level:=2d" + ] + } + ], + "includeUnlisted": false + }, + "runtimeKind": "real", + "runtimeImages": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/slam-ros-bridge/arm64/20260819-0659d4cf5578/slam-ros-bridge-jetson-orin.tar.zst", + "image": "slam-ros-bridge:jetson_orin", + "fileName": "slam-ros-bridge-jetson-orin.tar.zst", + "required": true, + "checksumSha256": "0659d4cf5578c43bc9c25e4a4fc5d226ccd5b7bec43becfdff83b5390717114e" + }, + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/nav2/jetson-orin/latest/future-nav2-humble-jetson-orin.tar.zst", + "image": "future-nav2:humble-jetson_orin", + "fileName": "future-nav2-humble-jetson-orin.tar.zst", + "required": true + } + ] + }, + "enabled": true, + "createdAt": "2026-09-22T06:11:53.356Z", + "updatedAt": "2026-09-22T06:11:53.356Z" + } + ], + "instructorCurriculumWeekOverrides": [ + { + "id": "a67d74b2-bfd7-4869-8a39-1ebdeccf0bb3", + "organizationId": "b545a634-e877-4935-8041-c83e352b1fb7", + "organizationName": "퓨처드라이브", + "courseId": "8e296f81-8445-455c-b1a2-47f2ce9099a4", + "week": 4, + "tagLabel": "없음", + "title": "4주차 커리큘럼", + "duration": "-", + "overview": "", + "deliverable": "", + "requiresSourceSubmission": true, + "isTeamProject": false, + "learningSteps": [ + { + "title": "학습단계 1", + "concepts": [], + "videoUrl": "", + "description": "", + "videoEnabled": false + } + ], + "topics": [ + "학습단계 1" + ], + "topicDetails": [ + "" + ], + "topicVideoUrls": [ + "" + ], + "practiceContents": [], + "disabledModuleIds": [], + "createdAt": "2026-09-22T06:18:44.883Z", + "updatedAt": "2026-09-22T06:18:44.883Z" + }, + { + "id": "d4069536-1b4b-4349-8412-3a18906468fb", + "organizationId": "b545a634-e877-4935-8041-c83e352b1fb7", + "organizationName": "퓨처드라이브", + "courseId": "8e296f81-8445-455c-b1a2-47f2ce9099a4", + "week": 1, + "tagLabel": "MK-mini", + "title": "ROS2 & Simulation", + "duration": "1주", + "overview": "ROS2 통신 구조와 Gazebo 시뮬레이션 환경을 구성하고, LiDAR SLAM·위치추정·경로 계획·제어까지 NAV2 자율주행 파이프라인을 실습합니다.", + "deliverable": "NAV2 모듈 소스 변경 내역, SLAM 결과 맵, 목표 지점 주행 검증 화면 및 실행 로그를 제출합니다.", + "requiresSourceSubmission": true, + "isTeamProject": false, + "learningSteps": [ + { + "title": "ROS2 기초", + "concepts": [], + "videoUrl": "https://www.youtube.com/watch?v=gyskLlvX3oI&list=PLNWNEEf8BvG45noktLVI9N0SmD72BpmH7", + "description": "ROS Topic, Service, Action 통신과 TF 정의, ROS2 패키지 및 tree 구조를 실습합니다.", + "videoEnabled": true + }, + { + "title": "Sensor Processing", + "concepts": [], + "videoUrl": "", + "description": "LiDAR와 카메라 등 센서 데이터 처리 흐름과 Calibration 기초를 확인합니다.", + "videoEnabled": false + }, + { + "title": "Simulation 환경 구축 Part 1", + "concepts": [], + "videoUrl": "", + "description": "Gazebo 월드, 로봇 모델, 센서 토픽을 구성해 시뮬레이션 실습 환경을 만듭니다.", + "videoEnabled": false + }, + { + "title": "Simulation 환경 구축 Part 2", + "concepts": [], + "videoUrl": "", + "description": "시뮬레이션에서 활용할 수 있는 모빌리티 플랫폼과 실행 모듈 구성을 점검합니다.", + "videoEnabled": false + }, + { + "title": "LiDAR SLAM", + "concepts": [], + "videoUrl": "", + "description": "센서 데이터와 SLAM 알고리즘을 활용해 자율주행용 2D Map을 구축합니다.", + "videoEnabled": false + }, + { + "title": "LiDAR Localization", + "concepts": [], + "videoUrl": "", + "description": "구축한 Map과 실시간 LiDAR 데이터를 이용해 현재 위치를 추정합니다.", + "videoEnabled": false + }, + { + "title": "Parameter Tuning", + "concepts": [], + "videoUrl": "", + "description": "모듈 파라미터를 변경하고 결과를 비교해 알고리즘을 튜닝합니다.", + "videoEnabled": false + }, + { + "title": "[심화] Camera based SLAM", + "concepts": [], + "videoUrl": "", + "description": "카메라 기반 Map 구축과 위치인식의 입력·출력 구조를 분석합니다.", + "videoEnabled": false + }, + { + "title": "Occupancy Map", + "concepts": [], + "videoUrl": "", + "description": "장애물 인식을 위한 Occupancy Map과 costmap 반영 과정을 실습합니다.", + "videoEnabled": false + }, + { + "title": "Planning", + "concepts": [], + "videoUrl": "", + "description": "장애물 충돌 없이 목표 지점으로 이동하기 위한 전역·지역 경로 계획을 실습합니다.", + "videoEnabled": false + }, + { + "title": "Control", + "concepts": [], + "videoUrl": "", + "description": "생성한 경로를 추종하도록 속도 명령을 만들고 주행 결과를 검증합니다.", + "videoEnabled": false + }, + { + "title": "[심화] 딥러닝 기반 객체 인식", + "concepts": [], + "videoUrl": "", + "description": "딥러닝 기반 객체 인식 결과를 자율주행 데이터 흐름에 반영하는 방법을 학습합니다.", + "videoEnabled": false + } + ], + "topics": [ + "ROS2 기초", + "Sensor Processing", + "Simulation 환경 구축 Part 1", + "Simulation 환경 구축 Part 2", + "LiDAR SLAM", + "LiDAR Localization", + "Parameter Tuning", + "[심화] Camera based SLAM", + "Occupancy Map", + "Planning", + "Control", + "[심화] 딥러닝 기반 객체 인식" + ], + "topicDetails": [ + "ROS Topic, Service, Action 통신과 TF 정의, ROS2 패키지 및 tree 구조를 실습합니다.", + "LiDAR와 카메라 등 센서 데이터 처리 흐름과 Calibration 기초를 확인합니다.", + "Gazebo 월드, 로봇 모델, 센서 토픽을 구성해 시뮬레이션 실습 환경을 만듭니다.", + "시뮬레이션에서 활용할 수 있는 모빌리티 플랫폼과 실행 모듈 구성을 점검합니다.", + "센서 데이터와 SLAM 알고리즘을 활용해 자율주행용 2D Map을 구축합니다.", + "구축한 Map과 실시간 LiDAR 데이터를 이용해 현재 위치를 추정합니다.", + "모듈 파라미터를 변경하고 결과를 비교해 알고리즘을 튜닝합니다.", + "카메라 기반 Map 구축과 위치인식의 입력·출력 구조를 분석합니다.", + "장애물 인식을 위한 Occupancy Map과 costmap 반영 과정을 실습합니다.", + "장애물 충돌 없이 목표 지점으로 이동하기 위한 전역·지역 경로 계획을 실습합니다.", + "생성한 경로를 추종하도록 속도 명령을 만들고 주행 결과를 검증합니다.", + "딥러닝 기반 객체 인식 결과를 자율주행 데이터 흐름에 반영하는 방법을 학습합니다." + ], + "topicVideoUrls": [ + "https://www.youtube.com/watch?v=gyskLlvX3oI&list=PLNWNEEf8BvG45noktLVI9N0SmD72BpmH7", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "practiceContents": [ + { + "title": "ROS2와 Gazebo 실행 환경", + "description": "Topic, Service, Action, TF를 확인하고 TurtleBot3 Gazebo 환경을 실행합니다." + }, + { + "title": "LiDAR SLAM과 Localization", + "description": "맵을 생성·저장하고 저장된 맵에서 AMCL 기반 위치추정을 검증합니다." + }, + { + "title": "경로 계획과 제어", + "description": "목표 지점을 설정하고 장애물 회피, 경로 계획, 제어 명령을 비교합니다." + } + ], + "disabledModuleIds": [], + "createdAt": "2026-08-13T08:30:14.022Z", + "updatedAt": "2026-09-22T05:52:15.682Z" + } + ] + } +] \ No newline at end of file diff --git a/backups/course-week2-modules-before-1790057813646.json b/backups/course-week2-modules-before-1790057813646.json new file mode 100644 index 0000000..5299545 --- /dev/null +++ b/backups/course-week2-modules-before-1790057813646.json @@ -0,0 +1,2464 @@ +{ + "id": "8e296f81-8445-455c-b1a2-47f2ce9099a4", + "slug": "nav2-autonomy-50419393-77f", + "title": "2026 하반기 퓨처드라이브 테스트", + "subtitle": "ROS2, 시뮬레이션, SLAM부터 경로 계획과 제어까지", + "description": "ROS2와 NAV2 기반 시뮬레이션 및 플랫폼 실습을 통해 자율주행 시스템의 핵심 흐름을 학습하고 팀 프로젝트로 검증합니다.", + "organizationName": "퓨처드라이브", + "teacherId": "50419393-77f7-40c3-ac97-ddfe884e5cb2", + "isActive": true, + "createdAt": "2026-08-12T06:54:50.872Z", + "updatedAt": "2026-08-12T06:54:50.872Z", + "weeks": [ + { + "id": "d2047273-91d8-49dd-89a1-0e348f43f265", + "courseId": "8e296f81-8445-455c-b1a2-47f2ce9099a4", + "week": 1, + "title": "ROS2 & Simulation", + "tags": [ + "MK-mini", + "진행중" + ], + "progress": 0, + "state": "current", + "duration": "1주", + "github": "https://github.com/ros-navigation/navigation2", + "overview": "ROS2 통신 구조와 Gazebo 시뮬레이션 환경을 구성하고, LiDAR SLAM·위치추정·경로 계획·제어까지 NAV2 자율주행 파이프라인을 실습합니다.", + "deliverable": "NAV2 모듈 소스 변경 내역, SLAM 결과 맵, 목표 지점 주행 검증 화면 및 실행 로그를 제출합니다.", + "requiresSourceSubmission": true, + "createdAt": "2026-08-12T06:54:50.874Z", + "updatedAt": "2026-08-12T06:54:50.874Z", + "modules": [ + { + "id": "f5abf8ab-280b-4ad4-93d7-142bb22fb4bb", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 1, + "category": "Control", + "name": "NAV2-Control", + "folderName": "[lms-nav2-gazebo-control]nav2-control_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-control.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-control/1.0.0/prebuilt/amd64/0ab85a58f37a922b/lms-nav2-gazebo-control-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-control-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "0ab85a58f37a922b493ce21676573e3a8fd339f99a74cce9c4cba58aff9b1e35" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=turtlebot3" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.880Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "18805cbf-c01f-4ea5-956d-cced888b2697", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 2, + "category": "Localization", + "name": "NAV2-Localization", + "folderName": "[lms-nav2-gazebo-localization]nav2-localization_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-localization.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-localization/1.0.0/prebuilt/latest/lms-nav2-gazebo-localization-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-localization-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "44c8d50205f001a196870d03f44d435582b96c51eb4445e50cc8db6203b2c0c9" + } + ], + "defaultParameters": [ + "localization_mode:=amcl" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.883Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "e01c68d3-7f31-4359-89dd-ed32055c082c", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 3, + "category": "Map", + "name": "NAV2-Map", + "folderName": "[lms-nav2-gazebo-map]nav2-map_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-map.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-map/1.0.0/prebuilt/latest/lms-nav2-gazebo-map-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-map-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "f409ce54c40aeeed8cf3fc06251c2e321887b3ec5f5827dfb74897a62780582f" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.884Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "0817062b-045c-45c0-9d36-ae9e0ea456b0", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 4, + "category": "Perception", + "name": "NAV2-Perception", + "folderName": "[lms-nav2-gazebo-perception]nav2-perception_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-perception.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-perception/1.0.0/prebuilt/amd64/d18d59ac77130be1/lms-nav2-gazebo-perception-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-perception-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d18d59ac77130be1da9d16cb0716fbf4b2837132de1765726200b3a57217034e" + } + ], + "defaultParameters": [ + "sim_mode:=true" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.886Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "3b98d72a-a744-46ee-a12b-69241d7c7248", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 5, + "category": "Perception", + "name": "NAV2-Perception3D", + "folderName": "[lms-nav2-gazebo-perception3d]nav2-perception3d_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-perception3D.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-perception3d/1.0.0/prebuilt/latest/lms-nav2-gazebo-perception3d-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-perception3d-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "bab9f7383f44950b6cf6cd8f97b4ae2d3ba61571d6b37c10b24922cc0348a7cc" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.887Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "645b6f17-a8a1-49d9-b6c7-ff5caf01dd4b", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 6, + "category": "Planning", + "name": "NAV2-Planning", + "folderName": "[lms-nav2-gazebo-planning]nav2-planning_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-planning.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-planning/1.0.0/prebuilt/amd64/d1c51b0f211e1420/lms-nav2-gazebo-planning-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-planning-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d1c51b0f211e14208882947dd3bf642dd8ce997f54b37dfc0a4c8d66bd84d608" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.889Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "303687ab-542a-415b-a991-434e49a93922", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 7, + "category": "Simulator", + "name": "NAV2-Gazebo", + "folderName": "[lms-nav2-gazebo-simulator]nav2-simulator_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-simulator.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-simulator/1.0.0/prebuilt/amd64/2c97e7672eaec755/lms-nav2-gazebo-simulator-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-simulator-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2c97e7672eaec755eb300442a77b18bbcbaf6e0d305257dc9974724049756756" + } + ], + "defaultParameters": [ + "gui:=false", + "platform:=turtlebot3" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.890Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "6b2c5597-be2e-4c81-a2a9-7df4a180c8c6", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 8, + "category": "Localization", + "name": "NAV2-SLAM", + "folderName": "[lms-nav2-gazebo-slam]nav2-slam_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-slam.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-slam/1.0.0/prebuilt/amd64/e5aa22340e275d70/lms-nav2-gazebo-slam-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-slam-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "e5aa22340e275d7063e5cd96f974620354760082d22e80b9a58205085d88e337" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.891Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "bcbd0382-5ec5-4bcb-90a9-0492f5f628b9", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 9, + "category": "Localization", + "name": "NAV2-SLAM3D", + "folderName": "[lms-nav2-gazebo-slam3d]nav2-slam3d_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-slam3D.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-slam3d/1.0.0/prebuilt/latest/lms-nav2-gazebo-slam3d-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-slam3d-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "ed59e1e6b5e816403475c44672247cf8747c14edcbfcf7f1939d2b2de1d3263d" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.893Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "efc492b5-afdc-4d01-935e-ea71ac3047d0", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 10, + "category": "Vehicle", + "name": "NAV2-TurtleBot3Burger", + "folderName": "[lms-nav2-gazebo-vehicle]nav2-vehicle_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-vehicle.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-vehicle/1.0.0/prebuilt/latest/lms-nav2-gazebo-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "42e8179172c178978e5ae5d48e189164f6b8a5030fdaa0eba497ca86a97e96bb" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "platform:=turtlebot3", + "level:=2d" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.894Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "6d4a2cb8-b816-4f04-9874-8e8a03222a35", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 11, + "category": "Vehicle", + "name": "NAV2-MKMini", + "folderName": "[lms-nav2-mkmini]nav2-mkmini_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-mkmini.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-mkmini/1.0.0/prebuilt/amd64/lms-nav2-mkmini-build-install-amd64.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-mkmini-build-install-amd64.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "6094d2aa5188a28153452aec08e28870984b36c1bc0c06fec8091901f6d26856" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "platform:=mkmini", + "level:=2d" + ], + "dockerImage": "future-nav2:humble-jetson_orin", + "createdAt": "2026-08-12T06:54:50.895Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "5cfd7b92-eb8b-46b3-b6f0-c5c24c5f8676", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 12, + "category": "Gui", + "name": "NAV2-Rviz2", + "folderName": "[lms-nav2-gazebo-gui]nav2-rviz2_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-gui.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-gui/1.0.0/prebuilt/latest/lms-nav2-gazebo-gui-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-gui-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2a816b08d9f39057a96641ce7ace341ce409f77e5043abe074e2e21ecaa871ca" + } + ], + "defaultParameters": [ + "rviz_config:=nav2" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.896Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "9b92dae5-575d-44a9-bf9f-f0bd1b128dff", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 13, + "category": "System", + "name": "NAV2-Yahboom-Agent", + "folderName": "[lms-nav2-yahboom-agent]yahboom_agent_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-agent.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-agent/1.0.0/prebuilt/arm64/ec2b2c4578fc71b9/lms-nav2-yahboom-agent-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-agent-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "ec2b2c4578fc71b95c720dcacca5e7c7c5d08400fc80ef21a16097d31869cf9d" + } + ], + "defaultParameters": [ + "serial_device:=/dev/ttyUSB0", + "baudrate:=921600" + ], + "dockerImage": "future-nav2:humble-yahboom-agent", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "ffacc8a8-08ac-4633-9eb2-24f18606d875", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 14, + "category": "Vehicle", + "name": "NAV2-Yahboom", + "folderName": "[lms-nav2-yahboom-vehicle]yahboom_vehicle_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-vehicle.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-vehicle/1.0.0/prebuilt/amd64/d54368061d520794/lms-nav2-yahboom-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d54368061d52079489a8d686461e6672ebb84ca0f531fb71f835717b3f2a031f" + }, + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-vehicle/1.0.0/prebuilt/arm64/f409c0b61ca9497d/lms-nav2-yahboom-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "f409c0b61ca9497d4cfd1c2af9f4e137d9316364cab664bb908818f6ecab8331" + } + ], + "defaultParameters": [ + "sim_mode:=false" + ], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "130b973e-dae3-4a98-a9d9-65e12107d8ac", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 15, + "category": "Localization", + "name": "NAV2-Yahboom-Slam", + "folderName": "[lms-nav2-yahboom-slam]yahboom_slam_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-slam.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-slam/1.0.0/prebuilt/arm64/f6444fe604f50ee0/lms-nav2-yahboom-slam-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-slam-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "f6444fe604f50ee00831fc7db121bbebfea6be920b55a498ddc54fc317093c77" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "2c34469d-0a53-459f-9698-468fba0048ba", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 16, + "category": "Map", + "name": "NAV2-Yahboom-Map", + "folderName": "[lms-nav2-yahboom-map]yahboom_map_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-map.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-map/1.0.0/prebuilt/arm64/111981b9ab460ce4/lms-nav2-yahboom-map-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-map-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "111981b9ab460ce450334e5c367e97b7e757ef55d84330ca030b096d4a9c4792" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "88186ea4-da6e-423f-b3e6-9d4176692617", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 17, + "category": "Localization", + "name": "NAV2-Yahboom-Localization", + "folderName": "[lms-nav2-yahboom-localization]yahboom_localization_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-localization.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-localization/1.0.0/prebuilt/arm64/d6534d48841a751c/lms-nav2-yahboom-localization-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-localization-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "d6534d48841a751cb2e21fa73785df61fb81815b406c9c4152c9cbfd0ae59e48" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "e4bf535f-ed53-4ca9-840c-c025cb997fa5", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 18, + "category": "Planning", + "name": "NAV2-Yahboom-Planning", + "folderName": "[lms-nav2-yahboom-planning]yahboom_planning_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-planning.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-planning/1.0.0/prebuilt/arm64/050f4ed4acba795a/lms-nav2-yahboom-planning-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-planning-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "050f4ed4acba795affec8306b7eef116e9e86fd0f42e492da27c7fc624dc8570" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "bc33d3d7-ccaf-4d1c-8490-7bc09122bdb2", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 19, + "category": "Control", + "name": "NAV2-Yahboom-Control", + "folderName": "[lms-nav2-yahboom-control]yahboom_control_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-control.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-control/1.0.0/prebuilt/arm64/be7147024d890249/lms-nav2-yahboom-control-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-control-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "be7147024d89024915f1481a47a0909ea1d06196ef9e9797f260739999e09b3f" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "8140fefb-7aa2-48ba-a52e-09f2cf3caaca", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 20, + "category": "Perception", + "name": "NAV2-Yahboom-Camera", + "folderName": "[lms-nav2-yahboom-camera]yahboom_camera_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-camera.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-camera/1.0.0/prebuilt/arm64/b950a71d5babcdb3/lms-nav2-yahboom-camera-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-camera-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "b950a71d5babcdb37e46c7674fb80d0ae8c076e7d7c1186042b1b1f6e7ee2d04" + } + ], + "defaultParameters": [ + "video_device:=/dev/video0" + ], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + } + ], + "topics": [ + { + "id": "39b65ead-8df4-44b9-a337-12e21b3bf376", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "title": "ROS2 기초", + "detail": "ROS Topic, Service, Action 통신과 TF 정의, ROS2 패키지 및 tree 구조를 실습합니다.", + "sortOrder": 1 + }, + { + "id": "c2db3fad-3545-4685-9e75-7455ee9e0dec", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "title": "Sensor Processing", + "detail": "LiDAR와 카메라 등 센서 데이터 처리 흐름과 Calibration 기초를 확인합니다.", + "sortOrder": 2 + }, + { + "id": "c54a19d2-2507-4569-bbc3-fef151edb793", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "title": "Simulation 환경 구축 Part 1", + "detail": "Gazebo 월드, 로봇 모델, 센서 토픽을 구성해 시뮬레이션 실습 환경을 만듭니다.", + "sortOrder": 3 + }, + { + "id": "2b77f2d9-68e7-41fc-a4b3-2808f2137646", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "title": "Simulation 환경 구축 Part 2", + "detail": "시뮬레이션에서 활용할 수 있는 모빌리티 플랫폼과 실행 모듈 구성을 점검합니다.", + "sortOrder": 4 + }, + { + "id": "d4721074-0b74-46c2-8728-73e4e04968ad", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "title": "LiDAR SLAM", + "detail": "센서 데이터와 SLAM 알고리즘을 활용해 자율주행용 2D Map을 구축합니다.", + "sortOrder": 5 + }, + { + "id": "8c5934f5-fdbe-40f9-9032-15393c0010fb", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "title": "LiDAR Localization", + "detail": "구축한 Map과 실시간 LiDAR 데이터를 이용해 현재 위치를 추정합니다.", + "sortOrder": 6 + }, + { + "id": "85893d34-2a1a-40a4-8a09-64d2dc7e35aa", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "title": "Parameter Tuning", + "detail": "모듈 파라미터를 변경하고 결과를 비교해 알고리즘을 튜닝합니다.", + "sortOrder": 7 + }, + { + "id": "55e73514-28d4-4840-8d5f-be94d804ad49", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "title": "[심화] Camera based SLAM", + "detail": "카메라 기반 Map 구축과 위치인식의 입력·출력 구조를 분석합니다.", + "sortOrder": 8 + }, + { + "id": "c8dc09c3-34c0-439a-b38f-22b59df16b95", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "title": "Occupancy Map", + "detail": "장애물 인식을 위한 Occupancy Map과 costmap 반영 과정을 실습합니다.", + "sortOrder": 9 + }, + { + "id": "a3bfb023-c5ca-46a3-82d6-7ac68a87197f", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "title": "Planning", + "detail": "장애물 충돌 없이 목표 지점으로 이동하기 위한 전역·지역 경로 계획을 실습합니다.", + "sortOrder": 10 + }, + { + "id": "dd8004d8-94ff-4668-bd94-3574334714b1", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "title": "Control", + "detail": "생성한 경로를 추종하도록 속도 명령을 만들고 주행 결과를 검증합니다.", + "sortOrder": 11 + }, + { + "id": "905ebc42-9648-4b99-a347-43ffd89cf408", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "title": "[심화] 딥러닝 기반 객체 인식", + "detail": "딥러닝 기반 객체 인식 결과를 자율주행 데이터 흐름에 반영하는 방법을 학습합니다.", + "sortOrder": 12 + } + ], + "practices": [ + { + "id": "084bf79b-d292-4379-9735-e591943b4819", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "title": "ROS2와 Gazebo 실행 환경", + "description": "Topic, Service, Action, TF를 확인하고 TurtleBot3 Gazebo 환경을 실행합니다.", + "sortOrder": 1 + }, + { + "id": "3cc51467-6739-4dd7-bc7e-de9752e86647", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "title": "LiDAR SLAM과 Localization", + "description": "맵을 생성·저장하고 저장된 맵에서 AMCL 기반 위치추정을 검증합니다.", + "sortOrder": 2 + }, + { + "id": "09741348-896f-4916-abb0-699cbc25095e", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "title": "경로 계획과 제어", + "description": "목표 지점을 설정하고 장애물 회피, 경로 계획, 제어 명령을 비교합니다.", + "sortOrder": 3 + } + ] + }, + { + "id": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "courseId": "8e296f81-8445-455c-b1a2-47f2ce9099a4", + "week": 2, + "title": "Autonomy Studio 팀 프로젝트", + "tags": [ + "MK-mini", + "진행예정" + ], + "progress": 0, + "state": "locked", + "duration": "1주", + "github": "https://github.com/ros-navigation/navigation2", + "overview": "3~4인 팀으로 자율주행 알고리즘이 필요한 문제 상황을 정의하고, 센서 구성과 NAV2 모듈을 조합해 시뮬레이션과 플랫폼에서 검증합니다.", + "deliverable": "팀 프로젝트 소스, 시스템 구성도, 시뮬레이션 및 플랫폼 주행 검증 결과, 발표 자료를 제출합니다.", + "requiresSourceSubmission": true, + "createdAt": "2026-08-12T06:54:50.897Z", + "updatedAt": "2026-08-12T06:54:50.897Z", + "modules": [ + { + "id": "b966f562-170a-4dbf-ae0d-35ebf3b3d0c8", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 1, + "category": "Control", + "name": "NAV2-Control", + "folderName": "[lms-nav2-gazebo-control]nav2-control_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-control.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-control/1.0.0/prebuilt/amd64/0ab85a58f37a922b/lms-nav2-gazebo-control-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-control-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "0ab85a58f37a922b493ce21676573e3a8fd339f99a74cce9c4cba58aff9b1e35" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=turtlebot3" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.900Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "f9115dd5-b318-4e70-a031-d71360f92745", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 2, + "category": "Localization", + "name": "NAV2-Localization", + "folderName": "[lms-nav2-gazebo-localization]nav2-localization_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-localization.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-localization/1.0.0/prebuilt/latest/lms-nav2-gazebo-localization-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-localization-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "44c8d50205f001a196870d03f44d435582b96c51eb4445e50cc8db6203b2c0c9" + } + ], + "defaultParameters": [ + "localization_mode:=amcl" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.902Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "497bd74c-d8b2-4121-baa7-d0ca2bb56b2f", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 3, + "category": "Map", + "name": "NAV2-Map", + "folderName": "[lms-nav2-gazebo-map]nav2-map_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-map.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-map/1.0.0/prebuilt/latest/lms-nav2-gazebo-map-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-map-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "f409ce54c40aeeed8cf3fc06251c2e321887b3ec5f5827dfb74897a62780582f" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.923Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "c6b2e359-954c-46f8-999a-02db7263431e", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 4, + "category": "Perception", + "name": "NAV2-Perception", + "folderName": "[lms-nav2-gazebo-perception]nav2-perception_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-perception.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-perception/1.0.0/prebuilt/amd64/d18d59ac77130be1/lms-nav2-gazebo-perception-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-perception-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d18d59ac77130be1da9d16cb0716fbf4b2837132de1765726200b3a57217034e" + } + ], + "defaultParameters": [ + "sim_mode:=true" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.925Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "b8816337-7c45-4c45-b0c4-8679313b2e4a", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 5, + "category": "Perception", + "name": "NAV2-Perception3D", + "folderName": "[lms-nav2-gazebo-perception3d]nav2-perception3d_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-perception3D.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-perception3d/1.0.0/prebuilt/latest/lms-nav2-gazebo-perception3d-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-perception3d-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "bab9f7383f44950b6cf6cd8f97b4ae2d3ba61571d6b37c10b24922cc0348a7cc" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.926Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "e30ffd05-131b-4cb0-a9b2-53f7d19fe7de", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 6, + "category": "Planning", + "name": "NAV2-Planning", + "folderName": "[lms-nav2-gazebo-planning]nav2-planning_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-planning.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-planning/1.0.0/prebuilt/amd64/d1c51b0f211e1420/lms-nav2-gazebo-planning-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-planning-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d1c51b0f211e14208882947dd3bf642dd8ce997f54b37dfc0a4c8d66bd84d608" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.928Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "9166ebc6-147d-4d51-bd86-8f88df88ae9e", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 7, + "category": "Simulator", + "name": "NAV2-Gazebo", + "folderName": "[lms-nav2-gazebo-simulator]nav2-simulator_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-simulator.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-simulator/1.0.0/prebuilt/amd64/2c97e7672eaec755/lms-nav2-gazebo-simulator-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-simulator-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2c97e7672eaec755eb300442a77b18bbcbaf6e0d305257dc9974724049756756" + } + ], + "defaultParameters": [ + "gui:=false", + "platform:=turtlebot3" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.930Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "1cc184c7-83e0-4762-9dfa-f48306ea8c96", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 8, + "category": "Localization", + "name": "NAV2-SLAM", + "folderName": "[lms-nav2-gazebo-slam]nav2-slam_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-slam.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-slam/1.0.0/prebuilt/amd64/e5aa22340e275d70/lms-nav2-gazebo-slam-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-slam-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "e5aa22340e275d7063e5cd96f974620354760082d22e80b9a58205085d88e337" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.932Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "36cab3bd-093e-41d7-bc3f-6d999f9dcf22", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 9, + "category": "Localization", + "name": "NAV2-SLAM3D", + "folderName": "[lms-nav2-gazebo-slam3d]nav2-slam3d_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-slam3D.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-slam3d/1.0.0/prebuilt/latest/lms-nav2-gazebo-slam3d-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-slam3d-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "ed59e1e6b5e816403475c44672247cf8747c14edcbfcf7f1939d2b2de1d3263d" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.934Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "3b145e73-05f9-4d16-93f0-ec493bd93a04", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 10, + "category": "Vehicle", + "name": "NAV2-TurtleBot3Burger", + "folderName": "[lms-nav2-gazebo-vehicle]nav2-vehicle_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-vehicle.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-vehicle/1.0.0/prebuilt/latest/lms-nav2-gazebo-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "42e8179172c178978e5ae5d48e189164f6b8a5030fdaa0eba497ca86a97e96bb" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "platform:=turtlebot3", + "level:=2d" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.937Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "7849797a-1087-4e1c-a0e6-fc0ac25066a0", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 11, + "category": "Vehicle", + "name": "NAV2-MKMini", + "folderName": "[lms-nav2-mkmini]nav2-mkmini_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-mkmini.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-mkmini/1.0.0/prebuilt/amd64/lms-nav2-mkmini-build-install-amd64.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-mkmini-build-install-amd64.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "6094d2aa5188a28153452aec08e28870984b36c1bc0c06fec8091901f6d26856" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "platform:=mkmini", + "level:=2d" + ], + "dockerImage": "future-nav2:humble-jetson_orin", + "createdAt": "2026-08-12T06:54:50.939Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "409523ba-25fb-4376-ac7e-185ab85f54f1", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 12, + "category": "Gui", + "name": "NAV2-Rviz2", + "folderName": "[lms-nav2-gazebo-gui]nav2-rviz2_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-gui.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-gui/1.0.0/prebuilt/latest/lms-nav2-gazebo-gui-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-gui-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2a816b08d9f39057a96641ce7ace341ce409f77e5043abe074e2e21ecaa871ca" + } + ], + "defaultParameters": [ + "rviz_config:=nav2" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.941Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "ced7672a-46e1-4531-9226-a49b3bd617d4", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 13, + "category": "System", + "name": "NAV2-Yahboom-Agent", + "folderName": "[lms-nav2-yahboom-agent]yahboom_agent_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-agent.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-agent/1.0.0/prebuilt/arm64/ec2b2c4578fc71b9/lms-nav2-yahboom-agent-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-agent-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "ec2b2c4578fc71b95c720dcacca5e7c7c5d08400fc80ef21a16097d31869cf9d" + } + ], + "defaultParameters": [ + "serial_device:=/dev/ttyUSB0", + "baudrate:=921600" + ], + "dockerImage": "future-nav2:humble-yahboom-agent", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "ec74a0c5-a8a4-40f6-8c92-1ad2b234155c", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 14, + "category": "Vehicle", + "name": "NAV2-Yahboom", + "folderName": "[lms-nav2-yahboom-vehicle]yahboom_vehicle_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-vehicle.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-vehicle/1.0.0/prebuilt/amd64/d54368061d520794/lms-nav2-yahboom-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d54368061d52079489a8d686461e6672ebb84ca0f531fb71f835717b3f2a031f" + }, + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-vehicle/1.0.0/prebuilt/arm64/f409c0b61ca9497d/lms-nav2-yahboom-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "f409c0b61ca9497d4cfd1c2af9f4e137d9316364cab664bb908818f6ecab8331" + } + ], + "defaultParameters": [ + "sim_mode:=false" + ], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:55:16.092Z" + }, + { + "id": "e03f0c95-2b3c-4697-9f84-32094d34a9ac", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 15, + "category": "Localization", + "name": "NAV2-Yahboom-Slam", + "folderName": "[lms-nav2-yahboom-slam]yahboom_slam_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-slam.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-slam/1.0.0/prebuilt/arm64/f6444fe604f50ee0/lms-nav2-yahboom-slam-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-slam-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "f6444fe604f50ee00831fc7db121bbebfea6be920b55a498ddc54fc317093c77" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "2fc3f487-1f31-4ad2-98ec-1ffd71bf5765", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 16, + "category": "Map", + "name": "NAV2-Yahboom-Map", + "folderName": "[lms-nav2-yahboom-map]yahboom_map_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-map.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-map/1.0.0/prebuilt/arm64/111981b9ab460ce4/lms-nav2-yahboom-map-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-map-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "111981b9ab460ce450334e5c367e97b7e757ef55d84330ca030b096d4a9c4792" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "eb938a93-f178-40e7-af97-b51db3fcb24f", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 17, + "category": "Localization", + "name": "NAV2-Yahboom-Localization", + "folderName": "[lms-nav2-yahboom-localization]yahboom_localization_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-localization.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-localization/1.0.0/prebuilt/arm64/d6534d48841a751c/lms-nav2-yahboom-localization-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-localization-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "d6534d48841a751cb2e21fa73785df61fb81815b406c9c4152c9cbfd0ae59e48" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "3730f0db-957d-4478-a1e3-2bfa6ab1e850", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 18, + "category": "Planning", + "name": "NAV2-Yahboom-Planning", + "folderName": "[lms-nav2-yahboom-planning]yahboom_planning_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-planning.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-planning/1.0.0/prebuilt/arm64/050f4ed4acba795a/lms-nav2-yahboom-planning-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-planning-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "050f4ed4acba795affec8306b7eef116e9e86fd0f42e492da27c7fc624dc8570" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "6e9c3116-7ffe-48eb-a8dc-31e19427fe4a", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 19, + "category": "Control", + "name": "NAV2-Yahboom-Control", + "folderName": "[lms-nav2-yahboom-control]yahboom_control_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-control.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-control/1.0.0/prebuilt/arm64/be7147024d890249/lms-nav2-yahboom-control-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-control-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "be7147024d89024915f1481a47a0909ea1d06196ef9e9797f260739999e09b3f" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "8d2f2a89-5bb1-47fd-bc67-b6ad4e1dea33", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 20, + "category": "Perception", + "name": "NAV2-Yahboom-Camera", + "folderName": "[lms-nav2-yahboom-camera]yahboom_camera_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-camera.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-camera/1.0.0/prebuilt/arm64/b950a71d5babcdb3/lms-nav2-yahboom-camera-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-camera-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "b950a71d5babcdb37e46c7674fb80d0ae8c076e7d7c1186042b1b1f6e7ee2d04" + } + ], + "defaultParameters": [ + "video_device:=/dev/video0" + ], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + } + ], + "topics": [ + { + "id": "547d0e28-d4ba-4702-9997-1ec7d460ce52", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "title": "프로젝트 주제와 역할 분담", + "detail": "팀별 자율주행 문제 상황과 목표, 역할, 검증 기준을 정의합니다.", + "sortOrder": 1 + }, + { + "id": "e5e209c0-096d-403a-b1a6-5f1a5669cd26", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "title": "센서·모듈 구성 설계", + "detail": "센서 입력과 NAV2 모듈 조합, ROS 토픽 및 실행 순서를 설계합니다.", + "sortOrder": 2 + }, + { + "id": "7bedfd65-c358-491e-87cd-ea313015d643", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "title": "알고리즘 구현과 튜닝", + "detail": "SLAM, Localization, Planning, Control 파라미터를 수정하고 성능을 비교합니다.", + "sortOrder": 3 + }, + { + "id": "f0b41fa3-4a12-40a3-9d36-84e81aa3f4e0", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "title": "시뮬레이션·플랫폼 검증", + "detail": "Gazebo 시뮬레이션과 실제 플랫폼에서 주행 시나리오를 검증합니다.", + "sortOrder": 4 + }, + { + "id": "394cc4e2-abb5-435b-b6b1-33d0e47856e8", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "title": "결과 제출과 발표", + "detail": "소스, 실행 로그, 검증 결과를 정리해 팀 프로젝트 결과를 제출하고 발표합니다.", + "sortOrder": 5 + } + ], + "practices": [ + { + "id": "4fc8713c-d003-4dc1-982f-a52906518d4b", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "title": "팀 자율주행 시나리오 구현", + "description": "팀별 시나리오에 맞춰 NAV2 모듈을 구성하고 소스를 수정합니다.", + "sortOrder": 1 + }, + { + "id": "5c5ec0e7-20cb-4366-8988-22e59f14c7cb", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "title": "통합 주행 검증", + "description": "시뮬레이션과 플랫폼에서 재현 가능한 주행 결과를 확보합니다.", + "sortOrder": 2 + } + ] + }, + { + "id": "4255e11e-4882-477a-840b-f64b8ae8c6db", + "courseId": "8e296f81-8445-455c-b1a2-47f2ce9099a4", + "week": 3, + "title": "원격 개발", + "tags": [ + "MK-mini", + "진행예정" + ], + "progress": 0, + "state": "locked", + "duration": "1주", + "github": "https://github.com/ros-navigation/navigation2", + "overview": "원거리 MK-mini 플랫폼을 연결하고 원격으로 코드를 편집·빌드·실행합니다. 로컬 MK-mini 시뮬레이션과 실차에서 SLAM 및 자율주행을 검증합니다.", + "deliverable": "SLAM 저장 맵, 자율주행 검증 결과, 원격 개발 소스 변경 내역 및 실행 로그를 제출합니다.", + "requiresSourceSubmission": true, + "createdAt": "2026-09-22T06:11:53.084Z", + "updatedAt": "2026-09-22T06:11:53.084Z", + "modules": [ + { + "id": "644f8ee6-2103-4809-8961-de00db3c224e", + "weekId": "4255e11e-4882-477a-840b-f64b8ae8c6db", + "sortOrder": 1, + "category": "Control", + "name": "NAV2-Control", + "folderName": "[lms-nav2-gazebo-control]nav2-control_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-control.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-control/1.0.0/prebuilt/amd64/0ab85a58f37a922b/lms-nav2-gazebo-control-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-control-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "0ab85a58f37a922b493ce21676573e3a8fd339f99a74cce9c4cba58aff9b1e35" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T06:11:53.161Z", + "updatedAt": "2026-09-22T06:11:53.161Z" + }, + { + "id": "5ded14c7-0d95-49a5-b39a-2af32cd30fb7", + "weekId": "4255e11e-4882-477a-840b-f64b8ae8c6db", + "sortOrder": 2, + "category": "Localization", + "name": "NAV2-Localization", + "folderName": "[lms-nav2-gazebo-localization]nav2-localization_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-localization.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-localization/1.0.0/prebuilt/latest/lms-nav2-gazebo-localization-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-localization-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "44c8d50205f001a196870d03f44d435582b96c51eb4445e50cc8db6203b2c0c9" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d", + "localization_mode:=amcl" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T06:11:53.177Z", + "updatedAt": "2026-09-22T06:11:53.177Z" + }, + { + "id": "64f36b02-c1b1-4815-af43-451dce90b9ee", + "weekId": "4255e11e-4882-477a-840b-f64b8ae8c6db", + "sortOrder": 3, + "category": "Map", + "name": "NAV2-Map", + "folderName": "[lms-nav2-gazebo-map]nav2-map_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-map.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-map/1.0.0/prebuilt/latest/lms-nav2-gazebo-map-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-map-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "f409ce54c40aeeed8cf3fc06251c2e321887b3ec5f5827dfb74897a62780582f" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T06:11:53.193Z", + "updatedAt": "2026-09-22T06:11:53.193Z" + }, + { + "id": "7fc02d9c-4c38-4b9c-8ea6-79e827010a17", + "weekId": "4255e11e-4882-477a-840b-f64b8ae8c6db", + "sortOrder": 4, + "category": "Perception", + "name": "NAV2-Perception", + "folderName": "[lms-nav2-gazebo-perception]nav2-perception_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-perception.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-perception/1.0.0/prebuilt/amd64/d18d59ac77130be1/lms-nav2-gazebo-perception-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-perception-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d18d59ac77130be1da9d16cb0716fbf4b2837132de1765726200b3a57217034e" + } + ], + "defaultParameters": [ + "sim_mode:=true" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T06:11:53.210Z", + "updatedAt": "2026-09-22T06:11:53.210Z" + }, + { + "id": "61ba3bc3-7623-41e0-a3c7-b0f7bf424075", + "weekId": "4255e11e-4882-477a-840b-f64b8ae8c6db", + "sortOrder": 5, + "category": "Perception", + "name": "NAV2-Perception3D", + "folderName": "[lms-nav2-gazebo-perception3d]nav2-perception3d_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-perception3D.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-perception3d/1.0.0/prebuilt/latest/lms-nav2-gazebo-perception3d-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-perception3d-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "bab9f7383f44950b6cf6cd8f97b4ae2d3ba61571d6b37c10b24922cc0348a7cc" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T06:11:53.226Z", + "updatedAt": "2026-09-22T06:11:53.226Z" + }, + { + "id": "ef43520e-f4a4-4cb0-bc75-96f07664c28b", + "weekId": "4255e11e-4882-477a-840b-f64b8ae8c6db", + "sortOrder": 6, + "category": "Planning", + "name": "NAV2-Planning", + "folderName": "[lms-nav2-gazebo-planning]nav2-planning_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-planning.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-planning/1.0.0/prebuilt/amd64/d1c51b0f211e1420/lms-nav2-gazebo-planning-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-planning-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d1c51b0f211e14208882947dd3bf642dd8ce997f54b37dfc0a4c8d66bd84d608" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T06:11:53.242Z", + "updatedAt": "2026-09-22T06:11:53.242Z" + }, + { + "id": "f6e540a6-130c-4da5-b9ea-5c3e8f63cc58", + "weekId": "4255e11e-4882-477a-840b-f64b8ae8c6db", + "sortOrder": 7, + "category": "Simulator", + "name": "NAV2-Gazebo", + "folderName": "[lms-nav2-gazebo-simulator]nav2-simulator_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-simulator.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-simulator/1.0.0/prebuilt/amd64/2c97e7672eaec755/lms-nav2-gazebo-simulator-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-simulator-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2c97e7672eaec755eb300442a77b18bbcbaf6e0d305257dc9974724049756756" + } + ], + "defaultParameters": [ + "gui:=false", + "platform:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T06:11:53.258Z", + "updatedAt": "2026-09-22T06:11:53.258Z" + }, + { + "id": "75e52819-88c3-48bc-ac2c-5ef3fa057410", + "weekId": "4255e11e-4882-477a-840b-f64b8ae8c6db", + "sortOrder": 8, + "category": "Localization", + "name": "NAV2-SLAM", + "folderName": "[lms-nav2-gazebo-slam]nav2-slam_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-slam.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-slam/1.0.0/prebuilt/amd64/e5aa22340e275d70/lms-nav2-gazebo-slam-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-slam-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "e5aa22340e275d7063e5cd96f974620354760082d22e80b9a58205085d88e337" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T06:11:53.275Z", + "updatedAt": "2026-09-22T06:11:53.275Z" + }, + { + "id": "bc7e3156-7b27-4f92-a991-bf7599b2d9e8", + "weekId": "4255e11e-4882-477a-840b-f64b8ae8c6db", + "sortOrder": 9, + "category": "Localization", + "name": "NAV2-SLAM3D", + "folderName": "[lms-nav2-gazebo-slam3d]nav2-slam3d_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-slam3D.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-slam3d/1.0.0/prebuilt/latest/lms-nav2-gazebo-slam3d-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-slam3d-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "ed59e1e6b5e816403475c44672247cf8747c14edcbfcf7f1939d2b2de1d3263d" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T06:11:53.291Z", + "updatedAt": "2026-09-22T06:11:53.291Z" + }, + { + "id": "9293c430-cf1b-43da-83e1-a385927adf1d", + "weekId": "4255e11e-4882-477a-840b-f64b8ae8c6db", + "sortOrder": 10, + "category": "Vehicle", + "name": "NAV2-MKMini", + "folderName": "[lms-nav2-mkmini]nav2-mkmini_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-mkmini.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-mkmini/1.0.0/prebuilt/amd64/lms-nav2-mkmini-build-install-amd64.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-mkmini-build-install-amd64.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "6094d2aa5188a28153452aec08e28870984b36c1bc0c06fec8091901f6d26856" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "platform:=mkmini", + "robot:=mkmini", + "level:=2d", + "simulator:=gazebo" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T06:11:53.307Z", + "updatedAt": "2026-09-22T06:11:53.307Z" + }, + { + "id": "3e8324cb-c747-40a6-8cab-e5fa9473300e", + "weekId": "4255e11e-4882-477a-840b-f64b8ae8c6db", + "sortOrder": 11, + "category": "Gui", + "name": "NAV2-Rviz2", + "folderName": "[lms-nav2-gazebo-gui]nav2-rviz2_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-gui.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-gui/1.0.0/prebuilt/latest/lms-nav2-gazebo-gui-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-gui-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2a816b08d9f39057a96641ce7ace341ce409f77e5043abe074e2e21ecaa871ca" + } + ], + "defaultParameters": [ + "rviz_config:=nav2" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T06:11:53.323Z", + "updatedAt": "2026-09-22T06:11:53.323Z" + } + ], + "topics": [ + { + "id": "3764b382-ab4a-4162-9be8-d70b72d63ee2", + "weekId": "4255e11e-4882-477a-840b-f64b8ae8c6db", + "title": "SLAM", + "detail": "원거리 MK-mini 플랫폼에 연결하여 모듈 소스와 파라미터를 수정하고, 센서 토픽을 확인하며 SLAM 맵을 생성·저장합니다. 로컬 MK-mini 시뮬레이션에서 먼저 검증합니다.", + "sortOrder": 1 + }, + { + "id": "ca9b8bb3-9cf9-4964-816c-95bfa59fa087", + "weekId": "4255e11e-4882-477a-840b-f64b8ae8c6db", + "title": "자율주행", + "detail": "저장한 맵으로 위치추정·경로 계획·제어 모듈을 구성하고 목표 지점 주행을 검증합니다. 원격 코드 편집과 빌드, 실행 로그 분석 및 파라미터 튜닝을 실습합니다.", + "sortOrder": 2 + } + ], + "practices": [ + { + "id": "0771ea3f-26b2-41a9-8280-998902bbc7bb", + "weekId": "4255e11e-4882-477a-840b-f64b8ae8c6db", + "title": "SLAM", + "description": "원거리 MK-mini 플랫폼에 연결하여 모듈 소스와 파라미터를 수정하고, 센서 토픽을 확인하며 SLAM 맵을 생성·저장합니다. 로컬 MK-mini 시뮬레이션에서 먼저 검증합니다.", + "sortOrder": 1 + }, + { + "id": "aba77659-e707-43e9-854e-87b419939de5", + "weekId": "4255e11e-4882-477a-840b-f64b8ae8c6db", + "title": "자율주행", + "description": "저장한 맵으로 위치추정·경로 계획·제어 모듈을 구성하고 목표 지점 주행을 검증합니다. 원격 코드 편집과 빌드, 실행 로그 분석 및 파라미터 튜닝을 실습합니다.", + "sortOrder": 2 + } + ] + } + ], + "environmentProfiles": [ + { + "id": "c7b9a405-5d88-4273-8686-edd51c7562ae", + "courseId": "8e296f81-8445-455c-b1a2-47f2ce9099a4", + "week": 1, + "platformKey": "NAV2", + "profileType": "NAV2", + "name": "로컬", + "config": { + "type": "NAV2", + "bridge": { + "env": { + "ROBOT_STACK": "nav2" + }, + "name": "nav2-ros-bridge", + "port": 8765, + "image": "slam-ros-bridge:latest" + }, + "target": "local", + "viewer": { + "stack": "nav2" + }, + "runtime": { + "steps": [], + "containers": [] + }, + "moduleSet": { + "target": "local", + "modules": [ + { + "id": "f5abf8ab-280b-4ad4-93d7-142bb22fb4bb", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "robot:=turtlebot3" + ] + }, + { + "id": "18805cbf-c01f-4ea5-956d-cced888b2697", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "localization_mode:=amcl" + ] + }, + { + "id": "e01c68d3-7f31-4359-89dd-ed32055c082c", + "dockerImage": "future-nav2-gazebo:humble" + }, + { + "id": "0817062b-045c-45c0-9d36-ae9e0ea456b0", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true" + ] + }, + { + "id": "645b6f17-a8a1-49d9-b6c7-ff5caf01dd4b", + "dockerImage": "future-nav2-gazebo:humble" + }, + { + "id": "303687ab-542a-415b-a991-434e49a93922", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "gui:=false", + "platform:=turtlebot3" + ] + }, + { + "id": "6b2c5597-be2e-4c81-a2a9-7df4a180c8c6", + "dockerImage": "future-nav2-gazebo:humble" + }, + { + "id": "efc492b5-afdc-4d01-935e-ea71ac3047d0", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "platform:=turtlebot3", + "level:=2d" + ] + }, + { + "id": "6d4a2cb8-b816-4f04-9874-8e8a03222a35", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "platform:=mkmini", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "5cfd7b92-eb8b-46b3-b6f0-c5c24c5f8676", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "rviz_config:=nav2" + ] + }, + { + "id": "ffacc8a8-08ac-4633-9eb2-24f18606d875", + "dockerImage": "future-nav2:humble-yahboom", + "defaultParameters": [ + "sim_mode:=true" + ] + } + ], + "includeUnlisted": false + }, + "runtimeImages": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/nav2/gazebo/latest/future-nav2-gazebo-humble.tar.zst", + "image": "future-nav2-gazebo:humble", + "fileName": "future-nav2-gazebo-humble.tar.zst", + "required": true, + "checksumSha256": "54230e039c1fa5dc82615cef3828c5acae7b8bea8e921b70cfdc5351d8301644" + } + ] + }, + "enabled": true, + "createdAt": "2026-08-12T06:54:50.945Z", + "updatedAt": "2026-09-22T05:52:15.667Z" + }, + { + "id": "07f87f3f-5c93-4ea6-b9f3-4228960adfa5", + "courseId": "8e296f81-8445-455c-b1a2-47f2ce9099a4", + "week": 1, + "platformKey": "PLATFORM", + "profileType": "PLATFORM", + "name": "플랫폼", + "config": { + "type": "PLATFORM", + "bridge": { + "env": { + "ROBOT_STACK": "nav2" + }, + "name": "nav2-ros-bridge", + "port": 8765, + "image": "slam-ros-bridge:latest" + }, + "target": "remote-jetson", + "viewer": { + "stack": "nav2" + }, + "moduleSet": { + "target": "platform", + "modules": [ + { + "id": "ffacc8a8-08ac-4633-9eb2-24f18606d875", + "dockerImage": "future-nav2:humble-yahboom", + "defaultParameters": [ + "sim_mode:=false" + ] + }, + { + "id": "9b92dae5-575d-44a9-bf9f-f0bd1b128dff", + "dockerImage": "future-nav2:humble-yahboom-agent", + "defaultParameters": [ + "serial_device:=/dev/ttyUSB0", + "baudrate:=921600" + ] + }, + { + "id": "8140fefb-7aa2-48ba-a52e-09f2cf3caaca", + "dockerImage": "future-nav2:humble-yahboom", + "defaultParameters": [ + "video_device:=/dev/video0" + ] + }, + { + "id": "130b973e-dae3-4a98-a9d9-65e12107d8ac", + "dockerImage": "future-nav2:humble-yahboom" + }, + { + "id": "88186ea4-da6e-423f-b3e6-9d4176692617", + "dockerImage": "future-nav2:humble-yahboom" + }, + { + "id": "bc33d3d7-ccaf-4d1c-8490-7bc09122bdb2", + "dockerImage": "future-nav2:humble-yahboom" + }, + { + "id": "e4bf535f-ed53-4ca9-840c-c025cb997fa5", + "dockerImage": "future-nav2:humble-yahboom" + }, + { + "id": "2c34469d-0a53-459f-9698-468fba0048ba", + "dockerImage": "future-nav2:humble-yahboom" + } + ], + "includeUnlisted": false + }, + "runtimeKind": "real", + "runtimeImages": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/slam-ros-bridge/arm64/20260819-0659d4cf5578/slam-ros-bridge-jetson-orin.tar.zst", + "image": "slam-ros-bridge:jetson_orin", + "fileName": "slam-ros-bridge-jetson-orin.tar.zst", + "required": true, + "checksumSha256": "0659d4cf5578c43bc9c25e4a4fc5d226ccd5b7bec43becfdff83b5390717114e" + }, + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/nav2/jetson-orin/latest/future-nav2-humble-jetson-orin.tar.zst", + "image": "future-nav2:humble-jetson_orin", + "fileName": "future-nav2-humble-jetson-orin.tar.zst", + "required": true + } + ] + }, + "enabled": true, + "createdAt": "2026-08-12T06:54:50.945Z", + "updatedAt": "2026-09-22T05:52:15.667Z" + }, + { + "id": "1323c10b-aeb5-4e9f-99c9-472f5759cb69", + "courseId": "8e296f81-8445-455c-b1a2-47f2ce9099a4", + "week": 2, + "platformKey": "NAV2", + "profileType": "NAV2", + "name": "로컬", + "config": { + "type": "NAV2", + "bridge": { + "env": { + "ROBOT_STACK": "nav2" + }, + "name": "nav2-ros-bridge", + "port": 8765, + "image": "slam-ros-bridge:latest" + }, + "target": "local", + "viewer": { + "stack": "nav2" + }, + "runtime": { + "steps": [], + "containers": [] + }, + "moduleSet": { + "target": "local", + "modules": [ + { + "id": "f5abf8ab-280b-4ad4-93d7-142bb22fb4bb" + }, + { + "id": "18805cbf-c01f-4ea5-956d-cced888b2697" + }, + { + "id": "e01c68d3-7f31-4359-89dd-ed32055c082c" + }, + { + "id": "0817062b-045c-45c0-9d36-ae9e0ea456b0" + }, + { + "id": "645b6f17-a8a1-49d9-b6c7-ff5caf01dd4b" + }, + { + "id": "303687ab-542a-415b-a991-434e49a93922" + }, + { + "id": "6b2c5597-be2e-4c81-a2a9-7df4a180c8c6" + }, + { + "id": "efc492b5-afdc-4d01-935e-ea71ac3047d0" + }, + { + "id": "6d4a2cb8-b816-4f04-9874-8e8a03222a35", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "platform:=mkmini", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "5cfd7b92-eb8b-46b3-b6f0-c5c24c5f8676", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "rviz_config:=nav2" + ] + } + ], + "includeUnlisted": false + }, + "runtimeImages": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/nav2/gazebo/latest/future-nav2-gazebo-humble.tar.zst", + "image": "future-nav2-gazebo:humble", + "fileName": "future-nav2-gazebo-humble.tar.zst", + "required": true, + "checksumSha256": "54230e039c1fa5dc82615cef3828c5acae7b8bea8e921b70cfdc5351d8301644" + } + ] + }, + "enabled": true, + "createdAt": "2026-08-12T06:54:50.945Z", + "updatedAt": "2026-08-12T06:54:50.945Z" + }, + { + "id": "587c8b3a-0c80-4431-818d-a3bf8565cb2f", + "courseId": "8e296f81-8445-455c-b1a2-47f2ce9099a4", + "week": 2, + "platformKey": "PLATFORM", + "profileType": "PLATFORM", + "name": "플랫폼", + "config": { + "type": "PLATFORM", + "bridge": { + "env": { + "ROBOT_STACK": "nav2" + }, + "name": "nav2-ros-bridge", + "port": 8765, + "image": "slam-ros-bridge:latest" + }, + "target": "remote-jetson", + "viewer": { + "stack": "nav2" + }, + "moduleSet": { + "target": "platform", + "modules": [ + { + "id": "b966f562-170a-4dbf-ae0d-35ebf3b3d0c8", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "f9115dd5-b318-4e70-a031-d71360f92745" + }, + { + "id": "497bd74c-d8b2-4121-baa7-d0ca2bb56b2f" + }, + { + "id": "c6b2e359-954c-46f8-999a-02db7263431e", + "defaultParameters": [ + "sim_mode:=false" + ] + }, + { + "id": "b8816337-7c45-4c45-b0c4-8679313b2e4a" + }, + { + "id": "e30ffd05-131b-4cb0-a9b2-53f7d19fe7de" + }, + { + "id": "1cc184c7-83e0-4762-9dfa-f48306ea8c96" + }, + { + "id": "36cab3bd-093e-41d7-bc3f-6d999f9dcf22" + }, + { + "id": "7849797a-1087-4e1c-a0e6-fc0ac25066a0" + } + ], + "includeUnlisted": false + }, + "runtimeKind": "real", + "runtimeImages": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/slam-ros-bridge/arm64/20260819-0659d4cf5578/slam-ros-bridge-jetson-orin.tar.zst", + "image": "slam-ros-bridge:jetson_orin", + "fileName": "slam-ros-bridge-jetson-orin.tar.zst", + "required": true, + "checksumSha256": "0659d4cf5578c43bc9c25e4a4fc5d226ccd5b7bec43becfdff83b5390717114e" + }, + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/nav2/jetson-orin/latest/future-nav2-humble-jetson-orin.tar.zst", + "image": "future-nav2:humble-jetson_orin", + "fileName": "future-nav2-humble-jetson-orin.tar.zst", + "required": true + } + ] + }, + "enabled": true, + "createdAt": "2026-08-12T06:54:50.945Z", + "updatedAt": "2026-09-16T05:04:25.399Z" + }, + { + "id": "93b1f4d4-8640-4e6a-8c2c-1a0d6d8e7a6b", + "courseId": "8e296f81-8445-455c-b1a2-47f2ce9099a4", + "week": 3, + "platformKey": "NAV2", + "profileType": "NAV2", + "name": "로컬", + "config": { + "type": "NAV2", + "bridge": { + "env": { + "ROBOT_STACK": "nav2" + }, + "name": "nav2-ros-bridge", + "port": 8765, + "image": "slam-ros-bridge:latest" + }, + "target": "local", + "viewer": { + "stack": "nav2" + }, + "runtime": { + "steps": [], + "containers": [] + }, + "moduleSet": { + "target": "local", + "modules": [ + { + "id": "644f8ee6-2103-4809-8961-de00db3c224e", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "5ded14c7-0d95-49a5-b39a-2af32cd30fb7", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d", + "localization_mode:=amcl" + ] + }, + { + "id": "64f36b02-c1b1-4815-af43-451dce90b9ee", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "7fc02d9c-4c38-4b9c-8ea6-79e827010a17", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true" + ] + }, + { + "id": "ef43520e-f4a4-4cb0-bc75-96f07664c28b", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "f6e540a6-130c-4da5-b9ea-5c3e8f63cc58", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "gui:=false", + "platform:=mkmini" + ] + }, + { + "id": "75e52819-88c3-48bc-ac2c-5ef3fa057410", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "9293c430-cf1b-43da-83e1-a385927adf1d", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "platform:=mkmini", + "robot:=mkmini", + "level:=2d", + "simulator:=gazebo" + ] + }, + { + "id": "3e8324cb-c747-40a6-8cab-e5fa9473300e", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "rviz_config:=nav2" + ] + } + ], + "includeUnlisted": false + }, + "runtimeImages": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/nav2/gazebo/latest/future-nav2-gazebo-humble.tar.zst", + "image": "future-nav2-gazebo:humble", + "fileName": "future-nav2-gazebo-humble.tar.zst", + "required": true, + "checksumSha256": "54230e039c1fa5dc82615cef3828c5acae7b8bea8e921b70cfdc5351d8301644" + } + ] + }, + "enabled": true, + "createdAt": "2026-09-22T06:11:53.339Z", + "updatedAt": "2026-09-22T06:11:53.339Z" + }, + { + "id": "0e9654b5-a12a-49ba-abba-ca00ee296be8", + "courseId": "8e296f81-8445-455c-b1a2-47f2ce9099a4", + "week": 3, + "platformKey": "PLATFORM", + "profileType": "PLATFORM", + "name": "플랫폼", + "config": { + "type": "PLATFORM", + "bridge": { + "env": { + "ROBOT_STACK": "nav2" + }, + "name": "nav2-ros-bridge", + "port": 8765, + "image": "slam-ros-bridge:latest" + }, + "target": "remote-jetson", + "viewer": { + "stack": "nav2" + }, + "moduleSet": { + "target": "platform", + "modules": [ + { + "id": "644f8ee6-2103-4809-8961-de00db3c224e", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "5ded14c7-0d95-49a5-b39a-2af32cd30fb7", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini", + "level:=2d", + "localization_mode:=amcl" + ] + }, + { + "id": "64f36b02-c1b1-4815-af43-451dce90b9ee", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "7fc02d9c-4c38-4b9c-8ea6-79e827010a17", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false" + ] + }, + { + "id": "61ba3bc3-7623-41e0-a3c7-b0f7bf424075", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini" + ] + }, + { + "id": "ef43520e-f4a4-4cb0-bc75-96f07664c28b", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "75e52819-88c3-48bc-ac2c-5ef3fa057410", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "bc7e3156-7b27-4f92-a991-bf7599b2d9e8", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini" + ] + }, + { + "id": "9293c430-cf1b-43da-83e1-a385927adf1d", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "platform:=mkmini", + "robot:=mkmini", + "level:=2d" + ] + } + ], + "includeUnlisted": false + }, + "runtimeKind": "real", + "runtimeImages": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/slam-ros-bridge/arm64/20260819-0659d4cf5578/slam-ros-bridge-jetson-orin.tar.zst", + "image": "slam-ros-bridge:jetson_orin", + "fileName": "slam-ros-bridge-jetson-orin.tar.zst", + "required": true, + "checksumSha256": "0659d4cf5578c43bc9c25e4a4fc5d226ccd5b7bec43becfdff83b5390717114e" + }, + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/nav2/jetson-orin/latest/future-nav2-humble-jetson-orin.tar.zst", + "image": "future-nav2:humble-jetson_orin", + "fileName": "future-nav2-humble-jetson-orin.tar.zst", + "required": true + } + ] + }, + "enabled": true, + "createdAt": "2026-09-22T06:11:53.356Z", + "updatedAt": "2026-09-22T06:11:53.356Z" + } + ], + "instructorCurriculumWeekOverrides": [ + { + "id": "d4069536-1b4b-4349-8412-3a18906468fb", + "organizationId": "b545a634-e877-4935-8041-c83e352b1fb7", + "organizationName": "퓨처드라이브", + "courseId": "8e296f81-8445-455c-b1a2-47f2ce9099a4", + "week": 1, + "tagLabel": "MK-mini", + "title": "ROS2 & Simulation", + "duration": "1주", + "overview": "ROS2 통신 구조와 Gazebo 시뮬레이션 환경을 구성하고, LiDAR SLAM·위치추정·경로 계획·제어까지 NAV2 자율주행 파이프라인을 실습합니다.", + "deliverable": "NAV2 모듈 소스 변경 내역, SLAM 결과 맵, 목표 지점 주행 검증 화면 및 실행 로그를 제출합니다.", + "requiresSourceSubmission": true, + "isTeamProject": false, + "learningSteps": [ + { + "title": "ROS2 기초", + "concepts": [], + "videoUrl": "https://www.youtube.com/watch?v=gyskLlvX3oI&list=PLNWNEEf8BvG45noktLVI9N0SmD72BpmH7", + "description": "ROS Topic, Service, Action 통신과 TF 정의, ROS2 패키지 및 tree 구조를 실습합니다.", + "videoEnabled": true + }, + { + "title": "Sensor Processing", + "concepts": [], + "videoUrl": "", + "description": "LiDAR와 카메라 등 센서 데이터 처리 흐름과 Calibration 기초를 확인합니다.", + "videoEnabled": false + }, + { + "title": "Simulation 환경 구축 Part 1", + "concepts": [], + "videoUrl": "", + "description": "Gazebo 월드, 로봇 모델, 센서 토픽을 구성해 시뮬레이션 실습 환경을 만듭니다.", + "videoEnabled": false + }, + { + "title": "Simulation 환경 구축 Part 2", + "concepts": [], + "videoUrl": "", + "description": "시뮬레이션에서 활용할 수 있는 모빌리티 플랫폼과 실행 모듈 구성을 점검합니다.", + "videoEnabled": false + }, + { + "title": "LiDAR SLAM", + "concepts": [], + "videoUrl": "", + "description": "센서 데이터와 SLAM 알고리즘을 활용해 자율주행용 2D Map을 구축합니다.", + "videoEnabled": false + }, + { + "title": "LiDAR Localization", + "concepts": [], + "videoUrl": "", + "description": "구축한 Map과 실시간 LiDAR 데이터를 이용해 현재 위치를 추정합니다.", + "videoEnabled": false + }, + { + "title": "Parameter Tuning", + "concepts": [], + "videoUrl": "", + "description": "모듈 파라미터를 변경하고 결과를 비교해 알고리즘을 튜닝합니다.", + "videoEnabled": false + }, + { + "title": "[심화] Camera based SLAM", + "concepts": [], + "videoUrl": "", + "description": "카메라 기반 Map 구축과 위치인식의 입력·출력 구조를 분석합니다.", + "videoEnabled": false + }, + { + "title": "Occupancy Map", + "concepts": [], + "videoUrl": "", + "description": "장애물 인식을 위한 Occupancy Map과 costmap 반영 과정을 실습합니다.", + "videoEnabled": false + }, + { + "title": "Planning", + "concepts": [], + "videoUrl": "", + "description": "장애물 충돌 없이 목표 지점으로 이동하기 위한 전역·지역 경로 계획을 실습합니다.", + "videoEnabled": false + }, + { + "title": "Control", + "concepts": [], + "videoUrl": "", + "description": "생성한 경로를 추종하도록 속도 명령을 만들고 주행 결과를 검증합니다.", + "videoEnabled": false + }, + { + "title": "[심화] 딥러닝 기반 객체 인식", + "concepts": [], + "videoUrl": "", + "description": "딥러닝 기반 객체 인식 결과를 자율주행 데이터 흐름에 반영하는 방법을 학습합니다.", + "videoEnabled": false + } + ], + "topics": [ + "ROS2 기초", + "Sensor Processing", + "Simulation 환경 구축 Part 1", + "Simulation 환경 구축 Part 2", + "LiDAR SLAM", + "LiDAR Localization", + "Parameter Tuning", + "[심화] Camera based SLAM", + "Occupancy Map", + "Planning", + "Control", + "[심화] 딥러닝 기반 객체 인식" + ], + "topicDetails": [ + "ROS Topic, Service, Action 통신과 TF 정의, ROS2 패키지 및 tree 구조를 실습합니다.", + "LiDAR와 카메라 등 센서 데이터 처리 흐름과 Calibration 기초를 확인합니다.", + "Gazebo 월드, 로봇 모델, 센서 토픽을 구성해 시뮬레이션 실습 환경을 만듭니다.", + "시뮬레이션에서 활용할 수 있는 모빌리티 플랫폼과 실행 모듈 구성을 점검합니다.", + "센서 데이터와 SLAM 알고리즘을 활용해 자율주행용 2D Map을 구축합니다.", + "구축한 Map과 실시간 LiDAR 데이터를 이용해 현재 위치를 추정합니다.", + "모듈 파라미터를 변경하고 결과를 비교해 알고리즘을 튜닝합니다.", + "카메라 기반 Map 구축과 위치인식의 입력·출력 구조를 분석합니다.", + "장애물 인식을 위한 Occupancy Map과 costmap 반영 과정을 실습합니다.", + "장애물 충돌 없이 목표 지점으로 이동하기 위한 전역·지역 경로 계획을 실습합니다.", + "생성한 경로를 추종하도록 속도 명령을 만들고 주행 결과를 검증합니다.", + "딥러닝 기반 객체 인식 결과를 자율주행 데이터 흐름에 반영하는 방법을 학습합니다." + ], + "topicVideoUrls": [ + "https://www.youtube.com/watch?v=gyskLlvX3oI&list=PLNWNEEf8BvG45noktLVI9N0SmD72BpmH7", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "practiceContents": [ + { + "title": "ROS2와 Gazebo 실행 환경", + "description": "Topic, Service, Action, TF를 확인하고 TurtleBot3 Gazebo 환경을 실행합니다." + }, + { + "title": "LiDAR SLAM과 Localization", + "description": "맵을 생성·저장하고 저장된 맵에서 AMCL 기반 위치추정을 검증합니다." + }, + { + "title": "경로 계획과 제어", + "description": "목표 지점을 설정하고 장애물 회피, 경로 계획, 제어 명령을 비교합니다." + } + ], + "disabledModuleIds": [], + "createdAt": "2026-08-13T08:30:14.022Z", + "updatedAt": "2026-09-22T05:52:15.682Z" + } + ] +} \ No newline at end of file diff --git a/backups/courses-before-remote-week-1790057512454.json b/backups/courses-before-remote-week-1790057512454.json new file mode 100644 index 0000000..9bfa2e5 --- /dev/null +++ b/backups/courses-before-remote-week-1790057512454.json @@ -0,0 +1,6781 @@ +[ + { + "id": "26d46589-31a5-4d94-b0e0-385a12c41721", + "slug": "nav2-autonomy-f445f63c-efa", + "title": "2026 교육원 테스트", + "subtitle": "ROS2, 시뮬레이션, SLAM부터 경로 계획과 제어까지", + "description": "ROS2와 NAV2 기반 시뮬레이션 및 플랫폼 실습을 통해 자율주행 시스템의 핵심 흐름을 학습하고 팀 프로젝트로 검증합니다.", + "organizationName": "영남대학교", + "teacherId": "f445f63c-efa8-4b65-8f2c-a20ee3d390fa", + "isActive": true, + "createdAt": "2026-09-09T06:01:24.848Z", + "updatedAt": "2026-09-09T06:01:24.848Z", + "weeks": [ + { + "id": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "courseId": "26d46589-31a5-4d94-b0e0-385a12c41721", + "week": 1, + "title": "ROS2 & Simulation", + "tags": [ + "MK-mini", + "진행중" + ], + "progress": 0, + "state": "current", + "duration": "1주", + "github": "https://github.com/ros-navigation/navigation2", + "overview": "ROS2 통신 구조와 Gazebo 시뮬레이션 환경을 구성하고, LiDAR SLAM·위치추정·경로 계획·제어까지 NAV2 자율주행 파이프라인을 실습합니다.", + "deliverable": "NAV2 모듈 소스 변경 내역, SLAM 결과 맵, 목표 지점 주행 검증 화면 및 실행 로그를 제출합니다.", + "requiresSourceSubmission": true, + "createdAt": "2026-09-09T06:01:24.851Z", + "updatedAt": "2026-09-09T06:01:24.851Z", + "modules": [ + { + "id": "af12ada0-ac1e-44dd-89d3-86a89754acc4", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "sortOrder": 1, + "category": "Control", + "name": "NAV2-Control", + "folderName": "[lms-nav2-gazebo-control]nav2-control_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-control.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-control/1.0.0/prebuilt/amd64/0ab85a58f37a922b/lms-nav2-gazebo-control-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-control-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "0ab85a58f37a922b493ce21676573e3a8fd339f99a74cce9c4cba58aff9b1e35" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=turtlebot3" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-09T06:01:24.861Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "bc89fbbc-7e44-4228-8f50-70b6800bbf45", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "sortOrder": 2, + "category": "Localization", + "name": "NAV2-Localization", + "folderName": "[lms-nav2-gazebo-localization]nav2-localization_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-localization.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-localization/1.0.0/prebuilt/latest/lms-nav2-gazebo-localization-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-localization-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "44c8d50205f001a196870d03f44d435582b96c51eb4445e50cc8db6203b2c0c9" + } + ], + "defaultParameters": [ + "localization_mode:=amcl" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-09T06:01:24.863Z", + "updatedAt": "2026-09-09T06:01:24.863Z" + }, + { + "id": "fab88d49-946d-43dd-9431-d294c7772ded", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "sortOrder": 3, + "category": "Map", + "name": "NAV2-Map", + "folderName": "[lms-nav2-gazebo-map]nav2-map_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-map.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-map/1.0.0/prebuilt/latest/lms-nav2-gazebo-map-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-map-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "f409ce54c40aeeed8cf3fc06251c2e321887b3ec5f5827dfb74897a62780582f" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-09T06:01:24.865Z", + "updatedAt": "2026-09-09T06:01:24.865Z" + }, + { + "id": "c20541b8-cdb1-4295-b9a3-6b10bb43ae07", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "sortOrder": 4, + "category": "Perception", + "name": "NAV2-Perception", + "folderName": "[lms-nav2-gazebo-perception]nav2-perception_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-perception.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-perception/1.0.0/prebuilt/amd64/d18d59ac77130be1/lms-nav2-gazebo-perception-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-perception-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d18d59ac77130be1da9d16cb0716fbf4b2837132de1765726200b3a57217034e" + } + ], + "defaultParameters": [ + "sim_mode:=true" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-09T06:01:24.867Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "de678e31-228a-442d-9e98-e8e09c3a3238", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "sortOrder": 5, + "category": "Perception", + "name": "NAV2-Perception3D", + "folderName": "[lms-nav2-gazebo-perception3d]nav2-perception3d_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-perception3D.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-perception3d/1.0.0/prebuilt/latest/lms-nav2-gazebo-perception3d-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-perception3d-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "bab9f7383f44950b6cf6cd8f97b4ae2d3ba61571d6b37c10b24922cc0348a7cc" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-09T06:01:24.869Z", + "updatedAt": "2026-09-09T06:01:24.869Z" + }, + { + "id": "3ca72ae8-97d9-487a-b766-a586e11a048f", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "sortOrder": 6, + "category": "Planning", + "name": "NAV2-Planning", + "folderName": "[lms-nav2-gazebo-planning]nav2-planning_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-planning.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-planning/1.0.0/prebuilt/amd64/d1c51b0f211e1420/lms-nav2-gazebo-planning-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-planning-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d1c51b0f211e14208882947dd3bf642dd8ce997f54b37dfc0a4c8d66bd84d608" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-09T06:01:24.871Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "5fe16dc8-d0b3-4f60-8efb-959855f38a26", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "sortOrder": 7, + "category": "Simulator", + "name": "NAV2-Gazebo", + "folderName": "[lms-nav2-gazebo-simulator]nav2-simulator_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-simulator.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-simulator/1.0.0/prebuilt/amd64/2c97e7672eaec755/lms-nav2-gazebo-simulator-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-simulator-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2c97e7672eaec755eb300442a77b18bbcbaf6e0d305257dc9974724049756756" + } + ], + "defaultParameters": [ + "gui:=false", + "platform:=turtlebot3" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-09T06:01:24.873Z", + "updatedAt": "2026-09-09T06:01:24.873Z" + }, + { + "id": "b431598e-5541-4272-a953-0951be68e8e2", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "sortOrder": 8, + "category": "Localization", + "name": "NAV2-SLAM", + "folderName": "[lms-nav2-gazebo-slam]nav2-slam_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-slam.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-slam/1.0.0/prebuilt/amd64/e5aa22340e275d70/lms-nav2-gazebo-slam-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-slam-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "e5aa22340e275d7063e5cd96f974620354760082d22e80b9a58205085d88e337" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-09T06:01:24.875Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "c6c605cf-d72e-4db5-84a7-ad098a74cb79", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "sortOrder": 9, + "category": "Localization", + "name": "NAV2-SLAM3D", + "folderName": "[lms-nav2-gazebo-slam3d]nav2-slam3d_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-slam3D.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-slam3d/1.0.0/prebuilt/latest/lms-nav2-gazebo-slam3d-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-slam3d-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "ed59e1e6b5e816403475c44672247cf8747c14edcbfcf7f1939d2b2de1d3263d" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-09T06:01:24.877Z", + "updatedAt": "2026-09-09T06:01:24.877Z" + }, + { + "id": "6458e955-6c31-4528-9683-455a42e6a78c", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "sortOrder": 10, + "category": "Vehicle", + "name": "NAV2-TurtleBot3Burger", + "folderName": "[lms-nav2-gazebo-vehicle]nav2-vehicle_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-vehicle.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-vehicle/1.0.0/prebuilt/latest/lms-nav2-gazebo-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "42e8179172c178978e5ae5d48e189164f6b8a5030fdaa0eba497ca86a97e96bb" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "platform:=turtlebot3", + "level:=2d" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-09T06:01:24.879Z", + "updatedAt": "2026-09-09T06:01:24.879Z" + }, + { + "id": "2b97ac9b-b036-4dd3-ac8c-7eec8352c142", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "sortOrder": 11, + "category": "Vehicle", + "name": "NAV2-MKMini", + "folderName": "[lms-nav2-mkmini]nav2-mkmini_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-mkmini.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-mkmini/1.0.0/prebuilt/amd64/lms-nav2-mkmini-build-install-amd64.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-mkmini-build-install-amd64.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "6094d2aa5188a28153452aec08e28870984b36c1bc0c06fec8091901f6d26856" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "platform:=mkmini", + "level:=2d" + ], + "dockerImage": "future-nav2:humble-jetson_orin", + "createdAt": "2026-09-09T06:01:24.880Z", + "updatedAt": "2026-09-09T06:01:24.880Z" + }, + { + "id": "317f2de8-439b-41b7-ab5e-9e24e701384f", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "sortOrder": 12, + "category": "Gui", + "name": "NAV2-Rviz2", + "folderName": "[lms-nav2-gazebo-gui]nav2-rviz2_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-gui.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-gui/1.0.0/prebuilt/latest/lms-nav2-gazebo-gui-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-gui-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2a816b08d9f39057a96641ce7ace341ce409f77e5043abe074e2e21ecaa871ca" + } + ], + "defaultParameters": [ + "rviz_config:=nav2" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-09T06:01:24.882Z", + "updatedAt": "2026-09-09T06:01:24.882Z" + }, + { + "id": "018e8115-24b1-4780-9f1b-be256c22e8ce", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "sortOrder": 13, + "category": "System", + "name": "NAV2-Yahboom-Agent", + "folderName": "[lms-nav2-yahboom-agent]yahboom_agent_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-agent.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-agent/1.0.0/prebuilt/arm64/ec2b2c4578fc71b9/lms-nav2-yahboom-agent-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-agent-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "ec2b2c4578fc71b95c720dcacca5e7c7c5d08400fc80ef21a16097d31869cf9d" + } + ], + "defaultParameters": [ + "serial_device:=/dev/ttyUSB0", + "baudrate:=921600" + ], + "dockerImage": "future-nav2:humble-yahboom-agent", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "90d77f3b-cb9c-4582-a3a6-8f80299b35e2", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "sortOrder": 14, + "category": "Vehicle", + "name": "NAV2-Yahboom", + "folderName": "[lms-nav2-yahboom-vehicle]yahboom_vehicle_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-vehicle.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-vehicle/1.0.0/prebuilt/amd64/d54368061d520794/lms-nav2-yahboom-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d54368061d52079489a8d686461e6672ebb84ca0f531fb71f835717b3f2a031f" + }, + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-vehicle/1.0.0/prebuilt/arm64/f409c0b61ca9497d/lms-nav2-yahboom-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "f409c0b61ca9497d4cfd1c2af9f4e137d9316364cab664bb908818f6ecab8331" + } + ], + "defaultParameters": [ + "sim_mode:=false" + ], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:55:16.092Z" + }, + { + "id": "fe081ac8-0ce0-4109-81e3-b4d504c86806", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "sortOrder": 15, + "category": "Localization", + "name": "NAV2-Yahboom-Slam", + "folderName": "[lms-nav2-yahboom-slam]yahboom_slam_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-slam.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-slam/1.0.0/prebuilt/arm64/f6444fe604f50ee0/lms-nav2-yahboom-slam-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-slam-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "f6444fe604f50ee00831fc7db121bbebfea6be920b55a498ddc54fc317093c77" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "d4fa2ab4-05d6-4242-a925-5b389b784f22", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "sortOrder": 16, + "category": "Map", + "name": "NAV2-Yahboom-Map", + "folderName": "[lms-nav2-yahboom-map]yahboom_map_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-map.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-map/1.0.0/prebuilt/arm64/111981b9ab460ce4/lms-nav2-yahboom-map-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-map-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "111981b9ab460ce450334e5c367e97b7e757ef55d84330ca030b096d4a9c4792" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "c95db4b0-55b3-497e-a7ae-a752bbc9eafa", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "sortOrder": 17, + "category": "Localization", + "name": "NAV2-Yahboom-Localization", + "folderName": "[lms-nav2-yahboom-localization]yahboom_localization_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-localization.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-localization/1.0.0/prebuilt/arm64/d6534d48841a751c/lms-nav2-yahboom-localization-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-localization-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "d6534d48841a751cb2e21fa73785df61fb81815b406c9c4152c9cbfd0ae59e48" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "23fc9b10-0c1f-4d44-b7cf-ff80ab8e6bc9", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "sortOrder": 18, + "category": "Planning", + "name": "NAV2-Yahboom-Planning", + "folderName": "[lms-nav2-yahboom-planning]yahboom_planning_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-planning.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-planning/1.0.0/prebuilt/arm64/050f4ed4acba795a/lms-nav2-yahboom-planning-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-planning-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "050f4ed4acba795affec8306b7eef116e9e86fd0f42e492da27c7fc624dc8570" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "360c69d8-fd10-4072-a13b-01922dfa0d8d", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "sortOrder": 19, + "category": "Control", + "name": "NAV2-Yahboom-Control", + "folderName": "[lms-nav2-yahboom-control]yahboom_control_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-control.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-control/1.0.0/prebuilt/arm64/be7147024d890249/lms-nav2-yahboom-control-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-control-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "be7147024d89024915f1481a47a0909ea1d06196ef9e9797f260739999e09b3f" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "740cc0db-bb0b-47e0-85ce-9fcf3a7b598b", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "sortOrder": 20, + "category": "Perception", + "name": "NAV2-Yahboom-Camera", + "folderName": "[lms-nav2-yahboom-camera]yahboom_camera_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-camera.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-camera/1.0.0/prebuilt/arm64/b950a71d5babcdb3/lms-nav2-yahboom-camera-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-camera-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "b950a71d5babcdb37e46c7674fb80d0ae8c076e7d7c1186042b1b1f6e7ee2d04" + } + ], + "defaultParameters": [ + "video_device:=/dev/video0" + ], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + } + ], + "topics": [ + { + "id": "af09181a-bcc6-4019-a94b-e66f6ef97184", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "title": "ROS2 기초", + "detail": "ROS Topic, Service, Action 통신과 TF 정의, ROS2 패키지 및 tree 구조를 실습합니다.", + "sortOrder": 1 + }, + { + "id": "1718a662-50a4-4ebd-b24d-ce01a84b38b9", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "title": "Sensor Processing", + "detail": "LiDAR와 카메라 등 센서 데이터 처리 흐름과 Calibration 기초를 확인합니다.", + "sortOrder": 2 + }, + { + "id": "d6a86c4a-97b8-4977-bc01-f18c33cdc812", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "title": "Simulation 환경 구축 Part 1", + "detail": "Gazebo 월드, 로봇 모델, 센서 토픽을 구성해 시뮬레이션 실습 환경을 만듭니다.", + "sortOrder": 3 + }, + { + "id": "ff4eba57-a9f4-4cb1-89d9-872762743071", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "title": "Simulation 환경 구축 Part 2", + "detail": "시뮬레이션에서 활용할 수 있는 모빌리티 플랫폼과 실행 모듈 구성을 점검합니다.", + "sortOrder": 4 + }, + { + "id": "43c31335-8f1f-463c-b3be-0ce8bb564beb", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "title": "LiDAR SLAM", + "detail": "센서 데이터와 SLAM 알고리즘을 활용해 자율주행용 2D Map을 구축합니다.", + "sortOrder": 5 + }, + { + "id": "24a91abd-3722-41db-9b7d-508b2de2b17d", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "title": "LiDAR Localization", + "detail": "구축한 Map과 실시간 LiDAR 데이터를 이용해 현재 위치를 추정합니다.", + "sortOrder": 6 + }, + { + "id": "289bab53-a270-4cf1-bdc2-38065c471f05", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "title": "Parameter Tuning", + "detail": "모듈 파라미터를 변경하고 결과를 비교해 알고리즘을 튜닝합니다.", + "sortOrder": 7 + }, + { + "id": "8e60c6c6-b47f-4eb6-bd62-5db8987be3b7", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "title": "[심화] Camera based SLAM", + "detail": "카메라 기반 Map 구축과 위치인식의 입력·출력 구조를 분석합니다.", + "sortOrder": 8 + }, + { + "id": "e6f6231c-566b-4847-83a1-26c09c3ca840", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "title": "Occupancy Map", + "detail": "장애물 인식을 위한 Occupancy Map과 costmap 반영 과정을 실습합니다.", + "sortOrder": 9 + }, + { + "id": "63fc9d04-25f6-423a-9f16-cf453ed31bbc", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "title": "Planning", + "detail": "장애물 충돌 없이 목표 지점으로 이동하기 위한 전역·지역 경로 계획을 실습합니다.", + "sortOrder": 10 + }, + { + "id": "bcc9bf55-9290-488a-8295-3c9f71f74530", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "title": "Control", + "detail": "생성한 경로를 추종하도록 속도 명령을 만들고 주행 결과를 검증합니다.", + "sortOrder": 11 + }, + { + "id": "753524b6-ac4b-4b73-b6e0-4275146ae53e", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "title": "[심화] 딥러닝 기반 객체 인식", + "detail": "딥러닝 기반 객체 인식 결과를 자율주행 데이터 흐름에 반영하는 방법을 학습합니다.", + "sortOrder": 12 + } + ], + "practices": [ + { + "id": "a0c1514c-87c6-4750-9c87-3f6574bed587", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "title": "ROS2와 Gazebo 실행 환경", + "description": "Topic, Service, Action, TF를 확인하고 TurtleBot3 Gazebo 환경을 실행합니다.", + "sortOrder": 1 + }, + { + "id": "5309811a-6379-4ea1-ae81-6b5bb24b8082", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "title": "LiDAR SLAM과 Localization", + "description": "맵을 생성·저장하고 저장된 맵에서 AMCL 기반 위치추정을 검증합니다.", + "sortOrder": 2 + }, + { + "id": "97829360-137f-4600-9218-050d7ac68085", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "title": "경로 계획과 제어", + "description": "목표 지점을 설정하고 장애물 회피, 경로 계획, 제어 명령을 비교합니다.", + "sortOrder": 3 + } + ], + "references": [] + }, + { + "id": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "courseId": "26d46589-31a5-4d94-b0e0-385a12c41721", + "week": 2, + "title": "Autonomy Studio 팀 프로젝트", + "tags": [ + "MK-mini", + "진행예정" + ], + "progress": 0, + "state": "locked", + "duration": "1주", + "github": "https://github.com/ros-navigation/navigation2", + "overview": "3~4인 팀으로 자율주행 알고리즘이 필요한 문제 상황을 정의하고, 센서 구성과 NAV2 모듈을 조합해 시뮬레이션과 플랫폼에서 검증합니다.", + "deliverable": "팀 프로젝트 소스, 시스템 구성도, 시뮬레이션 및 플랫폼 주행 검증 결과, 발표 자료를 제출합니다.", + "requiresSourceSubmission": true, + "createdAt": "2026-09-09T06:01:24.884Z", + "updatedAt": "2026-09-09T06:01:24.884Z", + "modules": [ + { + "id": "5a42a1ae-e15c-436a-bde3-61b433eb672a", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "sortOrder": 1, + "category": "Control", + "name": "NAV2-Control", + "folderName": "[lms-nav2-gazebo-control]nav2-control_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-control.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-control/1.0.0/prebuilt/amd64/0ab85a58f37a922b/lms-nav2-gazebo-control-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-control-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "0ab85a58f37a922b493ce21676573e3a8fd339f99a74cce9c4cba58aff9b1e35" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=turtlebot3" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-09T06:01:24.924Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "3bafb29e-3dfa-488a-a7f8-334af22c8721", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "sortOrder": 2, + "category": "Localization", + "name": "NAV2-Localization", + "folderName": "[lms-nav2-gazebo-localization]nav2-localization_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-localization.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-localization/1.0.0/prebuilt/latest/lms-nav2-gazebo-localization-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-localization-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "44c8d50205f001a196870d03f44d435582b96c51eb4445e50cc8db6203b2c0c9" + } + ], + "defaultParameters": [ + "localization_mode:=amcl" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-09T06:01:24.926Z", + "updatedAt": "2026-09-09T06:01:24.926Z" + }, + { + "id": "5768b8f1-06ea-423b-8cc6-e7e22b004172", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "sortOrder": 3, + "category": "Map", + "name": "NAV2-Map", + "folderName": "[lms-nav2-gazebo-map]nav2-map_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-map.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-map/1.0.0/prebuilt/latest/lms-nav2-gazebo-map-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-map-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "f409ce54c40aeeed8cf3fc06251c2e321887b3ec5f5827dfb74897a62780582f" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-09T06:01:24.927Z", + "updatedAt": "2026-09-09T06:01:24.927Z" + }, + { + "id": "20cb031f-195c-4972-a611-bce4eebe0341", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "sortOrder": 4, + "category": "Perception", + "name": "NAV2-Perception", + "folderName": "[lms-nav2-gazebo-perception]nav2-perception_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-perception.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-perception/1.0.0/prebuilt/amd64/d18d59ac77130be1/lms-nav2-gazebo-perception-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-perception-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d18d59ac77130be1da9d16cb0716fbf4b2837132de1765726200b3a57217034e" + } + ], + "defaultParameters": [ + "sim_mode:=true" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-09T06:01:24.929Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "b42c682a-2a82-4e01-be5e-16871cddc76e", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "sortOrder": 5, + "category": "Perception", + "name": "NAV2-Perception3D", + "folderName": "[lms-nav2-gazebo-perception3d]nav2-perception3d_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-perception3D.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-perception3d/1.0.0/prebuilt/latest/lms-nav2-gazebo-perception3d-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-perception3d-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "bab9f7383f44950b6cf6cd8f97b4ae2d3ba61571d6b37c10b24922cc0348a7cc" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-09T06:01:24.930Z", + "updatedAt": "2026-09-09T06:01:24.930Z" + }, + { + "id": "8cfd8e39-4489-40c1-8185-3c16c56ec769", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "sortOrder": 6, + "category": "Planning", + "name": "NAV2-Planning", + "folderName": "[lms-nav2-gazebo-planning]nav2-planning_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-planning.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-planning/1.0.0/prebuilt/amd64/d1c51b0f211e1420/lms-nav2-gazebo-planning-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-planning-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d1c51b0f211e14208882947dd3bf642dd8ce997f54b37dfc0a4c8d66bd84d608" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-09T06:01:24.932Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "378c8143-b855-414f-8abe-308d58a5d77a", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "sortOrder": 7, + "category": "Simulator", + "name": "NAV2-Gazebo", + "folderName": "[lms-nav2-gazebo-simulator]nav2-simulator_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-simulator.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-simulator/1.0.0/prebuilt/amd64/2c97e7672eaec755/lms-nav2-gazebo-simulator-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-simulator-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2c97e7672eaec755eb300442a77b18bbcbaf6e0d305257dc9974724049756756" + } + ], + "defaultParameters": [ + "gui:=false", + "platform:=turtlebot3" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-09T06:01:24.933Z", + "updatedAt": "2026-09-09T06:01:24.933Z" + }, + { + "id": "77a1da7d-7d9b-4aba-a4ca-7ba9dae05fd1", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "sortOrder": 8, + "category": "Localization", + "name": "NAV2-SLAM", + "folderName": "[lms-nav2-gazebo-slam]nav2-slam_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-slam.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-slam/1.0.0/prebuilt/amd64/e5aa22340e275d70/lms-nav2-gazebo-slam-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-slam-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "e5aa22340e275d7063e5cd96f974620354760082d22e80b9a58205085d88e337" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-09T06:01:24.934Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "8b4e870f-4054-4224-ba8c-4ef963b737f8", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "sortOrder": 9, + "category": "Localization", + "name": "NAV2-SLAM3D", + "folderName": "[lms-nav2-gazebo-slam3d]nav2-slam3d_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-slam3D.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-slam3d/1.0.0/prebuilt/latest/lms-nav2-gazebo-slam3d-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-slam3d-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "ed59e1e6b5e816403475c44672247cf8747c14edcbfcf7f1939d2b2de1d3263d" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-09T06:01:24.936Z", + "updatedAt": "2026-09-09T06:01:24.936Z" + }, + { + "id": "7c553352-825a-42be-a6e2-1ddaa82ea043", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "sortOrder": 10, + "category": "Vehicle", + "name": "NAV2-TurtleBot3Burger", + "folderName": "[lms-nav2-gazebo-vehicle]nav2-vehicle_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-vehicle.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-vehicle/1.0.0/prebuilt/latest/lms-nav2-gazebo-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "42e8179172c178978e5ae5d48e189164f6b8a5030fdaa0eba497ca86a97e96bb" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "platform:=turtlebot3", + "level:=2d" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-09T06:01:24.938Z", + "updatedAt": "2026-09-09T06:01:24.938Z" + }, + { + "id": "3c64c5e3-77ff-4d34-b2b5-69a2c7d28943", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "sortOrder": 11, + "category": "Vehicle", + "name": "NAV2-MKMini", + "folderName": "[lms-nav2-mkmini]nav2-mkmini_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-mkmini.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-mkmini/1.0.0/prebuilt/amd64/lms-nav2-mkmini-build-install-amd64.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-mkmini-build-install-amd64.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "6094d2aa5188a28153452aec08e28870984b36c1bc0c06fec8091901f6d26856" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "platform:=mkmini", + "level:=2d" + ], + "dockerImage": "future-nav2:humble-jetson_orin", + "createdAt": "2026-09-09T06:01:24.940Z", + "updatedAt": "2026-09-09T06:01:24.940Z" + }, + { + "id": "f96c1462-1a6c-4be6-9700-ba5e8dfceb59", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "sortOrder": 12, + "category": "Gui", + "name": "NAV2-Rviz2", + "folderName": "[lms-nav2-gazebo-gui]nav2-rviz2_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-gui.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-gui/1.0.0/prebuilt/latest/lms-nav2-gazebo-gui-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-gui-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2a816b08d9f39057a96641ce7ace341ce409f77e5043abe074e2e21ecaa871ca" + } + ], + "defaultParameters": [ + "rviz_config:=nav2" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-09T06:01:24.941Z", + "updatedAt": "2026-09-09T06:01:24.941Z" + }, + { + "id": "24649bf5-6216-49b9-bd7b-79b454bca31a", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "sortOrder": 13, + "category": "System", + "name": "NAV2-Yahboom-Agent", + "folderName": "[lms-nav2-yahboom-agent]yahboom_agent_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-agent.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-agent/1.0.0/prebuilt/arm64/ec2b2c4578fc71b9/lms-nav2-yahboom-agent-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-agent-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "ec2b2c4578fc71b95c720dcacca5e7c7c5d08400fc80ef21a16097d31869cf9d" + } + ], + "defaultParameters": [ + "serial_device:=/dev/ttyUSB0", + "baudrate:=921600" + ], + "dockerImage": "future-nav2:humble-yahboom-agent", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "9fad4a9a-29d5-4718-9345-7d72bc25c6d7", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "sortOrder": 14, + "category": "Vehicle", + "name": "NAV2-Yahboom", + "folderName": "[lms-nav2-yahboom-vehicle]yahboom_vehicle_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-vehicle.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-vehicle/1.0.0/prebuilt/amd64/d54368061d520794/lms-nav2-yahboom-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d54368061d52079489a8d686461e6672ebb84ca0f531fb71f835717b3f2a031f" + }, + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-vehicle/1.0.0/prebuilt/arm64/f409c0b61ca9497d/lms-nav2-yahboom-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "f409c0b61ca9497d4cfd1c2af9f4e137d9316364cab664bb908818f6ecab8331" + } + ], + "defaultParameters": [ + "sim_mode:=false" + ], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:55:16.092Z" + }, + { + "id": "74cfb0a2-1de5-49cd-b855-b30f5ba4e29b", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "sortOrder": 15, + "category": "Localization", + "name": "NAV2-Yahboom-Slam", + "folderName": "[lms-nav2-yahboom-slam]yahboom_slam_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-slam.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-slam/1.0.0/prebuilt/arm64/f6444fe604f50ee0/lms-nav2-yahboom-slam-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-slam-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "f6444fe604f50ee00831fc7db121bbebfea6be920b55a498ddc54fc317093c77" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "c3180f5e-ce78-4f56-be6c-dff004d92e5c", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "sortOrder": 16, + "category": "Map", + "name": "NAV2-Yahboom-Map", + "folderName": "[lms-nav2-yahboom-map]yahboom_map_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-map.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-map/1.0.0/prebuilt/arm64/111981b9ab460ce4/lms-nav2-yahboom-map-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-map-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "111981b9ab460ce450334e5c367e97b7e757ef55d84330ca030b096d4a9c4792" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "5d73fe3c-27a3-42eb-819a-6257bfac2f2f", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "sortOrder": 17, + "category": "Localization", + "name": "NAV2-Yahboom-Localization", + "folderName": "[lms-nav2-yahboom-localization]yahboom_localization_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-localization.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-localization/1.0.0/prebuilt/arm64/d6534d48841a751c/lms-nav2-yahboom-localization-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-localization-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "d6534d48841a751cb2e21fa73785df61fb81815b406c9c4152c9cbfd0ae59e48" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "f7dd3726-8ba3-456d-8ed1-81111435b947", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "sortOrder": 18, + "category": "Planning", + "name": "NAV2-Yahboom-Planning", + "folderName": "[lms-nav2-yahboom-planning]yahboom_planning_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-planning.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-planning/1.0.0/prebuilt/arm64/050f4ed4acba795a/lms-nav2-yahboom-planning-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-planning-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "050f4ed4acba795affec8306b7eef116e9e86fd0f42e492da27c7fc624dc8570" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "199b037e-86e2-427b-83e3-46da8c6db34a", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "sortOrder": 19, + "category": "Control", + "name": "NAV2-Yahboom-Control", + "folderName": "[lms-nav2-yahboom-control]yahboom_control_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-control.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-control/1.0.0/prebuilt/arm64/be7147024d890249/lms-nav2-yahboom-control-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-control-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "be7147024d89024915f1481a47a0909ea1d06196ef9e9797f260739999e09b3f" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "c5e38be3-a6ce-40d3-ad0f-4aea462c21d6", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "sortOrder": 20, + "category": "Perception", + "name": "NAV2-Yahboom-Camera", + "folderName": "[lms-nav2-yahboom-camera]yahboom_camera_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-camera.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-camera/1.0.0/prebuilt/arm64/b950a71d5babcdb3/lms-nav2-yahboom-camera-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-camera-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "b950a71d5babcdb37e46c7674fb80d0ae8c076e7d7c1186042b1b1f6e7ee2d04" + } + ], + "defaultParameters": [ + "video_device:=/dev/video0" + ], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + } + ], + "topics": [ + { + "id": "6e5a6ff2-9a5b-4304-98a4-a90699ae75b0", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "title": "프로젝트 주제와 역할 분담", + "detail": "팀별 자율주행 문제 상황과 목표, 역할, 검증 기준을 정의합니다.", + "sortOrder": 1 + }, + { + "id": "0c87793b-d0fa-4cf8-b19c-10fab048a78d", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "title": "센서·모듈 구성 설계", + "detail": "센서 입력과 NAV2 모듈 조합, ROS 토픽 및 실행 순서를 설계합니다.", + "sortOrder": 2 + }, + { + "id": "78391467-8207-4cdf-96b5-9aa4bf591f2c", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "title": "알고리즘 구현과 튜닝", + "detail": "SLAM, Localization, Planning, Control 파라미터를 수정하고 성능을 비교합니다.", + "sortOrder": 3 + }, + { + "id": "cb6b3c70-ac65-4545-a971-2322792e0f5a", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "title": "시뮬레이션·플랫폼 검증", + "detail": "Gazebo 시뮬레이션과 실제 플랫폼에서 주행 시나리오를 검증합니다.", + "sortOrder": 4 + }, + { + "id": "3b024611-553d-415e-bee0-e9de07845204", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "title": "결과 제출과 발표", + "detail": "소스, 실행 로그, 검증 결과를 정리해 팀 프로젝트 결과를 제출하고 발표합니다.", + "sortOrder": 5 + } + ], + "practices": [ + { + "id": "f15db36a-3042-4546-ae10-bcee5c5701d6", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "title": "팀 자율주행 시나리오 구현", + "description": "팀별 시나리오에 맞춰 NAV2 모듈을 구성하고 소스를 수정합니다.", + "sortOrder": 1 + }, + { + "id": "b614ae40-5cf3-4ff8-bada-753be9c4d44c", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "title": "통합 주행 검증", + "description": "시뮬레이션과 플랫폼에서 재현 가능한 주행 결과를 확보합니다.", + "sortOrder": 2 + } + ], + "references": [] + } + ], + "environmentProfiles": [ + { + "id": "32bdadfa-aa41-4c04-9ff5-cbdbd83e517d", + "courseId": "26d46589-31a5-4d94-b0e0-385a12c41721", + "week": 2, + "platformKey": "PLATFORM", + "profileType": "PLATFORM", + "name": "플랫폼", + "config": { + "type": "PLATFORM", + "bridge": { + "env": { + "ROBOT_STACK": "nav2" + }, + "name": "nav2-ros-bridge", + "port": 8765, + "image": "slam-ros-bridge:latest" + }, + "target": "remote-jetson", + "viewer": { + "stack": "nav2" + }, + "moduleSet": { + "target": "platform", + "modules": [ + { + "id": "5a42a1ae-e15c-436a-bde3-61b433eb672a", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "3bafb29e-3dfa-488a-a7f8-334af22c8721" + }, + { + "id": "5768b8f1-06ea-423b-8cc6-e7e22b004172" + }, + { + "id": "20cb031f-195c-4972-a611-bce4eebe0341", + "defaultParameters": [ + "sim_mode:=false" + ] + }, + { + "id": "b42c682a-2a82-4e01-be5e-16871cddc76e" + }, + { + "id": "8cfd8e39-4489-40c1-8185-3c16c56ec769" + }, + { + "id": "77a1da7d-7d9b-4aba-a4ca-7ba9dae05fd1" + }, + { + "id": "8b4e870f-4054-4224-ba8c-4ef963b737f8" + }, + { + "id": "3c64c5e3-77ff-4d34-b2b5-69a2c7d28943" + } + ], + "includeUnlisted": false + }, + "runtimeKind": "real", + "runtimeImages": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/slam-ros-bridge/arm64/20260819-0659d4cf5578/slam-ros-bridge-jetson-orin.tar.zst", + "image": "slam-ros-bridge:jetson_orin", + "fileName": "slam-ros-bridge-jetson-orin.tar.zst", + "required": true, + "checksumSha256": "0659d4cf5578c43bc9c25e4a4fc5d226ccd5b7bec43becfdff83b5390717114e" + }, + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/nav2/jetson-orin/latest/future-nav2-humble-jetson-orin.tar.zst", + "image": "future-nav2:humble-jetson_orin", + "fileName": "future-nav2-humble-jetson-orin.tar.zst", + "required": true + } + ] + }, + "enabled": true, + "createdAt": "2026-09-09T06:01:24.946Z", + "updatedAt": "2026-09-16T05:04:25.399Z" + }, + { + "id": "7fe65cff-0d03-4fcd-9b6a-46814f5da017", + "courseId": "26d46589-31a5-4d94-b0e0-385a12c41721", + "week": 1, + "platformKey": "PLATFORM", + "profileType": "PLATFORM", + "name": "플랫폼", + "config": { + "type": "PLATFORM", + "bridge": { + "env": { + "ROBOT_STACK": "nav2" + }, + "name": "nav2-ros-bridge", + "port": 8765, + "image": "slam-ros-bridge:latest" + }, + "target": "remote-jetson", + "viewer": { + "stack": "nav2" + }, + "moduleSet": { + "target": "platform", + "modules": [ + { + "id": "af12ada0-ac1e-44dd-89d3-86a89754acc4", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "bc89fbbc-7e44-4228-8f50-70b6800bbf45" + }, + { + "id": "fab88d49-946d-43dd-9431-d294c7772ded" + }, + { + "id": "c20541b8-cdb1-4295-b9a3-6b10bb43ae07", + "defaultParameters": [ + "sim_mode:=false" + ] + }, + { + "id": "de678e31-228a-442d-9e98-e8e09c3a3238" + }, + { + "id": "3ca72ae8-97d9-487a-b766-a586e11a048f" + }, + { + "id": "b431598e-5541-4272-a953-0951be68e8e2" + }, + { + "id": "c6c605cf-d72e-4db5-84a7-ad098a74cb79" + }, + { + "id": "2b97ac9b-b036-4dd3-ac8c-7eec8352c142" + } + ], + "includeUnlisted": false + }, + "runtimeKind": "real", + "runtimeImages": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/slam-ros-bridge/arm64/20260819-0659d4cf5578/slam-ros-bridge-jetson-orin.tar.zst", + "image": "slam-ros-bridge:jetson_orin", + "fileName": "slam-ros-bridge-jetson-orin.tar.zst", + "required": true, + "checksumSha256": "0659d4cf5578c43bc9c25e4a4fc5d226ccd5b7bec43becfdff83b5390717114e" + }, + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/nav2/jetson-orin/latest/future-nav2-humble-jetson-orin.tar.zst", + "image": "future-nav2:humble-jetson_orin", + "fileName": "future-nav2-humble-jetson-orin.tar.zst", + "required": true + } + ] + }, + "enabled": true, + "createdAt": "2026-09-09T06:01:24.946Z", + "updatedAt": "2026-09-16T05:04:25.399Z" + }, + { + "id": "8cc79b5f-4122-4742-b6ce-54e725c6f841", + "courseId": "26d46589-31a5-4d94-b0e0-385a12c41721", + "week": 1, + "platformKey": "NAV2", + "profileType": "NAV2", + "name": "로컬", + "config": { + "type": "NAV2", + "bridge": { + "env": { + "ROBOT_STACK": "nav2" + }, + "name": "nav2-ros-bridge", + "port": 8765, + "image": "slam-ros-bridge:latest" + }, + "target": "local", + "viewer": { + "stack": "nav2" + }, + "runtime": { + "steps": [], + "containers": [] + }, + "moduleSet": { + "target": "local", + "modules": [ + { + "id": "af12ada0-ac1e-44dd-89d3-86a89754acc4" + }, + { + "id": "bc89fbbc-7e44-4228-8f50-70b6800bbf45" + }, + { + "id": "fab88d49-946d-43dd-9431-d294c7772ded" + }, + { + "id": "c20541b8-cdb1-4295-b9a3-6b10bb43ae07" + }, + { + "id": "3ca72ae8-97d9-487a-b766-a586e11a048f" + }, + { + "id": "5fe16dc8-d0b3-4f60-8efb-959855f38a26" + }, + { + "id": "b431598e-5541-4272-a953-0951be68e8e2" + }, + { + "id": "6458e955-6c31-4528-9683-455a42e6a78c" + }, + { + "id": "2b97ac9b-b036-4dd3-ac8c-7eec8352c142", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "platform:=mkmini", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "317f2de8-439b-41b7-ab5e-9e24e701384f", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "rviz_config:=nav2" + ] + } + ], + "includeUnlisted": false + }, + "runtimeImages": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/nav2/gazebo/latest/future-nav2-gazebo-humble.tar.zst", + "image": "future-nav2-gazebo:humble", + "fileName": "future-nav2-gazebo-humble.tar.zst", + "required": true, + "checksumSha256": "54230e039c1fa5dc82615cef3828c5acae7b8bea8e921b70cfdc5351d8301644" + } + ] + }, + "enabled": true, + "createdAt": "2026-09-09T06:01:24.946Z", + "updatedAt": "2026-09-09T06:01:24.946Z" + }, + { + "id": "d131006c-beca-4c48-a8bf-fc28ac9b5e8f", + "courseId": "26d46589-31a5-4d94-b0e0-385a12c41721", + "week": 2, + "platformKey": "NAV2", + "profileType": "NAV2", + "name": "로컬", + "config": { + "type": "NAV2", + "bridge": { + "env": { + "ROBOT_STACK": "nav2" + }, + "name": "nav2-ros-bridge", + "port": 8765, + "image": "slam-ros-bridge:latest" + }, + "target": "local", + "viewer": { + "stack": "nav2" + }, + "runtime": { + "steps": [], + "containers": [] + }, + "moduleSet": { + "target": "local", + "modules": [ + { + "id": "5a42a1ae-e15c-436a-bde3-61b433eb672a" + }, + { + "id": "3bafb29e-3dfa-488a-a7f8-334af22c8721" + }, + { + "id": "5768b8f1-06ea-423b-8cc6-e7e22b004172" + }, + { + "id": "20cb031f-195c-4972-a611-bce4eebe0341" + }, + { + "id": "8cfd8e39-4489-40c1-8185-3c16c56ec769" + }, + { + "id": "378c8143-b855-414f-8abe-308d58a5d77a" + }, + { + "id": "77a1da7d-7d9b-4aba-a4ca-7ba9dae05fd1" + }, + { + "id": "7c553352-825a-42be-a6e2-1ddaa82ea043" + }, + { + "id": "3c64c5e3-77ff-4d34-b2b5-69a2c7d28943", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "platform:=mkmini", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "f96c1462-1a6c-4be6-9700-ba5e8dfceb59", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "rviz_config:=nav2" + ] + } + ], + "includeUnlisted": false + }, + "runtimeImages": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/nav2/gazebo/latest/future-nav2-gazebo-humble.tar.zst", + "image": "future-nav2-gazebo:humble", + "fileName": "future-nav2-gazebo-humble.tar.zst", + "required": true, + "checksumSha256": "54230e039c1fa5dc82615cef3828c5acae7b8bea8e921b70cfdc5351d8301644" + } + ] + }, + "enabled": true, + "createdAt": "2026-09-09T06:01:24.946Z", + "updatedAt": "2026-09-09T06:53:28.516Z" + } + ], + "maps": [], + "weekMaps": [ + { + "id": "4286e4fb-f31c-4d5d-8e86-8b82d8f808c2", + "courseId": "26d46589-31a5-4d94-b0e0-385a12c41721", + "week": 2, + "mapKey": "nav2-turtlebot3-house", + "sortOrder": 2, + "createdAt": "2026-09-09T06:01:24.946Z", + "updatedAt": "2026-09-09T06:01:24.946Z" + }, + { + "id": "948a3edb-5273-43b1-8227-7a30219b00ad", + "courseId": "26d46589-31a5-4d94-b0e0-385a12c41721", + "week": 1, + "mapKey": "nav2-turtlebot3-house", + "sortOrder": 2, + "createdAt": "2026-09-09T06:01:24.946Z", + "updatedAt": "2026-09-09T06:01:24.946Z" + }, + { + "id": "a956b61b-58ac-4c38-a982-e22f822bf962", + "courseId": "26d46589-31a5-4d94-b0e0-385a12c41721", + "week": 2, + "mapKey": "nav2-turtlebot3-world", + "sortOrder": 1, + "createdAt": "2026-09-09T06:01:24.946Z", + "updatedAt": "2026-09-09T06:01:24.946Z" + }, + { + "id": "cc70e78e-f4a3-4692-be2c-877e144e18f2", + "courseId": "26d46589-31a5-4d94-b0e0-385a12c41721", + "week": 1, + "mapKey": "nav2-turtlebot3-world", + "sortOrder": 1, + "createdAt": "2026-09-09T06:01:24.946Z", + "updatedAt": "2026-09-09T06:01:24.946Z" + } + ], + "instructorCurriculumWeekOverrides": [ + { + "id": "5d803b17-d999-4be2-a805-2be06373b490", + "organizationId": "7165c8dc-5810-4cce-b7d4-be0931603f6b", + "organizationName": "영남대학교", + "courseId": "26d46589-31a5-4d94-b0e0-385a12c41721", + "week": 2, + "tagLabel": "MK-mini", + "title": "Autonomy Studio 팀 프로젝트", + "duration": "1주", + "overview": "3~4인 팀으로 자율주행 알고리즘이 필요한 문제 상황을 정의하고, 센서 구성과 NAV2 모듈을 조합해 시뮬레이션과 플랫폼에서 검증합니다.", + "deliverable": "팀 프로젝트 소스, 시스템 구성도, 시뮬레이션 및 플랫폼 주행 검증 결과, 발표 자료를 제출합니다.", + "requiresSourceSubmission": true, + "isTeamProject": false, + "learningSteps": [ + { + "title": "프로젝트 주제와 역할 분담", + "concepts": [], + "videoUrl": "", + "description": "팀별 자율주행 문제 상황과 목표, 역할, 검증 기준을 정의합니다.", + "videoEnabled": false + }, + { + "title": "센서·모듈 구성 설계", + "concepts": [], + "videoUrl": "", + "description": "센서 입력과 NAV2 모듈 조합, ROS 토픽 및 실행 순서를 설계합니다.", + "videoEnabled": false + }, + { + "title": "알고리즘 구현과 튜닝", + "concepts": [], + "videoUrl": "", + "description": "SLAM, Localization, Planning, Control 파라미터를 수정하고 성능을 비교합니다.", + "videoEnabled": false + }, + { + "title": "시뮬레이션·플랫폼 검증", + "concepts": [], + "videoUrl": "", + "description": "Gazebo 시뮬레이션과 실제 플랫폼에서 주행 시나리오를 검증합니다.", + "videoEnabled": false + }, + { + "title": "결과 제출과 발표", + "concepts": [], + "videoUrl": "", + "description": "소스, 실행 로그, 검증 결과를 정리해 팀 프로젝트 결과를 제출하고 발표합니다.", + "videoEnabled": false + } + ], + "topics": [ + "프로젝트 주제와 역할 분담", + "센서·모듈 구성 설계", + "알고리즘 구현과 튜닝", + "시뮬레이션·플랫폼 검증", + "결과 제출과 발표" + ], + "topicDetails": [ + "팀별 자율주행 문제 상황과 목표, 역할, 검증 기준을 정의합니다.", + "센서 입력과 NAV2 모듈 조합, ROS 토픽 및 실행 순서를 설계합니다.", + "SLAM, Localization, Planning, Control 파라미터를 수정하고 성능을 비교합니다.", + "Gazebo 시뮬레이션과 실제 플랫폼에서 주행 시나리오를 검증합니다.", + "소스, 실행 로그, 검증 결과를 정리해 팀 프로젝트 결과를 제출하고 발표합니다." + ], + "topicVideoUrls": [ + "", + "", + "", + "", + "" + ], + "practiceContents": [ + { + "title": "팀 자율주행 시나리오 구현", + "description": "팀별 시나리오에 맞춰 NAV2 모듈을 구성하고 소스를 수정합니다." + }, + { + "title": "통합 주행 검증", + "description": "시뮬레이션과 플랫폼에서 재현 가능한 주행 결과를 확보합니다." + } + ], + "disabledModuleIds": [], + "createdAt": "2026-09-09T06:11:39.289Z", + "updatedAt": "2026-09-09T06:11:39.289Z" + } + ] + }, + { + "id": "4eb01197-7605-4c3b-9a92-f9a3942050bd", + "slug": "futuredrive-autonomy-basic", + "title": "NAV2 기반 자율주행 교육 과정", + "subtitle": "ROS2, 시뮬레이션, SLAM부터 경로 계획과 제어까지", + "description": "ROS2와 NAV2 기반 시뮬레이션 및 플랫폼 실습을 통해 자율주행 시스템의 핵심 흐름을 학습하고 팀 프로젝트로 검증합니다.", + "organizationName": "퓨처드라이브", + "teacherId": "d077267d-420d-4bf6-b2ef-4f79a68251b6", + "isActive": true, + "createdAt": "2026-06-30T09:58:46.538Z", + "updatedAt": "2026-06-30T09:58:47.035Z", + "weeks": [ + { + "id": "119a0983-d68d-4579-925e-60daed0e1dec", + "courseId": "4eb01197-7605-4c3b-9a92-f9a3942050bd", + "week": 1, + "title": "ROS2 & Simulation", + "tags": [ + "MK-mini", + "진행중" + ], + "progress": 0, + "state": "current", + "duration": "1주", + "github": "https://github.com/ros-navigation/navigation2", + "overview": "ROS2 통신 구조와 Gazebo 시뮬레이션 환경을 구성하고, LiDAR SLAM·위치추정·경로 계획·제어까지 NAV2 자율주행 파이프라인을 실습합니다.", + "deliverable": "NAV2 모듈 소스 변경 내역, SLAM 결과 맵, 목표 지점 주행 검증 화면 및 실행 로그를 제출합니다.", + "requiresSourceSubmission": true, + "createdAt": "2026-06-30T09:58:46.538Z", + "updatedAt": "2026-06-30T09:58:46.538Z", + "modules": [ + { + "id": "dd8acfbd-7f66-41b7-a5ef-60c0bc669825", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 1, + "category": "Control", + "name": "NAV2-Control", + "folderName": "[lms-nav2-gazebo-control]nav2-control_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-control.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-control/1.0.0/prebuilt/amd64/0ab85a58f37a922b/lms-nav2-gazebo-control-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-control-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "0ab85a58f37a922b493ce21676573e3a8fd339f99a74cce9c4cba58aff9b1e35" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=turtlebot3" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "31ac8bd3-6b92-44bb-955c-248cda322e61", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 2, + "category": "Localization", + "name": "NAV2-Localization", + "folderName": "[lms-nav2-gazebo-localization]nav2-localization_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-localization.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-localization/1.0.0/prebuilt/latest/lms-nav2-gazebo-localization-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-localization-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "44c8d50205f001a196870d03f44d435582b96c51eb4445e50cc8db6203b2c0c9" + } + ], + "defaultParameters": [ + "localization_mode:=amcl" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "618ceb2e-45b8-4220-8469-9d6947e2abba", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 3, + "category": "Map", + "name": "NAV2-Map", + "folderName": "[lms-nav2-gazebo-map]nav2-map_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-map.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-map/1.0.0/prebuilt/latest/lms-nav2-gazebo-map-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-map-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "f409ce54c40aeeed8cf3fc06251c2e321887b3ec5f5827dfb74897a62780582f" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "fb5cd244-e132-4d3d-8248-70534df07309", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 4, + "category": "Perception", + "name": "NAV2-Perception", + "folderName": "[lms-nav2-gazebo-perception]nav2-perception_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-perception.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-perception/1.0.0/prebuilt/amd64/d18d59ac77130be1/lms-nav2-gazebo-perception-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-perception-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d18d59ac77130be1da9d16cb0716fbf4b2837132de1765726200b3a57217034e" + } + ], + "defaultParameters": [ + "sim_mode:=true" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "71503810-840b-4a6b-8537-735067bbf62e", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 5, + "category": "Perception", + "name": "NAV2-Perception3D", + "folderName": "[lms-nav2-gazebo-perception3d]nav2-perception3d_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-perception3D.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-perception3d/1.0.0/prebuilt/latest/lms-nav2-gazebo-perception3d-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-perception3d-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "bab9f7383f44950b6cf6cd8f97b4ae2d3ba61571d6b37c10b24922cc0348a7cc" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-11T06:01:46.944Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "b4bb8026-da5f-4a57-a9b0-4dc667f6acb9", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 6, + "category": "Planning", + "name": "NAV2-Planning", + "folderName": "[lms-nav2-gazebo-planning]nav2-planning_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-planning.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-planning/1.0.0/prebuilt/amd64/d1c51b0f211e1420/lms-nav2-gazebo-planning-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-planning-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d1c51b0f211e14208882947dd3bf642dd8ce997f54b37dfc0a4c8d66bd84d608" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "ec932f99-8911-4327-bc55-e38805bfa88a", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 7, + "category": "Simulator", + "name": "NAV2-Gazebo", + "folderName": "[lms-nav2-gazebo-simulator]nav2-simulator_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-simulator.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-simulator/1.0.0/prebuilt/amd64/2c97e7672eaec755/lms-nav2-gazebo-simulator-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-simulator-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2c97e7672eaec755eb300442a77b18bbcbaf6e0d305257dc9974724049756756" + } + ], + "defaultParameters": [ + "gui:=false", + "platform:=turtlebot3" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "c4eaa655-ff69-4aed-9c74-41552d2845f1", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 8, + "category": "Localization", + "name": "NAV2-SLAM", + "folderName": "[lms-nav2-gazebo-slam]nav2-slam_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-slam.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-slam/1.0.0/prebuilt/amd64/e5aa22340e275d70/lms-nav2-gazebo-slam-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-slam-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "e5aa22340e275d7063e5cd96f974620354760082d22e80b9a58205085d88e337" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "fb3e7227-2da4-453d-8798-e5b7b9d99da9", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 9, + "category": "Localization", + "name": "NAV2-SLAM3D", + "folderName": "[lms-nav2-gazebo-slam3d]nav2-slam3d_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-slam3D.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-slam3d/1.0.0/prebuilt/latest/lms-nav2-gazebo-slam3d-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-slam3d-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "ed59e1e6b5e816403475c44672247cf8747c14edcbfcf7f1939d2b2de1d3263d" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-11T06:01:46.944Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "6be04dd5-8705-4eb5-96cc-b69282ca7b03", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 10, + "category": "Vehicle", + "name": "NAV2-TurtleBot3Burger", + "folderName": "[lms-nav2-gazebo-vehicle]nav2-vehicle_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-vehicle.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-vehicle/1.0.0/prebuilt/latest/lms-nav2-gazebo-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "42e8179172c178978e5ae5d48e189164f6b8a5030fdaa0eba497ca86a97e96bb" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "platform:=turtlebot3", + "level:=2d" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "bafcb2ea-e4f1-458b-bcb1-5c84306ae845", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 11, + "category": "Vehicle", + "name": "NAV2-MKMini", + "folderName": "[lms-nav2-mkmini]nav2-mkmini_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-mkmini.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-mkmini/1.0.0/prebuilt/amd64/lms-nav2-mkmini-build-install-amd64.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-mkmini-build-install-amd64.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "6094d2aa5188a28153452aec08e28870984b36c1bc0c06fec8091901f6d26856" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "platform:=mkmini", + "level:=2d" + ], + "dockerImage": "future-nav2:humble-jetson_orin", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "6bcb11f1-28ce-4eff-aaa0-81737199a807", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 12, + "category": "Gui", + "name": "NAV2-Rviz2", + "folderName": "[lms-nav2-gazebo-gui]nav2-rviz2_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-gui.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-gui/1.0.0/prebuilt/latest/lms-nav2-gazebo-gui-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-gui-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2a816b08d9f39057a96641ce7ace341ce409f77e5043abe074e2e21ecaa871ca" + } + ], + "defaultParameters": [ + "rviz_config:=nav2" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-07T00:34:42.804Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "b77f3bd0-c7f5-47a6-aaf1-4c97b8d9ee61", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 13, + "category": "System", + "name": "NAV2-Yahboom-Agent", + "folderName": "[lms-nav2-yahboom-agent]yahboom_agent_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-agent.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-agent/1.0.0/prebuilt/arm64/ec2b2c4578fc71b9/lms-nav2-yahboom-agent-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-agent-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "ec2b2c4578fc71b95c720dcacca5e7c7c5d08400fc80ef21a16097d31869cf9d" + } + ], + "defaultParameters": [ + "serial_device:=/dev/ttyUSB0", + "baudrate:=921600" + ], + "dockerImage": "future-nav2:humble-yahboom-agent", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "55636ffe-88c4-4c0a-8d9b-96b678b9fb53", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 14, + "category": "Vehicle", + "name": "NAV2-Yahboom", + "folderName": "[lms-nav2-yahboom-vehicle]yahboom_vehicle_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-vehicle.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-vehicle/1.0.0/prebuilt/amd64/d54368061d520794/lms-nav2-yahboom-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d54368061d52079489a8d686461e6672ebb84ca0f531fb71f835717b3f2a031f" + }, + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-vehicle/1.0.0/prebuilt/arm64/f409c0b61ca9497d/lms-nav2-yahboom-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "f409c0b61ca9497d4cfd1c2af9f4e137d9316364cab664bb908818f6ecab8331" + } + ], + "defaultParameters": [ + "sim_mode:=false" + ], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:55:16.092Z" + }, + { + "id": "e42f92d1-0d5c-4d3f-a66f-0d1fe317637d", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 15, + "category": "Localization", + "name": "NAV2-Yahboom-Slam", + "folderName": "[lms-nav2-yahboom-slam]yahboom_slam_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-slam.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-slam/1.0.0/prebuilt/arm64/f6444fe604f50ee0/lms-nav2-yahboom-slam-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-slam-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "f6444fe604f50ee00831fc7db121bbebfea6be920b55a498ddc54fc317093c77" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "356f971a-8750-45f1-9ddd-a3c70bd72912", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 16, + "category": "Map", + "name": "NAV2-Yahboom-Map", + "folderName": "[lms-nav2-yahboom-map]yahboom_map_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-map.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-map/1.0.0/prebuilt/arm64/111981b9ab460ce4/lms-nav2-yahboom-map-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-map-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "111981b9ab460ce450334e5c367e97b7e757ef55d84330ca030b096d4a9c4792" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "421db22e-154d-4df9-8190-ccb65dec6b68", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 17, + "category": "Localization", + "name": "NAV2-Yahboom-Localization", + "folderName": "[lms-nav2-yahboom-localization]yahboom_localization_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-localization.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-localization/1.0.0/prebuilt/arm64/d6534d48841a751c/lms-nav2-yahboom-localization-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-localization-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "d6534d48841a751cb2e21fa73785df61fb81815b406c9c4152c9cbfd0ae59e48" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "fe514053-5b6b-4dad-b6d7-0191fa5e8ef4", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 18, + "category": "Planning", + "name": "NAV2-Yahboom-Planning", + "folderName": "[lms-nav2-yahboom-planning]yahboom_planning_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-planning.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-planning/1.0.0/prebuilt/arm64/050f4ed4acba795a/lms-nav2-yahboom-planning-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-planning-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "050f4ed4acba795affec8306b7eef116e9e86fd0f42e492da27c7fc624dc8570" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "276f4df2-f214-4ba9-aea6-04e23491a569", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 19, + "category": "Control", + "name": "NAV2-Yahboom-Control", + "folderName": "[lms-nav2-yahboom-control]yahboom_control_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-control.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-control/1.0.0/prebuilt/arm64/be7147024d890249/lms-nav2-yahboom-control-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-control-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "be7147024d89024915f1481a47a0909ea1d06196ef9e9797f260739999e09b3f" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "b1e9b92f-bbab-4759-9e9b-637dbe12066c", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 20, + "category": "Perception", + "name": "NAV2-Yahboom-Camera", + "folderName": "[lms-nav2-yahboom-camera]yahboom_camera_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-camera.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-camera/1.0.0/prebuilt/arm64/b950a71d5babcdb3/lms-nav2-yahboom-camera-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-camera-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "b950a71d5babcdb37e46c7674fb80d0ae8c076e7d7c1186042b1b1f6e7ee2d04" + } + ], + "defaultParameters": [ + "video_device:=/dev/video0" + ], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + } + ], + "topics": [ + { + "id": "8589e6da-b4e8-41bf-9fbe-895a294c5ee0", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "ROS2 기초", + "detail": "ROS Topic, Service, Action 통신과 TF 정의, ROS2 패키지 및 tree 구조를 실습합니다.", + "sortOrder": 1 + }, + { + "id": "894c7578-19d4-4d0c-8fdc-4e1741c101dd", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "Sensor Processing", + "detail": "LiDAR와 카메라 등 센서 데이터 처리 흐름과 Calibration 기초를 확인합니다.", + "sortOrder": 2 + }, + { + "id": "e87af89a-5161-43bf-a4a3-54d87506dccf", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "Simulation 환경 구축 Part 1", + "detail": "Gazebo 월드, 로봇 모델, 센서 토픽을 구성해 시뮬레이션 실습 환경을 만듭니다.", + "sortOrder": 3 + }, + { + "id": "f270cddf-3085-4ac8-8fd0-7fdcc7b0fcc7", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "Simulation 환경 구축 Part 2", + "detail": "시뮬레이션에서 활용할 수 있는 모빌리티 플랫폼과 실행 모듈 구성을 점검합니다.", + "sortOrder": 4 + }, + { + "id": "77c00ffb-0753-4ade-9304-fe7ae187932f", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "LiDAR SLAM", + "detail": "센서 데이터와 SLAM 알고리즘을 활용해 자율주행용 2D Map을 구축합니다.", + "sortOrder": 5 + }, + { + "id": "fd677129-6030-4013-8014-642b26f81799", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "LiDAR Localization", + "detail": "구축한 Map과 실시간 LiDAR 데이터를 이용해 현재 위치를 추정합니다.", + "sortOrder": 6 + }, + { + "id": "f05ec8bf-5e1c-4e4e-9073-f3ef06b516ae", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "Parameter Tuning", + "detail": "모듈 파라미터를 변경하고 결과를 비교해 알고리즘을 튜닝합니다.", + "sortOrder": 7 + }, + { + "id": "507221da-fd06-495d-8be5-c7ef1dee1cfd", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "[심화] Camera based SLAM", + "detail": "카메라 기반 Map 구축과 위치인식의 입력·출력 구조를 분석합니다.", + "sortOrder": 8 + }, + { + "id": "ee73c3ca-3a0d-423f-aa9d-f18b99bfd21e", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "Occupancy Map", + "detail": "장애물 인식을 위한 Occupancy Map과 costmap 반영 과정을 실습합니다.", + "sortOrder": 9 + }, + { + "id": "3d0dc30a-3279-4359-88bf-d56e23d52dd4", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "Planning", + "detail": "장애물 충돌 없이 목표 지점으로 이동하기 위한 전역·지역 경로 계획을 실습합니다.", + "sortOrder": 10 + }, + { + "id": "c445c2cf-fe70-4198-99ee-86c850c310b2", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "Control", + "detail": "생성한 경로를 추종하도록 속도 명령을 만들고 주행 결과를 검증합니다.", + "sortOrder": 11 + }, + { + "id": "76165a4c-1e99-4842-bbb7-c07704777516", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "[심화] 딥러닝 기반 객체 인식", + "detail": "딥러닝 기반 객체 인식 결과를 자율주행 데이터 흐름에 반영하는 방법을 학습합니다.", + "sortOrder": 12 + } + ], + "practices": [ + { + "id": "a3cacb48-2d1d-47c9-bf22-d36438d1ca3f", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "ROS2와 Gazebo 실행 환경", + "description": "Topic, Service, Action, TF를 확인하고 TurtleBot3 Gazebo 환경을 실행합니다.", + "sortOrder": 1 + }, + { + "id": "a4445367-9679-4af4-a21a-43b02be55c49", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "LiDAR SLAM과 Localization", + "description": "맵을 생성·저장하고 저장된 맵에서 AMCL 기반 위치추정을 검증합니다.", + "sortOrder": 2 + }, + { + "id": "7553cc6e-46f0-48f3-b0f9-52ae899aa864", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "경로 계획과 제어", + "description": "목표 지점을 설정하고 장애물 회피, 경로 계획, 제어 명령을 비교합니다.", + "sortOrder": 3 + } + ], + "references": [] + }, + { + "id": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "courseId": "4eb01197-7605-4c3b-9a92-f9a3942050bd", + "week": 2, + "title": "Autonomy Studio 팀 프로젝트", + "tags": [ + "MK-mini", + "진행예정" + ], + "progress": 0, + "state": "locked", + "duration": "1주", + "github": "https://github.com/ros-navigation/navigation2", + "overview": "3~4인 팀으로 자율주행 알고리즘이 필요한 문제 상황을 정의하고, 센서 구성과 NAV2 모듈을 조합해 시뮬레이션과 플랫폼에서 검증합니다.", + "deliverable": "팀 프로젝트 소스, 시스템 구성도, 시뮬레이션 및 플랫폼 주행 검증 결과, 발표 자료를 제출합니다.", + "requiresSourceSubmission": true, + "createdAt": "2026-06-30T09:58:46.538Z", + "updatedAt": "2026-06-30T09:58:46.538Z", + "modules": [ + { + "id": "238bd78c-14f7-4707-9964-4b8ace1cfb42", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 1, + "category": "Control", + "name": "NAV2-Control", + "folderName": "[lms-nav2-gazebo-control]nav2-control_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-control.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-control/1.0.0/prebuilt/amd64/0ab85a58f37a922b/lms-nav2-gazebo-control-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-control-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "0ab85a58f37a922b493ce21676573e3a8fd339f99a74cce9c4cba58aff9b1e35" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=turtlebot3" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "c892dd62-6cbe-43c0-84ce-bfb2086a872a", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 2, + "category": "Localization", + "name": "NAV2-Localization", + "folderName": "[lms-nav2-gazebo-localization]nav2-localization_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-localization.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-localization/1.0.0/prebuilt/latest/lms-nav2-gazebo-localization-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-localization-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "44c8d50205f001a196870d03f44d435582b96c51eb4445e50cc8db6203b2c0c9" + } + ], + "defaultParameters": [ + "localization_mode:=amcl" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "611ba2e2-6034-4121-bb9b-716df5e0ad96", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 3, + "category": "Map", + "name": "NAV2-Map", + "folderName": "[lms-nav2-gazebo-map]nav2-map_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-map.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-map/1.0.0/prebuilt/latest/lms-nav2-gazebo-map-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-map-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "f409ce54c40aeeed8cf3fc06251c2e321887b3ec5f5827dfb74897a62780582f" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "23417175-c667-452c-8398-1542ad036a94", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 4, + "category": "Perception", + "name": "NAV2-Perception", + "folderName": "[lms-nav2-gazebo-perception]nav2-perception_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-perception.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-perception/1.0.0/prebuilt/amd64/d18d59ac77130be1/lms-nav2-gazebo-perception-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-perception-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d18d59ac77130be1da9d16cb0716fbf4b2837132de1765726200b3a57217034e" + } + ], + "defaultParameters": [ + "sim_mode:=true" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "673cd838-f8c4-4fdc-88b9-c5b3f83c5886", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 5, + "category": "Perception", + "name": "NAV2-Perception3D", + "folderName": "[lms-nav2-gazebo-perception3d]nav2-perception3d_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-perception3D.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-perception3d/1.0.0/prebuilt/latest/lms-nav2-gazebo-perception3d-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-perception3d-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "bab9f7383f44950b6cf6cd8f97b4ae2d3ba61571d6b37c10b24922cc0348a7cc" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-11T06:01:46.967Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "d1e29d86-a9ae-40b7-b876-f3c99cf656c8", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 6, + "category": "Planning", + "name": "NAV2-Planning", + "folderName": "[lms-nav2-gazebo-planning]nav2-planning_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-planning.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-planning/1.0.0/prebuilt/amd64/d1c51b0f211e1420/lms-nav2-gazebo-planning-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-planning-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d1c51b0f211e14208882947dd3bf642dd8ce997f54b37dfc0a4c8d66bd84d608" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "04161c08-f266-445b-a1f1-a68272ee4988", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 7, + "category": "Simulator", + "name": "NAV2-Gazebo", + "folderName": "[lms-nav2-gazebo-simulator]nav2-simulator_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-simulator.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-simulator/1.0.0/prebuilt/amd64/2c97e7672eaec755/lms-nav2-gazebo-simulator-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-simulator-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2c97e7672eaec755eb300442a77b18bbcbaf6e0d305257dc9974724049756756" + } + ], + "defaultParameters": [ + "gui:=false", + "platform:=turtlebot3" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "4ee736db-533f-485b-abe6-62ed4eba5aae", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 8, + "category": "Localization", + "name": "NAV2-SLAM", + "folderName": "[lms-nav2-gazebo-slam]nav2-slam_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-slam.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-slam/1.0.0/prebuilt/amd64/e5aa22340e275d70/lms-nav2-gazebo-slam-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-slam-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "e5aa22340e275d7063e5cd96f974620354760082d22e80b9a58205085d88e337" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "a98a6eab-f771-4586-b8b4-4ab61300a762", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 9, + "category": "Localization", + "name": "NAV2-SLAM3D", + "folderName": "[lms-nav2-gazebo-slam3d]nav2-slam3d_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-slam3D.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-slam3d/1.0.0/prebuilt/latest/lms-nav2-gazebo-slam3d-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-slam3d-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "ed59e1e6b5e816403475c44672247cf8747c14edcbfcf7f1939d2b2de1d3263d" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-11T06:01:46.967Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "ff32df67-203c-4781-b770-68d19f5b4d5e", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 10, + "category": "Vehicle", + "name": "NAV2-TurtleBot3Burger", + "folderName": "[lms-nav2-gazebo-vehicle]nav2-vehicle_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-vehicle.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-vehicle/1.0.0/prebuilt/latest/lms-nav2-gazebo-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "42e8179172c178978e5ae5d48e189164f6b8a5030fdaa0eba497ca86a97e96bb" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "platform:=turtlebot3", + "level:=2d" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "921e73b2-ddc6-4fe0-84d2-2efb401ebf32", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 11, + "category": "Vehicle", + "name": "NAV2-MKMini", + "folderName": "[lms-nav2-mkmini]nav2-mkmini_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-mkmini.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-mkmini/1.0.0/prebuilt/amd64/lms-nav2-mkmini-build-install-amd64.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-mkmini-build-install-amd64.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "6094d2aa5188a28153452aec08e28870984b36c1bc0c06fec8091901f6d26856" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "platform:=mkmini", + "level:=2d" + ], + "dockerImage": "future-nav2:humble-jetson_orin", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "fadfb101-884b-4566-ad99-71f6ec4f2b14", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 12, + "category": "Gui", + "name": "NAV2-Rviz2", + "folderName": "[lms-nav2-gazebo-gui]nav2-rviz2_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-gui.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-gui/1.0.0/prebuilt/latest/lms-nav2-gazebo-gui-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-gui-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2a816b08d9f39057a96641ce7ace341ce409f77e5043abe074e2e21ecaa871ca" + } + ], + "defaultParameters": [ + "rviz_config:=nav2" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-07T00:34:42.804Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "517cdc75-6e49-4878-baf4-7703155bd45d", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 13, + "category": "System", + "name": "NAV2-Yahboom-Agent", + "folderName": "[lms-nav2-yahboom-agent]yahboom_agent_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-agent.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-agent/1.0.0/prebuilt/arm64/ec2b2c4578fc71b9/lms-nav2-yahboom-agent-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-agent-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "ec2b2c4578fc71b95c720dcacca5e7c7c5d08400fc80ef21a16097d31869cf9d" + } + ], + "defaultParameters": [ + "serial_device:=/dev/ttyUSB0", + "baudrate:=921600" + ], + "dockerImage": "future-nav2:humble-yahboom-agent", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "1072caee-d064-4c9b-8064-810ef90d7498", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 14, + "category": "Vehicle", + "name": "NAV2-Yahboom", + "folderName": "[lms-nav2-yahboom-vehicle]yahboom_vehicle_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-vehicle.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-vehicle/1.0.0/prebuilt/amd64/d54368061d520794/lms-nav2-yahboom-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d54368061d52079489a8d686461e6672ebb84ca0f531fb71f835717b3f2a031f" + }, + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-vehicle/1.0.0/prebuilt/arm64/f409c0b61ca9497d/lms-nav2-yahboom-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "f409c0b61ca9497d4cfd1c2af9f4e137d9316364cab664bb908818f6ecab8331" + } + ], + "defaultParameters": [ + "sim_mode:=false" + ], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:55:16.092Z" + }, + { + "id": "a046ffd3-1e0c-4fd7-943f-3af60a776a7f", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 15, + "category": "Localization", + "name": "NAV2-Yahboom-Slam", + "folderName": "[lms-nav2-yahboom-slam]yahboom_slam_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-slam.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-slam/1.0.0/prebuilt/arm64/f6444fe604f50ee0/lms-nav2-yahboom-slam-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-slam-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "f6444fe604f50ee00831fc7db121bbebfea6be920b55a498ddc54fc317093c77" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "715ef9e8-701f-40d0-987c-6ef272902c70", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 16, + "category": "Map", + "name": "NAV2-Yahboom-Map", + "folderName": "[lms-nav2-yahboom-map]yahboom_map_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-map.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-map/1.0.0/prebuilt/arm64/111981b9ab460ce4/lms-nav2-yahboom-map-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-map-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "111981b9ab460ce450334e5c367e97b7e757ef55d84330ca030b096d4a9c4792" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "dcd39368-069a-4b3d-a31d-510628edce8b", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 17, + "category": "Localization", + "name": "NAV2-Yahboom-Localization", + "folderName": "[lms-nav2-yahboom-localization]yahboom_localization_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-localization.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-localization/1.0.0/prebuilt/arm64/d6534d48841a751c/lms-nav2-yahboom-localization-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-localization-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "d6534d48841a751cb2e21fa73785df61fb81815b406c9c4152c9cbfd0ae59e48" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "fa788eeb-6ba4-4f69-89aa-ddf0c6b875a5", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 18, + "category": "Planning", + "name": "NAV2-Yahboom-Planning", + "folderName": "[lms-nav2-yahboom-planning]yahboom_planning_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-planning.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-planning/1.0.0/prebuilt/arm64/050f4ed4acba795a/lms-nav2-yahboom-planning-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-planning-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "050f4ed4acba795affec8306b7eef116e9e86fd0f42e492da27c7fc624dc8570" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "0a4f97e8-3dd6-4dd8-aa76-d327347c4dc7", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 19, + "category": "Control", + "name": "NAV2-Yahboom-Control", + "folderName": "[lms-nav2-yahboom-control]yahboom_control_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-control.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-control/1.0.0/prebuilt/arm64/be7147024d890249/lms-nav2-yahboom-control-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-control-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "be7147024d89024915f1481a47a0909ea1d06196ef9e9797f260739999e09b3f" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "de01197b-d7b1-4ebb-812b-4943befb8539", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 20, + "category": "Perception", + "name": "NAV2-Yahboom-Camera", + "folderName": "[lms-nav2-yahboom-camera]yahboom_camera_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-camera.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-camera/1.0.0/prebuilt/arm64/b950a71d5babcdb3/lms-nav2-yahboom-camera-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-camera-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "b950a71d5babcdb37e46c7674fb80d0ae8c076e7d7c1186042b1b1f6e7ee2d04" + } + ], + "defaultParameters": [ + "video_device:=/dev/video0" + ], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + } + ], + "topics": [ + { + "id": "4d081569-b820-44f5-82a2-b09180da6b6b", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "title": "프로젝트 주제와 역할 분담", + "detail": "팀별 자율주행 문제 상황과 목표, 역할, 검증 기준을 정의합니다.", + "sortOrder": 1 + }, + { + "id": "1655d608-2828-45b3-91a6-4986a3f85581", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "title": "센서·모듈 구성 설계", + "detail": "센서 입력과 NAV2 모듈 조합, ROS 토픽 및 실행 순서를 설계합니다.", + "sortOrder": 2 + }, + { + "id": "0e053b97-39a0-4ff1-9def-185082626827", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "title": "알고리즘 구현과 튜닝", + "detail": "SLAM, Localization, Planning, Control 파라미터를 수정하고 성능을 비교합니다.", + "sortOrder": 3 + }, + { + "id": "9379f099-ec25-442d-ab6e-81a7002831ca", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "title": "시뮬레이션·플랫폼 검증", + "detail": "Gazebo 시뮬레이션과 실제 플랫폼에서 주행 시나리오를 검증합니다.", + "sortOrder": 4 + }, + { + "id": "edc67d22-32ef-46f8-8164-66f2328f6bb5", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "title": "결과 제출과 발표", + "detail": "소스, 실행 로그, 검증 결과를 정리해 팀 프로젝트 결과를 제출하고 발표합니다.", + "sortOrder": 5 + } + ], + "practices": [ + { + "id": "e63803b3-b888-44b9-9cf0-13d9783eab70", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "title": "팀 자율주행 시나리오 구현", + "description": "팀별 시나리오에 맞춰 NAV2 모듈을 구성하고 소스를 수정합니다.", + "sortOrder": 1 + }, + { + "id": "49a1f5db-0f86-4be3-8a3b-9866ef86b80d", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "title": "통합 주행 검증", + "description": "시뮬레이션과 플랫폼에서 재현 가능한 주행 결과를 확보합니다.", + "sortOrder": 2 + } + ], + "references": [] + }, + { + "id": "10eeb415-c568-4ed5-9ef6-8eeb23b68c7d", + "courseId": "4eb01197-7605-4c3b-9a92-f9a3942050bd", + "week": 3, + "title": "원격 개발", + "tags": [ + "MK-mini", + "진행예정" + ], + "progress": 0, + "state": "locked", + "duration": "1주", + "github": "https://github.com/ros-navigation/navigation2", + "overview": "원거리 MK-mini 플랫폼을 연결하고 원격으로 코드를 편집·빌드·실행합니다. 로컬 MK-mini 시뮬레이션과 실차에서 SLAM 및 자율주행을 검증합니다.", + "deliverable": "SLAM 저장 맵, 자율주행 검증 결과, 원격 개발 소스 변경 내역 및 실행 로그를 제출합니다.", + "requiresSourceSubmission": true, + "createdAt": "2026-09-22T05:57:24.295Z", + "updatedAt": "2026-09-22T05:57:24.295Z", + "modules": [ + { + "id": "73b34795-5848-44fa-a097-c48de8405c2b", + "weekId": "10eeb415-c568-4ed5-9ef6-8eeb23b68c7d", + "sortOrder": 1, + "category": "Control", + "name": "NAV2-Control", + "folderName": "[lms-nav2-gazebo-control]nav2-control_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-control.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-control/1.0.0/prebuilt/amd64/0ab85a58f37a922b/lms-nav2-gazebo-control-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-control-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "0ab85a58f37a922b493ce21676573e3a8fd339f99a74cce9c4cba58aff9b1e35" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T05:57:24.417Z", + "updatedAt": "2026-09-22T05:57:24.417Z" + }, + { + "id": "f823ab59-d4a1-4b18-b84f-d06fc6c11e33", + "weekId": "10eeb415-c568-4ed5-9ef6-8eeb23b68c7d", + "sortOrder": 2, + "category": "Localization", + "name": "NAV2-Localization", + "folderName": "[lms-nav2-gazebo-localization]nav2-localization_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-localization.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-localization/1.0.0/prebuilt/latest/lms-nav2-gazebo-localization-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-localization-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "44c8d50205f001a196870d03f44d435582b96c51eb4445e50cc8db6203b2c0c9" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d", + "localization_mode:=amcl" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T05:57:24.448Z", + "updatedAt": "2026-09-22T05:57:24.448Z" + }, + { + "id": "2377a171-689f-4f00-b92a-c7138e00d90a", + "weekId": "10eeb415-c568-4ed5-9ef6-8eeb23b68c7d", + "sortOrder": 3, + "category": "Map", + "name": "NAV2-Map", + "folderName": "[lms-nav2-gazebo-map]nav2-map_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-map.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-map/1.0.0/prebuilt/latest/lms-nav2-gazebo-map-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-map-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "f409ce54c40aeeed8cf3fc06251c2e321887b3ec5f5827dfb74897a62780582f" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T05:57:24.464Z", + "updatedAt": "2026-09-22T05:57:24.464Z" + }, + { + "id": "6d61da3c-70f6-4ceb-b134-b6d319249a3c", + "weekId": "10eeb415-c568-4ed5-9ef6-8eeb23b68c7d", + "sortOrder": 4, + "category": "Perception", + "name": "NAV2-Perception", + "folderName": "[lms-nav2-gazebo-perception]nav2-perception_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-perception.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-perception/1.0.0/prebuilt/amd64/d18d59ac77130be1/lms-nav2-gazebo-perception-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-perception-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d18d59ac77130be1da9d16cb0716fbf4b2837132de1765726200b3a57217034e" + } + ], + "defaultParameters": [ + "sim_mode:=true" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T05:57:24.481Z", + "updatedAt": "2026-09-22T05:57:24.481Z" + }, + { + "id": "ff6cba53-96f9-4fee-b378-4317ea52ae21", + "weekId": "10eeb415-c568-4ed5-9ef6-8eeb23b68c7d", + "sortOrder": 5, + "category": "Perception", + "name": "NAV2-Perception3D", + "folderName": "[lms-nav2-gazebo-perception3d]nav2-perception3d_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-perception3D.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-perception3d/1.0.0/prebuilt/latest/lms-nav2-gazebo-perception3d-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-perception3d-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "bab9f7383f44950b6cf6cd8f97b4ae2d3ba61571d6b37c10b24922cc0348a7cc" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T05:57:24.496Z", + "updatedAt": "2026-09-22T05:57:24.496Z" + }, + { + "id": "495b0f80-1d87-4b38-9625-370e70de2d49", + "weekId": "10eeb415-c568-4ed5-9ef6-8eeb23b68c7d", + "sortOrder": 6, + "category": "Planning", + "name": "NAV2-Planning", + "folderName": "[lms-nav2-gazebo-planning]nav2-planning_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-planning.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-planning/1.0.0/prebuilt/amd64/d1c51b0f211e1420/lms-nav2-gazebo-planning-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-planning-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d1c51b0f211e14208882947dd3bf642dd8ce997f54b37dfc0a4c8d66bd84d608" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T05:57:24.512Z", + "updatedAt": "2026-09-22T05:57:24.512Z" + }, + { + "id": "d1535889-73e8-4300-8677-6260fd8dd436", + "weekId": "10eeb415-c568-4ed5-9ef6-8eeb23b68c7d", + "sortOrder": 7, + "category": "Simulator", + "name": "NAV2-Gazebo", + "folderName": "[lms-nav2-gazebo-simulator]nav2-simulator_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-simulator.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-simulator/1.0.0/prebuilt/amd64/2c97e7672eaec755/lms-nav2-gazebo-simulator-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-simulator-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2c97e7672eaec755eb300442a77b18bbcbaf6e0d305257dc9974724049756756" + } + ], + "defaultParameters": [ + "gui:=false", + "platform:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T05:57:24.528Z", + "updatedAt": "2026-09-22T05:57:24.528Z" + }, + { + "id": "da4f1d95-6270-47dc-b7e8-5529784cad29", + "weekId": "10eeb415-c568-4ed5-9ef6-8eeb23b68c7d", + "sortOrder": 8, + "category": "Localization", + "name": "NAV2-SLAM", + "folderName": "[lms-nav2-gazebo-slam]nav2-slam_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-slam.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-slam/1.0.0/prebuilt/amd64/e5aa22340e275d70/lms-nav2-gazebo-slam-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-slam-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "e5aa22340e275d7063e5cd96f974620354760082d22e80b9a58205085d88e337" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T05:57:24.544Z", + "updatedAt": "2026-09-22T05:57:24.544Z" + }, + { + "id": "316fa7e6-dd9c-4c89-a911-8ccf8605a24b", + "weekId": "10eeb415-c568-4ed5-9ef6-8eeb23b68c7d", + "sortOrder": 9, + "category": "Localization", + "name": "NAV2-SLAM3D", + "folderName": "[lms-nav2-gazebo-slam3d]nav2-slam3d_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-slam3D.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-slam3d/1.0.0/prebuilt/latest/lms-nav2-gazebo-slam3d-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-slam3d-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "ed59e1e6b5e816403475c44672247cf8747c14edcbfcf7f1939d2b2de1d3263d" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T05:57:24.558Z", + "updatedAt": "2026-09-22T05:57:24.558Z" + }, + { + "id": "3b164b3e-16d2-452b-9a5f-7cdb367e4916", + "weekId": "10eeb415-c568-4ed5-9ef6-8eeb23b68c7d", + "sortOrder": 10, + "category": "Vehicle", + "name": "NAV2-MKMini", + "folderName": "[lms-nav2-mkmini]nav2-mkmini_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-mkmini.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-mkmini/1.0.0/prebuilt/amd64/lms-nav2-mkmini-build-install-amd64.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-mkmini-build-install-amd64.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "6094d2aa5188a28153452aec08e28870984b36c1bc0c06fec8091901f6d26856" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "platform:=mkmini", + "robot:=mkmini", + "level:=2d", + "simulator:=gazebo" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T05:57:24.574Z", + "updatedAt": "2026-09-22T05:57:24.574Z" + }, + { + "id": "b4b253d8-c202-4c28-bcd7-6c8bdee37d52", + "weekId": "10eeb415-c568-4ed5-9ef6-8eeb23b68c7d", + "sortOrder": 11, + "category": "Gui", + "name": "NAV2-Rviz2", + "folderName": "[lms-nav2-gazebo-gui]nav2-rviz2_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-gui.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-gui/1.0.0/prebuilt/latest/lms-nav2-gazebo-gui-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-gui-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2a816b08d9f39057a96641ce7ace341ce409f77e5043abe074e2e21ecaa871ca" + } + ], + "defaultParameters": [ + "rviz_config:=nav2" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T05:57:24.589Z", + "updatedAt": "2026-09-22T05:57:24.589Z" + } + ], + "topics": [ + { + "id": "c80efebe-4f60-4da2-b4c0-a09d159f54b5", + "weekId": "10eeb415-c568-4ed5-9ef6-8eeb23b68c7d", + "title": "SLAM", + "detail": "원거리 MK-mini 플랫폼에 연결하여 모듈 소스와 파라미터를 수정하고, 센서 토픽을 확인하며 SLAM 맵을 생성·저장합니다. 로컬 MK-mini 시뮬레이션에서 먼저 검증합니다.", + "sortOrder": 1 + }, + { + "id": "b29d3f27-5530-45e9-8920-4233af999297", + "weekId": "10eeb415-c568-4ed5-9ef6-8eeb23b68c7d", + "title": "자율주행", + "detail": "저장한 맵으로 위치추정·경로 계획·제어 모듈을 구성하고 목표 지점 주행을 검증합니다. 원격 코드 편집과 빌드, 실행 로그 분석 및 파라미터 튜닝을 실습합니다.", + "sortOrder": 2 + } + ], + "practices": [ + { + "id": "737bb4ba-6dcb-4b03-8e4c-573bcf414e76", + "weekId": "10eeb415-c568-4ed5-9ef6-8eeb23b68c7d", + "title": "SLAM", + "description": "원거리 MK-mini 플랫폼에 연결하여 모듈 소스와 파라미터를 수정하고, 센서 토픽을 확인하며 SLAM 맵을 생성·저장합니다. 로컬 MK-mini 시뮬레이션에서 먼저 검증합니다.", + "sortOrder": 1 + }, + { + "id": "a3f8dc80-5f7d-45b2-9f45-9f488a5d4a3c", + "weekId": "10eeb415-c568-4ed5-9ef6-8eeb23b68c7d", + "title": "자율주행", + "description": "저장한 맵으로 위치추정·경로 계획·제어 모듈을 구성하고 목표 지점 주행을 검증합니다. 원격 코드 편집과 빌드, 실행 로그 분석 및 파라미터 튜닝을 실습합니다.", + "sortOrder": 2 + } + ], + "references": [] + } + ], + "environmentProfiles": [ + { + "id": "119ece78-9921-4c01-9334-669d91aca149", + "courseId": "4eb01197-7605-4c3b-9a92-f9a3942050bd", + "week": 3, + "platformKey": "NAV2", + "profileType": "NAV2", + "name": "로컬", + "config": { + "type": "NAV2", + "bridge": { + "env": { + "ROBOT_STACK": "nav2" + }, + "name": "nav2-ros-bridge", + "port": 8765, + "image": "slam-ros-bridge:latest" + }, + "target": "local", + "viewer": { + "stack": "nav2" + }, + "runtime": { + "steps": [], + "containers": [] + }, + "moduleSet": { + "target": "local", + "modules": [ + { + "id": "73b34795-5848-44fa-a097-c48de8405c2b", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "f823ab59-d4a1-4b18-b84f-d06fc6c11e33", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d", + "localization_mode:=amcl" + ] + }, + { + "id": "2377a171-689f-4f00-b92a-c7138e00d90a", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "6d61da3c-70f6-4ceb-b134-b6d319249a3c", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true" + ] + }, + { + "id": "495b0f80-1d87-4b38-9625-370e70de2d49", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "d1535889-73e8-4300-8677-6260fd8dd436", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "gui:=false", + "platform:=mkmini" + ] + }, + { + "id": "da4f1d95-6270-47dc-b7e8-5529784cad29", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "3b164b3e-16d2-452b-9a5f-7cdb367e4916", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "platform:=mkmini", + "robot:=mkmini", + "level:=2d", + "simulator:=gazebo" + ] + }, + { + "id": "b4b253d8-c202-4c28-bcd7-6c8bdee37d52", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "rviz_config:=nav2" + ] + } + ], + "includeUnlisted": false + }, + "runtimeImages": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/nav2/gazebo/latest/future-nav2-gazebo-humble.tar.zst", + "image": "future-nav2-gazebo:humble", + "fileName": "future-nav2-gazebo-humble.tar.zst", + "required": true, + "checksumSha256": "54230e039c1fa5dc82615cef3828c5acae7b8bea8e921b70cfdc5351d8301644" + } + ] + }, + "enabled": true, + "createdAt": "2026-09-22T05:57:24.606Z", + "updatedAt": "2026-09-22T05:57:24.606Z" + }, + { + "id": "19175b62-d8a2-458b-9a63-8b3fa9d8889e", + "courseId": "4eb01197-7605-4c3b-9a92-f9a3942050bd", + "week": 2, + "platformKey": "NAV2", + "profileType": "NAV2", + "name": "로컬", + "config": { + "type": "NAV2", + "bridge": { + "env": { + "ROBOT_STACK": "nav2" + }, + "name": "nav2-ros-bridge", + "port": 8765, + "image": "slam-ros-bridge:latest" + }, + "target": "local", + "viewer": { + "stack": "nav2" + }, + "runtime": { + "steps": [], + "containers": [] + }, + "moduleSet": { + "target": "local", + "modules": [ + { + "id": "238bd78c-14f7-4707-9964-4b8ace1cfb42" + }, + { + "id": "c892dd62-6cbe-43c0-84ce-bfb2086a872a" + }, + { + "id": "611ba2e2-6034-4121-bb9b-716df5e0ad96" + }, + { + "id": "23417175-c667-452c-8398-1542ad036a94" + }, + { + "id": "d1e29d86-a9ae-40b7-b876-f3c99cf656c8" + }, + { + "id": "04161c08-f266-445b-a1f1-a68272ee4988" + }, + { + "id": "4ee736db-533f-485b-abe6-62ed4eba5aae" + }, + { + "id": "ff32df67-203c-4781-b770-68d19f5b4d5e" + }, + { + "id": "921e73b2-ddc6-4fe0-84d2-2efb401ebf32", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "platform:=mkmini", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "fadfb101-884b-4566-ad99-71f6ec4f2b14", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "rviz_config:=nav2" + ] + } + ], + "includeUnlisted": false + }, + "runtimeImages": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/nav2/gazebo/latest/future-nav2-gazebo-humble.tar.zst", + "image": "future-nav2-gazebo:humble", + "fileName": "future-nav2-gazebo-humble.tar.zst", + "required": true, + "checksumSha256": "54230e039c1fa5dc82615cef3828c5acae7b8bea8e921b70cfdc5351d8301644" + } + ] + }, + "enabled": true, + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-09T06:53:28.516Z" + }, + { + "id": "336b8cf4-57b2-4bb2-b809-8007dddd630f", + "courseId": "4eb01197-7605-4c3b-9a92-f9a3942050bd", + "week": 1, + "platformKey": "PLATFORM", + "profileType": "PLATFORM", + "name": "플랫폼", + "config": { + "type": "PLATFORM", + "bridge": { + "env": { + "ROBOT_STACK": "nav2" + }, + "name": "nav2-ros-bridge", + "port": 8765, + "image": "slam-ros-bridge:latest" + }, + "target": "remote-jetson", + "viewer": { + "stack": "nav2" + }, + "moduleSet": { + "target": "platform", + "modules": [ + { + "id": "dd8acfbd-7f66-41b7-a5ef-60c0bc669825", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "31ac8bd3-6b92-44bb-955c-248cda322e61" + }, + { + "id": "618ceb2e-45b8-4220-8469-9d6947e2abba" + }, + { + "id": "fb5cd244-e132-4d3d-8248-70534df07309", + "defaultParameters": [ + "sim_mode:=false" + ] + }, + { + "id": "71503810-840b-4a6b-8537-735067bbf62e" + }, + { + "id": "b4bb8026-da5f-4a57-a9b0-4dc667f6acb9" + }, + { + "id": "c4eaa655-ff69-4aed-9c74-41552d2845f1" + }, + { + "id": "fb3e7227-2da4-453d-8798-e5b7b9d99da9" + }, + { + "id": "bafcb2ea-e4f1-458b-bcb1-5c84306ae845" + } + ], + "includeUnlisted": false + }, + "runtimeKind": "real", + "runtimeImages": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/slam-ros-bridge/arm64/20260819-0659d4cf5578/slam-ros-bridge-jetson-orin.tar.zst", + "image": "slam-ros-bridge:jetson_orin", + "fileName": "slam-ros-bridge-jetson-orin.tar.zst", + "required": true, + "checksumSha256": "0659d4cf5578c43bc9c25e4a4fc5d226ccd5b7bec43becfdff83b5390717114e" + }, + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/nav2/jetson-orin/latest/future-nav2-humble-jetson-orin.tar.zst", + "image": "future-nav2:humble-jetson_orin", + "fileName": "future-nav2-humble-jetson-orin.tar.zst", + "required": true + } + ] + }, + "enabled": true, + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-16T05:04:25.399Z" + }, + { + "id": "377e58bf-039b-48f9-8db0-48dba4ba5549", + "courseId": "4eb01197-7605-4c3b-9a92-f9a3942050bd", + "week": 2, + "platformKey": "PLATFORM", + "profileType": "PLATFORM", + "name": "플랫폼", + "config": { + "type": "PLATFORM", + "bridge": { + "env": { + "ROBOT_STACK": "nav2" + }, + "name": "nav2-ros-bridge", + "port": 8765, + "image": "slam-ros-bridge:latest" + }, + "target": "remote-jetson", + "viewer": { + "stack": "nav2" + }, + "moduleSet": { + "target": "platform", + "modules": [ + { + "id": "238bd78c-14f7-4707-9964-4b8ace1cfb42", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "c892dd62-6cbe-43c0-84ce-bfb2086a872a" + }, + { + "id": "611ba2e2-6034-4121-bb9b-716df5e0ad96" + }, + { + "id": "23417175-c667-452c-8398-1542ad036a94", + "defaultParameters": [ + "sim_mode:=false" + ] + }, + { + "id": "673cd838-f8c4-4fdc-88b9-c5b3f83c5886" + }, + { + "id": "d1e29d86-a9ae-40b7-b876-f3c99cf656c8" + }, + { + "id": "4ee736db-533f-485b-abe6-62ed4eba5aae" + }, + { + "id": "a98a6eab-f771-4586-b8b4-4ab61300a762" + }, + { + "id": "921e73b2-ddc6-4fe0-84d2-2efb401ebf32" + } + ], + "includeUnlisted": false + }, + "runtimeKind": "real", + "runtimeImages": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/slam-ros-bridge/arm64/20260819-0659d4cf5578/slam-ros-bridge-jetson-orin.tar.zst", + "image": "slam-ros-bridge:jetson_orin", + "fileName": "slam-ros-bridge-jetson-orin.tar.zst", + "required": true, + "checksumSha256": "0659d4cf5578c43bc9c25e4a4fc5d226ccd5b7bec43becfdff83b5390717114e" + }, + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/nav2/jetson-orin/latest/future-nav2-humble-jetson-orin.tar.zst", + "image": "future-nav2:humble-jetson_orin", + "fileName": "future-nav2-humble-jetson-orin.tar.zst", + "required": true + } + ] + }, + "enabled": true, + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-16T05:04:25.399Z" + }, + { + "id": "89ff37ab-bf54-43bb-87c8-c965237362bd", + "courseId": "4eb01197-7605-4c3b-9a92-f9a3942050bd", + "week": 1, + "platformKey": "NAV2", + "profileType": "NAV2", + "name": "로컬", + "config": { + "type": "NAV2", + "bridge": { + "env": { + "ROBOT_STACK": "nav2" + }, + "name": "nav2-ros-bridge", + "port": 8765, + "image": "slam-ros-bridge:latest" + }, + "target": "local", + "viewer": { + "stack": "nav2" + }, + "runtime": { + "steps": [], + "containers": [] + }, + "moduleSet": { + "target": "local", + "modules": [ + { + "id": "dd8acfbd-7f66-41b7-a5ef-60c0bc669825" + }, + { + "id": "31ac8bd3-6b92-44bb-955c-248cda322e61" + }, + { + "id": "618ceb2e-45b8-4220-8469-9d6947e2abba" + }, + { + "id": "fb5cd244-e132-4d3d-8248-70534df07309" + }, + { + "id": "b4bb8026-da5f-4a57-a9b0-4dc667f6acb9" + }, + { + "id": "ec932f99-8911-4327-bc55-e38805bfa88a" + }, + { + "id": "c4eaa655-ff69-4aed-9c74-41552d2845f1" + }, + { + "id": "6be04dd5-8705-4eb5-96cc-b69282ca7b03" + }, + { + "id": "bafcb2ea-e4f1-458b-bcb1-5c84306ae845", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "platform:=mkmini", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "6bcb11f1-28ce-4eff-aaa0-81737199a807", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "rviz_config:=nav2" + ] + } + ], + "includeUnlisted": false + }, + "runtimeImages": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/nav2/gazebo/latest/future-nav2-gazebo-humble.tar.zst", + "image": "future-nav2-gazebo:humble", + "fileName": "future-nav2-gazebo-humble.tar.zst", + "required": true, + "checksumSha256": "54230e039c1fa5dc82615cef3828c5acae7b8bea8e921b70cfdc5351d8301644" + } + ] + }, + "enabled": true, + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-08-11T06:47:47.270Z" + }, + { + "id": "8e36f6bc-15cd-45a5-9122-737a8422ec09", + "courseId": "4eb01197-7605-4c3b-9a92-f9a3942050bd", + "week": 3, + "platformKey": "PLATFORM", + "profileType": "PLATFORM", + "name": "플랫폼", + "config": { + "type": "PLATFORM", + "bridge": { + "env": { + "ROBOT_STACK": "nav2" + }, + "name": "nav2-ros-bridge", + "port": 8765, + "image": "slam-ros-bridge:latest" + }, + "target": "remote-jetson", + "viewer": { + "stack": "nav2" + }, + "moduleSet": { + "target": "platform", + "modules": [ + { + "id": "73b34795-5848-44fa-a097-c48de8405c2b", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "f823ab59-d4a1-4b18-b84f-d06fc6c11e33", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini", + "level:=2d", + "localization_mode:=amcl" + ] + }, + { + "id": "2377a171-689f-4f00-b92a-c7138e00d90a", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "6d61da3c-70f6-4ceb-b134-b6d319249a3c", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false" + ] + }, + { + "id": "ff6cba53-96f9-4fee-b378-4317ea52ae21", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini" + ] + }, + { + "id": "495b0f80-1d87-4b38-9625-370e70de2d49", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "da4f1d95-6270-47dc-b7e8-5529784cad29", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "316fa7e6-dd9c-4c89-a911-8ccf8605a24b", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini" + ] + }, + { + "id": "3b164b3e-16d2-452b-9a5f-7cdb367e4916", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "platform:=mkmini", + "robot:=mkmini", + "level:=2d" + ] + } + ], + "includeUnlisted": false + }, + "runtimeKind": "real", + "runtimeImages": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/slam-ros-bridge/arm64/20260819-0659d4cf5578/slam-ros-bridge-jetson-orin.tar.zst", + "image": "slam-ros-bridge:jetson_orin", + "fileName": "slam-ros-bridge-jetson-orin.tar.zst", + "required": true, + "checksumSha256": "0659d4cf5578c43bc9c25e4a4fc5d226ccd5b7bec43becfdff83b5390717114e" + }, + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/nav2/jetson-orin/latest/future-nav2-humble-jetson-orin.tar.zst", + "image": "future-nav2:humble-jetson_orin", + "fileName": "future-nav2-humble-jetson-orin.tar.zst", + "required": true + } + ] + }, + "enabled": true, + "createdAt": "2026-09-22T05:57:24.639Z", + "updatedAt": "2026-09-22T05:57:24.639Z" + } + ], + "maps": [], + "weekMaps": [ + { + "id": "560cce3d-22d0-4511-9ec7-630e60530393", + "courseId": "4eb01197-7605-4c3b-9a92-f9a3942050bd", + "week": 1, + "mapKey": "nav2-turtlebot3-house", + "sortOrder": 2, + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-08-04T01:27:57.076Z" + }, + { + "id": "8fbffe1c-7ed7-463a-a1bc-c838522853d0", + "courseId": "4eb01197-7605-4c3b-9a92-f9a3942050bd", + "week": 2, + "mapKey": "nav2-turtlebot3-house", + "sortOrder": 2, + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-08-04T01:27:57.076Z" + }, + { + "id": "9c285104-c28f-441e-82b8-eea9b7dccb1e", + "courseId": "4eb01197-7605-4c3b-9a92-f9a3942050bd", + "week": 1, + "mapKey": "nav2-turtlebot3-world", + "sortOrder": 1, + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-08-04T01:27:57.076Z" + }, + { + "id": "b2f0d98f-ffa3-48cd-99e9-ed2d07841bfe", + "courseId": "4eb01197-7605-4c3b-9a92-f9a3942050bd", + "week": 3, + "mapKey": "nav2-turtlebot3-house", + "sortOrder": 2, + "createdAt": "2026-09-22T05:57:24.718Z", + "updatedAt": "2026-09-22T05:57:24.718Z" + }, + { + "id": "e5898473-568c-4986-95b0-63b908c6e023", + "courseId": "4eb01197-7605-4c3b-9a92-f9a3942050bd", + "week": 2, + "mapKey": "nav2-turtlebot3-world", + "sortOrder": 1, + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-08-04T01:27:57.076Z" + }, + { + "id": "fe9520c0-048a-4acc-91c6-d8bcc5b2957a", + "courseId": "4eb01197-7605-4c3b-9a92-f9a3942050bd", + "week": 3, + "mapKey": "nav2-turtlebot3-world", + "sortOrder": 1, + "createdAt": "2026-09-22T05:57:24.688Z", + "updatedAt": "2026-09-22T05:57:24.688Z" + } + ], + "instructorCurriculumWeekOverrides": [ + { + "id": "1ae44253-20e6-47a0-914f-6f14b1f3d97a", + "organizationId": "b545a634-e877-4935-8041-c83e352b1fb7", + "organizationName": "퓨처드라이브", + "courseId": "4eb01197-7605-4c3b-9a92-f9a3942050bd", + "week": 2, + "tagLabel": "MK-mini", + "title": "Autonomy Studio 팀 프로젝트", + "duration": "1주", + "overview": "3~4인 팀으로 자율주행 알고리즘이 필요한 문제 상황을 정의하고, 센서 구성과 NAV2 모듈을 조합해 시뮬레이션과 플랫폼에서 검증합니다.", + "deliverable": "팀 프로젝트 소스, 시스템 구성도, 시뮬레이션 및 플랫폼 주행 검증 결과, 발표 자료를 제출합니다.", + "requiresSourceSubmission": true, + "isTeamProject": false, + "learningSteps": [ + { + "title": "프로젝트 주제와 역할 분담", + "concepts": [], + "videoUrl": "", + "description": "팀별 자율주행 문제 상황과 목표, 역할, 검증 기준을 정의합니다.", + "videoEnabled": false + }, + { + "title": "센서·모듈 구성 설계", + "concepts": [], + "videoUrl": "", + "description": "센서 입력과 NAV2 모듈 조합, ROS 토픽 및 실행 순서를 설계합니다.", + "videoEnabled": false + }, + { + "title": "알고리즘 구현과 튜닝", + "concepts": [], + "videoUrl": "", + "description": "SLAM, Localization, Planning, Control 파라미터를 수정하고 성능을 비교합니다.", + "videoEnabled": false + }, + { + "title": "시뮬레이션·플랫폼 검증", + "concepts": [], + "videoUrl": "", + "description": "Gazebo 시뮬레이션과 실제 플랫폼에서 주행 시나리오를 검증합니다.", + "videoEnabled": false + }, + { + "title": "결과 제출과 발표", + "concepts": [], + "videoUrl": "", + "description": "소스, 실행 로그, 검증 결과를 정리해 팀 프로젝트 결과를 제출하고 발표합니다.", + "videoEnabled": false + } + ], + "topics": [ + "프로젝트 주제와 역할 분담", + "센서·모듈 구성 설계", + "알고리즘 구현과 튜닝", + "시뮬레이션·플랫폼 검증", + "결과 제출과 발표" + ], + "topicDetails": [ + "팀별 자율주행 문제 상황과 목표, 역할, 검증 기준을 정의합니다.", + "센서 입력과 NAV2 모듈 조합, ROS 토픽 및 실행 순서를 설계합니다.", + "SLAM, Localization, Planning, Control 파라미터를 수정하고 성능을 비교합니다.", + "Gazebo 시뮬레이션과 실제 플랫폼에서 주행 시나리오를 검증합니다.", + "소스, 실행 로그, 검증 결과를 정리해 팀 프로젝트 결과를 제출하고 발표합니다." + ], + "topicVideoUrls": [ + "", + "", + "", + "", + "" + ], + "practiceContents": [ + { + "title": "팀 자율주행 시나리오 구현", + "description": "팀별 시나리오에 맞춰 NAV2 모듈을 구성하고 소스를 수정합니다." + }, + { + "title": "통합 주행 검증", + "description": "시뮬레이션과 플랫폼에서 재현 가능한 주행 결과를 확보합니다." + } + ], + "disabledModuleIds": [], + "createdAt": "2026-09-10T01:09:16.147Z", + "updatedAt": "2026-09-10T01:09:22.868Z" + }, + { + "id": "8882c821-4095-4314-8139-a05dca1abcc3", + "organizationId": "b545a634-e877-4935-8041-c83e352b1fb7", + "organizationName": "퓨처드라이브", + "courseId": "4eb01197-7605-4c3b-9a92-f9a3942050bd", + "week": 1, + "tagLabel": "MK-mini", + "title": "ROS2 & Simulation", + "duration": "1주", + "overview": "ROS2 통신 구조와 Gazebo 시뮬레이션 환경을 구성하고, LiDAR SLAM·위치추정·경로 계획·제어까지 NAV2 자율주행 파이프라인을 실습합니다.", + "deliverable": "NAV2 모듈 소스 변경 내역, SLAM 결과 맵, 목표 지점 주행 검증 화면 및 실행 로그를 제출합니다.", + "requiresSourceSubmission": true, + "isTeamProject": false, + "learningSteps": [ + { + "title": "ROS2 기초", + "concepts": [], + "videoUrl": "https://www.youtube.com/watch?v=gyskLlvX3oI&list=PLNWNEEf8BvG45noktLVI9N0SmD72BpmH7", + "description": "ROS Topic, Service, Action 통신과 TF 정의, ROS2 패키지 및 tree 구조를 실습합니다.", + "videoEnabled": true + }, + { + "title": "Sensor Processing", + "concepts": [], + "videoUrl": "", + "description": "LiDAR와 카메라 등 센서 데이터 처리 흐름과 Calibration 기초를 확인합니다.", + "videoEnabled": false + }, + { + "title": "Simulation 환경 구축 Part 1", + "concepts": [], + "videoUrl": "", + "description": "Gazebo 월드, 로봇 모델, 센서 토픽을 구성해 시뮬레이션 실습 환경을 만듭니다.", + "videoEnabled": false + }, + { + "title": "Simulation 환경 구축 Part 2", + "concepts": [], + "videoUrl": "", + "description": "시뮬레이션에서 활용할 수 있는 모빌리티 플랫폼과 실행 모듈 구성을 점검합니다.", + "videoEnabled": false + }, + { + "title": "LiDAR SLAM", + "concepts": [], + "videoUrl": "", + "description": "센서 데이터와 SLAM 알고리즘을 활용해 자율주행용 2D Map을 구축합니다.", + "videoEnabled": false + }, + { + "title": "LiDAR Localization", + "concepts": [], + "videoUrl": "", + "description": "구축한 Map과 실시간 LiDAR 데이터를 이용해 현재 위치를 추정합니다.", + "videoEnabled": false + }, + { + "title": "Parameter Tuning", + "concepts": [], + "videoUrl": "", + "description": "모듈 파라미터를 변경하고 결과를 비교해 알고리즘을 튜닝합니다.", + "videoEnabled": false + }, + { + "title": "[심화] Camera based SLAM", + "concepts": [], + "videoUrl": "", + "description": "카메라 기반 Map 구축과 위치인식의 입력·출력 구조를 분석합니다.", + "videoEnabled": false + }, + { + "title": "Occupancy Map", + "concepts": [], + "videoUrl": "", + "description": "장애물 인식을 위한 Occupancy Map과 costmap 반영 과정을 실습합니다.", + "videoEnabled": false + }, + { + "title": "Planning", + "concepts": [], + "videoUrl": "", + "description": "장애물 충돌 없이 목표 지점으로 이동하기 위한 전역·지역 경로 계획을 실습합니다.", + "videoEnabled": false + }, + { + "title": "Control", + "concepts": [], + "videoUrl": "", + "description": "생성한 경로를 추종하도록 속도 명령을 만들고 주행 결과를 검증합니다.", + "videoEnabled": false + }, + { + "title": "[심화] 딥러닝 기반 객체 인식", + "concepts": [], + "videoUrl": "", + "description": "딥러닝 기반 객체 인식 결과를 자율주행 데이터 흐름에 반영하는 방법을 학습합니다.", + "videoEnabled": false + } + ], + "topics": [ + "ROS2 기초", + "Sensor Processing", + "Simulation 환경 구축 Part 1", + "Simulation 환경 구축 Part 2", + "LiDAR SLAM", + "LiDAR Localization", + "Parameter Tuning", + "[심화] Camera based SLAM", + "Occupancy Map", + "Planning", + "Control", + "[심화] 딥러닝 기반 객체 인식" + ], + "topicDetails": [ + "ROS Topic, Service, Action 통신과 TF 정의, ROS2 패키지 및 tree 구조를 실습합니다.", + "LiDAR와 카메라 등 센서 데이터 처리 흐름과 Calibration 기초를 확인합니다.", + "Gazebo 월드, 로봇 모델, 센서 토픽을 구성해 시뮬레이션 실습 환경을 만듭니다.", + "시뮬레이션에서 활용할 수 있는 모빌리티 플랫폼과 실행 모듈 구성을 점검합니다.", + "센서 데이터와 SLAM 알고리즘을 활용해 자율주행용 2D Map을 구축합니다.", + "구축한 Map과 실시간 LiDAR 데이터를 이용해 현재 위치를 추정합니다.", + "모듈 파라미터를 변경하고 결과를 비교해 알고리즘을 튜닝합니다.", + "카메라 기반 Map 구축과 위치인식의 입력·출력 구조를 분석합니다.", + "장애물 인식을 위한 Occupancy Map과 costmap 반영 과정을 실습합니다.", + "장애물 충돌 없이 목표 지점으로 이동하기 위한 전역·지역 경로 계획을 실습합니다.", + "생성한 경로를 추종하도록 속도 명령을 만들고 주행 결과를 검증합니다.", + "딥러닝 기반 객체 인식 결과를 자율주행 데이터 흐름에 반영하는 방법을 학습합니다." + ], + "topicVideoUrls": [ + "https://www.youtube.com/watch?v=gyskLlvX3oI&list=PLNWNEEf8BvG45noktLVI9N0SmD72BpmH7", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "practiceContents": [ + { + "title": "ROS2와 Gazebo 실행 환경", + "description": "Topic, Service, Action, TF를 확인하고 TurtleBot3 Gazebo 환경을 실행합니다." + }, + { + "title": "LiDAR SLAM과 Localization", + "description": "맵을 생성·저장하고 저장된 맵에서 AMCL 기반 위치추정을 검증합니다." + }, + { + "title": "경로 계획과 제어", + "description": "목표 지점을 설정하고 장애물 회피, 경로 계획, 제어 명령을 비교합니다." + } + ], + "disabledModuleIds": [], + "createdAt": "2026-08-07T00:22:12.058Z", + "updatedAt": "2026-09-10T01:08:00.565Z" + } + ] + }, + { + "id": "8e296f81-8445-455c-b1a2-47f2ce9099a4", + "slug": "nav2-autonomy-50419393-77f", + "title": "2026 하반기 퓨처드라이브 테스트", + "subtitle": "ROS2, 시뮬레이션, SLAM부터 경로 계획과 제어까지", + "description": "ROS2와 NAV2 기반 시뮬레이션 및 플랫폼 실습을 통해 자율주행 시스템의 핵심 흐름을 학습하고 팀 프로젝트로 검증합니다.", + "organizationName": "퓨처드라이브", + "teacherId": "50419393-77f7-40c3-ac97-ddfe884e5cb2", + "isActive": true, + "createdAt": "2026-08-12T06:54:50.872Z", + "updatedAt": "2026-08-12T06:54:50.872Z", + "weeks": [ + { + "id": "d2047273-91d8-49dd-89a1-0e348f43f265", + "courseId": "8e296f81-8445-455c-b1a2-47f2ce9099a4", + "week": 1, + "title": "ROS2 & Simulation", + "tags": [ + "MK-mini", + "진행중" + ], + "progress": 0, + "state": "current", + "duration": "1주", + "github": "https://github.com/ros-navigation/navigation2", + "overview": "ROS2 통신 구조와 Gazebo 시뮬레이션 환경을 구성하고, LiDAR SLAM·위치추정·경로 계획·제어까지 NAV2 자율주행 파이프라인을 실습합니다.", + "deliverable": "NAV2 모듈 소스 변경 내역, SLAM 결과 맵, 목표 지점 주행 검증 화면 및 실행 로그를 제출합니다.", + "requiresSourceSubmission": true, + "createdAt": "2026-08-12T06:54:50.874Z", + "updatedAt": "2026-08-12T06:54:50.874Z", + "modules": [ + { + "id": "f5abf8ab-280b-4ad4-93d7-142bb22fb4bb", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 1, + "category": "Control", + "name": "NAV2-Control", + "folderName": "[lms-nav2-gazebo-control]nav2-control_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-control.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-control/1.0.0/prebuilt/amd64/0ab85a58f37a922b/lms-nav2-gazebo-control-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-control-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "0ab85a58f37a922b493ce21676573e3a8fd339f99a74cce9c4cba58aff9b1e35" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=turtlebot3" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.880Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "18805cbf-c01f-4ea5-956d-cced888b2697", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 2, + "category": "Localization", + "name": "NAV2-Localization", + "folderName": "[lms-nav2-gazebo-localization]nav2-localization_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-localization.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-localization/1.0.0/prebuilt/latest/lms-nav2-gazebo-localization-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-localization-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "44c8d50205f001a196870d03f44d435582b96c51eb4445e50cc8db6203b2c0c9" + } + ], + "defaultParameters": [ + "localization_mode:=amcl" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.883Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "e01c68d3-7f31-4359-89dd-ed32055c082c", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 3, + "category": "Map", + "name": "NAV2-Map", + "folderName": "[lms-nav2-gazebo-map]nav2-map_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-map.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-map/1.0.0/prebuilt/latest/lms-nav2-gazebo-map-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-map-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "f409ce54c40aeeed8cf3fc06251c2e321887b3ec5f5827dfb74897a62780582f" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.884Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "0817062b-045c-45c0-9d36-ae9e0ea456b0", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 4, + "category": "Perception", + "name": "NAV2-Perception", + "folderName": "[lms-nav2-gazebo-perception]nav2-perception_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-perception.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-perception/1.0.0/prebuilt/amd64/d18d59ac77130be1/lms-nav2-gazebo-perception-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-perception-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d18d59ac77130be1da9d16cb0716fbf4b2837132de1765726200b3a57217034e" + } + ], + "defaultParameters": [ + "sim_mode:=true" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.886Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "3b98d72a-a744-46ee-a12b-69241d7c7248", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 5, + "category": "Perception", + "name": "NAV2-Perception3D", + "folderName": "[lms-nav2-gazebo-perception3d]nav2-perception3d_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-perception3D.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-perception3d/1.0.0/prebuilt/latest/lms-nav2-gazebo-perception3d-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-perception3d-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "bab9f7383f44950b6cf6cd8f97b4ae2d3ba61571d6b37c10b24922cc0348a7cc" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.887Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "645b6f17-a8a1-49d9-b6c7-ff5caf01dd4b", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 6, + "category": "Planning", + "name": "NAV2-Planning", + "folderName": "[lms-nav2-gazebo-planning]nav2-planning_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-planning.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-planning/1.0.0/prebuilt/amd64/d1c51b0f211e1420/lms-nav2-gazebo-planning-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-planning-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d1c51b0f211e14208882947dd3bf642dd8ce997f54b37dfc0a4c8d66bd84d608" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.889Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "303687ab-542a-415b-a991-434e49a93922", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 7, + "category": "Simulator", + "name": "NAV2-Gazebo", + "folderName": "[lms-nav2-gazebo-simulator]nav2-simulator_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-simulator.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-simulator/1.0.0/prebuilt/amd64/2c97e7672eaec755/lms-nav2-gazebo-simulator-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-simulator-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2c97e7672eaec755eb300442a77b18bbcbaf6e0d305257dc9974724049756756" + } + ], + "defaultParameters": [ + "gui:=false", + "platform:=turtlebot3" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.890Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "6b2c5597-be2e-4c81-a2a9-7df4a180c8c6", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 8, + "category": "Localization", + "name": "NAV2-SLAM", + "folderName": "[lms-nav2-gazebo-slam]nav2-slam_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-slam.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-slam/1.0.0/prebuilt/amd64/e5aa22340e275d70/lms-nav2-gazebo-slam-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-slam-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "e5aa22340e275d7063e5cd96f974620354760082d22e80b9a58205085d88e337" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.891Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "bcbd0382-5ec5-4bcb-90a9-0492f5f628b9", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 9, + "category": "Localization", + "name": "NAV2-SLAM3D", + "folderName": "[lms-nav2-gazebo-slam3d]nav2-slam3d_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-slam3D.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-slam3d/1.0.0/prebuilt/latest/lms-nav2-gazebo-slam3d-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-slam3d-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "ed59e1e6b5e816403475c44672247cf8747c14edcbfcf7f1939d2b2de1d3263d" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.893Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "efc492b5-afdc-4d01-935e-ea71ac3047d0", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 10, + "category": "Vehicle", + "name": "NAV2-TurtleBot3Burger", + "folderName": "[lms-nav2-gazebo-vehicle]nav2-vehicle_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-vehicle.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-vehicle/1.0.0/prebuilt/latest/lms-nav2-gazebo-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "42e8179172c178978e5ae5d48e189164f6b8a5030fdaa0eba497ca86a97e96bb" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "platform:=turtlebot3", + "level:=2d" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.894Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "6d4a2cb8-b816-4f04-9874-8e8a03222a35", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 11, + "category": "Vehicle", + "name": "NAV2-MKMini", + "folderName": "[lms-nav2-mkmini]nav2-mkmini_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-mkmini.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-mkmini/1.0.0/prebuilt/amd64/lms-nav2-mkmini-build-install-amd64.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-mkmini-build-install-amd64.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "6094d2aa5188a28153452aec08e28870984b36c1bc0c06fec8091901f6d26856" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "platform:=mkmini", + "level:=2d" + ], + "dockerImage": "future-nav2:humble-jetson_orin", + "createdAt": "2026-08-12T06:54:50.895Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "5cfd7b92-eb8b-46b3-b6f0-c5c24c5f8676", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 12, + "category": "Gui", + "name": "NAV2-Rviz2", + "folderName": "[lms-nav2-gazebo-gui]nav2-rviz2_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-gui.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-gui/1.0.0/prebuilt/latest/lms-nav2-gazebo-gui-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-gui-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2a816b08d9f39057a96641ce7ace341ce409f77e5043abe074e2e21ecaa871ca" + } + ], + "defaultParameters": [ + "rviz_config:=nav2" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.896Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "9b92dae5-575d-44a9-bf9f-f0bd1b128dff", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 13, + "category": "System", + "name": "NAV2-Yahboom-Agent", + "folderName": "[lms-nav2-yahboom-agent]yahboom_agent_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-agent.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-agent/1.0.0/prebuilt/arm64/ec2b2c4578fc71b9/lms-nav2-yahboom-agent-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-agent-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "ec2b2c4578fc71b95c720dcacca5e7c7c5d08400fc80ef21a16097d31869cf9d" + } + ], + "defaultParameters": [ + "serial_device:=/dev/ttyUSB0", + "baudrate:=921600" + ], + "dockerImage": "future-nav2:humble-yahboom-agent", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "ffacc8a8-08ac-4633-9eb2-24f18606d875", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 14, + "category": "Vehicle", + "name": "NAV2-Yahboom", + "folderName": "[lms-nav2-yahboom-vehicle]yahboom_vehicle_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-vehicle.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-vehicle/1.0.0/prebuilt/amd64/d54368061d520794/lms-nav2-yahboom-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d54368061d52079489a8d686461e6672ebb84ca0f531fb71f835717b3f2a031f" + }, + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-vehicle/1.0.0/prebuilt/arm64/f409c0b61ca9497d/lms-nav2-yahboom-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "f409c0b61ca9497d4cfd1c2af9f4e137d9316364cab664bb908818f6ecab8331" + } + ], + "defaultParameters": [ + "sim_mode:=false" + ], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "130b973e-dae3-4a98-a9d9-65e12107d8ac", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 15, + "category": "Localization", + "name": "NAV2-Yahboom-Slam", + "folderName": "[lms-nav2-yahboom-slam]yahboom_slam_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-slam.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-slam/1.0.0/prebuilt/arm64/f6444fe604f50ee0/lms-nav2-yahboom-slam-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-slam-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "f6444fe604f50ee00831fc7db121bbebfea6be920b55a498ddc54fc317093c77" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "2c34469d-0a53-459f-9698-468fba0048ba", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 16, + "category": "Map", + "name": "NAV2-Yahboom-Map", + "folderName": "[lms-nav2-yahboom-map]yahboom_map_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-map.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-map/1.0.0/prebuilt/arm64/111981b9ab460ce4/lms-nav2-yahboom-map-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-map-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "111981b9ab460ce450334e5c367e97b7e757ef55d84330ca030b096d4a9c4792" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "88186ea4-da6e-423f-b3e6-9d4176692617", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 17, + "category": "Localization", + "name": "NAV2-Yahboom-Localization", + "folderName": "[lms-nav2-yahboom-localization]yahboom_localization_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-localization.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-localization/1.0.0/prebuilt/arm64/d6534d48841a751c/lms-nav2-yahboom-localization-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-localization-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "d6534d48841a751cb2e21fa73785df61fb81815b406c9c4152c9cbfd0ae59e48" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "e4bf535f-ed53-4ca9-840c-c025cb997fa5", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 18, + "category": "Planning", + "name": "NAV2-Yahboom-Planning", + "folderName": "[lms-nav2-yahboom-planning]yahboom_planning_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-planning.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-planning/1.0.0/prebuilt/arm64/050f4ed4acba795a/lms-nav2-yahboom-planning-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-planning-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "050f4ed4acba795affec8306b7eef116e9e86fd0f42e492da27c7fc624dc8570" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "bc33d3d7-ccaf-4d1c-8490-7bc09122bdb2", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 19, + "category": "Control", + "name": "NAV2-Yahboom-Control", + "folderName": "[lms-nav2-yahboom-control]yahboom_control_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-control.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-control/1.0.0/prebuilt/arm64/be7147024d890249/lms-nav2-yahboom-control-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-control-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "be7147024d89024915f1481a47a0909ea1d06196ef9e9797f260739999e09b3f" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "8140fefb-7aa2-48ba-a52e-09f2cf3caaca", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 20, + "category": "Perception", + "name": "NAV2-Yahboom-Camera", + "folderName": "[lms-nav2-yahboom-camera]yahboom_camera_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-camera.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-camera/1.0.0/prebuilt/arm64/b950a71d5babcdb3/lms-nav2-yahboom-camera-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-camera-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "b950a71d5babcdb37e46c7674fb80d0ae8c076e7d7c1186042b1b1f6e7ee2d04" + } + ], + "defaultParameters": [ + "video_device:=/dev/video0" + ], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + } + ], + "topics": [ + { + "id": "39b65ead-8df4-44b9-a337-12e21b3bf376", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "title": "ROS2 기초", + "detail": "ROS Topic, Service, Action 통신과 TF 정의, ROS2 패키지 및 tree 구조를 실습합니다.", + "sortOrder": 1 + }, + { + "id": "c2db3fad-3545-4685-9e75-7455ee9e0dec", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "title": "Sensor Processing", + "detail": "LiDAR와 카메라 등 센서 데이터 처리 흐름과 Calibration 기초를 확인합니다.", + "sortOrder": 2 + }, + { + "id": "c54a19d2-2507-4569-bbc3-fef151edb793", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "title": "Simulation 환경 구축 Part 1", + "detail": "Gazebo 월드, 로봇 모델, 센서 토픽을 구성해 시뮬레이션 실습 환경을 만듭니다.", + "sortOrder": 3 + }, + { + "id": "2b77f2d9-68e7-41fc-a4b3-2808f2137646", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "title": "Simulation 환경 구축 Part 2", + "detail": "시뮬레이션에서 활용할 수 있는 모빌리티 플랫폼과 실행 모듈 구성을 점검합니다.", + "sortOrder": 4 + }, + { + "id": "d4721074-0b74-46c2-8728-73e4e04968ad", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "title": "LiDAR SLAM", + "detail": "센서 데이터와 SLAM 알고리즘을 활용해 자율주행용 2D Map을 구축합니다.", + "sortOrder": 5 + }, + { + "id": "8c5934f5-fdbe-40f9-9032-15393c0010fb", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "title": "LiDAR Localization", + "detail": "구축한 Map과 실시간 LiDAR 데이터를 이용해 현재 위치를 추정합니다.", + "sortOrder": 6 + }, + { + "id": "85893d34-2a1a-40a4-8a09-64d2dc7e35aa", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "title": "Parameter Tuning", + "detail": "모듈 파라미터를 변경하고 결과를 비교해 알고리즘을 튜닝합니다.", + "sortOrder": 7 + }, + { + "id": "55e73514-28d4-4840-8d5f-be94d804ad49", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "title": "[심화] Camera based SLAM", + "detail": "카메라 기반 Map 구축과 위치인식의 입력·출력 구조를 분석합니다.", + "sortOrder": 8 + }, + { + "id": "c8dc09c3-34c0-439a-b38f-22b59df16b95", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "title": "Occupancy Map", + "detail": "장애물 인식을 위한 Occupancy Map과 costmap 반영 과정을 실습합니다.", + "sortOrder": 9 + }, + { + "id": "a3bfb023-c5ca-46a3-82d6-7ac68a87197f", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "title": "Planning", + "detail": "장애물 충돌 없이 목표 지점으로 이동하기 위한 전역·지역 경로 계획을 실습합니다.", + "sortOrder": 10 + }, + { + "id": "dd8004d8-94ff-4668-bd94-3574334714b1", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "title": "Control", + "detail": "생성한 경로를 추종하도록 속도 명령을 만들고 주행 결과를 검증합니다.", + "sortOrder": 11 + }, + { + "id": "905ebc42-9648-4b99-a347-43ffd89cf408", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "title": "[심화] 딥러닝 기반 객체 인식", + "detail": "딥러닝 기반 객체 인식 결과를 자율주행 데이터 흐름에 반영하는 방법을 학습합니다.", + "sortOrder": 12 + } + ], + "practices": [ + { + "id": "084bf79b-d292-4379-9735-e591943b4819", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "title": "ROS2와 Gazebo 실행 환경", + "description": "Topic, Service, Action, TF를 확인하고 TurtleBot3 Gazebo 환경을 실행합니다.", + "sortOrder": 1 + }, + { + "id": "3cc51467-6739-4dd7-bc7e-de9752e86647", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "title": "LiDAR SLAM과 Localization", + "description": "맵을 생성·저장하고 저장된 맵에서 AMCL 기반 위치추정을 검증합니다.", + "sortOrder": 2 + }, + { + "id": "09741348-896f-4916-abb0-699cbc25095e", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "title": "경로 계획과 제어", + "description": "목표 지점을 설정하고 장애물 회피, 경로 계획, 제어 명령을 비교합니다.", + "sortOrder": 3 + } + ], + "references": [ + { + "id": "18c4d9f6-4033-4c68-a4be-a83fb637e20d", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "kind": "EXAMPLE_CODE", + "title": "slam_launch.py", + "originalFileName": "slam_launch.py", + "storedFileName": "studio-files/public/lms/courses/8e296f81-8445-455c-b1a2-47f2ce9099a4/weeks/1/example-codes/333c27ef-1f85-4773-9a8b-ab7f30fb4258.py", + "contentType": "text/x-python", + "fileSizeBytes": 315, + "sortOrder": 1, + "createdAt": "2026-09-08T06:44:21.547Z", + "updatedAt": "2026-09-08T06:44:21.547Z" + } + ] + }, + { + "id": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "courseId": "8e296f81-8445-455c-b1a2-47f2ce9099a4", + "week": 2, + "title": "Autonomy Studio 팀 프로젝트", + "tags": [ + "MK-mini", + "진행예정" + ], + "progress": 0, + "state": "locked", + "duration": "1주", + "github": "https://github.com/ros-navigation/navigation2", + "overview": "3~4인 팀으로 자율주행 알고리즘이 필요한 문제 상황을 정의하고, 센서 구성과 NAV2 모듈을 조합해 시뮬레이션과 플랫폼에서 검증합니다.", + "deliverable": "팀 프로젝트 소스, 시스템 구성도, 시뮬레이션 및 플랫폼 주행 검증 결과, 발표 자료를 제출합니다.", + "requiresSourceSubmission": true, + "createdAt": "2026-08-12T06:54:50.897Z", + "updatedAt": "2026-08-12T06:54:50.897Z", + "modules": [ + { + "id": "b966f562-170a-4dbf-ae0d-35ebf3b3d0c8", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 1, + "category": "Control", + "name": "NAV2-Control", + "folderName": "[lms-nav2-gazebo-control]nav2-control_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-control.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-control/1.0.0/prebuilt/amd64/0ab85a58f37a922b/lms-nav2-gazebo-control-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-control-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "0ab85a58f37a922b493ce21676573e3a8fd339f99a74cce9c4cba58aff9b1e35" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=turtlebot3" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.900Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "f9115dd5-b318-4e70-a031-d71360f92745", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 2, + "category": "Localization", + "name": "NAV2-Localization", + "folderName": "[lms-nav2-gazebo-localization]nav2-localization_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-localization.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-localization/1.0.0/prebuilt/latest/lms-nav2-gazebo-localization-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-localization-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "44c8d50205f001a196870d03f44d435582b96c51eb4445e50cc8db6203b2c0c9" + } + ], + "defaultParameters": [ + "localization_mode:=amcl" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.902Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "497bd74c-d8b2-4121-baa7-d0ca2bb56b2f", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 3, + "category": "Map", + "name": "NAV2-Map", + "folderName": "[lms-nav2-gazebo-map]nav2-map_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-map.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-map/1.0.0/prebuilt/latest/lms-nav2-gazebo-map-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-map-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "f409ce54c40aeeed8cf3fc06251c2e321887b3ec5f5827dfb74897a62780582f" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.923Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "c6b2e359-954c-46f8-999a-02db7263431e", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 4, + "category": "Perception", + "name": "NAV2-Perception", + "folderName": "[lms-nav2-gazebo-perception]nav2-perception_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-perception.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-perception/1.0.0/prebuilt/amd64/d18d59ac77130be1/lms-nav2-gazebo-perception-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-perception-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d18d59ac77130be1da9d16cb0716fbf4b2837132de1765726200b3a57217034e" + } + ], + "defaultParameters": [ + "sim_mode:=true" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.925Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "b8816337-7c45-4c45-b0c4-8679313b2e4a", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 5, + "category": "Perception", + "name": "NAV2-Perception3D", + "folderName": "[lms-nav2-gazebo-perception3d]nav2-perception3d_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-perception3D.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-perception3d/1.0.0/prebuilt/latest/lms-nav2-gazebo-perception3d-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-perception3d-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "bab9f7383f44950b6cf6cd8f97b4ae2d3ba61571d6b37c10b24922cc0348a7cc" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.926Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "e30ffd05-131b-4cb0-a9b2-53f7d19fe7de", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 6, + "category": "Planning", + "name": "NAV2-Planning", + "folderName": "[lms-nav2-gazebo-planning]nav2-planning_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-planning.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-planning/1.0.0/prebuilt/amd64/d1c51b0f211e1420/lms-nav2-gazebo-planning-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-planning-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d1c51b0f211e14208882947dd3bf642dd8ce997f54b37dfc0a4c8d66bd84d608" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.928Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "9166ebc6-147d-4d51-bd86-8f88df88ae9e", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 7, + "category": "Simulator", + "name": "NAV2-Gazebo", + "folderName": "[lms-nav2-gazebo-simulator]nav2-simulator_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-simulator.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-simulator/1.0.0/prebuilt/amd64/2c97e7672eaec755/lms-nav2-gazebo-simulator-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-simulator-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2c97e7672eaec755eb300442a77b18bbcbaf6e0d305257dc9974724049756756" + } + ], + "defaultParameters": [ + "gui:=false", + "platform:=turtlebot3" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.930Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "1cc184c7-83e0-4762-9dfa-f48306ea8c96", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 8, + "category": "Localization", + "name": "NAV2-SLAM", + "folderName": "[lms-nav2-gazebo-slam]nav2-slam_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-slam.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-slam/1.0.0/prebuilt/amd64/e5aa22340e275d70/lms-nav2-gazebo-slam-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-slam-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "e5aa22340e275d7063e5cd96f974620354760082d22e80b9a58205085d88e337" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.932Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "36cab3bd-093e-41d7-bc3f-6d999f9dcf22", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 9, + "category": "Localization", + "name": "NAV2-SLAM3D", + "folderName": "[lms-nav2-gazebo-slam3d]nav2-slam3d_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-slam3D.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-slam3d/1.0.0/prebuilt/latest/lms-nav2-gazebo-slam3d-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-slam3d-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "ed59e1e6b5e816403475c44672247cf8747c14edcbfcf7f1939d2b2de1d3263d" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.934Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "3b145e73-05f9-4d16-93f0-ec493bd93a04", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 10, + "category": "Vehicle", + "name": "NAV2-TurtleBot3Burger", + "folderName": "[lms-nav2-gazebo-vehicle]nav2-vehicle_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-vehicle.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-vehicle/1.0.0/prebuilt/latest/lms-nav2-gazebo-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "42e8179172c178978e5ae5d48e189164f6b8a5030fdaa0eba497ca86a97e96bb" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "platform:=turtlebot3", + "level:=2d" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.937Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "7849797a-1087-4e1c-a0e6-fc0ac25066a0", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 11, + "category": "Vehicle", + "name": "NAV2-MKMini", + "folderName": "[lms-nav2-mkmini]nav2-mkmini_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-mkmini.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-mkmini/1.0.0/prebuilt/amd64/lms-nav2-mkmini-build-install-amd64.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-mkmini-build-install-amd64.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "6094d2aa5188a28153452aec08e28870984b36c1bc0c06fec8091901f6d26856" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "platform:=mkmini", + "level:=2d" + ], + "dockerImage": "future-nav2:humble-jetson_orin", + "createdAt": "2026-08-12T06:54:50.939Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "409523ba-25fb-4376-ac7e-185ab85f54f1", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 12, + "category": "Gui", + "name": "NAV2-Rviz2", + "folderName": "[lms-nav2-gazebo-gui]nav2-rviz2_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-gui.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-gui/1.0.0/prebuilt/latest/lms-nav2-gazebo-gui-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-gui-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2a816b08d9f39057a96641ce7ace341ce409f77e5043abe074e2e21ecaa871ca" + } + ], + "defaultParameters": [ + "rviz_config:=nav2" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.941Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "ced7672a-46e1-4531-9226-a49b3bd617d4", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 13, + "category": "System", + "name": "NAV2-Yahboom-Agent", + "folderName": "[lms-nav2-yahboom-agent]yahboom_agent_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-agent.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-agent/1.0.0/prebuilt/arm64/ec2b2c4578fc71b9/lms-nav2-yahboom-agent-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-agent-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "ec2b2c4578fc71b95c720dcacca5e7c7c5d08400fc80ef21a16097d31869cf9d" + } + ], + "defaultParameters": [ + "serial_device:=/dev/ttyUSB0", + "baudrate:=921600" + ], + "dockerImage": "future-nav2:humble-yahboom-agent", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "ec74a0c5-a8a4-40f6-8c92-1ad2b234155c", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 14, + "category": "Vehicle", + "name": "NAV2-Yahboom", + "folderName": "[lms-nav2-yahboom-vehicle]yahboom_vehicle_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-vehicle.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-vehicle/1.0.0/prebuilt/amd64/d54368061d520794/lms-nav2-yahboom-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d54368061d52079489a8d686461e6672ebb84ca0f531fb71f835717b3f2a031f" + }, + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-vehicle/1.0.0/prebuilt/arm64/f409c0b61ca9497d/lms-nav2-yahboom-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "f409c0b61ca9497d4cfd1c2af9f4e137d9316364cab664bb908818f6ecab8331" + } + ], + "defaultParameters": [ + "sim_mode:=false" + ], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:55:16.092Z" + }, + { + "id": "e03f0c95-2b3c-4697-9f84-32094d34a9ac", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 15, + "category": "Localization", + "name": "NAV2-Yahboom-Slam", + "folderName": "[lms-nav2-yahboom-slam]yahboom_slam_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-slam.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-slam/1.0.0/prebuilt/arm64/f6444fe604f50ee0/lms-nav2-yahboom-slam-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-slam-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "f6444fe604f50ee00831fc7db121bbebfea6be920b55a498ddc54fc317093c77" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "2fc3f487-1f31-4ad2-98ec-1ffd71bf5765", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 16, + "category": "Map", + "name": "NAV2-Yahboom-Map", + "folderName": "[lms-nav2-yahboom-map]yahboom_map_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-map.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-map/1.0.0/prebuilt/arm64/111981b9ab460ce4/lms-nav2-yahboom-map-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-map-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "111981b9ab460ce450334e5c367e97b7e757ef55d84330ca030b096d4a9c4792" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "eb938a93-f178-40e7-af97-b51db3fcb24f", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 17, + "category": "Localization", + "name": "NAV2-Yahboom-Localization", + "folderName": "[lms-nav2-yahboom-localization]yahboom_localization_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-localization.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-localization/1.0.0/prebuilt/arm64/d6534d48841a751c/lms-nav2-yahboom-localization-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-localization-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "d6534d48841a751cb2e21fa73785df61fb81815b406c9c4152c9cbfd0ae59e48" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "3730f0db-957d-4478-a1e3-2bfa6ab1e850", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 18, + "category": "Planning", + "name": "NAV2-Yahboom-Planning", + "folderName": "[lms-nav2-yahboom-planning]yahboom_planning_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-planning.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-planning/1.0.0/prebuilt/arm64/050f4ed4acba795a/lms-nav2-yahboom-planning-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-planning-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "050f4ed4acba795affec8306b7eef116e9e86fd0f42e492da27c7fc624dc8570" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "6e9c3116-7ffe-48eb-a8dc-31e19427fe4a", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 19, + "category": "Control", + "name": "NAV2-Yahboom-Control", + "folderName": "[lms-nav2-yahboom-control]yahboom_control_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-control.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-control/1.0.0/prebuilt/arm64/be7147024d890249/lms-nav2-yahboom-control-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-control-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "be7147024d89024915f1481a47a0909ea1d06196ef9e9797f260739999e09b3f" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "8d2f2a89-5bb1-47fd-bc67-b6ad4e1dea33", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 20, + "category": "Perception", + "name": "NAV2-Yahboom-Camera", + "folderName": "[lms-nav2-yahboom-camera]yahboom_camera_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-camera.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-camera/1.0.0/prebuilt/arm64/b950a71d5babcdb3/lms-nav2-yahboom-camera-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-camera-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "b950a71d5babcdb37e46c7674fb80d0ae8c076e7d7c1186042b1b1f6e7ee2d04" + } + ], + "defaultParameters": [ + "video_device:=/dev/video0" + ], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + } + ], + "topics": [ + { + "id": "547d0e28-d4ba-4702-9997-1ec7d460ce52", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "title": "프로젝트 주제와 역할 분담", + "detail": "팀별 자율주행 문제 상황과 목표, 역할, 검증 기준을 정의합니다.", + "sortOrder": 1 + }, + { + "id": "e5e209c0-096d-403a-b1a6-5f1a5669cd26", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "title": "센서·모듈 구성 설계", + "detail": "센서 입력과 NAV2 모듈 조합, ROS 토픽 및 실행 순서를 설계합니다.", + "sortOrder": 2 + }, + { + "id": "7bedfd65-c358-491e-87cd-ea313015d643", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "title": "알고리즘 구현과 튜닝", + "detail": "SLAM, Localization, Planning, Control 파라미터를 수정하고 성능을 비교합니다.", + "sortOrder": 3 + }, + { + "id": "f0b41fa3-4a12-40a3-9d36-84e81aa3f4e0", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "title": "시뮬레이션·플랫폼 검증", + "detail": "Gazebo 시뮬레이션과 실제 플랫폼에서 주행 시나리오를 검증합니다.", + "sortOrder": 4 + }, + { + "id": "394cc4e2-abb5-435b-b6b1-33d0e47856e8", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "title": "결과 제출과 발표", + "detail": "소스, 실행 로그, 검증 결과를 정리해 팀 프로젝트 결과를 제출하고 발표합니다.", + "sortOrder": 5 + } + ], + "practices": [ + { + "id": "4fc8713c-d003-4dc1-982f-a52906518d4b", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "title": "팀 자율주행 시나리오 구현", + "description": "팀별 시나리오에 맞춰 NAV2 모듈을 구성하고 소스를 수정합니다.", + "sortOrder": 1 + }, + { + "id": "5c5ec0e7-20cb-4366-8988-22e59f14c7cb", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "title": "통합 주행 검증", + "description": "시뮬레이션과 플랫폼에서 재현 가능한 주행 결과를 확보합니다.", + "sortOrder": 2 + } + ], + "references": [] + } + ], + "environmentProfiles": [ + { + "id": "07f87f3f-5c93-4ea6-b9f3-4228960adfa5", + "courseId": "8e296f81-8445-455c-b1a2-47f2ce9099a4", + "week": 1, + "platformKey": "PLATFORM", + "profileType": "PLATFORM", + "name": "플랫폼", + "config": { + "type": "PLATFORM", + "bridge": { + "env": { + "ROBOT_STACK": "nav2" + }, + "name": "nav2-ros-bridge", + "port": 8765, + "image": "slam-ros-bridge:latest" + }, + "target": "remote-jetson", + "viewer": { + "stack": "nav2" + }, + "moduleSet": { + "target": "platform", + "modules": [ + { + "id": "ffacc8a8-08ac-4633-9eb2-24f18606d875", + "dockerImage": "future-nav2:humble-yahboom", + "defaultParameters": [ + "sim_mode:=false" + ] + }, + { + "id": "9b92dae5-575d-44a9-bf9f-f0bd1b128dff", + "dockerImage": "future-nav2:humble-yahboom-agent", + "defaultParameters": [ + "serial_device:=/dev/ttyUSB0", + "baudrate:=921600" + ] + }, + { + "id": "8140fefb-7aa2-48ba-a52e-09f2cf3caaca", + "dockerImage": "future-nav2:humble-yahboom", + "defaultParameters": [ + "video_device:=/dev/video0" + ] + }, + { + "id": "130b973e-dae3-4a98-a9d9-65e12107d8ac", + "dockerImage": "future-nav2:humble-yahboom" + }, + { + "id": "88186ea4-da6e-423f-b3e6-9d4176692617", + "dockerImage": "future-nav2:humble-yahboom" + }, + { + "id": "bc33d3d7-ccaf-4d1c-8490-7bc09122bdb2", + "dockerImage": "future-nav2:humble-yahboom" + }, + { + "id": "e4bf535f-ed53-4ca9-840c-c025cb997fa5", + "dockerImage": "future-nav2:humble-yahboom" + }, + { + "id": "2c34469d-0a53-459f-9698-468fba0048ba", + "dockerImage": "future-nav2:humble-yahboom" + } + ], + "includeUnlisted": false + }, + "runtimeKind": "real", + "runtimeImages": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/slam-ros-bridge/arm64/20260819-0659d4cf5578/slam-ros-bridge-jetson-orin.tar.zst", + "image": "slam-ros-bridge:jetson_orin", + "fileName": "slam-ros-bridge-jetson-orin.tar.zst", + "required": true, + "checksumSha256": "0659d4cf5578c43bc9c25e4a4fc5d226ccd5b7bec43becfdff83b5390717114e" + }, + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/nav2/jetson-orin/latest/future-nav2-humble-jetson-orin.tar.zst", + "image": "future-nav2:humble-jetson_orin", + "fileName": "future-nav2-humble-jetson-orin.tar.zst", + "required": true + } + ] + }, + "enabled": true, + "createdAt": "2026-08-12T06:54:50.945Z", + "updatedAt": "2026-09-22T05:52:15.667Z" + }, + { + "id": "1323c10b-aeb5-4e9f-99c9-472f5759cb69", + "courseId": "8e296f81-8445-455c-b1a2-47f2ce9099a4", + "week": 2, + "platformKey": "NAV2", + "profileType": "NAV2", + "name": "로컬", + "config": { + "type": "NAV2", + "bridge": { + "env": { + "ROBOT_STACK": "nav2" + }, + "name": "nav2-ros-bridge", + "port": 8765, + "image": "slam-ros-bridge:latest" + }, + "target": "local", + "viewer": { + "stack": "nav2" + }, + "runtime": { + "steps": [], + "containers": [] + }, + "moduleSet": { + "target": "local", + "modules": [ + { + "id": "f5abf8ab-280b-4ad4-93d7-142bb22fb4bb" + }, + { + "id": "18805cbf-c01f-4ea5-956d-cced888b2697" + }, + { + "id": "e01c68d3-7f31-4359-89dd-ed32055c082c" + }, + { + "id": "0817062b-045c-45c0-9d36-ae9e0ea456b0" + }, + { + "id": "645b6f17-a8a1-49d9-b6c7-ff5caf01dd4b" + }, + { + "id": "303687ab-542a-415b-a991-434e49a93922" + }, + { + "id": "6b2c5597-be2e-4c81-a2a9-7df4a180c8c6" + }, + { + "id": "efc492b5-afdc-4d01-935e-ea71ac3047d0" + }, + { + "id": "6d4a2cb8-b816-4f04-9874-8e8a03222a35", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "platform:=mkmini", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "5cfd7b92-eb8b-46b3-b6f0-c5c24c5f8676", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "rviz_config:=nav2" + ] + } + ], + "includeUnlisted": false + }, + "runtimeImages": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/nav2/gazebo/latest/future-nav2-gazebo-humble.tar.zst", + "image": "future-nav2-gazebo:humble", + "fileName": "future-nav2-gazebo-humble.tar.zst", + "required": true, + "checksumSha256": "54230e039c1fa5dc82615cef3828c5acae7b8bea8e921b70cfdc5351d8301644" + } + ] + }, + "enabled": true, + "createdAt": "2026-08-12T06:54:50.945Z", + "updatedAt": "2026-08-12T06:54:50.945Z" + }, + { + "id": "587c8b3a-0c80-4431-818d-a3bf8565cb2f", + "courseId": "8e296f81-8445-455c-b1a2-47f2ce9099a4", + "week": 2, + "platformKey": "PLATFORM", + "profileType": "PLATFORM", + "name": "플랫폼", + "config": { + "type": "PLATFORM", + "bridge": { + "env": { + "ROBOT_STACK": "nav2" + }, + "name": "nav2-ros-bridge", + "port": 8765, + "image": "slam-ros-bridge:latest" + }, + "target": "remote-jetson", + "viewer": { + "stack": "nav2" + }, + "moduleSet": { + "target": "platform", + "modules": [ + { + "id": "b966f562-170a-4dbf-ae0d-35ebf3b3d0c8", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "f9115dd5-b318-4e70-a031-d71360f92745" + }, + { + "id": "497bd74c-d8b2-4121-baa7-d0ca2bb56b2f" + }, + { + "id": "c6b2e359-954c-46f8-999a-02db7263431e", + "defaultParameters": [ + "sim_mode:=false" + ] + }, + { + "id": "b8816337-7c45-4c45-b0c4-8679313b2e4a" + }, + { + "id": "e30ffd05-131b-4cb0-a9b2-53f7d19fe7de" + }, + { + "id": "1cc184c7-83e0-4762-9dfa-f48306ea8c96" + }, + { + "id": "36cab3bd-093e-41d7-bc3f-6d999f9dcf22" + }, + { + "id": "7849797a-1087-4e1c-a0e6-fc0ac25066a0" + } + ], + "includeUnlisted": false + }, + "runtimeKind": "real", + "runtimeImages": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/slam-ros-bridge/arm64/20260819-0659d4cf5578/slam-ros-bridge-jetson-orin.tar.zst", + "image": "slam-ros-bridge:jetson_orin", + "fileName": "slam-ros-bridge-jetson-orin.tar.zst", + "required": true, + "checksumSha256": "0659d4cf5578c43bc9c25e4a4fc5d226ccd5b7bec43becfdff83b5390717114e" + }, + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/nav2/jetson-orin/latest/future-nav2-humble-jetson-orin.tar.zst", + "image": "future-nav2:humble-jetson_orin", + "fileName": "future-nav2-humble-jetson-orin.tar.zst", + "required": true + } + ] + }, + "enabled": true, + "createdAt": "2026-08-12T06:54:50.945Z", + "updatedAt": "2026-09-16T05:04:25.399Z" + }, + { + "id": "c7b9a405-5d88-4273-8686-edd51c7562ae", + "courseId": "8e296f81-8445-455c-b1a2-47f2ce9099a4", + "week": 1, + "platformKey": "NAV2", + "profileType": "NAV2", + "name": "로컬", + "config": { + "type": "NAV2", + "bridge": { + "env": { + "ROBOT_STACK": "nav2" + }, + "name": "nav2-ros-bridge", + "port": 8765, + "image": "slam-ros-bridge:latest" + }, + "target": "local", + "viewer": { + "stack": "nav2" + }, + "runtime": { + "steps": [], + "containers": [] + }, + "moduleSet": { + "target": "local", + "modules": [ + { + "id": "f5abf8ab-280b-4ad4-93d7-142bb22fb4bb", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "robot:=turtlebot3" + ] + }, + { + "id": "18805cbf-c01f-4ea5-956d-cced888b2697", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "localization_mode:=amcl" + ] + }, + { + "id": "e01c68d3-7f31-4359-89dd-ed32055c082c", + "dockerImage": "future-nav2-gazebo:humble" + }, + { + "id": "0817062b-045c-45c0-9d36-ae9e0ea456b0", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true" + ] + }, + { + "id": "645b6f17-a8a1-49d9-b6c7-ff5caf01dd4b", + "dockerImage": "future-nav2-gazebo:humble" + }, + { + "id": "303687ab-542a-415b-a991-434e49a93922", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "gui:=false", + "platform:=turtlebot3" + ] + }, + { + "id": "6b2c5597-be2e-4c81-a2a9-7df4a180c8c6", + "dockerImage": "future-nav2-gazebo:humble" + }, + { + "id": "efc492b5-afdc-4d01-935e-ea71ac3047d0", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "platform:=turtlebot3", + "level:=2d" + ] + }, + { + "id": "6d4a2cb8-b816-4f04-9874-8e8a03222a35", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "platform:=mkmini", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "5cfd7b92-eb8b-46b3-b6f0-c5c24c5f8676", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "rviz_config:=nav2" + ] + }, + { + "id": "ffacc8a8-08ac-4633-9eb2-24f18606d875", + "dockerImage": "future-nav2:humble-yahboom", + "defaultParameters": [ + "sim_mode:=true" + ] + } + ], + "includeUnlisted": false + }, + "runtimeImages": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/nav2/gazebo/latest/future-nav2-gazebo-humble.tar.zst", + "image": "future-nav2-gazebo:humble", + "fileName": "future-nav2-gazebo-humble.tar.zst", + "required": true, + "checksumSha256": "54230e039c1fa5dc82615cef3828c5acae7b8bea8e921b70cfdc5351d8301644" + } + ] + }, + "enabled": true, + "createdAt": "2026-08-12T06:54:50.945Z", + "updatedAt": "2026-09-22T05:52:15.667Z" + } + ], + "maps": [], + "weekMaps": [ + { + "id": "0e541c41-81d4-479b-aabe-bc9db25c2d2d", + "courseId": "8e296f81-8445-455c-b1a2-47f2ce9099a4", + "week": 2, + "mapKey": "nav2-turtlebot3-world", + "sortOrder": 1, + "createdAt": "2026-08-12T06:54:50.945Z", + "updatedAt": "2026-08-12T06:54:50.945Z" + }, + { + "id": "1584e891-e628-4df6-a91a-1fab9c59c579", + "courseId": "8e296f81-8445-455c-b1a2-47f2ce9099a4", + "week": 2, + "mapKey": "nav2-turtlebot3-house", + "sortOrder": 2, + "createdAt": "2026-08-12T06:54:50.945Z", + "updatedAt": "2026-08-12T06:54:50.945Z" + }, + { + "id": "2fac337b-fc09-410b-aadc-eff4bb8d1851", + "courseId": "8e296f81-8445-455c-b1a2-47f2ce9099a4", + "week": 1, + "mapKey": "nav2-turtlebot3-house", + "sortOrder": 1, + "createdAt": "2026-08-12T06:54:50.945Z", + "updatedAt": "2026-09-22T05:52:15.738Z" + }, + { + "id": "a793d010-5166-49df-9f87-b287abf311c6", + "courseId": "8e296f81-8445-455c-b1a2-47f2ce9099a4", + "week": 1, + "mapKey": "nav2-turtlebot3-world", + "sortOrder": 0, + "createdAt": "2026-08-12T06:54:50.945Z", + "updatedAt": "2026-09-22T05:52:15.737Z" + } + ], + "instructorCurriculumWeekOverrides": [ + { + "id": "d4069536-1b4b-4349-8412-3a18906468fb", + "organizationId": "b545a634-e877-4935-8041-c83e352b1fb7", + "organizationName": "퓨처드라이브", + "courseId": "8e296f81-8445-455c-b1a2-47f2ce9099a4", + "week": 1, + "tagLabel": "MK-mini", + "title": "ROS2 & Simulation", + "duration": "1주", + "overview": "ROS2 통신 구조와 Gazebo 시뮬레이션 환경을 구성하고, LiDAR SLAM·위치추정·경로 계획·제어까지 NAV2 자율주행 파이프라인을 실습합니다.", + "deliverable": "NAV2 모듈 소스 변경 내역, SLAM 결과 맵, 목표 지점 주행 검증 화면 및 실행 로그를 제출합니다.", + "requiresSourceSubmission": true, + "isTeamProject": false, + "learningSteps": [ + { + "title": "ROS2 기초", + "concepts": [], + "videoUrl": "https://www.youtube.com/watch?v=gyskLlvX3oI&list=PLNWNEEf8BvG45noktLVI9N0SmD72BpmH7", + "description": "ROS Topic, Service, Action 통신과 TF 정의, ROS2 패키지 및 tree 구조를 실습합니다.", + "videoEnabled": true + }, + { + "title": "Sensor Processing", + "concepts": [], + "videoUrl": "", + "description": "LiDAR와 카메라 등 센서 데이터 처리 흐름과 Calibration 기초를 확인합니다.", + "videoEnabled": false + }, + { + "title": "Simulation 환경 구축 Part 1", + "concepts": [], + "videoUrl": "", + "description": "Gazebo 월드, 로봇 모델, 센서 토픽을 구성해 시뮬레이션 실습 환경을 만듭니다.", + "videoEnabled": false + }, + { + "title": "Simulation 환경 구축 Part 2", + "concepts": [], + "videoUrl": "", + "description": "시뮬레이션에서 활용할 수 있는 모빌리티 플랫폼과 실행 모듈 구성을 점검합니다.", + "videoEnabled": false + }, + { + "title": "LiDAR SLAM", + "concepts": [], + "videoUrl": "", + "description": "센서 데이터와 SLAM 알고리즘을 활용해 자율주행용 2D Map을 구축합니다.", + "videoEnabled": false + }, + { + "title": "LiDAR Localization", + "concepts": [], + "videoUrl": "", + "description": "구축한 Map과 실시간 LiDAR 데이터를 이용해 현재 위치를 추정합니다.", + "videoEnabled": false + }, + { + "title": "Parameter Tuning", + "concepts": [], + "videoUrl": "", + "description": "모듈 파라미터를 변경하고 결과를 비교해 알고리즘을 튜닝합니다.", + "videoEnabled": false + }, + { + "title": "[심화] Camera based SLAM", + "concepts": [], + "videoUrl": "", + "description": "카메라 기반 Map 구축과 위치인식의 입력·출력 구조를 분석합니다.", + "videoEnabled": false + }, + { + "title": "Occupancy Map", + "concepts": [], + "videoUrl": "", + "description": "장애물 인식을 위한 Occupancy Map과 costmap 반영 과정을 실습합니다.", + "videoEnabled": false + }, + { + "title": "Planning", + "concepts": [], + "videoUrl": "", + "description": "장애물 충돌 없이 목표 지점으로 이동하기 위한 전역·지역 경로 계획을 실습합니다.", + "videoEnabled": false + }, + { + "title": "Control", + "concepts": [], + "videoUrl": "", + "description": "생성한 경로를 추종하도록 속도 명령을 만들고 주행 결과를 검증합니다.", + "videoEnabled": false + }, + { + "title": "[심화] 딥러닝 기반 객체 인식", + "concepts": [], + "videoUrl": "", + "description": "딥러닝 기반 객체 인식 결과를 자율주행 데이터 흐름에 반영하는 방법을 학습합니다.", + "videoEnabled": false + } + ], + "topics": [ + "ROS2 기초", + "Sensor Processing", + "Simulation 환경 구축 Part 1", + "Simulation 환경 구축 Part 2", + "LiDAR SLAM", + "LiDAR Localization", + "Parameter Tuning", + "[심화] Camera based SLAM", + "Occupancy Map", + "Planning", + "Control", + "[심화] 딥러닝 기반 객체 인식" + ], + "topicDetails": [ + "ROS Topic, Service, Action 통신과 TF 정의, ROS2 패키지 및 tree 구조를 실습합니다.", + "LiDAR와 카메라 등 센서 데이터 처리 흐름과 Calibration 기초를 확인합니다.", + "Gazebo 월드, 로봇 모델, 센서 토픽을 구성해 시뮬레이션 실습 환경을 만듭니다.", + "시뮬레이션에서 활용할 수 있는 모빌리티 플랫폼과 실행 모듈 구성을 점검합니다.", + "센서 데이터와 SLAM 알고리즘을 활용해 자율주행용 2D Map을 구축합니다.", + "구축한 Map과 실시간 LiDAR 데이터를 이용해 현재 위치를 추정합니다.", + "모듈 파라미터를 변경하고 결과를 비교해 알고리즘을 튜닝합니다.", + "카메라 기반 Map 구축과 위치인식의 입력·출력 구조를 분석합니다.", + "장애물 인식을 위한 Occupancy Map과 costmap 반영 과정을 실습합니다.", + "장애물 충돌 없이 목표 지점으로 이동하기 위한 전역·지역 경로 계획을 실습합니다.", + "생성한 경로를 추종하도록 속도 명령을 만들고 주행 결과를 검증합니다.", + "딥러닝 기반 객체 인식 결과를 자율주행 데이터 흐름에 반영하는 방법을 학습합니다." + ], + "topicVideoUrls": [ + "https://www.youtube.com/watch?v=gyskLlvX3oI&list=PLNWNEEf8BvG45noktLVI9N0SmD72BpmH7", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "practiceContents": [ + { + "title": "ROS2와 Gazebo 실행 환경", + "description": "Topic, Service, Action, TF를 확인하고 TurtleBot3 Gazebo 환경을 실행합니다." + }, + { + "title": "LiDAR SLAM과 Localization", + "description": "맵을 생성·저장하고 저장된 맵에서 AMCL 기반 위치추정을 검증합니다." + }, + { + "title": "경로 계획과 제어", + "description": "목표 지점을 설정하고 장애물 회피, 경로 계획, 제어 명령을 비교합니다." + } + ], + "disabledModuleIds": [], + "createdAt": "2026-08-13T08:30:14.022Z", + "updatedAt": "2026-09-22T05:52:15.682Z" + } + ] + }, + { + "id": "e5be4acd-c5b8-4514-900a-0614a74a7d17", + "slug": "autonomy-studio-lms-guide", + "title": "NAV2 알아보기", + "subtitle": "처음 사용하는 수강생을 위한 짧은 체험 강좌", + "description": "강좌 배정 전 신규 사용자가 LMS 화면 흐름을 빠르게 익힐 수 있는 공통 체험 강좌입니다. NAV2 개념을 예시로 커리큘럼 확인, 학습단계 열람, 질의응답 사용법만 간단히 안내합니다.", + "organizationName": "Autonomy Studio", + "teacherId": "c54b2cf6-db10-4441-b195-e150cb4f4255", + "isActive": true, + "createdAt": "2026-07-07T07:25:59.445Z", + "updatedAt": "2026-07-07T07:25:59.445Z", + "weeks": [ + { + "id": "b9aedd46-ba1b-4b3d-bdd7-7270ae46e303", + "courseId": "e5be4acd-c5b8-4514-900a-0614a74a7d17", + "week": 1, + "title": "NAV2 모듈 교육", + "tags": [ + "NAV2", + "진행중" + ], + "progress": 0, + "state": "current", + "duration": "15분", + "github": "제출 없음", + "overview": "NAV2 자율주행 파이프라인을 구성하는 Gazebo, Vehicle, Perception, SLAM, Rviz2 모듈의 역할과 실행 순서를 확인합니다.", + "deliverable": "기본 NAV2 모듈을 설치하고 실행 상태를 확인합니다.", + "requiresSourceSubmission": false, + "createdAt": "2026-07-07T07:25:59.445Z", + "updatedAt": "2026-08-07T01:01:57.746Z", + "modules": [ + { + "id": "57131030-e61e-49fb-b1b1-d70172becbd6", + "weekId": "b9aedd46-ba1b-4b3d-bdd7-7270ae46e303", + "sortOrder": 1, + "category": "Simulator", + "name": "NAV2-Gazebo", + "folderName": "[lms-nav2-gazebo-simulator]nav2-simulator_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-simulator.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-simulator/1.0.0/prebuilt/amd64/2c97e7672eaec755/lms-nav2-gazebo-simulator-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-simulator-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2c97e7672eaec755eb300442a77b18bbcbaf6e0d305257dc9974724049756756" + } + ], + "defaultParameters": [ + "gui:=false" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-06T08:26:43.868Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "1e566da2-07a6-4fbe-9995-0c7d8e275a29", + "weekId": "b9aedd46-ba1b-4b3d-bdd7-7270ae46e303", + "sortOrder": 2, + "category": "Vehicle", + "name": "NAV2-TurtleBot3Burger", + "folderName": "[lms-nav2-gazebo-vehicle]nav2-vehicle_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-vehicle.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-vehicle/1.0.0/prebuilt/latest/lms-nav2-gazebo-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "42e8179172c178978e5ae5d48e189164f6b8a5030fdaa0eba497ca86a97e96bb" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "platform:=turtlebot3", + "level:=2d" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-06T08:26:43.868Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "0dd53004-d8ee-401e-90c2-9123314f4868", + "weekId": "b9aedd46-ba1b-4b3d-bdd7-7270ae46e303", + "sortOrder": 3, + "category": "Perception", + "name": "NAV2-Perception", + "folderName": "[lms-nav2-gazebo-perception]nav2-perception_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-perception.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-perception/1.0.0/prebuilt/amd64/d18d59ac77130be1/lms-nav2-gazebo-perception-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-perception-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d18d59ac77130be1da9d16cb0716fbf4b2837132de1765726200b3a57217034e" + } + ], + "defaultParameters": [ + "sim_mode:=true" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-06T08:51:53.827Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "71534df5-7435-43f8-b8b5-84ca4c159cd9", + "weekId": "b9aedd46-ba1b-4b3d-bdd7-7270ae46e303", + "sortOrder": 4, + "category": "Localization", + "name": "NAV2-SLAM", + "folderName": "[lms-nav2-gazebo-slam]nav2-slam_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-slam.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-slam/1.0.0/prebuilt/amd64/e5aa22340e275d70/lms-nav2-gazebo-slam-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-slam-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "e5aa22340e275d7063e5cd96f974620354760082d22e80b9a58205085d88e337" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-06T08:26:43.868Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "4b54c904-e680-4098-9ecf-594fd74c178e", + "weekId": "b9aedd46-ba1b-4b3d-bdd7-7270ae46e303", + "sortOrder": 5, + "category": "Gui", + "name": "NAV2-Rviz2", + "folderName": "[lms-nav2-gazebo-gui]nav2-rviz2_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-gui.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-gui/1.0.0/prebuilt/latest/lms-nav2-gazebo-gui-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-gui-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2a816b08d9f39057a96641ce7ace341ce409f77e5043abe074e2e21ecaa871ca" + } + ], + "defaultParameters": [ + "rviz_config:=nav2" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-07T00:36:25.552Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "fc86d1d2-2e76-438f-b2eb-a0fa0a6fe8c9", + "weekId": "b9aedd46-ba1b-4b3d-bdd7-7270ae46e303", + "sortOrder": 6, + "category": "System", + "name": "NAV2-Yahboom-Agent", + "folderName": "[lms-nav2-yahboom-agent]yahboom_agent_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-agent.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-agent/1.0.0/prebuilt/arm64/ec2b2c4578fc71b9/lms-nav2-yahboom-agent-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-agent-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "ec2b2c4578fc71b95c720dcacca5e7c7c5d08400fc80ef21a16097d31869cf9d" + } + ], + "defaultParameters": [ + "serial_device:=/dev/ttyUSB0", + "baudrate:=921600" + ], + "dockerImage": "future-nav2:humble-yahboom-agent", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "4084be2a-28ea-42e8-8de8-794c71365fbe", + "weekId": "b9aedd46-ba1b-4b3d-bdd7-7270ae46e303", + "sortOrder": 7, + "category": "Vehicle", + "name": "NAV2-Yahboom", + "folderName": "[lms-nav2-yahboom-vehicle]yahboom_vehicle_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-vehicle.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-vehicle/1.0.0/prebuilt/amd64/d54368061d520794/lms-nav2-yahboom-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d54368061d52079489a8d686461e6672ebb84ca0f531fb71f835717b3f2a031f" + }, + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-vehicle/1.0.0/prebuilt/arm64/f409c0b61ca9497d/lms-nav2-yahboom-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "f409c0b61ca9497d4cfd1c2af9f4e137d9316364cab664bb908818f6ecab8331" + } + ], + "defaultParameters": [ + "sim_mode:=false" + ], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:55:16.092Z" + }, + { + "id": "c17095b4-af7c-4155-801e-0e8d4cf9794a", + "weekId": "b9aedd46-ba1b-4b3d-bdd7-7270ae46e303", + "sortOrder": 8, + "category": "Localization", + "name": "NAV2-Yahboom-Slam", + "folderName": "[lms-nav2-yahboom-slam]yahboom_slam_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-slam.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-slam/1.0.0/prebuilt/arm64/f6444fe604f50ee0/lms-nav2-yahboom-slam-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-slam-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "f6444fe604f50ee00831fc7db121bbebfea6be920b55a498ddc54fc317093c77" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "69d1e4ed-6eaa-49bf-8ebd-56fffb7c98b1", + "weekId": "b9aedd46-ba1b-4b3d-bdd7-7270ae46e303", + "sortOrder": 9, + "category": "Map", + "name": "NAV2-Yahboom-Map", + "folderName": "[lms-nav2-yahboom-map]yahboom_map_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-map.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-map/1.0.0/prebuilt/arm64/111981b9ab460ce4/lms-nav2-yahboom-map-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-map-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "111981b9ab460ce450334e5c367e97b7e757ef55d84330ca030b096d4a9c4792" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "f3d34488-03f4-43ba-b195-80fd75f84cf9", + "weekId": "b9aedd46-ba1b-4b3d-bdd7-7270ae46e303", + "sortOrder": 10, + "category": "Localization", + "name": "NAV2-Yahboom-Localization", + "folderName": "[lms-nav2-yahboom-localization]yahboom_localization_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-localization.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-localization/1.0.0/prebuilt/arm64/d6534d48841a751c/lms-nav2-yahboom-localization-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-localization-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "d6534d48841a751cb2e21fa73785df61fb81815b406c9c4152c9cbfd0ae59e48" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "277e413b-2aad-4b02-8d61-0bb3eeb0de05", + "weekId": "b9aedd46-ba1b-4b3d-bdd7-7270ae46e303", + "sortOrder": 11, + "category": "Planning", + "name": "NAV2-Yahboom-Planning", + "folderName": "[lms-nav2-yahboom-planning]yahboom_planning_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-planning.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-planning/1.0.0/prebuilt/arm64/050f4ed4acba795a/lms-nav2-yahboom-planning-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-planning-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "050f4ed4acba795affec8306b7eef116e9e86fd0f42e492da27c7fc624dc8570" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "0d5d21bd-543c-4ba6-b18c-e47199507da2", + "weekId": "b9aedd46-ba1b-4b3d-bdd7-7270ae46e303", + "sortOrder": 12, + "category": "Control", + "name": "NAV2-Yahboom-Control", + "folderName": "[lms-nav2-yahboom-control]yahboom_control_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-control.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-control/1.0.0/prebuilt/arm64/be7147024d890249/lms-nav2-yahboom-control-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-control-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "be7147024d89024915f1481a47a0909ea1d06196ef9e9797f260739999e09b3f" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "4737a8d1-116a-4a2b-80a4-a8765ff24817", + "weekId": "b9aedd46-ba1b-4b3d-bdd7-7270ae46e303", + "sortOrder": 13, + "category": "Perception", + "name": "NAV2-Yahboom-Camera", + "folderName": "[lms-nav2-yahboom-camera]yahboom_camera_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-camera.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-camera/1.0.0/prebuilt/arm64/b950a71d5babcdb3/lms-nav2-yahboom-camera-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-camera-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "b950a71d5babcdb37e46c7674fb80d0ae8c076e7d7c1186042b1b1f6e7ee2d04" + } + ], + "defaultParameters": [ + "video_device:=/dev/video0" + ], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + } + ], + "topics": [ + { + "id": "8d2e88e3-80e8-475a-91c9-7f5bb55a5342", + "weekId": "b9aedd46-ba1b-4b3d-bdd7-7270ae46e303", + "title": "NAV2 모듈 교육", + "detail": "NAV2 자율주행을 구성하는 모듈과 전체 데이터 흐름을 확인합니다.", + "sortOrder": 1 + }, + { + "id": "ab02a08f-10f2-4152-a0c3-8e6179a267f6", + "weekId": "b9aedd46-ba1b-4b3d-bdd7-7270ae46e303", + "title": "시뮬레이션 모듈 구성", + "detail": "Gazebo와 로봇 모듈을 연결해 시뮬레이션 환경을 구성하는 방법을 확인합니다.", + "sortOrder": 2 + }, + { + "id": "027d34ab-4347-4372-ad4e-33799454bcae", + "weekId": "b9aedd46-ba1b-4b3d-bdd7-7270ae46e303", + "title": "센서·SLAM·시각화 모듈", + "detail": "Perception, SLAM, Rviz2 모듈의 역할과 실행 상태를 확인합니다.", + "sortOrder": 3 + } + ], + "practices": [ + { + "id": "b6e2514c-808a-40d6-a3ef-fc551b5d3a11", + "weekId": "b9aedd46-ba1b-4b3d-bdd7-7270ae46e303", + "title": "모듈 목록 확인", + "description": "기본강좌에 제공된 NAV2 모듈의 역할과 실행 순서를 확인합니다.", + "sortOrder": 1 + }, + { + "id": "6c967e3b-615f-4c27-859d-589d0ce0b1fa", + "weekId": "b9aedd46-ba1b-4b3d-bdd7-7270ae46e303", + "title": "모듈 실행 확인", + "description": "필요한 모듈을 설치하고 실행 상태 및 ROS 상태를 확인합니다.", + "sortOrder": 2 + } + ], + "references": [] + } + ], + "environmentProfiles": [ + { + "id": "24313ddf-93f7-4402-b7e8-9bab805c847e", + "courseId": "e5be4acd-c5b8-4514-900a-0614a74a7d17", + "week": 1, + "platformKey": "futuredrive-platform", + "profileType": "PLATFORM", + "name": "플랫폼", + "config": { + "target": "remote-jetson", + "moduleSet": { + "target": "platform", + "modules": [ + { + "id": "57131030-e61e-49fb-b1b1-d70172becbd6" + }, + { + "id": "1e566da2-07a6-4fbe-9995-0c7d8e275a29" + }, + { + "id": "0dd53004-d8ee-401e-90c2-9123314f4868" + }, + { + "id": "71534df5-7435-43f8-b8b5-84ca4c159cd9" + }, + { + "id": "4b54c904-e680-4098-9ecf-594fd74c178e" + } + ], + "includeUnlisted": false + } + }, + "enabled": true, + "createdAt": "2026-09-22T01:00:03.755Z", + "updatedAt": "2026-09-22T01:00:03.755Z" + }, + { + "id": "6de5ed51-70e4-456b-9d30-643082dcded8", + "courseId": "e5be4acd-c5b8-4514-900a-0614a74a7d17", + "week": 1, + "platformKey": "futuredrive-local-pc", + "profileType": "LOCAL", + "name": "로컬", + "config": { + "target": "local", + "moduleSet": { + "target": "local", + "modules": [ + { + "id": "57131030-e61e-49fb-b1b1-d70172becbd6" + }, + { + "id": "1e566da2-07a6-4fbe-9995-0c7d8e275a29" + }, + { + "id": "0dd53004-d8ee-401e-90c2-9123314f4868" + }, + { + "id": "71534df5-7435-43f8-b8b5-84ca4c159cd9" + }, + { + "id": "4b54c904-e680-4098-9ecf-594fd74c178e" + } + ], + "includeUnlisted": false + } + }, + "enabled": true, + "createdAt": "2026-09-22T01:00:03.755Z", + "updatedAt": "2026-09-22T01:00:03.755Z" + } + ], + "maps": [], + "weekMaps": [ + { + "id": "0bb3474d-0417-4113-8473-4424afa2222f", + "courseId": "e5be4acd-c5b8-4514-900a-0614a74a7d17", + "week": 1, + "mapKey": "nav2-turtlebot3-world", + "sortOrder": 0, + "createdAt": "2026-08-06T08:28:40.803Z", + "updatedAt": "2026-08-11T00:18:44.615Z" + } + ], + "instructorCurriculumWeekOverrides": [ + { + "id": "94f0e797-0142-4ce0-a018-18ad5d54a56d", + "organizationId": null, + "organizationName": "Autonomy Studio", + "courseId": "e5be4acd-c5b8-4514-900a-0614a74a7d17", + "week": 1, + "tagLabel": null, + "title": null, + "duration": null, + "overview": null, + "deliverable": null, + "requiresSourceSubmission": true, + "isTeamProject": false, + "learningSteps": null, + "topics": null, + "topicDetails": null, + "topicVideoUrls": [ + "https://www.youtube.com/watch?v=gyskLlvX3oI&list=PLNWNEEf8BvG45noktLVI9N0SmD72BpmH7", + "", + "" + ], + "practiceContents": null, + "disabledModuleIds": null, + "createdAt": "2026-08-07T00:25:15.922Z", + "updatedAt": "2026-08-07T01:03:09.493Z" + } + ] + } +] \ No newline at end of file diff --git a/backups/deleted-accidental-week4-1790058146944.json b/backups/deleted-accidental-week4-1790058146944.json new file mode 100644 index 0000000..b30f7f8 --- /dev/null +++ b/backups/deleted-accidental-week4-1790058146944.json @@ -0,0 +1,38 @@ +[ + { + "id": "a67d74b2-bfd7-4869-8a39-1ebdeccf0bb3", + "organizationId": "b545a634-e877-4935-8041-c83e352b1fb7", + "organizationName": "퓨처드라이브", + "courseId": "8e296f81-8445-455c-b1a2-47f2ce9099a4", + "week": 4, + "tagLabel": "없음", + "title": "4주차 커리큘럼", + "duration": "-", + "overview": "", + "deliverable": "", + "requiresSourceSubmission": true, + "isTeamProject": false, + "learningSteps": [ + { + "title": "학습단계 1", + "concepts": [], + "videoUrl": "", + "description": "", + "videoEnabled": false + } + ], + "topics": [ + "학습단계 1" + ], + "topicDetails": [ + "" + ], + "topicVideoUrls": [ + "" + ], + "practiceContents": [], + "disabledModuleIds": [], + "createdAt": "2026-09-22T06:18:44.883Z", + "updatedAt": "2026-09-22T06:18:44.883Z" + } +] \ No newline at end of file diff --git a/backups/education-environments-before-1790058406756.json b/backups/education-environments-before-1790058406756.json new file mode 100644 index 0000000..8c243e6 --- /dev/null +++ b/backups/education-environments-before-1790058406756.json @@ -0,0 +1,4941 @@ +[ + { + "id": "26d46589-31a5-4d94-b0e0-385a12c41721", + "slug": "nav2-autonomy-f445f63c-efa", + "title": "2026 교육원 테스트", + "subtitle": "ROS2, 시뮬레이션, SLAM부터 경로 계획과 제어까지", + "description": "ROS2와 NAV2 기반 시뮬레이션 및 플랫폼 실습을 통해 자율주행 시스템의 핵심 흐름을 학습하고 팀 프로젝트로 검증합니다.", + "organizationName": "영남대학교", + "teacherId": "f445f63c-efa8-4b65-8f2c-a20ee3d390fa", + "isActive": true, + "createdAt": "2026-09-09T06:01:24.848Z", + "updatedAt": "2026-09-09T06:01:24.848Z", + "weeks": [ + { + "id": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "courseId": "26d46589-31a5-4d94-b0e0-385a12c41721", + "week": 1, + "title": "ROS2 & Simulation", + "tags": [ + "MK-mini", + "진행중" + ], + "progress": 0, + "state": "current", + "duration": "1주", + "github": "https://github.com/ros-navigation/navigation2", + "overview": "ROS2 통신 구조와 Gazebo 시뮬레이션 환경을 구성하고, LiDAR SLAM·위치추정·경로 계획·제어까지 NAV2 자율주행 파이프라인을 실습합니다.", + "deliverable": "NAV2 모듈 소스 변경 내역, SLAM 결과 맵, 목표 지점 주행 검증 화면 및 실행 로그를 제출합니다.", + "requiresSourceSubmission": true, + "createdAt": "2026-09-09T06:01:24.851Z", + "updatedAt": "2026-09-09T06:01:24.851Z", + "modules": [ + { + "id": "af12ada0-ac1e-44dd-89d3-86a89754acc4", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "sortOrder": 1, + "category": "Control", + "name": "NAV2-Control", + "folderName": "[lms-nav2-gazebo-control]nav2-control_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-control.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-control/1.0.0/prebuilt/amd64/0ab85a58f37a922b/lms-nav2-gazebo-control-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-control-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "0ab85a58f37a922b493ce21676573e3a8fd339f99a74cce9c4cba58aff9b1e35" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=turtlebot3" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-09T06:01:24.861Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "bc89fbbc-7e44-4228-8f50-70b6800bbf45", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "sortOrder": 2, + "category": "Localization", + "name": "NAV2-Localization", + "folderName": "[lms-nav2-gazebo-localization]nav2-localization_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-localization.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-localization/1.0.0/prebuilt/latest/lms-nav2-gazebo-localization-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-localization-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "44c8d50205f001a196870d03f44d435582b96c51eb4445e50cc8db6203b2c0c9" + } + ], + "defaultParameters": [ + "localization_mode:=amcl" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-09T06:01:24.863Z", + "updatedAt": "2026-09-09T06:01:24.863Z" + }, + { + "id": "fab88d49-946d-43dd-9431-d294c7772ded", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "sortOrder": 3, + "category": "Map", + "name": "NAV2-Map", + "folderName": "[lms-nav2-gazebo-map]nav2-map_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-map.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-map/1.0.0/prebuilt/latest/lms-nav2-gazebo-map-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-map-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "f409ce54c40aeeed8cf3fc06251c2e321887b3ec5f5827dfb74897a62780582f" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-09T06:01:24.865Z", + "updatedAt": "2026-09-09T06:01:24.865Z" + }, + { + "id": "c20541b8-cdb1-4295-b9a3-6b10bb43ae07", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "sortOrder": 4, + "category": "Perception", + "name": "NAV2-Perception", + "folderName": "[lms-nav2-gazebo-perception]nav2-perception_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-perception.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-perception/1.0.0/prebuilt/amd64/d18d59ac77130be1/lms-nav2-gazebo-perception-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-perception-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d18d59ac77130be1da9d16cb0716fbf4b2837132de1765726200b3a57217034e" + } + ], + "defaultParameters": [ + "sim_mode:=true" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-09T06:01:24.867Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "de678e31-228a-442d-9e98-e8e09c3a3238", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "sortOrder": 5, + "category": "Perception", + "name": "NAV2-Perception3D", + "folderName": "[lms-nav2-gazebo-perception3d]nav2-perception3d_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-perception3D.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-perception3d/1.0.0/prebuilt/latest/lms-nav2-gazebo-perception3d-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-perception3d-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "bab9f7383f44950b6cf6cd8f97b4ae2d3ba61571d6b37c10b24922cc0348a7cc" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-09T06:01:24.869Z", + "updatedAt": "2026-09-09T06:01:24.869Z" + }, + { + "id": "3ca72ae8-97d9-487a-b766-a586e11a048f", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "sortOrder": 6, + "category": "Planning", + "name": "NAV2-Planning", + "folderName": "[lms-nav2-gazebo-planning]nav2-planning_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-planning.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-planning/1.0.0/prebuilt/amd64/d1c51b0f211e1420/lms-nav2-gazebo-planning-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-planning-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d1c51b0f211e14208882947dd3bf642dd8ce997f54b37dfc0a4c8d66bd84d608" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-09T06:01:24.871Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "5fe16dc8-d0b3-4f60-8efb-959855f38a26", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "sortOrder": 7, + "category": "Simulator", + "name": "NAV2-Gazebo", + "folderName": "[lms-nav2-gazebo-simulator]nav2-simulator_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-simulator.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-simulator/1.0.0/prebuilt/amd64/2c97e7672eaec755/lms-nav2-gazebo-simulator-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-simulator-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2c97e7672eaec755eb300442a77b18bbcbaf6e0d305257dc9974724049756756" + } + ], + "defaultParameters": [ + "gui:=false", + "platform:=turtlebot3" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-09T06:01:24.873Z", + "updatedAt": "2026-09-09T06:01:24.873Z" + }, + { + "id": "b431598e-5541-4272-a953-0951be68e8e2", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "sortOrder": 8, + "category": "Localization", + "name": "NAV2-SLAM", + "folderName": "[lms-nav2-gazebo-slam]nav2-slam_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-slam.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-slam/1.0.0/prebuilt/amd64/e5aa22340e275d70/lms-nav2-gazebo-slam-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-slam-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "e5aa22340e275d7063e5cd96f974620354760082d22e80b9a58205085d88e337" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-09T06:01:24.875Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "c6c605cf-d72e-4db5-84a7-ad098a74cb79", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "sortOrder": 9, + "category": "Localization", + "name": "NAV2-SLAM3D", + "folderName": "[lms-nav2-gazebo-slam3d]nav2-slam3d_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-slam3D.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-slam3d/1.0.0/prebuilt/latest/lms-nav2-gazebo-slam3d-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-slam3d-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "ed59e1e6b5e816403475c44672247cf8747c14edcbfcf7f1939d2b2de1d3263d" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-09T06:01:24.877Z", + "updatedAt": "2026-09-09T06:01:24.877Z" + }, + { + "id": "6458e955-6c31-4528-9683-455a42e6a78c", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "sortOrder": 10, + "category": "Vehicle", + "name": "NAV2-TurtleBot3Burger", + "folderName": "[lms-nav2-gazebo-vehicle]nav2-vehicle_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-vehicle.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-vehicle/1.0.0/prebuilt/latest/lms-nav2-gazebo-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "42e8179172c178978e5ae5d48e189164f6b8a5030fdaa0eba497ca86a97e96bb" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "platform:=turtlebot3", + "level:=2d" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-09T06:01:24.879Z", + "updatedAt": "2026-09-09T06:01:24.879Z" + }, + { + "id": "2b97ac9b-b036-4dd3-ac8c-7eec8352c142", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "sortOrder": 11, + "category": "Vehicle", + "name": "NAV2-MKMini", + "folderName": "[lms-nav2-mkmini]nav2-mkmini_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-mkmini.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-mkmini/1.0.0/prebuilt/amd64/lms-nav2-mkmini-build-install-amd64.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-mkmini-build-install-amd64.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "6094d2aa5188a28153452aec08e28870984b36c1bc0c06fec8091901f6d26856" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "platform:=mkmini", + "level:=2d" + ], + "dockerImage": "future-nav2:humble-jetson_orin", + "createdAt": "2026-09-09T06:01:24.880Z", + "updatedAt": "2026-09-09T06:01:24.880Z" + }, + { + "id": "317f2de8-439b-41b7-ab5e-9e24e701384f", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "sortOrder": 12, + "category": "Gui", + "name": "NAV2-Rviz2", + "folderName": "[lms-nav2-gazebo-gui]nav2-rviz2_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-gui.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-gui/1.0.0/prebuilt/latest/lms-nav2-gazebo-gui-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-gui-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2a816b08d9f39057a96641ce7ace341ce409f77e5043abe074e2e21ecaa871ca" + } + ], + "defaultParameters": [ + "rviz_config:=nav2" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-09T06:01:24.882Z", + "updatedAt": "2026-09-09T06:01:24.882Z" + }, + { + "id": "018e8115-24b1-4780-9f1b-be256c22e8ce", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "sortOrder": 13, + "category": "System", + "name": "NAV2-Yahboom-Agent", + "folderName": "[lms-nav2-yahboom-agent]yahboom_agent_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-agent.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-agent/1.0.0/prebuilt/arm64/ec2b2c4578fc71b9/lms-nav2-yahboom-agent-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-agent-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "ec2b2c4578fc71b95c720dcacca5e7c7c5d08400fc80ef21a16097d31869cf9d" + } + ], + "defaultParameters": [ + "serial_device:=/dev/ttyUSB0", + "baudrate:=921600" + ], + "dockerImage": "future-nav2:humble-yahboom-agent", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "90d77f3b-cb9c-4582-a3a6-8f80299b35e2", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "sortOrder": 14, + "category": "Vehicle", + "name": "NAV2-Yahboom", + "folderName": "[lms-nav2-yahboom-vehicle]yahboom_vehicle_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-vehicle.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-vehicle/1.0.0/prebuilt/amd64/d54368061d520794/lms-nav2-yahboom-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d54368061d52079489a8d686461e6672ebb84ca0f531fb71f835717b3f2a031f" + }, + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-vehicle/1.0.0/prebuilt/arm64/f409c0b61ca9497d/lms-nav2-yahboom-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "f409c0b61ca9497d4cfd1c2af9f4e137d9316364cab664bb908818f6ecab8331" + } + ], + "defaultParameters": [ + "sim_mode:=false" + ], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:55:16.092Z" + }, + { + "id": "fe081ac8-0ce0-4109-81e3-b4d504c86806", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "sortOrder": 15, + "category": "Localization", + "name": "NAV2-Yahboom-Slam", + "folderName": "[lms-nav2-yahboom-slam]yahboom_slam_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-slam.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-slam/1.0.0/prebuilt/arm64/f6444fe604f50ee0/lms-nav2-yahboom-slam-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-slam-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "f6444fe604f50ee00831fc7db121bbebfea6be920b55a498ddc54fc317093c77" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "d4fa2ab4-05d6-4242-a925-5b389b784f22", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "sortOrder": 16, + "category": "Map", + "name": "NAV2-Yahboom-Map", + "folderName": "[lms-nav2-yahboom-map]yahboom_map_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-map.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-map/1.0.0/prebuilt/arm64/111981b9ab460ce4/lms-nav2-yahboom-map-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-map-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "111981b9ab460ce450334e5c367e97b7e757ef55d84330ca030b096d4a9c4792" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "c95db4b0-55b3-497e-a7ae-a752bbc9eafa", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "sortOrder": 17, + "category": "Localization", + "name": "NAV2-Yahboom-Localization", + "folderName": "[lms-nav2-yahboom-localization]yahboom_localization_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-localization.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-localization/1.0.0/prebuilt/arm64/d6534d48841a751c/lms-nav2-yahboom-localization-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-localization-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "d6534d48841a751cb2e21fa73785df61fb81815b406c9c4152c9cbfd0ae59e48" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "23fc9b10-0c1f-4d44-b7cf-ff80ab8e6bc9", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "sortOrder": 18, + "category": "Planning", + "name": "NAV2-Yahboom-Planning", + "folderName": "[lms-nav2-yahboom-planning]yahboom_planning_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-planning.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-planning/1.0.0/prebuilt/arm64/050f4ed4acba795a/lms-nav2-yahboom-planning-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-planning-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "050f4ed4acba795affec8306b7eef116e9e86fd0f42e492da27c7fc624dc8570" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "360c69d8-fd10-4072-a13b-01922dfa0d8d", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "sortOrder": 19, + "category": "Control", + "name": "NAV2-Yahboom-Control", + "folderName": "[lms-nav2-yahboom-control]yahboom_control_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-control.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-control/1.0.0/prebuilt/arm64/be7147024d890249/lms-nav2-yahboom-control-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-control-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "be7147024d89024915f1481a47a0909ea1d06196ef9e9797f260739999e09b3f" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "740cc0db-bb0b-47e0-85ce-9fcf3a7b598b", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "sortOrder": 20, + "category": "Perception", + "name": "NAV2-Yahboom-Camera", + "folderName": "[lms-nav2-yahboom-camera]yahboom_camera_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-camera.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-camera/1.0.0/prebuilt/arm64/b950a71d5babcdb3/lms-nav2-yahboom-camera-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-camera-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "b950a71d5babcdb37e46c7674fb80d0ae8c076e7d7c1186042b1b1f6e7ee2d04" + } + ], + "defaultParameters": [ + "video_device:=/dev/video0" + ], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + } + ], + "topics": [ + { + "id": "af09181a-bcc6-4019-a94b-e66f6ef97184", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "title": "ROS2 기초", + "detail": "ROS Topic, Service, Action 통신과 TF 정의, ROS2 패키지 및 tree 구조를 실습합니다.", + "sortOrder": 1 + }, + { + "id": "1718a662-50a4-4ebd-b24d-ce01a84b38b9", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "title": "Sensor Processing", + "detail": "LiDAR와 카메라 등 센서 데이터 처리 흐름과 Calibration 기초를 확인합니다.", + "sortOrder": 2 + }, + { + "id": "d6a86c4a-97b8-4977-bc01-f18c33cdc812", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "title": "Simulation 환경 구축 Part 1", + "detail": "Gazebo 월드, 로봇 모델, 센서 토픽을 구성해 시뮬레이션 실습 환경을 만듭니다.", + "sortOrder": 3 + }, + { + "id": "ff4eba57-a9f4-4cb1-89d9-872762743071", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "title": "Simulation 환경 구축 Part 2", + "detail": "시뮬레이션에서 활용할 수 있는 모빌리티 플랫폼과 실행 모듈 구성을 점검합니다.", + "sortOrder": 4 + }, + { + "id": "43c31335-8f1f-463c-b3be-0ce8bb564beb", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "title": "LiDAR SLAM", + "detail": "센서 데이터와 SLAM 알고리즘을 활용해 자율주행용 2D Map을 구축합니다.", + "sortOrder": 5 + }, + { + "id": "24a91abd-3722-41db-9b7d-508b2de2b17d", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "title": "LiDAR Localization", + "detail": "구축한 Map과 실시간 LiDAR 데이터를 이용해 현재 위치를 추정합니다.", + "sortOrder": 6 + }, + { + "id": "289bab53-a270-4cf1-bdc2-38065c471f05", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "title": "Parameter Tuning", + "detail": "모듈 파라미터를 변경하고 결과를 비교해 알고리즘을 튜닝합니다.", + "sortOrder": 7 + }, + { + "id": "8e60c6c6-b47f-4eb6-bd62-5db8987be3b7", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "title": "[심화] Camera based SLAM", + "detail": "카메라 기반 Map 구축과 위치인식의 입력·출력 구조를 분석합니다.", + "sortOrder": 8 + }, + { + "id": "e6f6231c-566b-4847-83a1-26c09c3ca840", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "title": "Occupancy Map", + "detail": "장애물 인식을 위한 Occupancy Map과 costmap 반영 과정을 실습합니다.", + "sortOrder": 9 + }, + { + "id": "63fc9d04-25f6-423a-9f16-cf453ed31bbc", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "title": "Planning", + "detail": "장애물 충돌 없이 목표 지점으로 이동하기 위한 전역·지역 경로 계획을 실습합니다.", + "sortOrder": 10 + }, + { + "id": "bcc9bf55-9290-488a-8295-3c9f71f74530", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "title": "Control", + "detail": "생성한 경로를 추종하도록 속도 명령을 만들고 주행 결과를 검증합니다.", + "sortOrder": 11 + }, + { + "id": "753524b6-ac4b-4b73-b6e0-4275146ae53e", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "title": "[심화] 딥러닝 기반 객체 인식", + "detail": "딥러닝 기반 객체 인식 결과를 자율주행 데이터 흐름에 반영하는 방법을 학습합니다.", + "sortOrder": 12 + } + ], + "practices": [ + { + "id": "a0c1514c-87c6-4750-9c87-3f6574bed587", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "title": "ROS2와 Gazebo 실행 환경", + "description": "Topic, Service, Action, TF를 확인하고 TurtleBot3 Gazebo 환경을 실행합니다.", + "sortOrder": 1 + }, + { + "id": "5309811a-6379-4ea1-ae81-6b5bb24b8082", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "title": "LiDAR SLAM과 Localization", + "description": "맵을 생성·저장하고 저장된 맵에서 AMCL 기반 위치추정을 검증합니다.", + "sortOrder": 2 + }, + { + "id": "97829360-137f-4600-9218-050d7ac68085", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "title": "경로 계획과 제어", + "description": "목표 지점을 설정하고 장애물 회피, 경로 계획, 제어 명령을 비교합니다.", + "sortOrder": 3 + } + ] + }, + { + "id": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "courseId": "26d46589-31a5-4d94-b0e0-385a12c41721", + "week": 2, + "title": "Autonomy Studio 팀 프로젝트", + "tags": [ + "MK-mini", + "진행예정" + ], + "progress": 0, + "state": "locked", + "duration": "1주", + "github": "https://github.com/ros-navigation/navigation2", + "overview": "3~4인 팀으로 자율주행 알고리즘이 필요한 문제 상황을 정의하고, 센서 구성과 NAV2 모듈을 조합해 시뮬레이션과 플랫폼에서 검증합니다.", + "deliverable": "팀 프로젝트 소스, 시스템 구성도, 시뮬레이션 및 플랫폼 주행 검증 결과, 발표 자료를 제출합니다.", + "requiresSourceSubmission": true, + "createdAt": "2026-09-09T06:01:24.884Z", + "updatedAt": "2026-09-09T06:01:24.884Z", + "modules": [ + { + "id": "5a42a1ae-e15c-436a-bde3-61b433eb672a", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "sortOrder": 1, + "category": "Control", + "name": "NAV2-Control", + "folderName": "[lms-nav2-gazebo-control]nav2-control_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-control.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-control/1.0.0/prebuilt/amd64/0ab85a58f37a922b/lms-nav2-gazebo-control-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-control-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "0ab85a58f37a922b493ce21676573e3a8fd339f99a74cce9c4cba58aff9b1e35" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=turtlebot3" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-09T06:01:24.924Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "3bafb29e-3dfa-488a-a7f8-334af22c8721", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "sortOrder": 2, + "category": "Localization", + "name": "NAV2-Localization", + "folderName": "[lms-nav2-gazebo-localization]nav2-localization_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-localization.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-localization/1.0.0/prebuilt/latest/lms-nav2-gazebo-localization-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-localization-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "44c8d50205f001a196870d03f44d435582b96c51eb4445e50cc8db6203b2c0c9" + } + ], + "defaultParameters": [ + "localization_mode:=amcl" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-09T06:01:24.926Z", + "updatedAt": "2026-09-09T06:01:24.926Z" + }, + { + "id": "5768b8f1-06ea-423b-8cc6-e7e22b004172", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "sortOrder": 3, + "category": "Map", + "name": "NAV2-Map", + "folderName": "[lms-nav2-gazebo-map]nav2-map_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-map.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-map/1.0.0/prebuilt/latest/lms-nav2-gazebo-map-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-map-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "f409ce54c40aeeed8cf3fc06251c2e321887b3ec5f5827dfb74897a62780582f" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-09T06:01:24.927Z", + "updatedAt": "2026-09-09T06:01:24.927Z" + }, + { + "id": "20cb031f-195c-4972-a611-bce4eebe0341", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "sortOrder": 4, + "category": "Perception", + "name": "NAV2-Perception", + "folderName": "[lms-nav2-gazebo-perception]nav2-perception_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-perception.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-perception/1.0.0/prebuilt/amd64/d18d59ac77130be1/lms-nav2-gazebo-perception-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-perception-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d18d59ac77130be1da9d16cb0716fbf4b2837132de1765726200b3a57217034e" + } + ], + "defaultParameters": [ + "sim_mode:=true" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-09T06:01:24.929Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "b42c682a-2a82-4e01-be5e-16871cddc76e", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "sortOrder": 5, + "category": "Perception", + "name": "NAV2-Perception3D", + "folderName": "[lms-nav2-gazebo-perception3d]nav2-perception3d_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-perception3D.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-perception3d/1.0.0/prebuilt/latest/lms-nav2-gazebo-perception3d-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-perception3d-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "bab9f7383f44950b6cf6cd8f97b4ae2d3ba61571d6b37c10b24922cc0348a7cc" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-09T06:01:24.930Z", + "updatedAt": "2026-09-09T06:01:24.930Z" + }, + { + "id": "8cfd8e39-4489-40c1-8185-3c16c56ec769", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "sortOrder": 6, + "category": "Planning", + "name": "NAV2-Planning", + "folderName": "[lms-nav2-gazebo-planning]nav2-planning_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-planning.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-planning/1.0.0/prebuilt/amd64/d1c51b0f211e1420/lms-nav2-gazebo-planning-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-planning-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d1c51b0f211e14208882947dd3bf642dd8ce997f54b37dfc0a4c8d66bd84d608" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-09T06:01:24.932Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "378c8143-b855-414f-8abe-308d58a5d77a", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "sortOrder": 7, + "category": "Simulator", + "name": "NAV2-Gazebo", + "folderName": "[lms-nav2-gazebo-simulator]nav2-simulator_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-simulator.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-simulator/1.0.0/prebuilt/amd64/2c97e7672eaec755/lms-nav2-gazebo-simulator-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-simulator-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2c97e7672eaec755eb300442a77b18bbcbaf6e0d305257dc9974724049756756" + } + ], + "defaultParameters": [ + "gui:=false", + "platform:=turtlebot3" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-09T06:01:24.933Z", + "updatedAt": "2026-09-09T06:01:24.933Z" + }, + { + "id": "77a1da7d-7d9b-4aba-a4ca-7ba9dae05fd1", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "sortOrder": 8, + "category": "Localization", + "name": "NAV2-SLAM", + "folderName": "[lms-nav2-gazebo-slam]nav2-slam_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-slam.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-slam/1.0.0/prebuilt/amd64/e5aa22340e275d70/lms-nav2-gazebo-slam-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-slam-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "e5aa22340e275d7063e5cd96f974620354760082d22e80b9a58205085d88e337" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-09T06:01:24.934Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "8b4e870f-4054-4224-ba8c-4ef963b737f8", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "sortOrder": 9, + "category": "Localization", + "name": "NAV2-SLAM3D", + "folderName": "[lms-nav2-gazebo-slam3d]nav2-slam3d_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-slam3D.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-slam3d/1.0.0/prebuilt/latest/lms-nav2-gazebo-slam3d-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-slam3d-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "ed59e1e6b5e816403475c44672247cf8747c14edcbfcf7f1939d2b2de1d3263d" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-09T06:01:24.936Z", + "updatedAt": "2026-09-09T06:01:24.936Z" + }, + { + "id": "7c553352-825a-42be-a6e2-1ddaa82ea043", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "sortOrder": 10, + "category": "Vehicle", + "name": "NAV2-TurtleBot3Burger", + "folderName": "[lms-nav2-gazebo-vehicle]nav2-vehicle_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-vehicle.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-vehicle/1.0.0/prebuilt/latest/lms-nav2-gazebo-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "42e8179172c178978e5ae5d48e189164f6b8a5030fdaa0eba497ca86a97e96bb" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "platform:=turtlebot3", + "level:=2d" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-09T06:01:24.938Z", + "updatedAt": "2026-09-09T06:01:24.938Z" + }, + { + "id": "3c64c5e3-77ff-4d34-b2b5-69a2c7d28943", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "sortOrder": 11, + "category": "Vehicle", + "name": "NAV2-MKMini", + "folderName": "[lms-nav2-mkmini]nav2-mkmini_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-mkmini.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-mkmini/1.0.0/prebuilt/amd64/lms-nav2-mkmini-build-install-amd64.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-mkmini-build-install-amd64.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "6094d2aa5188a28153452aec08e28870984b36c1bc0c06fec8091901f6d26856" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "platform:=mkmini", + "level:=2d" + ], + "dockerImage": "future-nav2:humble-jetson_orin", + "createdAt": "2026-09-09T06:01:24.940Z", + "updatedAt": "2026-09-09T06:01:24.940Z" + }, + { + "id": "f96c1462-1a6c-4be6-9700-ba5e8dfceb59", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "sortOrder": 12, + "category": "Gui", + "name": "NAV2-Rviz2", + "folderName": "[lms-nav2-gazebo-gui]nav2-rviz2_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-gui.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-gui/1.0.0/prebuilt/latest/lms-nav2-gazebo-gui-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-gui-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2a816b08d9f39057a96641ce7ace341ce409f77e5043abe074e2e21ecaa871ca" + } + ], + "defaultParameters": [ + "rviz_config:=nav2" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-09T06:01:24.941Z", + "updatedAt": "2026-09-09T06:01:24.941Z" + }, + { + "id": "24649bf5-6216-49b9-bd7b-79b454bca31a", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "sortOrder": 13, + "category": "System", + "name": "NAV2-Yahboom-Agent", + "folderName": "[lms-nav2-yahboom-agent]yahboom_agent_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-agent.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-agent/1.0.0/prebuilt/arm64/ec2b2c4578fc71b9/lms-nav2-yahboom-agent-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-agent-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "ec2b2c4578fc71b95c720dcacca5e7c7c5d08400fc80ef21a16097d31869cf9d" + } + ], + "defaultParameters": [ + "serial_device:=/dev/ttyUSB0", + "baudrate:=921600" + ], + "dockerImage": "future-nav2:humble-yahboom-agent", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "9fad4a9a-29d5-4718-9345-7d72bc25c6d7", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "sortOrder": 14, + "category": "Vehicle", + "name": "NAV2-Yahboom", + "folderName": "[lms-nav2-yahboom-vehicle]yahboom_vehicle_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-vehicle.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-vehicle/1.0.0/prebuilt/amd64/d54368061d520794/lms-nav2-yahboom-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d54368061d52079489a8d686461e6672ebb84ca0f531fb71f835717b3f2a031f" + }, + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-vehicle/1.0.0/prebuilt/arm64/f409c0b61ca9497d/lms-nav2-yahboom-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "f409c0b61ca9497d4cfd1c2af9f4e137d9316364cab664bb908818f6ecab8331" + } + ], + "defaultParameters": [ + "sim_mode:=false" + ], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:55:16.092Z" + }, + { + "id": "74cfb0a2-1de5-49cd-b855-b30f5ba4e29b", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "sortOrder": 15, + "category": "Localization", + "name": "NAV2-Yahboom-Slam", + "folderName": "[lms-nav2-yahboom-slam]yahboom_slam_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-slam.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-slam/1.0.0/prebuilt/arm64/f6444fe604f50ee0/lms-nav2-yahboom-slam-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-slam-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "f6444fe604f50ee00831fc7db121bbebfea6be920b55a498ddc54fc317093c77" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "c3180f5e-ce78-4f56-be6c-dff004d92e5c", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "sortOrder": 16, + "category": "Map", + "name": "NAV2-Yahboom-Map", + "folderName": "[lms-nav2-yahboom-map]yahboom_map_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-map.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-map/1.0.0/prebuilt/arm64/111981b9ab460ce4/lms-nav2-yahboom-map-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-map-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "111981b9ab460ce450334e5c367e97b7e757ef55d84330ca030b096d4a9c4792" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "5d73fe3c-27a3-42eb-819a-6257bfac2f2f", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "sortOrder": 17, + "category": "Localization", + "name": "NAV2-Yahboom-Localization", + "folderName": "[lms-nav2-yahboom-localization]yahboom_localization_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-localization.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-localization/1.0.0/prebuilt/arm64/d6534d48841a751c/lms-nav2-yahboom-localization-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-localization-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "d6534d48841a751cb2e21fa73785df61fb81815b406c9c4152c9cbfd0ae59e48" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "f7dd3726-8ba3-456d-8ed1-81111435b947", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "sortOrder": 18, + "category": "Planning", + "name": "NAV2-Yahboom-Planning", + "folderName": "[lms-nav2-yahboom-planning]yahboom_planning_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-planning.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-planning/1.0.0/prebuilt/arm64/050f4ed4acba795a/lms-nav2-yahboom-planning-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-planning-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "050f4ed4acba795affec8306b7eef116e9e86fd0f42e492da27c7fc624dc8570" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "199b037e-86e2-427b-83e3-46da8c6db34a", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "sortOrder": 19, + "category": "Control", + "name": "NAV2-Yahboom-Control", + "folderName": "[lms-nav2-yahboom-control]yahboom_control_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-control.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-control/1.0.0/prebuilt/arm64/be7147024d890249/lms-nav2-yahboom-control-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-control-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "be7147024d89024915f1481a47a0909ea1d06196ef9e9797f260739999e09b3f" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "c5e38be3-a6ce-40d3-ad0f-4aea462c21d6", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "sortOrder": 20, + "category": "Perception", + "name": "NAV2-Yahboom-Camera", + "folderName": "[lms-nav2-yahboom-camera]yahboom_camera_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-camera.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-camera/1.0.0/prebuilt/arm64/b950a71d5babcdb3/lms-nav2-yahboom-camera-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-camera-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "b950a71d5babcdb37e46c7674fb80d0ae8c076e7d7c1186042b1b1f6e7ee2d04" + } + ], + "defaultParameters": [ + "video_device:=/dev/video0" + ], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + } + ], + "topics": [ + { + "id": "6e5a6ff2-9a5b-4304-98a4-a90699ae75b0", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "title": "프로젝트 주제와 역할 분담", + "detail": "팀별 자율주행 문제 상황과 목표, 역할, 검증 기준을 정의합니다.", + "sortOrder": 1 + }, + { + "id": "0c87793b-d0fa-4cf8-b19c-10fab048a78d", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "title": "센서·모듈 구성 설계", + "detail": "센서 입력과 NAV2 모듈 조합, ROS 토픽 및 실행 순서를 설계합니다.", + "sortOrder": 2 + }, + { + "id": "78391467-8207-4cdf-96b5-9aa4bf591f2c", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "title": "알고리즘 구현과 튜닝", + "detail": "SLAM, Localization, Planning, Control 파라미터를 수정하고 성능을 비교합니다.", + "sortOrder": 3 + }, + { + "id": "cb6b3c70-ac65-4545-a971-2322792e0f5a", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "title": "시뮬레이션·플랫폼 검증", + "detail": "Gazebo 시뮬레이션과 실제 플랫폼에서 주행 시나리오를 검증합니다.", + "sortOrder": 4 + }, + { + "id": "3b024611-553d-415e-bee0-e9de07845204", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "title": "결과 제출과 발표", + "detail": "소스, 실행 로그, 검증 결과를 정리해 팀 프로젝트 결과를 제출하고 발표합니다.", + "sortOrder": 5 + } + ], + "practices": [ + { + "id": "f15db36a-3042-4546-ae10-bcee5c5701d6", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "title": "팀 자율주행 시나리오 구현", + "description": "팀별 시나리오에 맞춰 NAV2 모듈을 구성하고 소스를 수정합니다.", + "sortOrder": 1 + }, + { + "id": "b614ae40-5cf3-4ff8-bada-753be9c4d44c", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "title": "통합 주행 검증", + "description": "시뮬레이션과 플랫폼에서 재현 가능한 주행 결과를 확보합니다.", + "sortOrder": 2 + } + ] + }, + { + "id": "f0974b58-986b-41bd-968b-7a3e56fe3e35", + "courseId": "26d46589-31a5-4d94-b0e0-385a12c41721", + "week": 3, + "title": "원격 개발", + "tags": [ + "MK-mini", + "진행예정" + ], + "progress": 0, + "state": "locked", + "duration": "1주", + "github": "https://github.com/ros-navigation/navigation2", + "overview": "원거리 MK-mini 플랫폼을 연결하고 원격으로 코드를 편집·빌드·실행합니다. 로컬 MK-mini 시뮬레이션과 실차에서 SLAM 및 자율주행을 검증합니다.", + "deliverable": "SLAM 저장 맵, 자율주행 검증 결과, 원격 개발 소스 변경 내역 및 실행 로그를 제출합니다.", + "requiresSourceSubmission": true, + "createdAt": "2026-09-22T06:11:52.660Z", + "updatedAt": "2026-09-22T06:11:52.660Z", + "modules": [ + { + "id": "0c78ec6f-0cb4-4682-8045-583973d60c98", + "weekId": "f0974b58-986b-41bd-968b-7a3e56fe3e35", + "sortOrder": 1, + "category": "Control", + "name": "NAV2-Control", + "folderName": "[lms-nav2-gazebo-control]nav2-control_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-control.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-control/1.0.0/prebuilt/amd64/0ab85a58f37a922b/lms-nav2-gazebo-control-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-control-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "0ab85a58f37a922b493ce21676573e3a8fd339f99a74cce9c4cba58aff9b1e35" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T06:11:52.792Z", + "updatedAt": "2026-09-22T06:11:52.792Z" + }, + { + "id": "ecf9e32e-3ab7-4a81-bdba-a0850037daa6", + "weekId": "f0974b58-986b-41bd-968b-7a3e56fe3e35", + "sortOrder": 2, + "category": "Localization", + "name": "NAV2-Localization", + "folderName": "[lms-nav2-gazebo-localization]nav2-localization_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-localization.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-localization/1.0.0/prebuilt/latest/lms-nav2-gazebo-localization-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-localization-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "44c8d50205f001a196870d03f44d435582b96c51eb4445e50cc8db6203b2c0c9" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d", + "localization_mode:=amcl" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T06:11:52.824Z", + "updatedAt": "2026-09-22T06:11:52.824Z" + }, + { + "id": "5f8ed3db-acfe-43b1-a90b-ae0f6b1ca893", + "weekId": "f0974b58-986b-41bd-968b-7a3e56fe3e35", + "sortOrder": 3, + "category": "Map", + "name": "NAV2-Map", + "folderName": "[lms-nav2-gazebo-map]nav2-map_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-map.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-map/1.0.0/prebuilt/latest/lms-nav2-gazebo-map-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-map-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "f409ce54c40aeeed8cf3fc06251c2e321887b3ec5f5827dfb74897a62780582f" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T06:11:52.840Z", + "updatedAt": "2026-09-22T06:11:52.840Z" + }, + { + "id": "3c7110f6-1720-43ea-8f86-5f0dd31430fa", + "weekId": "f0974b58-986b-41bd-968b-7a3e56fe3e35", + "sortOrder": 4, + "category": "Perception", + "name": "NAV2-Perception", + "folderName": "[lms-nav2-gazebo-perception]nav2-perception_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-perception.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-perception/1.0.0/prebuilt/amd64/d18d59ac77130be1/lms-nav2-gazebo-perception-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-perception-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d18d59ac77130be1da9d16cb0716fbf4b2837132de1765726200b3a57217034e" + } + ], + "defaultParameters": [ + "sim_mode:=true" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T06:11:52.857Z", + "updatedAt": "2026-09-22T06:11:52.857Z" + }, + { + "id": "100110a7-6619-4431-b323-4838628c8fce", + "weekId": "f0974b58-986b-41bd-968b-7a3e56fe3e35", + "sortOrder": 5, + "category": "Perception", + "name": "NAV2-Perception3D", + "folderName": "[lms-nav2-gazebo-perception3d]nav2-perception3d_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-perception3D.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-perception3d/1.0.0/prebuilt/latest/lms-nav2-gazebo-perception3d-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-perception3d-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "bab9f7383f44950b6cf6cd8f97b4ae2d3ba61571d6b37c10b24922cc0348a7cc" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T06:11:52.874Z", + "updatedAt": "2026-09-22T06:11:52.874Z" + }, + { + "id": "8d7779f4-60af-4076-99d5-f68c551622c9", + "weekId": "f0974b58-986b-41bd-968b-7a3e56fe3e35", + "sortOrder": 6, + "category": "Planning", + "name": "NAV2-Planning", + "folderName": "[lms-nav2-gazebo-planning]nav2-planning_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-planning.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-planning/1.0.0/prebuilt/amd64/d1c51b0f211e1420/lms-nav2-gazebo-planning-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-planning-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d1c51b0f211e14208882947dd3bf642dd8ce997f54b37dfc0a4c8d66bd84d608" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T06:11:52.890Z", + "updatedAt": "2026-09-22T06:11:52.890Z" + }, + { + "id": "fe761922-4638-4e3a-a5bb-3050a097fd67", + "weekId": "f0974b58-986b-41bd-968b-7a3e56fe3e35", + "sortOrder": 7, + "category": "Simulator", + "name": "NAV2-Gazebo", + "folderName": "[lms-nav2-gazebo-simulator]nav2-simulator_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-simulator.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-simulator/1.0.0/prebuilt/amd64/2c97e7672eaec755/lms-nav2-gazebo-simulator-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-simulator-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2c97e7672eaec755eb300442a77b18bbcbaf6e0d305257dc9974724049756756" + } + ], + "defaultParameters": [ + "gui:=false", + "platform:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T06:11:52.905Z", + "updatedAt": "2026-09-22T06:11:52.905Z" + }, + { + "id": "0447e787-64da-4363-9ba0-3f4131618162", + "weekId": "f0974b58-986b-41bd-968b-7a3e56fe3e35", + "sortOrder": 8, + "category": "Localization", + "name": "NAV2-SLAM", + "folderName": "[lms-nav2-gazebo-slam]nav2-slam_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-slam.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-slam/1.0.0/prebuilt/amd64/e5aa22340e275d70/lms-nav2-gazebo-slam-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-slam-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "e5aa22340e275d7063e5cd96f974620354760082d22e80b9a58205085d88e337" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T06:11:52.922Z", + "updatedAt": "2026-09-22T06:11:52.922Z" + }, + { + "id": "966ea751-3020-4d46-998e-38fe779d0bcf", + "weekId": "f0974b58-986b-41bd-968b-7a3e56fe3e35", + "sortOrder": 9, + "category": "Localization", + "name": "NAV2-SLAM3D", + "folderName": "[lms-nav2-gazebo-slam3d]nav2-slam3d_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-slam3D.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-slam3d/1.0.0/prebuilt/latest/lms-nav2-gazebo-slam3d-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-slam3d-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "ed59e1e6b5e816403475c44672247cf8747c14edcbfcf7f1939d2b2de1d3263d" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T06:11:52.938Z", + "updatedAt": "2026-09-22T06:11:52.938Z" + }, + { + "id": "6d0d71c8-4344-4633-ba7a-6866324994a8", + "weekId": "f0974b58-986b-41bd-968b-7a3e56fe3e35", + "sortOrder": 10, + "category": "Vehicle", + "name": "NAV2-MKMini", + "folderName": "[lms-nav2-mkmini]nav2-mkmini_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-mkmini.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-mkmini/1.0.0/prebuilt/amd64/lms-nav2-mkmini-build-install-amd64.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-mkmini-build-install-amd64.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "6094d2aa5188a28153452aec08e28870984b36c1bc0c06fec8091901f6d26856" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "platform:=mkmini", + "robot:=mkmini", + "level:=2d", + "simulator:=gazebo" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T06:11:52.954Z", + "updatedAt": "2026-09-22T06:11:52.954Z" + }, + { + "id": "3c134049-7efb-4fd0-a9d5-fe422ef8fe86", + "weekId": "f0974b58-986b-41bd-968b-7a3e56fe3e35", + "sortOrder": 11, + "category": "Gui", + "name": "NAV2-Rviz2", + "folderName": "[lms-nav2-gazebo-gui]nav2-rviz2_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-gui.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-gui/1.0.0/prebuilt/latest/lms-nav2-gazebo-gui-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-gui-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2a816b08d9f39057a96641ce7ace341ce409f77e5043abe074e2e21ecaa871ca" + } + ], + "defaultParameters": [ + "rviz_config:=nav2" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T06:11:52.970Z", + "updatedAt": "2026-09-22T06:11:52.970Z" + } + ], + "topics": [ + { + "id": "0842186d-789d-457d-be88-019c2b22575d", + "weekId": "f0974b58-986b-41bd-968b-7a3e56fe3e35", + "title": "SLAM", + "detail": "원거리 MK-mini 플랫폼에 연결하여 모듈 소스와 파라미터를 수정하고, 센서 토픽을 확인하며 SLAM 맵을 생성·저장합니다. 로컬 MK-mini 시뮬레이션에서 먼저 검증합니다.", + "sortOrder": 1 + }, + { + "id": "fdfa8a65-da0d-485c-a0a5-560396c99e80", + "weekId": "f0974b58-986b-41bd-968b-7a3e56fe3e35", + "title": "자율주행", + "detail": "저장한 맵으로 위치추정·경로 계획·제어 모듈을 구성하고 목표 지점 주행을 검증합니다. 원격 코드 편집과 빌드, 실행 로그 분석 및 파라미터 튜닝을 실습합니다.", + "sortOrder": 2 + } + ], + "practices": [ + { + "id": "ed3fc436-3c48-4803-b6a6-b1112dfb234b", + "weekId": "f0974b58-986b-41bd-968b-7a3e56fe3e35", + "title": "SLAM", + "description": "원거리 MK-mini 플랫폼에 연결하여 모듈 소스와 파라미터를 수정하고, 센서 토픽을 확인하며 SLAM 맵을 생성·저장합니다. 로컬 MK-mini 시뮬레이션에서 먼저 검증합니다.", + "sortOrder": 1 + }, + { + "id": "15de7629-4fb3-4d2d-a60b-83c77de905d6", + "weekId": "f0974b58-986b-41bd-968b-7a3e56fe3e35", + "title": "자율주행", + "description": "저장한 맵으로 위치추정·경로 계획·제어 모듈을 구성하고 목표 지점 주행을 검증합니다. 원격 코드 편집과 빌드, 실행 로그 분석 및 파라미터 튜닝을 실습합니다.", + "sortOrder": 2 + } + ] + } + ], + "environmentProfiles": [ + { + "id": "8cc79b5f-4122-4742-b6ce-54e725c6f841", + "courseId": "26d46589-31a5-4d94-b0e0-385a12c41721", + "week": 1, + "platformKey": "NAV2", + "profileType": "NAV2", + "name": "로컬", + "config": { + "type": "NAV2", + "bridge": { + "env": { + "ROBOT_STACK": "nav2" + }, + "name": "nav2-ros-bridge", + "port": 8765, + "image": "slam-ros-bridge:latest" + }, + "target": "local", + "viewer": { + "stack": "nav2" + }, + "runtime": { + "steps": [], + "containers": [] + }, + "moduleSet": { + "target": "local", + "modules": [ + { + "id": "af12ada0-ac1e-44dd-89d3-86a89754acc4" + }, + { + "id": "bc89fbbc-7e44-4228-8f50-70b6800bbf45" + }, + { + "id": "fab88d49-946d-43dd-9431-d294c7772ded" + }, + { + "id": "c20541b8-cdb1-4295-b9a3-6b10bb43ae07" + }, + { + "id": "3ca72ae8-97d9-487a-b766-a586e11a048f" + }, + { + "id": "5fe16dc8-d0b3-4f60-8efb-959855f38a26" + }, + { + "id": "b431598e-5541-4272-a953-0951be68e8e2" + }, + { + "id": "6458e955-6c31-4528-9683-455a42e6a78c" + }, + { + "id": "2b97ac9b-b036-4dd3-ac8c-7eec8352c142", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "platform:=mkmini", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "317f2de8-439b-41b7-ab5e-9e24e701384f", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "rviz_config:=nav2" + ] + } + ], + "includeUnlisted": false + }, + "runtimeImages": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/nav2/gazebo/latest/future-nav2-gazebo-humble.tar.zst", + "image": "future-nav2-gazebo:humble", + "fileName": "future-nav2-gazebo-humble.tar.zst", + "required": true, + "checksumSha256": "54230e039c1fa5dc82615cef3828c5acae7b8bea8e921b70cfdc5351d8301644" + } + ] + }, + "enabled": true, + "createdAt": "2026-09-09T06:01:24.946Z", + "updatedAt": "2026-09-09T06:01:24.946Z" + }, + { + "id": "7fe65cff-0d03-4fcd-9b6a-46814f5da017", + "courseId": "26d46589-31a5-4d94-b0e0-385a12c41721", + "week": 1, + "platformKey": "PLATFORM", + "profileType": "PLATFORM", + "name": "플랫폼", + "config": { + "type": "PLATFORM", + "bridge": { + "env": { + "ROBOT_STACK": "nav2" + }, + "name": "nav2-ros-bridge", + "port": 8765, + "image": "slam-ros-bridge:latest" + }, + "target": "remote-jetson", + "viewer": { + "stack": "nav2" + }, + "moduleSet": { + "target": "platform", + "modules": [ + { + "id": "af12ada0-ac1e-44dd-89d3-86a89754acc4", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "bc89fbbc-7e44-4228-8f50-70b6800bbf45" + }, + { + "id": "fab88d49-946d-43dd-9431-d294c7772ded" + }, + { + "id": "c20541b8-cdb1-4295-b9a3-6b10bb43ae07", + "defaultParameters": [ + "sim_mode:=false" + ] + }, + { + "id": "de678e31-228a-442d-9e98-e8e09c3a3238" + }, + { + "id": "3ca72ae8-97d9-487a-b766-a586e11a048f" + }, + { + "id": "b431598e-5541-4272-a953-0951be68e8e2" + }, + { + "id": "c6c605cf-d72e-4db5-84a7-ad098a74cb79" + }, + { + "id": "2b97ac9b-b036-4dd3-ac8c-7eec8352c142" + } + ], + "includeUnlisted": false + }, + "runtimeKind": "real", + "runtimeImages": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/slam-ros-bridge/arm64/20260819-0659d4cf5578/slam-ros-bridge-jetson-orin.tar.zst", + "image": "slam-ros-bridge:jetson_orin", + "fileName": "slam-ros-bridge-jetson-orin.tar.zst", + "required": true, + "checksumSha256": "0659d4cf5578c43bc9c25e4a4fc5d226ccd5b7bec43becfdff83b5390717114e" + }, + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/nav2/jetson-orin/latest/future-nav2-humble-jetson-orin.tar.zst", + "image": "future-nav2:humble-jetson_orin", + "fileName": "future-nav2-humble-jetson-orin.tar.zst", + "required": true + } + ] + }, + "enabled": true, + "createdAt": "2026-09-09T06:01:24.946Z", + "updatedAt": "2026-09-16T05:04:25.399Z" + }, + { + "id": "d131006c-beca-4c48-a8bf-fc28ac9b5e8f", + "courseId": "26d46589-31a5-4d94-b0e0-385a12c41721", + "week": 2, + "platformKey": "NAV2", + "profileType": "NAV2", + "name": "로컬", + "config": { + "type": "NAV2", + "bridge": { + "env": { + "ROBOT_STACK": "nav2" + }, + "name": "nav2-ros-bridge", + "port": 8765, + "image": "slam-ros-bridge:latest" + }, + "target": "local", + "viewer": { + "stack": "nav2" + }, + "runtime": { + "steps": [], + "containers": [] + }, + "moduleSet": { + "target": "local", + "modules": [ + { + "id": "5a42a1ae-e15c-436a-bde3-61b433eb672a" + }, + { + "id": "3bafb29e-3dfa-488a-a7f8-334af22c8721" + }, + { + "id": "5768b8f1-06ea-423b-8cc6-e7e22b004172" + }, + { + "id": "20cb031f-195c-4972-a611-bce4eebe0341" + }, + { + "id": "8cfd8e39-4489-40c1-8185-3c16c56ec769" + }, + { + "id": "378c8143-b855-414f-8abe-308d58a5d77a" + }, + { + "id": "77a1da7d-7d9b-4aba-a4ca-7ba9dae05fd1" + }, + { + "id": "7c553352-825a-42be-a6e2-1ddaa82ea043" + }, + { + "id": "3c64c5e3-77ff-4d34-b2b5-69a2c7d28943", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "platform:=mkmini", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "f96c1462-1a6c-4be6-9700-ba5e8dfceb59", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "rviz_config:=nav2" + ] + } + ], + "includeUnlisted": false + }, + "runtimeImages": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/nav2/gazebo/latest/future-nav2-gazebo-humble.tar.zst", + "image": "future-nav2-gazebo:humble", + "fileName": "future-nav2-gazebo-humble.tar.zst", + "required": true, + "checksumSha256": "54230e039c1fa5dc82615cef3828c5acae7b8bea8e921b70cfdc5351d8301644" + } + ] + }, + "enabled": true, + "createdAt": "2026-09-09T06:01:24.946Z", + "updatedAt": "2026-09-09T06:53:28.516Z" + }, + { + "id": "32bdadfa-aa41-4c04-9ff5-cbdbd83e517d", + "courseId": "26d46589-31a5-4d94-b0e0-385a12c41721", + "week": 2, + "platformKey": "PLATFORM", + "profileType": "PLATFORM", + "name": "플랫폼", + "config": { + "type": "PLATFORM", + "bridge": { + "env": { + "ROBOT_STACK": "nav2" + }, + "name": "nav2-ros-bridge", + "port": 8765, + "image": "slam-ros-bridge:latest" + }, + "target": "remote-jetson", + "viewer": { + "stack": "nav2" + }, + "moduleSet": { + "target": "platform", + "modules": [ + { + "id": "5a42a1ae-e15c-436a-bde3-61b433eb672a", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "3bafb29e-3dfa-488a-a7f8-334af22c8721" + }, + { + "id": "5768b8f1-06ea-423b-8cc6-e7e22b004172" + }, + { + "id": "20cb031f-195c-4972-a611-bce4eebe0341", + "defaultParameters": [ + "sim_mode:=false" + ] + }, + { + "id": "b42c682a-2a82-4e01-be5e-16871cddc76e" + }, + { + "id": "8cfd8e39-4489-40c1-8185-3c16c56ec769" + }, + { + "id": "77a1da7d-7d9b-4aba-a4ca-7ba9dae05fd1" + }, + { + "id": "8b4e870f-4054-4224-ba8c-4ef963b737f8" + }, + { + "id": "3c64c5e3-77ff-4d34-b2b5-69a2c7d28943" + } + ], + "includeUnlisted": false + }, + "runtimeKind": "real", + "runtimeImages": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/slam-ros-bridge/arm64/20260819-0659d4cf5578/slam-ros-bridge-jetson-orin.tar.zst", + "image": "slam-ros-bridge:jetson_orin", + "fileName": "slam-ros-bridge-jetson-orin.tar.zst", + "required": true, + "checksumSha256": "0659d4cf5578c43bc9c25e4a4fc5d226ccd5b7bec43becfdff83b5390717114e" + }, + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/nav2/jetson-orin/latest/future-nav2-humble-jetson-orin.tar.zst", + "image": "future-nav2:humble-jetson_orin", + "fileName": "future-nav2-humble-jetson-orin.tar.zst", + "required": true + } + ] + }, + "enabled": true, + "createdAt": "2026-09-09T06:01:24.946Z", + "updatedAt": "2026-09-16T05:04:25.399Z" + }, + { + "id": "381c7331-b9f4-423f-bfc5-89a602a2cf73", + "courseId": "26d46589-31a5-4d94-b0e0-385a12c41721", + "week": 3, + "platformKey": "NAV2", + "profileType": "NAV2", + "name": "로컬", + "config": { + "type": "NAV2", + "bridge": { + "env": { + "ROBOT_STACK": "nav2" + }, + "name": "nav2-ros-bridge", + "port": 8765, + "image": "slam-ros-bridge:latest" + }, + "target": "local", + "viewer": { + "stack": "nav2" + }, + "runtime": { + "steps": [], + "containers": [] + }, + "moduleSet": { + "target": "local", + "modules": [ + { + "id": "0c78ec6f-0cb4-4682-8045-583973d60c98", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "ecf9e32e-3ab7-4a81-bdba-a0850037daa6", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d", + "localization_mode:=amcl" + ] + }, + { + "id": "5f8ed3db-acfe-43b1-a90b-ae0f6b1ca893", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "3c7110f6-1720-43ea-8f86-5f0dd31430fa", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true" + ] + }, + { + "id": "8d7779f4-60af-4076-99d5-f68c551622c9", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "fe761922-4638-4e3a-a5bb-3050a097fd67", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "gui:=false", + "platform:=mkmini" + ] + }, + { + "id": "0447e787-64da-4363-9ba0-3f4131618162", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "6d0d71c8-4344-4633-ba7a-6866324994a8", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "platform:=mkmini", + "robot:=mkmini", + "level:=2d", + "simulator:=gazebo" + ] + }, + { + "id": "3c134049-7efb-4fd0-a9d5-fe422ef8fe86", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "rviz_config:=nav2" + ] + } + ], + "includeUnlisted": false + }, + "runtimeImages": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/nav2/gazebo/latest/future-nav2-gazebo-humble.tar.zst", + "image": "future-nav2-gazebo:humble", + "fileName": "future-nav2-gazebo-humble.tar.zst", + "required": true, + "checksumSha256": "54230e039c1fa5dc82615cef3828c5acae7b8bea8e921b70cfdc5351d8301644" + } + ] + }, + "enabled": true, + "createdAt": "2026-09-22T06:11:52.986Z", + "updatedAt": "2026-09-22T06:11:52.986Z" + }, + { + "id": "2e313661-fa84-4447-9c28-6ecc490ce52a", + "courseId": "26d46589-31a5-4d94-b0e0-385a12c41721", + "week": 3, + "platformKey": "PLATFORM", + "profileType": "PLATFORM", + "name": "플랫폼", + "config": { + "type": "PLATFORM", + "bridge": { + "env": { + "ROBOT_STACK": "nav2" + }, + "name": "nav2-ros-bridge", + "port": 8765, + "image": "slam-ros-bridge:latest" + }, + "target": "remote-jetson", + "viewer": { + "stack": "nav2" + }, + "moduleSet": { + "target": "platform", + "modules": [ + { + "id": "0c78ec6f-0cb4-4682-8045-583973d60c98", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "ecf9e32e-3ab7-4a81-bdba-a0850037daa6", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini", + "level:=2d", + "localization_mode:=amcl" + ] + }, + { + "id": "5f8ed3db-acfe-43b1-a90b-ae0f6b1ca893", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "3c7110f6-1720-43ea-8f86-5f0dd31430fa", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false" + ] + }, + { + "id": "100110a7-6619-4431-b323-4838628c8fce", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini" + ] + }, + { + "id": "8d7779f4-60af-4076-99d5-f68c551622c9", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "0447e787-64da-4363-9ba0-3f4131618162", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "966ea751-3020-4d46-998e-38fe779d0bcf", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini" + ] + }, + { + "id": "6d0d71c8-4344-4633-ba7a-6866324994a8", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "platform:=mkmini", + "robot:=mkmini", + "level:=2d" + ] + } + ], + "includeUnlisted": false + }, + "runtimeKind": "real", + "runtimeImages": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/slam-ros-bridge/arm64/20260819-0659d4cf5578/slam-ros-bridge-jetson-orin.tar.zst", + "image": "slam-ros-bridge:jetson_orin", + "fileName": "slam-ros-bridge-jetson-orin.tar.zst", + "required": true, + "checksumSha256": "0659d4cf5578c43bc9c25e4a4fc5d226ccd5b7bec43becfdff83b5390717114e" + }, + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/nav2/jetson-orin/latest/future-nav2-humble-jetson-orin.tar.zst", + "image": "future-nav2:humble-jetson_orin", + "fileName": "future-nav2-humble-jetson-orin.tar.zst", + "required": true + } + ] + }, + "enabled": true, + "createdAt": "2026-09-22T06:11:53.018Z", + "updatedAt": "2026-09-22T06:11:53.018Z" + } + ], + "instructorCurriculumWeekOverrides": [ + { + "id": "5d803b17-d999-4be2-a805-2be06373b490", + "organizationId": "7165c8dc-5810-4cce-b7d4-be0931603f6b", + "organizationName": "영남대학교", + "courseId": "26d46589-31a5-4d94-b0e0-385a12c41721", + "week": 2, + "tagLabel": "MK-mini", + "title": "Autonomy Studio 팀 프로젝트", + "duration": "1주", + "overview": "3~4인 팀으로 자율주행 알고리즘이 필요한 문제 상황을 정의하고, 센서 구성과 NAV2 모듈을 조합해 시뮬레이션과 플랫폼에서 검증합니다.", + "deliverable": "팀 프로젝트 소스, 시스템 구성도, 시뮬레이션 및 플랫폼 주행 검증 결과, 발표 자료를 제출합니다.", + "requiresSourceSubmission": true, + "isTeamProject": false, + "learningSteps": [ + { + "title": "프로젝트 주제와 역할 분담", + "concepts": [], + "videoUrl": "", + "description": "팀별 자율주행 문제 상황과 목표, 역할, 검증 기준을 정의합니다.", + "videoEnabled": false + }, + { + "title": "센서·모듈 구성 설계", + "concepts": [], + "videoUrl": "", + "description": "센서 입력과 NAV2 모듈 조합, ROS 토픽 및 실행 순서를 설계합니다.", + "videoEnabled": false + }, + { + "title": "알고리즘 구현과 튜닝", + "concepts": [], + "videoUrl": "", + "description": "SLAM, Localization, Planning, Control 파라미터를 수정하고 성능을 비교합니다.", + "videoEnabled": false + }, + { + "title": "시뮬레이션·플랫폼 검증", + "concepts": [], + "videoUrl": "", + "description": "Gazebo 시뮬레이션과 실제 플랫폼에서 주행 시나리오를 검증합니다.", + "videoEnabled": false + }, + { + "title": "결과 제출과 발표", + "concepts": [], + "videoUrl": "", + "description": "소스, 실행 로그, 검증 결과를 정리해 팀 프로젝트 결과를 제출하고 발표합니다.", + "videoEnabled": false + } + ], + "topics": [ + "프로젝트 주제와 역할 분담", + "센서·모듈 구성 설계", + "알고리즘 구현과 튜닝", + "시뮬레이션·플랫폼 검증", + "결과 제출과 발표" + ], + "topicDetails": [ + "팀별 자율주행 문제 상황과 목표, 역할, 검증 기준을 정의합니다.", + "센서 입력과 NAV2 모듈 조합, ROS 토픽 및 실행 순서를 설계합니다.", + "SLAM, Localization, Planning, Control 파라미터를 수정하고 성능을 비교합니다.", + "Gazebo 시뮬레이션과 실제 플랫폼에서 주행 시나리오를 검증합니다.", + "소스, 실행 로그, 검증 결과를 정리해 팀 프로젝트 결과를 제출하고 발표합니다." + ], + "topicVideoUrls": [ + "", + "", + "", + "", + "" + ], + "practiceContents": [ + { + "title": "팀 자율주행 시나리오 구현", + "description": "팀별 시나리오에 맞춰 NAV2 모듈을 구성하고 소스를 수정합니다." + }, + { + "title": "통합 주행 검증", + "description": "시뮬레이션과 플랫폼에서 재현 가능한 주행 결과를 확보합니다." + } + ], + "disabledModuleIds": [], + "createdAt": "2026-09-09T06:11:39.289Z", + "updatedAt": "2026-09-09T06:11:39.289Z" + } + ] + }, + { + "id": "4eb01197-7605-4c3b-9a92-f9a3942050bd", + "slug": "futuredrive-autonomy-basic", + "title": "NAV2 기반 자율주행 교육 과정", + "subtitle": "ROS2, 시뮬레이션, SLAM부터 경로 계획과 제어까지", + "description": "ROS2와 NAV2 기반 시뮬레이션 및 플랫폼 실습을 통해 자율주행 시스템의 핵심 흐름을 학습하고 팀 프로젝트로 검증합니다.", + "organizationName": "퓨처드라이브", + "teacherId": "d077267d-420d-4bf6-b2ef-4f79a68251b6", + "isActive": true, + "createdAt": "2026-06-30T09:58:46.538Z", + "updatedAt": "2026-06-30T09:58:47.035Z", + "weeks": [ + { + "id": "119a0983-d68d-4579-925e-60daed0e1dec", + "courseId": "4eb01197-7605-4c3b-9a92-f9a3942050bd", + "week": 1, + "title": "ROS2 & Simulation", + "tags": [ + "MK-mini", + "진행중" + ], + "progress": 0, + "state": "current", + "duration": "1주", + "github": "https://github.com/ros-navigation/navigation2", + "overview": "ROS2 통신 구조와 Gazebo 시뮬레이션 환경을 구성하고, LiDAR SLAM·위치추정·경로 계획·제어까지 NAV2 자율주행 파이프라인을 실습합니다.", + "deliverable": "NAV2 모듈 소스 변경 내역, SLAM 결과 맵, 목표 지점 주행 검증 화면 및 실행 로그를 제출합니다.", + "requiresSourceSubmission": true, + "createdAt": "2026-06-30T09:58:46.538Z", + "updatedAt": "2026-06-30T09:58:46.538Z", + "modules": [ + { + "id": "dd8acfbd-7f66-41b7-a5ef-60c0bc669825", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 1, + "category": "Control", + "name": "NAV2-Control", + "folderName": "[lms-nav2-gazebo-control]nav2-control_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-control.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-control/1.0.0/prebuilt/amd64/0ab85a58f37a922b/lms-nav2-gazebo-control-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-control-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "0ab85a58f37a922b493ce21676573e3a8fd339f99a74cce9c4cba58aff9b1e35" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=turtlebot3" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "31ac8bd3-6b92-44bb-955c-248cda322e61", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 2, + "category": "Localization", + "name": "NAV2-Localization", + "folderName": "[lms-nav2-gazebo-localization]nav2-localization_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-localization.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-localization/1.0.0/prebuilt/latest/lms-nav2-gazebo-localization-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-localization-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "44c8d50205f001a196870d03f44d435582b96c51eb4445e50cc8db6203b2c0c9" + } + ], + "defaultParameters": [ + "localization_mode:=amcl" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "618ceb2e-45b8-4220-8469-9d6947e2abba", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 3, + "category": "Map", + "name": "NAV2-Map", + "folderName": "[lms-nav2-gazebo-map]nav2-map_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-map.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-map/1.0.0/prebuilt/latest/lms-nav2-gazebo-map-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-map-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "f409ce54c40aeeed8cf3fc06251c2e321887b3ec5f5827dfb74897a62780582f" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "fb5cd244-e132-4d3d-8248-70534df07309", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 4, + "category": "Perception", + "name": "NAV2-Perception", + "folderName": "[lms-nav2-gazebo-perception]nav2-perception_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-perception.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-perception/1.0.0/prebuilt/amd64/d18d59ac77130be1/lms-nav2-gazebo-perception-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-perception-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d18d59ac77130be1da9d16cb0716fbf4b2837132de1765726200b3a57217034e" + } + ], + "defaultParameters": [ + "sim_mode:=true" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "71503810-840b-4a6b-8537-735067bbf62e", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 5, + "category": "Perception", + "name": "NAV2-Perception3D", + "folderName": "[lms-nav2-gazebo-perception3d]nav2-perception3d_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-perception3D.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-perception3d/1.0.0/prebuilt/latest/lms-nav2-gazebo-perception3d-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-perception3d-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "bab9f7383f44950b6cf6cd8f97b4ae2d3ba61571d6b37c10b24922cc0348a7cc" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-11T06:01:46.944Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "b4bb8026-da5f-4a57-a9b0-4dc667f6acb9", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 6, + "category": "Planning", + "name": "NAV2-Planning", + "folderName": "[lms-nav2-gazebo-planning]nav2-planning_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-planning.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-planning/1.0.0/prebuilt/amd64/d1c51b0f211e1420/lms-nav2-gazebo-planning-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-planning-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d1c51b0f211e14208882947dd3bf642dd8ce997f54b37dfc0a4c8d66bd84d608" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "ec932f99-8911-4327-bc55-e38805bfa88a", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 7, + "category": "Simulator", + "name": "NAV2-Gazebo", + "folderName": "[lms-nav2-gazebo-simulator]nav2-simulator_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-simulator.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-simulator/1.0.0/prebuilt/amd64/2c97e7672eaec755/lms-nav2-gazebo-simulator-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-simulator-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2c97e7672eaec755eb300442a77b18bbcbaf6e0d305257dc9974724049756756" + } + ], + "defaultParameters": [ + "gui:=false", + "platform:=turtlebot3" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "c4eaa655-ff69-4aed-9c74-41552d2845f1", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 8, + "category": "Localization", + "name": "NAV2-SLAM", + "folderName": "[lms-nav2-gazebo-slam]nav2-slam_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-slam.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-slam/1.0.0/prebuilt/amd64/e5aa22340e275d70/lms-nav2-gazebo-slam-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-slam-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "e5aa22340e275d7063e5cd96f974620354760082d22e80b9a58205085d88e337" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "fb3e7227-2da4-453d-8798-e5b7b9d99da9", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 9, + "category": "Localization", + "name": "NAV2-SLAM3D", + "folderName": "[lms-nav2-gazebo-slam3d]nav2-slam3d_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-slam3D.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-slam3d/1.0.0/prebuilt/latest/lms-nav2-gazebo-slam3d-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-slam3d-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "ed59e1e6b5e816403475c44672247cf8747c14edcbfcf7f1939d2b2de1d3263d" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-11T06:01:46.944Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "6be04dd5-8705-4eb5-96cc-b69282ca7b03", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 10, + "category": "Vehicle", + "name": "NAV2-TurtleBot3Burger", + "folderName": "[lms-nav2-gazebo-vehicle]nav2-vehicle_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-vehicle.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-vehicle/1.0.0/prebuilt/latest/lms-nav2-gazebo-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "42e8179172c178978e5ae5d48e189164f6b8a5030fdaa0eba497ca86a97e96bb" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "platform:=turtlebot3", + "level:=2d" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "bafcb2ea-e4f1-458b-bcb1-5c84306ae845", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 11, + "category": "Vehicle", + "name": "NAV2-MKMini", + "folderName": "[lms-nav2-mkmini]nav2-mkmini_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-mkmini.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-mkmini/1.0.0/prebuilt/amd64/lms-nav2-mkmini-build-install-amd64.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-mkmini-build-install-amd64.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "6094d2aa5188a28153452aec08e28870984b36c1bc0c06fec8091901f6d26856" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "platform:=mkmini", + "level:=2d" + ], + "dockerImage": "future-nav2:humble-jetson_orin", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "6bcb11f1-28ce-4eff-aaa0-81737199a807", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 12, + "category": "Gui", + "name": "NAV2-Rviz2", + "folderName": "[lms-nav2-gazebo-gui]nav2-rviz2_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-gui.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-gui/1.0.0/prebuilt/latest/lms-nav2-gazebo-gui-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-gui-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2a816b08d9f39057a96641ce7ace341ce409f77e5043abe074e2e21ecaa871ca" + } + ], + "defaultParameters": [ + "rviz_config:=nav2" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-07T00:34:42.804Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "b77f3bd0-c7f5-47a6-aaf1-4c97b8d9ee61", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 13, + "category": "System", + "name": "NAV2-Yahboom-Agent", + "folderName": "[lms-nav2-yahboom-agent]yahboom_agent_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-agent.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-agent/1.0.0/prebuilt/arm64/ec2b2c4578fc71b9/lms-nav2-yahboom-agent-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-agent-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "ec2b2c4578fc71b95c720dcacca5e7c7c5d08400fc80ef21a16097d31869cf9d" + } + ], + "defaultParameters": [ + "serial_device:=/dev/ttyUSB0", + "baudrate:=921600" + ], + "dockerImage": "future-nav2:humble-yahboom-agent", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "55636ffe-88c4-4c0a-8d9b-96b678b9fb53", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 14, + "category": "Vehicle", + "name": "NAV2-Yahboom", + "folderName": "[lms-nav2-yahboom-vehicle]yahboom_vehicle_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-vehicle.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-vehicle/1.0.0/prebuilt/amd64/d54368061d520794/lms-nav2-yahboom-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d54368061d52079489a8d686461e6672ebb84ca0f531fb71f835717b3f2a031f" + }, + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-vehicle/1.0.0/prebuilt/arm64/f409c0b61ca9497d/lms-nav2-yahboom-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "f409c0b61ca9497d4cfd1c2af9f4e137d9316364cab664bb908818f6ecab8331" + } + ], + "defaultParameters": [ + "sim_mode:=false" + ], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:55:16.092Z" + }, + { + "id": "e42f92d1-0d5c-4d3f-a66f-0d1fe317637d", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 15, + "category": "Localization", + "name": "NAV2-Yahboom-Slam", + "folderName": "[lms-nav2-yahboom-slam]yahboom_slam_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-slam.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-slam/1.0.0/prebuilt/arm64/f6444fe604f50ee0/lms-nav2-yahboom-slam-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-slam-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "f6444fe604f50ee00831fc7db121bbebfea6be920b55a498ddc54fc317093c77" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "356f971a-8750-45f1-9ddd-a3c70bd72912", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 16, + "category": "Map", + "name": "NAV2-Yahboom-Map", + "folderName": "[lms-nav2-yahboom-map]yahboom_map_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-map.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-map/1.0.0/prebuilt/arm64/111981b9ab460ce4/lms-nav2-yahboom-map-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-map-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "111981b9ab460ce450334e5c367e97b7e757ef55d84330ca030b096d4a9c4792" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "421db22e-154d-4df9-8190-ccb65dec6b68", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 17, + "category": "Localization", + "name": "NAV2-Yahboom-Localization", + "folderName": "[lms-nav2-yahboom-localization]yahboom_localization_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-localization.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-localization/1.0.0/prebuilt/arm64/d6534d48841a751c/lms-nav2-yahboom-localization-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-localization-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "d6534d48841a751cb2e21fa73785df61fb81815b406c9c4152c9cbfd0ae59e48" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "fe514053-5b6b-4dad-b6d7-0191fa5e8ef4", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 18, + "category": "Planning", + "name": "NAV2-Yahboom-Planning", + "folderName": "[lms-nav2-yahboom-planning]yahboom_planning_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-planning.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-planning/1.0.0/prebuilt/arm64/050f4ed4acba795a/lms-nav2-yahboom-planning-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-planning-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "050f4ed4acba795affec8306b7eef116e9e86fd0f42e492da27c7fc624dc8570" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "276f4df2-f214-4ba9-aea6-04e23491a569", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 19, + "category": "Control", + "name": "NAV2-Yahboom-Control", + "folderName": "[lms-nav2-yahboom-control]yahboom_control_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-control.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-control/1.0.0/prebuilt/arm64/be7147024d890249/lms-nav2-yahboom-control-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-control-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "be7147024d89024915f1481a47a0909ea1d06196ef9e9797f260739999e09b3f" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "b1e9b92f-bbab-4759-9e9b-637dbe12066c", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 20, + "category": "Perception", + "name": "NAV2-Yahboom-Camera", + "folderName": "[lms-nav2-yahboom-camera]yahboom_camera_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-camera.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-camera/1.0.0/prebuilt/arm64/b950a71d5babcdb3/lms-nav2-yahboom-camera-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-camera-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "b950a71d5babcdb37e46c7674fb80d0ae8c076e7d7c1186042b1b1f6e7ee2d04" + } + ], + "defaultParameters": [ + "video_device:=/dev/video0" + ], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + } + ], + "topics": [ + { + "id": "8589e6da-b4e8-41bf-9fbe-895a294c5ee0", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "ROS2 기초", + "detail": "ROS Topic, Service, Action 통신과 TF 정의, ROS2 패키지 및 tree 구조를 실습합니다.", + "sortOrder": 1 + }, + { + "id": "894c7578-19d4-4d0c-8fdc-4e1741c101dd", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "Sensor Processing", + "detail": "LiDAR와 카메라 등 센서 데이터 처리 흐름과 Calibration 기초를 확인합니다.", + "sortOrder": 2 + }, + { + "id": "e87af89a-5161-43bf-a4a3-54d87506dccf", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "Simulation 환경 구축 Part 1", + "detail": "Gazebo 월드, 로봇 모델, 센서 토픽을 구성해 시뮬레이션 실습 환경을 만듭니다.", + "sortOrder": 3 + }, + { + "id": "f270cddf-3085-4ac8-8fd0-7fdcc7b0fcc7", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "Simulation 환경 구축 Part 2", + "detail": "시뮬레이션에서 활용할 수 있는 모빌리티 플랫폼과 실행 모듈 구성을 점검합니다.", + "sortOrder": 4 + }, + { + "id": "77c00ffb-0753-4ade-9304-fe7ae187932f", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "LiDAR SLAM", + "detail": "센서 데이터와 SLAM 알고리즘을 활용해 자율주행용 2D Map을 구축합니다.", + "sortOrder": 5 + }, + { + "id": "fd677129-6030-4013-8014-642b26f81799", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "LiDAR Localization", + "detail": "구축한 Map과 실시간 LiDAR 데이터를 이용해 현재 위치를 추정합니다.", + "sortOrder": 6 + }, + { + "id": "f05ec8bf-5e1c-4e4e-9073-f3ef06b516ae", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "Parameter Tuning", + "detail": "모듈 파라미터를 변경하고 결과를 비교해 알고리즘을 튜닝합니다.", + "sortOrder": 7 + }, + { + "id": "507221da-fd06-495d-8be5-c7ef1dee1cfd", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "[심화] Camera based SLAM", + "detail": "카메라 기반 Map 구축과 위치인식의 입력·출력 구조를 분석합니다.", + "sortOrder": 8 + }, + { + "id": "ee73c3ca-3a0d-423f-aa9d-f18b99bfd21e", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "Occupancy Map", + "detail": "장애물 인식을 위한 Occupancy Map과 costmap 반영 과정을 실습합니다.", + "sortOrder": 9 + }, + { + "id": "3d0dc30a-3279-4359-88bf-d56e23d52dd4", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "Planning", + "detail": "장애물 충돌 없이 목표 지점으로 이동하기 위한 전역·지역 경로 계획을 실습합니다.", + "sortOrder": 10 + }, + { + "id": "c445c2cf-fe70-4198-99ee-86c850c310b2", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "Control", + "detail": "생성한 경로를 추종하도록 속도 명령을 만들고 주행 결과를 검증합니다.", + "sortOrder": 11 + }, + { + "id": "76165a4c-1e99-4842-bbb7-c07704777516", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "[심화] 딥러닝 기반 객체 인식", + "detail": "딥러닝 기반 객체 인식 결과를 자율주행 데이터 흐름에 반영하는 방법을 학습합니다.", + "sortOrder": 12 + } + ], + "practices": [ + { + "id": "a3cacb48-2d1d-47c9-bf22-d36438d1ca3f", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "ROS2와 Gazebo 실행 환경", + "description": "Topic, Service, Action, TF를 확인하고 TurtleBot3 Gazebo 환경을 실행합니다.", + "sortOrder": 1 + }, + { + "id": "a4445367-9679-4af4-a21a-43b02be55c49", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "LiDAR SLAM과 Localization", + "description": "맵을 생성·저장하고 저장된 맵에서 AMCL 기반 위치추정을 검증합니다.", + "sortOrder": 2 + }, + { + "id": "7553cc6e-46f0-48f3-b0f9-52ae899aa864", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "경로 계획과 제어", + "description": "목표 지점을 설정하고 장애물 회피, 경로 계획, 제어 명령을 비교합니다.", + "sortOrder": 3 + } + ] + }, + { + "id": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "courseId": "4eb01197-7605-4c3b-9a92-f9a3942050bd", + "week": 2, + "title": "Autonomy Studio 팀 프로젝트", + "tags": [ + "MK-mini", + "진행예정" + ], + "progress": 0, + "state": "locked", + "duration": "1주", + "github": "https://github.com/ros-navigation/navigation2", + "overview": "3~4인 팀으로 자율주행 알고리즘이 필요한 문제 상황을 정의하고, 센서 구성과 NAV2 모듈을 조합해 시뮬레이션과 플랫폼에서 검증합니다.", + "deliverable": "팀 프로젝트 소스, 시스템 구성도, 시뮬레이션 및 플랫폼 주행 검증 결과, 발표 자료를 제출합니다.", + "requiresSourceSubmission": true, + "createdAt": "2026-06-30T09:58:46.538Z", + "updatedAt": "2026-06-30T09:58:46.538Z", + "modules": [ + { + "id": "238bd78c-14f7-4707-9964-4b8ace1cfb42", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 1, + "category": "Control", + "name": "NAV2-Control", + "folderName": "[lms-nav2-gazebo-control]nav2-control_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-control.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-control/1.0.0/prebuilt/amd64/0ab85a58f37a922b/lms-nav2-gazebo-control-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-control-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "0ab85a58f37a922b493ce21676573e3a8fd339f99a74cce9c4cba58aff9b1e35" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=turtlebot3" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "c892dd62-6cbe-43c0-84ce-bfb2086a872a", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 2, + "category": "Localization", + "name": "NAV2-Localization", + "folderName": "[lms-nav2-gazebo-localization]nav2-localization_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-localization.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-localization/1.0.0/prebuilt/latest/lms-nav2-gazebo-localization-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-localization-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "44c8d50205f001a196870d03f44d435582b96c51eb4445e50cc8db6203b2c0c9" + } + ], + "defaultParameters": [ + "localization_mode:=amcl" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "611ba2e2-6034-4121-bb9b-716df5e0ad96", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 3, + "category": "Map", + "name": "NAV2-Map", + "folderName": "[lms-nav2-gazebo-map]nav2-map_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-map.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-map/1.0.0/prebuilt/latest/lms-nav2-gazebo-map-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-map-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "f409ce54c40aeeed8cf3fc06251c2e321887b3ec5f5827dfb74897a62780582f" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "23417175-c667-452c-8398-1542ad036a94", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 4, + "category": "Perception", + "name": "NAV2-Perception", + "folderName": "[lms-nav2-gazebo-perception]nav2-perception_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-perception.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-perception/1.0.0/prebuilt/amd64/d18d59ac77130be1/lms-nav2-gazebo-perception-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-perception-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d18d59ac77130be1da9d16cb0716fbf4b2837132de1765726200b3a57217034e" + } + ], + "defaultParameters": [ + "sim_mode:=true" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "673cd838-f8c4-4fdc-88b9-c5b3f83c5886", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 5, + "category": "Perception", + "name": "NAV2-Perception3D", + "folderName": "[lms-nav2-gazebo-perception3d]nav2-perception3d_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-perception3D.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-perception3d/1.0.0/prebuilt/latest/lms-nav2-gazebo-perception3d-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-perception3d-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "bab9f7383f44950b6cf6cd8f97b4ae2d3ba61571d6b37c10b24922cc0348a7cc" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-11T06:01:46.967Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "d1e29d86-a9ae-40b7-b876-f3c99cf656c8", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 6, + "category": "Planning", + "name": "NAV2-Planning", + "folderName": "[lms-nav2-gazebo-planning]nav2-planning_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-planning.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-planning/1.0.0/prebuilt/amd64/d1c51b0f211e1420/lms-nav2-gazebo-planning-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-planning-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d1c51b0f211e14208882947dd3bf642dd8ce997f54b37dfc0a4c8d66bd84d608" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "04161c08-f266-445b-a1f1-a68272ee4988", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 7, + "category": "Simulator", + "name": "NAV2-Gazebo", + "folderName": "[lms-nav2-gazebo-simulator]nav2-simulator_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-simulator.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-simulator/1.0.0/prebuilt/amd64/2c97e7672eaec755/lms-nav2-gazebo-simulator-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-simulator-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2c97e7672eaec755eb300442a77b18bbcbaf6e0d305257dc9974724049756756" + } + ], + "defaultParameters": [ + "gui:=false", + "platform:=turtlebot3" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "4ee736db-533f-485b-abe6-62ed4eba5aae", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 8, + "category": "Localization", + "name": "NAV2-SLAM", + "folderName": "[lms-nav2-gazebo-slam]nav2-slam_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-slam.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-slam/1.0.0/prebuilt/amd64/e5aa22340e275d70/lms-nav2-gazebo-slam-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-slam-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "e5aa22340e275d7063e5cd96f974620354760082d22e80b9a58205085d88e337" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "a98a6eab-f771-4586-b8b4-4ab61300a762", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 9, + "category": "Localization", + "name": "NAV2-SLAM3D", + "folderName": "[lms-nav2-gazebo-slam3d]nav2-slam3d_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-slam3D.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-slam3d/1.0.0/prebuilt/latest/lms-nav2-gazebo-slam3d-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-slam3d-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "ed59e1e6b5e816403475c44672247cf8747c14edcbfcf7f1939d2b2de1d3263d" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-11T06:01:46.967Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "ff32df67-203c-4781-b770-68d19f5b4d5e", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 10, + "category": "Vehicle", + "name": "NAV2-TurtleBot3Burger", + "folderName": "[lms-nav2-gazebo-vehicle]nav2-vehicle_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-vehicle.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-vehicle/1.0.0/prebuilt/latest/lms-nav2-gazebo-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "42e8179172c178978e5ae5d48e189164f6b8a5030fdaa0eba497ca86a97e96bb" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "platform:=turtlebot3", + "level:=2d" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "921e73b2-ddc6-4fe0-84d2-2efb401ebf32", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 11, + "category": "Vehicle", + "name": "NAV2-MKMini", + "folderName": "[lms-nav2-mkmini]nav2-mkmini_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-mkmini.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-mkmini/1.0.0/prebuilt/amd64/lms-nav2-mkmini-build-install-amd64.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-mkmini-build-install-amd64.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "6094d2aa5188a28153452aec08e28870984b36c1bc0c06fec8091901f6d26856" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "platform:=mkmini", + "level:=2d" + ], + "dockerImage": "future-nav2:humble-jetson_orin", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "fadfb101-884b-4566-ad99-71f6ec4f2b14", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 12, + "category": "Gui", + "name": "NAV2-Rviz2", + "folderName": "[lms-nav2-gazebo-gui]nav2-rviz2_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-gui.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-gui/1.0.0/prebuilt/latest/lms-nav2-gazebo-gui-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-gui-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2a816b08d9f39057a96641ce7ace341ce409f77e5043abe074e2e21ecaa871ca" + } + ], + "defaultParameters": [ + "rviz_config:=nav2" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-07T00:34:42.804Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "517cdc75-6e49-4878-baf4-7703155bd45d", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 13, + "category": "System", + "name": "NAV2-Yahboom-Agent", + "folderName": "[lms-nav2-yahboom-agent]yahboom_agent_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-agent.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-agent/1.0.0/prebuilt/arm64/ec2b2c4578fc71b9/lms-nav2-yahboom-agent-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-agent-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "ec2b2c4578fc71b95c720dcacca5e7c7c5d08400fc80ef21a16097d31869cf9d" + } + ], + "defaultParameters": [ + "serial_device:=/dev/ttyUSB0", + "baudrate:=921600" + ], + "dockerImage": "future-nav2:humble-yahboom-agent", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "1072caee-d064-4c9b-8064-810ef90d7498", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 14, + "category": "Vehicle", + "name": "NAV2-Yahboom", + "folderName": "[lms-nav2-yahboom-vehicle]yahboom_vehicle_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-vehicle.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-vehicle/1.0.0/prebuilt/amd64/d54368061d520794/lms-nav2-yahboom-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d54368061d52079489a8d686461e6672ebb84ca0f531fb71f835717b3f2a031f" + }, + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-vehicle/1.0.0/prebuilt/arm64/f409c0b61ca9497d/lms-nav2-yahboom-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "f409c0b61ca9497d4cfd1c2af9f4e137d9316364cab664bb908818f6ecab8331" + } + ], + "defaultParameters": [ + "sim_mode:=false" + ], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:55:16.092Z" + }, + { + "id": "a046ffd3-1e0c-4fd7-943f-3af60a776a7f", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 15, + "category": "Localization", + "name": "NAV2-Yahboom-Slam", + "folderName": "[lms-nav2-yahboom-slam]yahboom_slam_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-slam.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-slam/1.0.0/prebuilt/arm64/f6444fe604f50ee0/lms-nav2-yahboom-slam-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-slam-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "f6444fe604f50ee00831fc7db121bbebfea6be920b55a498ddc54fc317093c77" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "715ef9e8-701f-40d0-987c-6ef272902c70", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 16, + "category": "Map", + "name": "NAV2-Yahboom-Map", + "folderName": "[lms-nav2-yahboom-map]yahboom_map_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-map.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-map/1.0.0/prebuilt/arm64/111981b9ab460ce4/lms-nav2-yahboom-map-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-map-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "111981b9ab460ce450334e5c367e97b7e757ef55d84330ca030b096d4a9c4792" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "dcd39368-069a-4b3d-a31d-510628edce8b", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 17, + "category": "Localization", + "name": "NAV2-Yahboom-Localization", + "folderName": "[lms-nav2-yahboom-localization]yahboom_localization_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-localization.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-localization/1.0.0/prebuilt/arm64/d6534d48841a751c/lms-nav2-yahboom-localization-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-localization-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "d6534d48841a751cb2e21fa73785df61fb81815b406c9c4152c9cbfd0ae59e48" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "fa788eeb-6ba4-4f69-89aa-ddf0c6b875a5", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 18, + "category": "Planning", + "name": "NAV2-Yahboom-Planning", + "folderName": "[lms-nav2-yahboom-planning]yahboom_planning_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-planning.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-planning/1.0.0/prebuilt/arm64/050f4ed4acba795a/lms-nav2-yahboom-planning-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-planning-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "050f4ed4acba795affec8306b7eef116e9e86fd0f42e492da27c7fc624dc8570" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "0a4f97e8-3dd6-4dd8-aa76-d327347c4dc7", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 19, + "category": "Control", + "name": "NAV2-Yahboom-Control", + "folderName": "[lms-nav2-yahboom-control]yahboom_control_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-control.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-control/1.0.0/prebuilt/arm64/be7147024d890249/lms-nav2-yahboom-control-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-control-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "be7147024d89024915f1481a47a0909ea1d06196ef9e9797f260739999e09b3f" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "de01197b-d7b1-4ebb-812b-4943befb8539", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 20, + "category": "Perception", + "name": "NAV2-Yahboom-Camera", + "folderName": "[lms-nav2-yahboom-camera]yahboom_camera_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-camera.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-camera/1.0.0/prebuilt/arm64/b950a71d5babcdb3/lms-nav2-yahboom-camera-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-camera-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "b950a71d5babcdb37e46c7674fb80d0ae8c076e7d7c1186042b1b1f6e7ee2d04" + } + ], + "defaultParameters": [ + "video_device:=/dev/video0" + ], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + } + ], + "topics": [ + { + "id": "4d081569-b820-44f5-82a2-b09180da6b6b", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "title": "프로젝트 주제와 역할 분담", + "detail": "팀별 자율주행 문제 상황과 목표, 역할, 검증 기준을 정의합니다.", + "sortOrder": 1 + }, + { + "id": "1655d608-2828-45b3-91a6-4986a3f85581", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "title": "센서·모듈 구성 설계", + "detail": "센서 입력과 NAV2 모듈 조합, ROS 토픽 및 실행 순서를 설계합니다.", + "sortOrder": 2 + }, + { + "id": "0e053b97-39a0-4ff1-9def-185082626827", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "title": "알고리즘 구현과 튜닝", + "detail": "SLAM, Localization, Planning, Control 파라미터를 수정하고 성능을 비교합니다.", + "sortOrder": 3 + }, + { + "id": "9379f099-ec25-442d-ab6e-81a7002831ca", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "title": "시뮬레이션·플랫폼 검증", + "detail": "Gazebo 시뮬레이션과 실제 플랫폼에서 주행 시나리오를 검증합니다.", + "sortOrder": 4 + }, + { + "id": "edc67d22-32ef-46f8-8164-66f2328f6bb5", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "title": "결과 제출과 발표", + "detail": "소스, 실행 로그, 검증 결과를 정리해 팀 프로젝트 결과를 제출하고 발표합니다.", + "sortOrder": 5 + } + ], + "practices": [ + { + "id": "e63803b3-b888-44b9-9cf0-13d9783eab70", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "title": "팀 자율주행 시나리오 구현", + "description": "팀별 시나리오에 맞춰 NAV2 모듈을 구성하고 소스를 수정합니다.", + "sortOrder": 1 + }, + { + "id": "49a1f5db-0f86-4be3-8a3b-9866ef86b80d", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "title": "통합 주행 검증", + "description": "시뮬레이션과 플랫폼에서 재현 가능한 주행 결과를 확보합니다.", + "sortOrder": 2 + } + ] + }, + { + "id": "10eeb415-c568-4ed5-9ef6-8eeb23b68c7d", + "courseId": "4eb01197-7605-4c3b-9a92-f9a3942050bd", + "week": 3, + "title": "원격 개발", + "tags": [ + "MK-mini", + "진행예정" + ], + "progress": 0, + "state": "locked", + "duration": "1주", + "github": "https://github.com/ros-navigation/navigation2", + "overview": "원거리 MK-mini 플랫폼을 연결하고 원격으로 코드를 편집·빌드·실행합니다. 로컬 MK-mini 시뮬레이션과 실차에서 SLAM 및 자율주행을 검증합니다.", + "deliverable": "SLAM 저장 맵, 자율주행 검증 결과, 원격 개발 소스 변경 내역 및 실행 로그를 제출합니다.", + "requiresSourceSubmission": true, + "createdAt": "2026-09-22T05:57:24.295Z", + "updatedAt": "2026-09-22T05:57:24.295Z", + "modules": [ + { + "id": "73b34795-5848-44fa-a097-c48de8405c2b", + "weekId": "10eeb415-c568-4ed5-9ef6-8eeb23b68c7d", + "sortOrder": 1, + "category": "Control", + "name": "NAV2-Control", + "folderName": "[lms-nav2-gazebo-control]nav2-control_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-control.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-control/1.0.0/prebuilt/amd64/0ab85a58f37a922b/lms-nav2-gazebo-control-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-control-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "0ab85a58f37a922b493ce21676573e3a8fd339f99a74cce9c4cba58aff9b1e35" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T05:57:24.417Z", + "updatedAt": "2026-09-22T05:57:24.417Z" + }, + { + "id": "f823ab59-d4a1-4b18-b84f-d06fc6c11e33", + "weekId": "10eeb415-c568-4ed5-9ef6-8eeb23b68c7d", + "sortOrder": 2, + "category": "Localization", + "name": "NAV2-Localization", + "folderName": "[lms-nav2-gazebo-localization]nav2-localization_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-localization.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-localization/1.0.0/prebuilt/latest/lms-nav2-gazebo-localization-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-localization-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "44c8d50205f001a196870d03f44d435582b96c51eb4445e50cc8db6203b2c0c9" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d", + "localization_mode:=amcl" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T05:57:24.448Z", + "updatedAt": "2026-09-22T05:57:24.448Z" + }, + { + "id": "2377a171-689f-4f00-b92a-c7138e00d90a", + "weekId": "10eeb415-c568-4ed5-9ef6-8eeb23b68c7d", + "sortOrder": 3, + "category": "Map", + "name": "NAV2-Map", + "folderName": "[lms-nav2-gazebo-map]nav2-map_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-map.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-map/1.0.0/prebuilt/latest/lms-nav2-gazebo-map-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-map-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "f409ce54c40aeeed8cf3fc06251c2e321887b3ec5f5827dfb74897a62780582f" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T05:57:24.464Z", + "updatedAt": "2026-09-22T05:57:24.464Z" + }, + { + "id": "6d61da3c-70f6-4ceb-b134-b6d319249a3c", + "weekId": "10eeb415-c568-4ed5-9ef6-8eeb23b68c7d", + "sortOrder": 4, + "category": "Perception", + "name": "NAV2-Perception", + "folderName": "[lms-nav2-gazebo-perception]nav2-perception_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-perception.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-perception/1.0.0/prebuilt/amd64/d18d59ac77130be1/lms-nav2-gazebo-perception-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-perception-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d18d59ac77130be1da9d16cb0716fbf4b2837132de1765726200b3a57217034e" + } + ], + "defaultParameters": [ + "sim_mode:=true" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T05:57:24.481Z", + "updatedAt": "2026-09-22T05:57:24.481Z" + }, + { + "id": "ff6cba53-96f9-4fee-b378-4317ea52ae21", + "weekId": "10eeb415-c568-4ed5-9ef6-8eeb23b68c7d", + "sortOrder": 5, + "category": "Perception", + "name": "NAV2-Perception3D", + "folderName": "[lms-nav2-gazebo-perception3d]nav2-perception3d_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-perception3D.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-perception3d/1.0.0/prebuilt/latest/lms-nav2-gazebo-perception3d-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-perception3d-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "bab9f7383f44950b6cf6cd8f97b4ae2d3ba61571d6b37c10b24922cc0348a7cc" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T05:57:24.496Z", + "updatedAt": "2026-09-22T05:57:24.496Z" + }, + { + "id": "495b0f80-1d87-4b38-9625-370e70de2d49", + "weekId": "10eeb415-c568-4ed5-9ef6-8eeb23b68c7d", + "sortOrder": 6, + "category": "Planning", + "name": "NAV2-Planning", + "folderName": "[lms-nav2-gazebo-planning]nav2-planning_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-planning.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-planning/1.0.0/prebuilt/amd64/d1c51b0f211e1420/lms-nav2-gazebo-planning-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-planning-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d1c51b0f211e14208882947dd3bf642dd8ce997f54b37dfc0a4c8d66bd84d608" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T05:57:24.512Z", + "updatedAt": "2026-09-22T05:57:24.512Z" + }, + { + "id": "d1535889-73e8-4300-8677-6260fd8dd436", + "weekId": "10eeb415-c568-4ed5-9ef6-8eeb23b68c7d", + "sortOrder": 7, + "category": "Simulator", + "name": "NAV2-Gazebo", + "folderName": "[lms-nav2-gazebo-simulator]nav2-simulator_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-simulator.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-simulator/1.0.0/prebuilt/amd64/2c97e7672eaec755/lms-nav2-gazebo-simulator-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-simulator-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2c97e7672eaec755eb300442a77b18bbcbaf6e0d305257dc9974724049756756" + } + ], + "defaultParameters": [ + "gui:=false", + "platform:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T05:57:24.528Z", + "updatedAt": "2026-09-22T05:57:24.528Z" + }, + { + "id": "da4f1d95-6270-47dc-b7e8-5529784cad29", + "weekId": "10eeb415-c568-4ed5-9ef6-8eeb23b68c7d", + "sortOrder": 8, + "category": "Localization", + "name": "NAV2-SLAM", + "folderName": "[lms-nav2-gazebo-slam]nav2-slam_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-slam.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-slam/1.0.0/prebuilt/amd64/e5aa22340e275d70/lms-nav2-gazebo-slam-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-slam-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "e5aa22340e275d7063e5cd96f974620354760082d22e80b9a58205085d88e337" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T05:57:24.544Z", + "updatedAt": "2026-09-22T05:57:24.544Z" + }, + { + "id": "316fa7e6-dd9c-4c89-a911-8ccf8605a24b", + "weekId": "10eeb415-c568-4ed5-9ef6-8eeb23b68c7d", + "sortOrder": 9, + "category": "Localization", + "name": "NAV2-SLAM3D", + "folderName": "[lms-nav2-gazebo-slam3d]nav2-slam3d_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-slam3D.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-slam3d/1.0.0/prebuilt/latest/lms-nav2-gazebo-slam3d-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-slam3d-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "ed59e1e6b5e816403475c44672247cf8747c14edcbfcf7f1939d2b2de1d3263d" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T05:57:24.558Z", + "updatedAt": "2026-09-22T05:57:24.558Z" + }, + { + "id": "3b164b3e-16d2-452b-9a5f-7cdb367e4916", + "weekId": "10eeb415-c568-4ed5-9ef6-8eeb23b68c7d", + "sortOrder": 10, + "category": "Vehicle", + "name": "NAV2-MKMini", + "folderName": "[lms-nav2-mkmini]nav2-mkmini_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-mkmini.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-mkmini/1.0.0/prebuilt/amd64/lms-nav2-mkmini-build-install-amd64.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-mkmini-build-install-amd64.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "6094d2aa5188a28153452aec08e28870984b36c1bc0c06fec8091901f6d26856" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "platform:=mkmini", + "robot:=mkmini", + "level:=2d", + "simulator:=gazebo" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T05:57:24.574Z", + "updatedAt": "2026-09-22T05:57:24.574Z" + }, + { + "id": "b4b253d8-c202-4c28-bcd7-6c8bdee37d52", + "weekId": "10eeb415-c568-4ed5-9ef6-8eeb23b68c7d", + "sortOrder": 11, + "category": "Gui", + "name": "NAV2-Rviz2", + "folderName": "[lms-nav2-gazebo-gui]nav2-rviz2_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-gui.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-gui/1.0.0/prebuilt/latest/lms-nav2-gazebo-gui-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-gui-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2a816b08d9f39057a96641ce7ace341ce409f77e5043abe074e2e21ecaa871ca" + } + ], + "defaultParameters": [ + "rviz_config:=nav2" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T05:57:24.589Z", + "updatedAt": "2026-09-22T05:57:24.589Z" + } + ], + "topics": [ + { + "id": "c80efebe-4f60-4da2-b4c0-a09d159f54b5", + "weekId": "10eeb415-c568-4ed5-9ef6-8eeb23b68c7d", + "title": "SLAM", + "detail": "원거리 MK-mini 플랫폼에 연결하여 모듈 소스와 파라미터를 수정하고, 센서 토픽을 확인하며 SLAM 맵을 생성·저장합니다. 로컬 MK-mini 시뮬레이션에서 먼저 검증합니다.", + "sortOrder": 1 + }, + { + "id": "b29d3f27-5530-45e9-8920-4233af999297", + "weekId": "10eeb415-c568-4ed5-9ef6-8eeb23b68c7d", + "title": "자율주행", + "detail": "저장한 맵으로 위치추정·경로 계획·제어 모듈을 구성하고 목표 지점 주행을 검증합니다. 원격 코드 편집과 빌드, 실행 로그 분석 및 파라미터 튜닝을 실습합니다.", + "sortOrder": 2 + } + ], + "practices": [ + { + "id": "737bb4ba-6dcb-4b03-8e4c-573bcf414e76", + "weekId": "10eeb415-c568-4ed5-9ef6-8eeb23b68c7d", + "title": "SLAM", + "description": "원거리 MK-mini 플랫폼에 연결하여 모듈 소스와 파라미터를 수정하고, 센서 토픽을 확인하며 SLAM 맵을 생성·저장합니다. 로컬 MK-mini 시뮬레이션에서 먼저 검증합니다.", + "sortOrder": 1 + }, + { + "id": "a3f8dc80-5f7d-45b2-9f45-9f488a5d4a3c", + "weekId": "10eeb415-c568-4ed5-9ef6-8eeb23b68c7d", + "title": "자율주행", + "description": "저장한 맵으로 위치추정·경로 계획·제어 모듈을 구성하고 목표 지점 주행을 검증합니다. 원격 코드 편집과 빌드, 실행 로그 분석 및 파라미터 튜닝을 실습합니다.", + "sortOrder": 2 + } + ] + } + ], + "environmentProfiles": [ + { + "id": "89ff37ab-bf54-43bb-87c8-c965237362bd", + "courseId": "4eb01197-7605-4c3b-9a92-f9a3942050bd", + "week": 1, + "platformKey": "NAV2", + "profileType": "NAV2", + "name": "로컬", + "config": { + "type": "NAV2", + "bridge": { + "env": { + "ROBOT_STACK": "nav2" + }, + "name": "nav2-ros-bridge", + "port": 8765, + "image": "slam-ros-bridge:latest" + }, + "target": "local", + "viewer": { + "stack": "nav2" + }, + "runtime": { + "steps": [], + "containers": [] + }, + "moduleSet": { + "target": "local", + "modules": [ + { + "id": "dd8acfbd-7f66-41b7-a5ef-60c0bc669825", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "robot:=turtlebot3" + ] + }, + { + "id": "31ac8bd3-6b92-44bb-955c-248cda322e61", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "localization_mode:=amcl" + ] + }, + { + "id": "618ceb2e-45b8-4220-8469-9d6947e2abba", + "dockerImage": "future-nav2-gazebo:humble" + }, + { + "id": "fb5cd244-e132-4d3d-8248-70534df07309", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true" + ] + }, + { + "id": "b4bb8026-da5f-4a57-a9b0-4dc667f6acb9", + "dockerImage": "future-nav2-gazebo:humble" + }, + { + "id": "ec932f99-8911-4327-bc55-e38805bfa88a", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "gui:=false", + "platform:=turtlebot3" + ] + }, + { + "id": "c4eaa655-ff69-4aed-9c74-41552d2845f1", + "dockerImage": "future-nav2-gazebo:humble" + }, + { + "id": "6be04dd5-8705-4eb5-96cc-b69282ca7b03", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "platform:=turtlebot3", + "level:=2d" + ] + }, + { + "id": "bafcb2ea-e4f1-458b-bcb1-5c84306ae845", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "platform:=mkmini", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "6bcb11f1-28ce-4eff-aaa0-81737199a807", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "rviz_config:=nav2" + ] + }, + { + "id": "55636ffe-88c4-4c0a-8d9b-96b678b9fb53", + "dockerImage": "future-nav2:humble-yahboom", + "defaultParameters": [ + "sim_mode:=true" + ] + } + ], + "includeUnlisted": false + }, + "runtimeImages": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/nav2/gazebo/latest/future-nav2-gazebo-humble.tar.zst", + "image": "future-nav2-gazebo:humble", + "fileName": "future-nav2-gazebo-humble.tar.zst", + "required": true, + "checksumSha256": "54230e039c1fa5dc82615cef3828c5acae7b8bea8e921b70cfdc5351d8301644" + } + ] + }, + "enabled": true, + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-22T06:18:59.879Z" + }, + { + "id": "336b8cf4-57b2-4bb2-b809-8007dddd630f", + "courseId": "4eb01197-7605-4c3b-9a92-f9a3942050bd", + "week": 1, + "platformKey": "PLATFORM", + "profileType": "PLATFORM", + "name": "플랫폼", + "config": { + "type": "PLATFORM", + "bridge": { + "env": { + "ROBOT_STACK": "nav2" + }, + "name": "nav2-ros-bridge", + "port": 8765, + "image": "slam-ros-bridge:latest" + }, + "target": "remote-jetson", + "viewer": { + "stack": "nav2" + }, + "moduleSet": { + "target": "platform", + "modules": [ + { + "id": "55636ffe-88c4-4c0a-8d9b-96b678b9fb53", + "dockerImage": "future-nav2:humble-yahboom", + "defaultParameters": [ + "sim_mode:=false" + ] + }, + { + "id": "b77f3bd0-c7f5-47a6-aaf1-4c97b8d9ee61", + "dockerImage": "future-nav2:humble-yahboom-agent", + "defaultParameters": [ + "serial_device:=/dev/ttyUSB0", + "baudrate:=921600" + ] + }, + { + "id": "b1e9b92f-bbab-4759-9e9b-637dbe12066c", + "dockerImage": "future-nav2:humble-yahboom", + "defaultParameters": [ + "video_device:=/dev/video0" + ] + }, + { + "id": "e42f92d1-0d5c-4d3f-a66f-0d1fe317637d", + "dockerImage": "future-nav2:humble-yahboom" + }, + { + "id": "421db22e-154d-4df9-8190-ccb65dec6b68", + "dockerImage": "future-nav2:humble-yahboom" + }, + { + "id": "276f4df2-f214-4ba9-aea6-04e23491a569", + "dockerImage": "future-nav2:humble-yahboom" + }, + { + "id": "fe514053-5b6b-4dad-b6d7-0191fa5e8ef4", + "dockerImage": "future-nav2:humble-yahboom" + }, + { + "id": "356f971a-8750-45f1-9ddd-a3c70bd72912", + "dockerImage": "future-nav2:humble-yahboom" + } + ], + "includeUnlisted": false + }, + "runtimeKind": "real", + "runtimeImages": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/slam-ros-bridge/arm64/20260819-0659d4cf5578/slam-ros-bridge-jetson-orin.tar.zst", + "image": "slam-ros-bridge:jetson_orin", + "fileName": "slam-ros-bridge-jetson-orin.tar.zst", + "required": true, + "checksumSha256": "0659d4cf5578c43bc9c25e4a4fc5d226ccd5b7bec43becfdff83b5390717114e" + }, + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/nav2/jetson-orin/latest/future-nav2-humble-jetson-orin.tar.zst", + "image": "future-nav2:humble-jetson_orin", + "fileName": "future-nav2-humble-jetson-orin.tar.zst", + "required": true + } + ] + }, + "enabled": true, + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-22T06:18:59.911Z" + }, + { + "id": "19175b62-d8a2-458b-9a63-8b3fa9d8889e", + "courseId": "4eb01197-7605-4c3b-9a92-f9a3942050bd", + "week": 2, + "platformKey": "NAV2", + "profileType": "NAV2", + "name": "로컬", + "config": { + "type": "NAV2", + "bridge": { + "env": { + "ROBOT_STACK": "nav2" + }, + "name": "nav2-ros-bridge", + "port": 8765, + "image": "slam-ros-bridge:latest" + }, + "target": "local", + "viewer": { + "stack": "nav2" + }, + "runtime": { + "steps": [], + "containers": [] + }, + "moduleSet": { + "target": "local", + "modules": [ + { + "id": "238bd78c-14f7-4707-9964-4b8ace1cfb42", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "robot:=turtlebot3" + ] + }, + { + "id": "c892dd62-6cbe-43c0-84ce-bfb2086a872a", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "localization_mode:=amcl" + ] + }, + { + "id": "611ba2e2-6034-4121-bb9b-716df5e0ad96", + "dockerImage": "future-nav2-gazebo:humble" + }, + { + "id": "23417175-c667-452c-8398-1542ad036a94", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true" + ] + }, + { + "id": "d1e29d86-a9ae-40b7-b876-f3c99cf656c8", + "dockerImage": "future-nav2-gazebo:humble" + }, + { + "id": "04161c08-f266-445b-a1f1-a68272ee4988", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "gui:=false", + "platform:=turtlebot3" + ] + }, + { + "id": "4ee736db-533f-485b-abe6-62ed4eba5aae", + "dockerImage": "future-nav2-gazebo:humble" + }, + { + "id": "ff32df67-203c-4781-b770-68d19f5b4d5e", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "platform:=turtlebot3", + "level:=2d" + ] + }, + { + "id": "921e73b2-ddc6-4fe0-84d2-2efb401ebf32", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "platform:=mkmini", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "fadfb101-884b-4566-ad99-71f6ec4f2b14", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "rviz_config:=nav2" + ] + }, + { + "id": "1072caee-d064-4c9b-8064-810ef90d7498", + "dockerImage": "future-nav2:humble-yahboom", + "defaultParameters": [ + "sim_mode:=true" + ] + } + ], + "includeUnlisted": false + }, + "runtimeImages": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/nav2/gazebo/latest/future-nav2-gazebo-humble.tar.zst", + "image": "future-nav2-gazebo:humble", + "fileName": "future-nav2-gazebo-humble.tar.zst", + "required": true, + "checksumSha256": "54230e039c1fa5dc82615cef3828c5acae7b8bea8e921b70cfdc5351d8301644" + } + ] + }, + "enabled": true, + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-22T06:18:59.960Z" + }, + { + "id": "377e58bf-039b-48f9-8db0-48dba4ba5549", + "courseId": "4eb01197-7605-4c3b-9a92-f9a3942050bd", + "week": 2, + "platformKey": "PLATFORM", + "profileType": "PLATFORM", + "name": "플랫폼", + "config": { + "type": "PLATFORM", + "bridge": { + "env": { + "ROBOT_STACK": "nav2" + }, + "name": "nav2-ros-bridge", + "port": 8765, + "image": "slam-ros-bridge:latest" + }, + "target": "remote-jetson", + "viewer": { + "stack": "nav2" + }, + "moduleSet": { + "target": "platform", + "modules": [ + { + "id": "1072caee-d064-4c9b-8064-810ef90d7498", + "dockerImage": "future-nav2:humble-yahboom", + "defaultParameters": [ + "sim_mode:=false" + ] + }, + { + "id": "517cdc75-6e49-4878-baf4-7703155bd45d", + "dockerImage": "future-nav2:humble-yahboom-agent", + "defaultParameters": [ + "serial_device:=/dev/ttyUSB0", + "baudrate:=921600" + ] + }, + { + "id": "de01197b-d7b1-4ebb-812b-4943befb8539", + "dockerImage": "future-nav2:humble-yahboom", + "defaultParameters": [ + "video_device:=/dev/video0" + ] + }, + { + "id": "a046ffd3-1e0c-4fd7-943f-3af60a776a7f", + "dockerImage": "future-nav2:humble-yahboom" + }, + { + "id": "dcd39368-069a-4b3d-a31d-510628edce8b", + "dockerImage": "future-nav2:humble-yahboom" + }, + { + "id": "0a4f97e8-3dd6-4dd8-aa76-d327347c4dc7", + "dockerImage": "future-nav2:humble-yahboom" + }, + { + "id": "fa788eeb-6ba4-4f69-89aa-ddf0c6b875a5", + "dockerImage": "future-nav2:humble-yahboom" + }, + { + "id": "715ef9e8-701f-40d0-987c-6ef272902c70", + "dockerImage": "future-nav2:humble-yahboom" + } + ], + "includeUnlisted": false + }, + "runtimeKind": "real", + "runtimeImages": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/slam-ros-bridge/arm64/20260819-0659d4cf5578/slam-ros-bridge-jetson-orin.tar.zst", + "image": "slam-ros-bridge:jetson_orin", + "fileName": "slam-ros-bridge-jetson-orin.tar.zst", + "required": true, + "checksumSha256": "0659d4cf5578c43bc9c25e4a4fc5d226ccd5b7bec43becfdff83b5390717114e" + }, + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/nav2/jetson-orin/latest/future-nav2-humble-jetson-orin.tar.zst", + "image": "future-nav2:humble-jetson_orin", + "fileName": "future-nav2-humble-jetson-orin.tar.zst", + "required": true + } + ] + }, + "enabled": true, + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-22T06:19:00.019Z" + }, + { + "id": "119ece78-9921-4c01-9334-669d91aca149", + "courseId": "4eb01197-7605-4c3b-9a92-f9a3942050bd", + "week": 3, + "platformKey": "NAV2", + "profileType": "NAV2", + "name": "로컬", + "config": { + "type": "NAV2", + "bridge": { + "env": { + "ROBOT_STACK": "nav2" + }, + "name": "nav2-ros-bridge", + "port": 8765, + "image": "slam-ros-bridge:latest" + }, + "target": "local", + "viewer": { + "stack": "nav2" + }, + "runtime": { + "steps": [], + "containers": [] + }, + "moduleSet": { + "target": "local", + "modules": [ + { + "id": "73b34795-5848-44fa-a097-c48de8405c2b", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "f823ab59-d4a1-4b18-b84f-d06fc6c11e33", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d", + "localization_mode:=amcl" + ] + }, + { + "id": "2377a171-689f-4f00-b92a-c7138e00d90a", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "6d61da3c-70f6-4ceb-b134-b6d319249a3c", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true" + ] + }, + { + "id": "495b0f80-1d87-4b38-9625-370e70de2d49", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "d1535889-73e8-4300-8677-6260fd8dd436", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "gui:=false", + "platform:=mkmini" + ] + }, + { + "id": "da4f1d95-6270-47dc-b7e8-5529784cad29", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "3b164b3e-16d2-452b-9a5f-7cdb367e4916", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "platform:=mkmini", + "robot:=mkmini", + "level:=2d", + "simulator:=gazebo" + ] + }, + { + "id": "b4b253d8-c202-4c28-bcd7-6c8bdee37d52", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "rviz_config:=nav2" + ] + } + ], + "includeUnlisted": false + }, + "runtimeImages": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/nav2/gazebo/latest/future-nav2-gazebo-humble.tar.zst", + "image": "future-nav2-gazebo:humble", + "fileName": "future-nav2-gazebo-humble.tar.zst", + "required": true, + "checksumSha256": "54230e039c1fa5dc82615cef3828c5acae7b8bea8e921b70cfdc5351d8301644" + } + ] + }, + "enabled": true, + "createdAt": "2026-09-22T05:57:24.606Z", + "updatedAt": "2026-09-22T05:57:24.606Z" + }, + { + "id": "8e36f6bc-15cd-45a5-9122-737a8422ec09", + "courseId": "4eb01197-7605-4c3b-9a92-f9a3942050bd", + "week": 3, + "platformKey": "PLATFORM", + "profileType": "PLATFORM", + "name": "플랫폼", + "config": { + "type": "PLATFORM", + "bridge": { + "env": { + "ROBOT_STACK": "nav2" + }, + "name": "nav2-ros-bridge", + "port": 8765, + "image": "slam-ros-bridge:latest" + }, + "target": "remote-jetson", + "viewer": { + "stack": "nav2" + }, + "moduleSet": { + "target": "platform", + "modules": [ + { + "id": "73b34795-5848-44fa-a097-c48de8405c2b", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "f823ab59-d4a1-4b18-b84f-d06fc6c11e33", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini", + "level:=2d", + "localization_mode:=amcl" + ] + }, + { + "id": "2377a171-689f-4f00-b92a-c7138e00d90a", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "6d61da3c-70f6-4ceb-b134-b6d319249a3c", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false" + ] + }, + { + "id": "ff6cba53-96f9-4fee-b378-4317ea52ae21", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini" + ] + }, + { + "id": "495b0f80-1d87-4b38-9625-370e70de2d49", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "da4f1d95-6270-47dc-b7e8-5529784cad29", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "316fa7e6-dd9c-4c89-a911-8ccf8605a24b", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini" + ] + }, + { + "id": "3b164b3e-16d2-452b-9a5f-7cdb367e4916", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "platform:=mkmini", + "robot:=mkmini", + "level:=2d" + ] + } + ], + "includeUnlisted": false + }, + "runtimeKind": "real", + "runtimeImages": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/slam-ros-bridge/arm64/20260819-0659d4cf5578/slam-ros-bridge-jetson-orin.tar.zst", + "image": "slam-ros-bridge:jetson_orin", + "fileName": "slam-ros-bridge-jetson-orin.tar.zst", + "required": true, + "checksumSha256": "0659d4cf5578c43bc9c25e4a4fc5d226ccd5b7bec43becfdff83b5390717114e" + }, + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/nav2/jetson-orin/latest/future-nav2-humble-jetson-orin.tar.zst", + "image": "future-nav2:humble-jetson_orin", + "fileName": "future-nav2-humble-jetson-orin.tar.zst", + "required": true + } + ] + }, + "enabled": true, + "createdAt": "2026-09-22T05:57:24.639Z", + "updatedAt": "2026-09-22T05:57:24.639Z" + } + ], + "instructorCurriculumWeekOverrides": [ + { + "id": "1ae44253-20e6-47a0-914f-6f14b1f3d97a", + "organizationId": "b545a634-e877-4935-8041-c83e352b1fb7", + "organizationName": "퓨처드라이브", + "courseId": "4eb01197-7605-4c3b-9a92-f9a3942050bd", + "week": 2, + "tagLabel": "MK-mini", + "title": "Autonomy Studio 팀 프로젝트", + "duration": "1주", + "overview": "3~4인 팀으로 자율주행 알고리즘이 필요한 문제 상황을 정의하고, 센서 구성과 NAV2 모듈을 조합해 시뮬레이션과 플랫폼에서 검증합니다.", + "deliverable": "팀 프로젝트 소스, 시스템 구성도, 시뮬레이션 및 플랫폼 주행 검증 결과, 발표 자료를 제출합니다.", + "requiresSourceSubmission": true, + "isTeamProject": false, + "learningSteps": [ + { + "title": "프로젝트 주제와 역할 분담", + "concepts": [], + "videoUrl": "", + "description": "팀별 자율주행 문제 상황과 목표, 역할, 검증 기준을 정의합니다.", + "videoEnabled": false + }, + { + "title": "센서·모듈 구성 설계", + "concepts": [], + "videoUrl": "", + "description": "센서 입력과 NAV2 모듈 조합, ROS 토픽 및 실행 순서를 설계합니다.", + "videoEnabled": false + }, + { + "title": "알고리즘 구현과 튜닝", + "concepts": [], + "videoUrl": "", + "description": "SLAM, Localization, Planning, Control 파라미터를 수정하고 성능을 비교합니다.", + "videoEnabled": false + }, + { + "title": "시뮬레이션·플랫폼 검증", + "concepts": [], + "videoUrl": "", + "description": "Gazebo 시뮬레이션과 실제 플랫폼에서 주행 시나리오를 검증합니다.", + "videoEnabled": false + }, + { + "title": "결과 제출과 발표", + "concepts": [], + "videoUrl": "", + "description": "소스, 실행 로그, 검증 결과를 정리해 팀 프로젝트 결과를 제출하고 발표합니다.", + "videoEnabled": false + } + ], + "topics": [ + "프로젝트 주제와 역할 분담", + "센서·모듈 구성 설계", + "알고리즘 구현과 튜닝", + "시뮬레이션·플랫폼 검증", + "결과 제출과 발표" + ], + "topicDetails": [ + "팀별 자율주행 문제 상황과 목표, 역할, 검증 기준을 정의합니다.", + "센서 입력과 NAV2 모듈 조합, ROS 토픽 및 실행 순서를 설계합니다.", + "SLAM, Localization, Planning, Control 파라미터를 수정하고 성능을 비교합니다.", + "Gazebo 시뮬레이션과 실제 플랫폼에서 주행 시나리오를 검증합니다.", + "소스, 실행 로그, 검증 결과를 정리해 팀 프로젝트 결과를 제출하고 발표합니다." + ], + "topicVideoUrls": [ + "", + "", + "", + "", + "" + ], + "practiceContents": [ + { + "title": "팀 자율주행 시나리오 구현", + "description": "팀별 시나리오에 맞춰 NAV2 모듈을 구성하고 소스를 수정합니다." + }, + { + "title": "통합 주행 검증", + "description": "시뮬레이션과 플랫폼에서 재현 가능한 주행 결과를 확보합니다." + } + ], + "disabledModuleIds": [], + "createdAt": "2026-09-10T01:09:16.147Z", + "updatedAt": "2026-09-10T01:09:22.868Z" + }, + { + "id": "8882c821-4095-4314-8139-a05dca1abcc3", + "organizationId": "b545a634-e877-4935-8041-c83e352b1fb7", + "organizationName": "퓨처드라이브", + "courseId": "4eb01197-7605-4c3b-9a92-f9a3942050bd", + "week": 1, + "tagLabel": "MK-mini", + "title": "ROS2 & Simulation", + "duration": "1주", + "overview": "ROS2 통신 구조와 Gazebo 시뮬레이션 환경을 구성하고, LiDAR SLAM·위치추정·경로 계획·제어까지 NAV2 자율주행 파이프라인을 실습합니다.", + "deliverable": "NAV2 모듈 소스 변경 내역, SLAM 결과 맵, 목표 지점 주행 검증 화면 및 실행 로그를 제출합니다.", + "requiresSourceSubmission": true, + "isTeamProject": false, + "learningSteps": [ + { + "title": "ROS2 기초", + "concepts": [], + "videoUrl": "https://www.youtube.com/watch?v=gyskLlvX3oI&list=PLNWNEEf8BvG45noktLVI9N0SmD72BpmH7", + "description": "ROS Topic, Service, Action 통신과 TF 정의, ROS2 패키지 및 tree 구조를 실습합니다.", + "videoEnabled": true + }, + { + "title": "Sensor Processing", + "concepts": [], + "videoUrl": "", + "description": "LiDAR와 카메라 등 센서 데이터 처리 흐름과 Calibration 기초를 확인합니다.", + "videoEnabled": false + }, + { + "title": "Simulation 환경 구축 Part 1", + "concepts": [], + "videoUrl": "", + "description": "Gazebo 월드, 로봇 모델, 센서 토픽을 구성해 시뮬레이션 실습 환경을 만듭니다.", + "videoEnabled": false + }, + { + "title": "Simulation 환경 구축 Part 2", + "concepts": [], + "videoUrl": "", + "description": "시뮬레이션에서 활용할 수 있는 모빌리티 플랫폼과 실행 모듈 구성을 점검합니다.", + "videoEnabled": false + }, + { + "title": "LiDAR SLAM", + "concepts": [], + "videoUrl": "", + "description": "센서 데이터와 SLAM 알고리즘을 활용해 자율주행용 2D Map을 구축합니다.", + "videoEnabled": false + }, + { + "title": "LiDAR Localization", + "concepts": [], + "videoUrl": "", + "description": "구축한 Map과 실시간 LiDAR 데이터를 이용해 현재 위치를 추정합니다.", + "videoEnabled": false + }, + { + "title": "Parameter Tuning", + "concepts": [], + "videoUrl": "", + "description": "모듈 파라미터를 변경하고 결과를 비교해 알고리즘을 튜닝합니다.", + "videoEnabled": false + }, + { + "title": "[심화] Camera based SLAM", + "concepts": [], + "videoUrl": "", + "description": "카메라 기반 Map 구축과 위치인식의 입력·출력 구조를 분석합니다.", + "videoEnabled": false + }, + { + "title": "Occupancy Map", + "concepts": [], + "videoUrl": "", + "description": "장애물 인식을 위한 Occupancy Map과 costmap 반영 과정을 실습합니다.", + "videoEnabled": false + }, + { + "title": "Planning", + "concepts": [], + "videoUrl": "", + "description": "장애물 충돌 없이 목표 지점으로 이동하기 위한 전역·지역 경로 계획을 실습합니다.", + "videoEnabled": false + }, + { + "title": "Control", + "concepts": [], + "videoUrl": "", + "description": "생성한 경로를 추종하도록 속도 명령을 만들고 주행 결과를 검증합니다.", + "videoEnabled": false + }, + { + "title": "[심화] 딥러닝 기반 객체 인식", + "concepts": [], + "videoUrl": "", + "description": "딥러닝 기반 객체 인식 결과를 자율주행 데이터 흐름에 반영하는 방법을 학습합니다.", + "videoEnabled": false + } + ], + "topics": [ + "ROS2 기초", + "Sensor Processing", + "Simulation 환경 구축 Part 1", + "Simulation 환경 구축 Part 2", + "LiDAR SLAM", + "LiDAR Localization", + "Parameter Tuning", + "[심화] Camera based SLAM", + "Occupancy Map", + "Planning", + "Control", + "[심화] 딥러닝 기반 객체 인식" + ], + "topicDetails": [ + "ROS Topic, Service, Action 통신과 TF 정의, ROS2 패키지 및 tree 구조를 실습합니다.", + "LiDAR와 카메라 등 센서 데이터 처리 흐름과 Calibration 기초를 확인합니다.", + "Gazebo 월드, 로봇 모델, 센서 토픽을 구성해 시뮬레이션 실습 환경을 만듭니다.", + "시뮬레이션에서 활용할 수 있는 모빌리티 플랫폼과 실행 모듈 구성을 점검합니다.", + "센서 데이터와 SLAM 알고리즘을 활용해 자율주행용 2D Map을 구축합니다.", + "구축한 Map과 실시간 LiDAR 데이터를 이용해 현재 위치를 추정합니다.", + "모듈 파라미터를 변경하고 결과를 비교해 알고리즘을 튜닝합니다.", + "카메라 기반 Map 구축과 위치인식의 입력·출력 구조를 분석합니다.", + "장애물 인식을 위한 Occupancy Map과 costmap 반영 과정을 실습합니다.", + "장애물 충돌 없이 목표 지점으로 이동하기 위한 전역·지역 경로 계획을 실습합니다.", + "생성한 경로를 추종하도록 속도 명령을 만들고 주행 결과를 검증합니다.", + "딥러닝 기반 객체 인식 결과를 자율주행 데이터 흐름에 반영하는 방법을 학습합니다." + ], + "topicVideoUrls": [ + "https://www.youtube.com/watch?v=gyskLlvX3oI&list=PLNWNEEf8BvG45noktLVI9N0SmD72BpmH7", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "practiceContents": [ + { + "title": "ROS2와 Gazebo 실행 환경", + "description": "Topic, Service, Action, TF를 확인하고 TurtleBot3 Gazebo 환경을 실행합니다." + }, + { + "title": "LiDAR SLAM과 Localization", + "description": "맵을 생성·저장하고 저장된 맵에서 AMCL 기반 위치추정을 검증합니다." + }, + { + "title": "경로 계획과 제어", + "description": "목표 지점을 설정하고 장애물 회피, 경로 계획, 제어 명령을 비교합니다." + } + ], + "disabledModuleIds": [], + "createdAt": "2026-08-07T00:22:12.058Z", + "updatedAt": "2026-09-10T01:08:00.565Z" + } + ] + } +] \ No newline at end of file diff --git a/backups/learning-steps-before-1790058657635.json b/backups/learning-steps-before-1790058657635.json new file mode 100644 index 0000000..3d4f124 --- /dev/null +++ b/backups/learning-steps-before-1790058657635.json @@ -0,0 +1,8050 @@ +[ + { + "id": "26d46589-31a5-4d94-b0e0-385a12c41721", + "slug": "nav2-autonomy-f445f63c-efa", + "title": "2026 교육원 테스트", + "subtitle": "ROS2, 시뮬레이션, SLAM부터 경로 계획과 제어까지", + "description": "ROS2와 NAV2 기반 시뮬레이션 및 플랫폼 실습을 통해 자율주행 시스템의 핵심 흐름을 학습하고 팀 프로젝트로 검증합니다.", + "organizationName": "영남대학교", + "teacherId": "f445f63c-efa8-4b65-8f2c-a20ee3d390fa", + "isActive": true, + "createdAt": "2026-09-09T06:01:24.848Z", + "updatedAt": "2026-09-09T06:01:24.848Z", + "weeks": [ + { + "id": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "courseId": "26d46589-31a5-4d94-b0e0-385a12c41721", + "week": 1, + "title": "ROS2 & Simulation", + "tags": [ + "MK-mini", + "진행중" + ], + "progress": 0, + "state": "current", + "duration": "1주", + "github": "https://github.com/ros-navigation/navigation2", + "overview": "ROS2 통신 구조와 Gazebo 시뮬레이션 환경을 구성하고, LiDAR SLAM·위치추정·경로 계획·제어까지 NAV2 자율주행 파이프라인을 실습합니다.", + "deliverable": "NAV2 모듈 소스 변경 내역, SLAM 결과 맵, 목표 지점 주행 검증 화면 및 실행 로그를 제출합니다.", + "requiresSourceSubmission": true, + "createdAt": "2026-09-09T06:01:24.851Z", + "updatedAt": "2026-09-09T06:01:24.851Z", + "topics": [ + { + "id": "af09181a-bcc6-4019-a94b-e66f6ef97184", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "title": "ROS2 기초", + "detail": "ROS Topic, Service, Action 통신과 TF 정의, ROS2 패키지 및 tree 구조를 실습합니다.", + "sortOrder": 1 + }, + { + "id": "1718a662-50a4-4ebd-b24d-ce01a84b38b9", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "title": "Sensor Processing", + "detail": "LiDAR와 카메라 등 센서 데이터 처리 흐름과 Calibration 기초를 확인합니다.", + "sortOrder": 2 + }, + { + "id": "d6a86c4a-97b8-4977-bc01-f18c33cdc812", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "title": "Simulation 환경 구축 Part 1", + "detail": "Gazebo 월드, 로봇 모델, 센서 토픽을 구성해 시뮬레이션 실습 환경을 만듭니다.", + "sortOrder": 3 + }, + { + "id": "ff4eba57-a9f4-4cb1-89d9-872762743071", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "title": "Simulation 환경 구축 Part 2", + "detail": "시뮬레이션에서 활용할 수 있는 모빌리티 플랫폼과 실행 모듈 구성을 점검합니다.", + "sortOrder": 4 + }, + { + "id": "43c31335-8f1f-463c-b3be-0ce8bb564beb", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "title": "LiDAR SLAM", + "detail": "센서 데이터와 SLAM 알고리즘을 활용해 자율주행용 2D Map을 구축합니다.", + "sortOrder": 5 + }, + { + "id": "24a91abd-3722-41db-9b7d-508b2de2b17d", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "title": "LiDAR Localization", + "detail": "구축한 Map과 실시간 LiDAR 데이터를 이용해 현재 위치를 추정합니다.", + "sortOrder": 6 + }, + { + "id": "289bab53-a270-4cf1-bdc2-38065c471f05", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "title": "Parameter Tuning", + "detail": "모듈 파라미터를 변경하고 결과를 비교해 알고리즘을 튜닝합니다.", + "sortOrder": 7 + }, + { + "id": "8e60c6c6-b47f-4eb6-bd62-5db8987be3b7", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "title": "[심화] Camera based SLAM", + "detail": "카메라 기반 Map 구축과 위치인식의 입력·출력 구조를 분석합니다.", + "sortOrder": 8 + }, + { + "id": "e6f6231c-566b-4847-83a1-26c09c3ca840", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "title": "Occupancy Map", + "detail": "장애물 인식을 위한 Occupancy Map과 costmap 반영 과정을 실습합니다.", + "sortOrder": 9 + }, + { + "id": "63fc9d04-25f6-423a-9f16-cf453ed31bbc", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "title": "Planning", + "detail": "장애물 충돌 없이 목표 지점으로 이동하기 위한 전역·지역 경로 계획을 실습합니다.", + "sortOrder": 10 + }, + { + "id": "bcc9bf55-9290-488a-8295-3c9f71f74530", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "title": "Control", + "detail": "생성한 경로를 추종하도록 속도 명령을 만들고 주행 결과를 검증합니다.", + "sortOrder": 11 + }, + { + "id": "753524b6-ac4b-4b73-b6e0-4275146ae53e", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "title": "[심화] 딥러닝 기반 객체 인식", + "detail": "딥러닝 기반 객체 인식 결과를 자율주행 데이터 흐름에 반영하는 방법을 학습합니다.", + "sortOrder": 12 + } + ], + "modules": [ + { + "id": "018e8115-24b1-4780-9f1b-be256c22e8ce", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "sortOrder": 13, + "category": "System", + "name": "NAV2-Yahboom-Agent", + "folderName": "[lms-nav2-yahboom-agent]yahboom_agent_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-agent.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-agent/1.0.0/prebuilt/arm64/ec2b2c4578fc71b9/lms-nav2-yahboom-agent-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-agent-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "ec2b2c4578fc71b95c720dcacca5e7c7c5d08400fc80ef21a16097d31869cf9d" + } + ], + "defaultParameters": [ + "serial_device:=/dev/ttyUSB0", + "baudrate:=921600" + ], + "dockerImage": "future-nav2:humble-yahboom-agent", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "23fc9b10-0c1f-4d44-b7cf-ff80ab8e6bc9", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "sortOrder": 18, + "category": "Planning", + "name": "NAV2-Yahboom-Planning", + "folderName": "[lms-nav2-yahboom-planning]yahboom_planning_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-planning.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-planning/1.0.0/prebuilt/arm64/050f4ed4acba795a/lms-nav2-yahboom-planning-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-planning-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "050f4ed4acba795affec8306b7eef116e9e86fd0f42e492da27c7fc624dc8570" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "2b97ac9b-b036-4dd3-ac8c-7eec8352c142", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "sortOrder": 11, + "category": "Vehicle", + "name": "NAV2-MKMini", + "folderName": "[lms-nav2-mkmini]nav2-mkmini_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-mkmini.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-mkmini/1.0.0/prebuilt/amd64/lms-nav2-mkmini-build-install-amd64.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-mkmini-build-install-amd64.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "6094d2aa5188a28153452aec08e28870984b36c1bc0c06fec8091901f6d26856" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "platform:=mkmini", + "level:=2d" + ], + "dockerImage": "future-nav2:humble-jetson_orin", + "createdAt": "2026-09-09T06:01:24.880Z", + "updatedAt": "2026-09-09T06:01:24.880Z" + }, + { + "id": "317f2de8-439b-41b7-ab5e-9e24e701384f", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "sortOrder": 12, + "category": "Gui", + "name": "NAV2-Rviz2", + "folderName": "[lms-nav2-gazebo-gui]nav2-rviz2_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-gui.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-gui/1.0.0/prebuilt/latest/lms-nav2-gazebo-gui-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-gui-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2a816b08d9f39057a96641ce7ace341ce409f77e5043abe074e2e21ecaa871ca" + } + ], + "defaultParameters": [ + "rviz_config:=nav2" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-09T06:01:24.882Z", + "updatedAt": "2026-09-09T06:01:24.882Z" + }, + { + "id": "360c69d8-fd10-4072-a13b-01922dfa0d8d", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "sortOrder": 19, + "category": "Control", + "name": "NAV2-Yahboom-Control", + "folderName": "[lms-nav2-yahboom-control]yahboom_control_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-control.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-control/1.0.0/prebuilt/arm64/be7147024d890249/lms-nav2-yahboom-control-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-control-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "be7147024d89024915f1481a47a0909ea1d06196ef9e9797f260739999e09b3f" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "3ca72ae8-97d9-487a-b766-a586e11a048f", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "sortOrder": 6, + "category": "Planning", + "name": "NAV2-Planning", + "folderName": "[lms-nav2-gazebo-planning]nav2-planning_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-planning.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-planning/1.0.0/prebuilt/amd64/d1c51b0f211e1420/lms-nav2-gazebo-planning-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-planning-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d1c51b0f211e14208882947dd3bf642dd8ce997f54b37dfc0a4c8d66bd84d608" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-09T06:01:24.871Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "5fe16dc8-d0b3-4f60-8efb-959855f38a26", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "sortOrder": 7, + "category": "Simulator", + "name": "NAV2-Gazebo", + "folderName": "[lms-nav2-gazebo-simulator]nav2-simulator_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-simulator.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-simulator/1.0.0/prebuilt/amd64/2c97e7672eaec755/lms-nav2-gazebo-simulator-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-simulator-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2c97e7672eaec755eb300442a77b18bbcbaf6e0d305257dc9974724049756756" + } + ], + "defaultParameters": [ + "gui:=false", + "platform:=turtlebot3" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-09T06:01:24.873Z", + "updatedAt": "2026-09-09T06:01:24.873Z" + }, + { + "id": "6458e955-6c31-4528-9683-455a42e6a78c", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "sortOrder": 10, + "category": "Vehicle", + "name": "NAV2-TurtleBot3Burger", + "folderName": "[lms-nav2-gazebo-vehicle]nav2-vehicle_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-vehicle.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-vehicle/1.0.0/prebuilt/latest/lms-nav2-gazebo-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "42e8179172c178978e5ae5d48e189164f6b8a5030fdaa0eba497ca86a97e96bb" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "platform:=turtlebot3", + "level:=2d" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-09T06:01:24.879Z", + "updatedAt": "2026-09-09T06:01:24.879Z" + }, + { + "id": "740cc0db-bb0b-47e0-85ce-9fcf3a7b598b", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "sortOrder": 20, + "category": "Perception", + "name": "NAV2-Yahboom-Camera", + "folderName": "[lms-nav2-yahboom-camera]yahboom_camera_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-camera.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-camera/1.0.0/prebuilt/arm64/b950a71d5babcdb3/lms-nav2-yahboom-camera-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-camera-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "b950a71d5babcdb37e46c7674fb80d0ae8c076e7d7c1186042b1b1f6e7ee2d04" + } + ], + "defaultParameters": [ + "video_device:=/dev/video0" + ], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "90d77f3b-cb9c-4582-a3a6-8f80299b35e2", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "sortOrder": 14, + "category": "Vehicle", + "name": "NAV2-Yahboom", + "folderName": "[lms-nav2-yahboom-vehicle]yahboom_vehicle_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-vehicle.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-vehicle/1.0.0/prebuilt/amd64/d54368061d520794/lms-nav2-yahboom-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d54368061d52079489a8d686461e6672ebb84ca0f531fb71f835717b3f2a031f" + }, + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-vehicle/1.0.0/prebuilt/arm64/f409c0b61ca9497d/lms-nav2-yahboom-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "f409c0b61ca9497d4cfd1c2af9f4e137d9316364cab664bb908818f6ecab8331" + } + ], + "defaultParameters": [ + "sim_mode:=false" + ], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:55:16.092Z" + }, + { + "id": "af12ada0-ac1e-44dd-89d3-86a89754acc4", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "sortOrder": 1, + "category": "Control", + "name": "NAV2-Control", + "folderName": "[lms-nav2-gazebo-control]nav2-control_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-control.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-control/1.0.0/prebuilt/amd64/0ab85a58f37a922b/lms-nav2-gazebo-control-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-control-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "0ab85a58f37a922b493ce21676573e3a8fd339f99a74cce9c4cba58aff9b1e35" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=turtlebot3" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-09T06:01:24.861Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "b431598e-5541-4272-a953-0951be68e8e2", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "sortOrder": 8, + "category": "Localization", + "name": "NAV2-SLAM", + "folderName": "[lms-nav2-gazebo-slam]nav2-slam_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-slam.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-slam/1.0.0/prebuilt/amd64/e5aa22340e275d70/lms-nav2-gazebo-slam-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-slam-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "e5aa22340e275d7063e5cd96f974620354760082d22e80b9a58205085d88e337" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-09T06:01:24.875Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "bc89fbbc-7e44-4228-8f50-70b6800bbf45", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "sortOrder": 2, + "category": "Localization", + "name": "NAV2-Localization", + "folderName": "[lms-nav2-gazebo-localization]nav2-localization_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-localization.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-localization/1.0.0/prebuilt/latest/lms-nav2-gazebo-localization-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-localization-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "44c8d50205f001a196870d03f44d435582b96c51eb4445e50cc8db6203b2c0c9" + } + ], + "defaultParameters": [ + "localization_mode:=amcl" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-09T06:01:24.863Z", + "updatedAt": "2026-09-09T06:01:24.863Z" + }, + { + "id": "c20541b8-cdb1-4295-b9a3-6b10bb43ae07", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "sortOrder": 4, + "category": "Perception", + "name": "NAV2-Perception", + "folderName": "[lms-nav2-gazebo-perception]nav2-perception_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-perception.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-perception/1.0.0/prebuilt/amd64/d18d59ac77130be1/lms-nav2-gazebo-perception-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-perception-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d18d59ac77130be1da9d16cb0716fbf4b2837132de1765726200b3a57217034e" + } + ], + "defaultParameters": [ + "sim_mode:=true" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-09T06:01:24.867Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "c6c605cf-d72e-4db5-84a7-ad098a74cb79", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "sortOrder": 9, + "category": "Localization", + "name": "NAV2-SLAM3D", + "folderName": "[lms-nav2-gazebo-slam3d]nav2-slam3d_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-slam3D.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-slam3d/1.0.0/prebuilt/latest/lms-nav2-gazebo-slam3d-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-slam3d-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "ed59e1e6b5e816403475c44672247cf8747c14edcbfcf7f1939d2b2de1d3263d" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-09T06:01:24.877Z", + "updatedAt": "2026-09-09T06:01:24.877Z" + }, + { + "id": "c95db4b0-55b3-497e-a7ae-a752bbc9eafa", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "sortOrder": 17, + "category": "Localization", + "name": "NAV2-Yahboom-Localization", + "folderName": "[lms-nav2-yahboom-localization]yahboom_localization_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-localization.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-localization/1.0.0/prebuilt/arm64/d6534d48841a751c/lms-nav2-yahboom-localization-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-localization-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "d6534d48841a751cb2e21fa73785df61fb81815b406c9c4152c9cbfd0ae59e48" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "d4fa2ab4-05d6-4242-a925-5b389b784f22", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "sortOrder": 16, + "category": "Map", + "name": "NAV2-Yahboom-Map", + "folderName": "[lms-nav2-yahboom-map]yahboom_map_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-map.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-map/1.0.0/prebuilt/arm64/111981b9ab460ce4/lms-nav2-yahboom-map-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-map-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "111981b9ab460ce450334e5c367e97b7e757ef55d84330ca030b096d4a9c4792" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "de678e31-228a-442d-9e98-e8e09c3a3238", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "sortOrder": 5, + "category": "Perception", + "name": "NAV2-Perception3D", + "folderName": "[lms-nav2-gazebo-perception3d]nav2-perception3d_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-perception3D.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-perception3d/1.0.0/prebuilt/latest/lms-nav2-gazebo-perception3d-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-perception3d-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "bab9f7383f44950b6cf6cd8f97b4ae2d3ba61571d6b37c10b24922cc0348a7cc" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-09T06:01:24.869Z", + "updatedAt": "2026-09-09T06:01:24.869Z" + }, + { + "id": "fab88d49-946d-43dd-9431-d294c7772ded", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "sortOrder": 3, + "category": "Map", + "name": "NAV2-Map", + "folderName": "[lms-nav2-gazebo-map]nav2-map_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-map.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-map/1.0.0/prebuilt/latest/lms-nav2-gazebo-map-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-map-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "f409ce54c40aeeed8cf3fc06251c2e321887b3ec5f5827dfb74897a62780582f" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-09T06:01:24.865Z", + "updatedAt": "2026-09-09T06:01:24.865Z" + }, + { + "id": "fe081ac8-0ce0-4109-81e3-b4d504c86806", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "sortOrder": 15, + "category": "Localization", + "name": "NAV2-Yahboom-Slam", + "folderName": "[lms-nav2-yahboom-slam]yahboom_slam_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-slam.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-slam/1.0.0/prebuilt/arm64/f6444fe604f50ee0/lms-nav2-yahboom-slam-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-slam-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "f6444fe604f50ee00831fc7db121bbebfea6be920b55a498ddc54fc317093c77" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + } + ], + "practices": [ + { + "id": "a0c1514c-87c6-4750-9c87-3f6574bed587", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "title": "ROS2와 Gazebo 실행 환경", + "description": "Topic, Service, Action, TF를 확인하고 TurtleBot3 Gazebo 환경을 실행합니다.", + "sortOrder": 1 + }, + { + "id": "5309811a-6379-4ea1-ae81-6b5bb24b8082", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "title": "LiDAR SLAM과 Localization", + "description": "맵을 생성·저장하고 저장된 맵에서 AMCL 기반 위치추정을 검증합니다.", + "sortOrder": 2 + }, + { + "id": "97829360-137f-4600-9218-050d7ac68085", + "weekId": "2a4e0f31-7816-482d-ba0e-9f363146af7c", + "title": "경로 계획과 제어", + "description": "목표 지점을 설정하고 장애물 회피, 경로 계획, 제어 명령을 비교합니다.", + "sortOrder": 3 + } + ] + }, + { + "id": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "courseId": "26d46589-31a5-4d94-b0e0-385a12c41721", + "week": 2, + "title": "Autonomy Studio 팀 프로젝트", + "tags": [ + "MK-mini", + "진행예정" + ], + "progress": 0, + "state": "locked", + "duration": "1주", + "github": "https://github.com/ros-navigation/navigation2", + "overview": "3~4인 팀으로 자율주행 알고리즘이 필요한 문제 상황을 정의하고, 센서 구성과 NAV2 모듈을 조합해 시뮬레이션과 플랫폼에서 검증합니다.", + "deliverable": "팀 프로젝트 소스, 시스템 구성도, 시뮬레이션 및 플랫폼 주행 검증 결과, 발표 자료를 제출합니다.", + "requiresSourceSubmission": true, + "createdAt": "2026-09-09T06:01:24.884Z", + "updatedAt": "2026-09-09T06:01:24.884Z", + "topics": [ + { + "id": "6e5a6ff2-9a5b-4304-98a4-a90699ae75b0", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "title": "프로젝트 주제와 역할 분담", + "detail": "팀별 자율주행 문제 상황과 목표, 역할, 검증 기준을 정의합니다.", + "sortOrder": 1 + }, + { + "id": "0c87793b-d0fa-4cf8-b19c-10fab048a78d", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "title": "센서·모듈 구성 설계", + "detail": "센서 입력과 NAV2 모듈 조합, ROS 토픽 및 실행 순서를 설계합니다.", + "sortOrder": 2 + }, + { + "id": "78391467-8207-4cdf-96b5-9aa4bf591f2c", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "title": "알고리즘 구현과 튜닝", + "detail": "SLAM, Localization, Planning, Control 파라미터를 수정하고 성능을 비교합니다.", + "sortOrder": 3 + }, + { + "id": "cb6b3c70-ac65-4545-a971-2322792e0f5a", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "title": "시뮬레이션·플랫폼 검증", + "detail": "Gazebo 시뮬레이션과 실제 플랫폼에서 주행 시나리오를 검증합니다.", + "sortOrder": 4 + }, + { + "id": "3b024611-553d-415e-bee0-e9de07845204", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "title": "결과 제출과 발표", + "detail": "소스, 실행 로그, 검증 결과를 정리해 팀 프로젝트 결과를 제출하고 발표합니다.", + "sortOrder": 5 + } + ], + "modules": [ + { + "id": "199b037e-86e2-427b-83e3-46da8c6db34a", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "sortOrder": 19, + "category": "Control", + "name": "NAV2-Yahboom-Control", + "folderName": "[lms-nav2-yahboom-control]yahboom_control_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-control.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-control/1.0.0/prebuilt/arm64/be7147024d890249/lms-nav2-yahboom-control-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-control-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "be7147024d89024915f1481a47a0909ea1d06196ef9e9797f260739999e09b3f" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "20cb031f-195c-4972-a611-bce4eebe0341", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "sortOrder": 4, + "category": "Perception", + "name": "NAV2-Perception", + "folderName": "[lms-nav2-gazebo-perception]nav2-perception_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-perception.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-perception/1.0.0/prebuilt/amd64/d18d59ac77130be1/lms-nav2-gazebo-perception-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-perception-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d18d59ac77130be1da9d16cb0716fbf4b2837132de1765726200b3a57217034e" + } + ], + "defaultParameters": [ + "sim_mode:=true" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-09T06:01:24.929Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "24649bf5-6216-49b9-bd7b-79b454bca31a", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "sortOrder": 13, + "category": "System", + "name": "NAV2-Yahboom-Agent", + "folderName": "[lms-nav2-yahboom-agent]yahboom_agent_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-agent.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-agent/1.0.0/prebuilt/arm64/ec2b2c4578fc71b9/lms-nav2-yahboom-agent-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-agent-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "ec2b2c4578fc71b95c720dcacca5e7c7c5d08400fc80ef21a16097d31869cf9d" + } + ], + "defaultParameters": [ + "serial_device:=/dev/ttyUSB0", + "baudrate:=921600" + ], + "dockerImage": "future-nav2:humble-yahboom-agent", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "378c8143-b855-414f-8abe-308d58a5d77a", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "sortOrder": 7, + "category": "Simulator", + "name": "NAV2-Gazebo", + "folderName": "[lms-nav2-gazebo-simulator]nav2-simulator_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-simulator.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-simulator/1.0.0/prebuilt/amd64/2c97e7672eaec755/lms-nav2-gazebo-simulator-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-simulator-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2c97e7672eaec755eb300442a77b18bbcbaf6e0d305257dc9974724049756756" + } + ], + "defaultParameters": [ + "gui:=false", + "platform:=turtlebot3" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-09T06:01:24.933Z", + "updatedAt": "2026-09-09T06:01:24.933Z" + }, + { + "id": "3bafb29e-3dfa-488a-a7f8-334af22c8721", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "sortOrder": 2, + "category": "Localization", + "name": "NAV2-Localization", + "folderName": "[lms-nav2-gazebo-localization]nav2-localization_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-localization.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-localization/1.0.0/prebuilt/latest/lms-nav2-gazebo-localization-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-localization-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "44c8d50205f001a196870d03f44d435582b96c51eb4445e50cc8db6203b2c0c9" + } + ], + "defaultParameters": [ + "localization_mode:=amcl" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-09T06:01:24.926Z", + "updatedAt": "2026-09-09T06:01:24.926Z" + }, + { + "id": "3c64c5e3-77ff-4d34-b2b5-69a2c7d28943", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "sortOrder": 11, + "category": "Vehicle", + "name": "NAV2-MKMini", + "folderName": "[lms-nav2-mkmini]nav2-mkmini_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-mkmini.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-mkmini/1.0.0/prebuilt/amd64/lms-nav2-mkmini-build-install-amd64.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-mkmini-build-install-amd64.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "6094d2aa5188a28153452aec08e28870984b36c1bc0c06fec8091901f6d26856" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "platform:=mkmini", + "level:=2d" + ], + "dockerImage": "future-nav2:humble-jetson_orin", + "createdAt": "2026-09-09T06:01:24.940Z", + "updatedAt": "2026-09-09T06:01:24.940Z" + }, + { + "id": "5768b8f1-06ea-423b-8cc6-e7e22b004172", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "sortOrder": 3, + "category": "Map", + "name": "NAV2-Map", + "folderName": "[lms-nav2-gazebo-map]nav2-map_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-map.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-map/1.0.0/prebuilt/latest/lms-nav2-gazebo-map-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-map-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "f409ce54c40aeeed8cf3fc06251c2e321887b3ec5f5827dfb74897a62780582f" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-09T06:01:24.927Z", + "updatedAt": "2026-09-09T06:01:24.927Z" + }, + { + "id": "5a42a1ae-e15c-436a-bde3-61b433eb672a", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "sortOrder": 1, + "category": "Control", + "name": "NAV2-Control", + "folderName": "[lms-nav2-gazebo-control]nav2-control_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-control.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-control/1.0.0/prebuilt/amd64/0ab85a58f37a922b/lms-nav2-gazebo-control-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-control-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "0ab85a58f37a922b493ce21676573e3a8fd339f99a74cce9c4cba58aff9b1e35" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=turtlebot3" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-09T06:01:24.924Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "5d73fe3c-27a3-42eb-819a-6257bfac2f2f", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "sortOrder": 17, + "category": "Localization", + "name": "NAV2-Yahboom-Localization", + "folderName": "[lms-nav2-yahboom-localization]yahboom_localization_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-localization.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-localization/1.0.0/prebuilt/arm64/d6534d48841a751c/lms-nav2-yahboom-localization-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-localization-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "d6534d48841a751cb2e21fa73785df61fb81815b406c9c4152c9cbfd0ae59e48" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "74cfb0a2-1de5-49cd-b855-b30f5ba4e29b", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "sortOrder": 15, + "category": "Localization", + "name": "NAV2-Yahboom-Slam", + "folderName": "[lms-nav2-yahboom-slam]yahboom_slam_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-slam.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-slam/1.0.0/prebuilt/arm64/f6444fe604f50ee0/lms-nav2-yahboom-slam-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-slam-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "f6444fe604f50ee00831fc7db121bbebfea6be920b55a498ddc54fc317093c77" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "77a1da7d-7d9b-4aba-a4ca-7ba9dae05fd1", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "sortOrder": 8, + "category": "Localization", + "name": "NAV2-SLAM", + "folderName": "[lms-nav2-gazebo-slam]nav2-slam_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-slam.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-slam/1.0.0/prebuilt/amd64/e5aa22340e275d70/lms-nav2-gazebo-slam-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-slam-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "e5aa22340e275d7063e5cd96f974620354760082d22e80b9a58205085d88e337" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-09T06:01:24.934Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "7c553352-825a-42be-a6e2-1ddaa82ea043", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "sortOrder": 10, + "category": "Vehicle", + "name": "NAV2-TurtleBot3Burger", + "folderName": "[lms-nav2-gazebo-vehicle]nav2-vehicle_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-vehicle.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-vehicle/1.0.0/prebuilt/latest/lms-nav2-gazebo-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "42e8179172c178978e5ae5d48e189164f6b8a5030fdaa0eba497ca86a97e96bb" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "platform:=turtlebot3", + "level:=2d" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-09T06:01:24.938Z", + "updatedAt": "2026-09-09T06:01:24.938Z" + }, + { + "id": "8b4e870f-4054-4224-ba8c-4ef963b737f8", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "sortOrder": 9, + "category": "Localization", + "name": "NAV2-SLAM3D", + "folderName": "[lms-nav2-gazebo-slam3d]nav2-slam3d_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-slam3D.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-slam3d/1.0.0/prebuilt/latest/lms-nav2-gazebo-slam3d-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-slam3d-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "ed59e1e6b5e816403475c44672247cf8747c14edcbfcf7f1939d2b2de1d3263d" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-09T06:01:24.936Z", + "updatedAt": "2026-09-09T06:01:24.936Z" + }, + { + "id": "8cfd8e39-4489-40c1-8185-3c16c56ec769", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "sortOrder": 6, + "category": "Planning", + "name": "NAV2-Planning", + "folderName": "[lms-nav2-gazebo-planning]nav2-planning_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-planning.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-planning/1.0.0/prebuilt/amd64/d1c51b0f211e1420/lms-nav2-gazebo-planning-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-planning-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d1c51b0f211e14208882947dd3bf642dd8ce997f54b37dfc0a4c8d66bd84d608" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-09T06:01:24.932Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "9fad4a9a-29d5-4718-9345-7d72bc25c6d7", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "sortOrder": 14, + "category": "Vehicle", + "name": "NAV2-Yahboom", + "folderName": "[lms-nav2-yahboom-vehicle]yahboom_vehicle_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-vehicle.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-vehicle/1.0.0/prebuilt/amd64/d54368061d520794/lms-nav2-yahboom-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d54368061d52079489a8d686461e6672ebb84ca0f531fb71f835717b3f2a031f" + }, + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-vehicle/1.0.0/prebuilt/arm64/f409c0b61ca9497d/lms-nav2-yahboom-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "f409c0b61ca9497d4cfd1c2af9f4e137d9316364cab664bb908818f6ecab8331" + } + ], + "defaultParameters": [ + "sim_mode:=false" + ], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:55:16.092Z" + }, + { + "id": "b42c682a-2a82-4e01-be5e-16871cddc76e", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "sortOrder": 5, + "category": "Perception", + "name": "NAV2-Perception3D", + "folderName": "[lms-nav2-gazebo-perception3d]nav2-perception3d_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-perception3D.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-perception3d/1.0.0/prebuilt/latest/lms-nav2-gazebo-perception3d-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-perception3d-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "bab9f7383f44950b6cf6cd8f97b4ae2d3ba61571d6b37c10b24922cc0348a7cc" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-09T06:01:24.930Z", + "updatedAt": "2026-09-09T06:01:24.930Z" + }, + { + "id": "c3180f5e-ce78-4f56-be6c-dff004d92e5c", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "sortOrder": 16, + "category": "Map", + "name": "NAV2-Yahboom-Map", + "folderName": "[lms-nav2-yahboom-map]yahboom_map_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-map.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-map/1.0.0/prebuilt/arm64/111981b9ab460ce4/lms-nav2-yahboom-map-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-map-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "111981b9ab460ce450334e5c367e97b7e757ef55d84330ca030b096d4a9c4792" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "c5e38be3-a6ce-40d3-ad0f-4aea462c21d6", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "sortOrder": 20, + "category": "Perception", + "name": "NAV2-Yahboom-Camera", + "folderName": "[lms-nav2-yahboom-camera]yahboom_camera_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-camera.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-camera/1.0.0/prebuilt/arm64/b950a71d5babcdb3/lms-nav2-yahboom-camera-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-camera-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "b950a71d5babcdb37e46c7674fb80d0ae8c076e7d7c1186042b1b1f6e7ee2d04" + } + ], + "defaultParameters": [ + "video_device:=/dev/video0" + ], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "f7dd3726-8ba3-456d-8ed1-81111435b947", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "sortOrder": 18, + "category": "Planning", + "name": "NAV2-Yahboom-Planning", + "folderName": "[lms-nav2-yahboom-planning]yahboom_planning_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-planning.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-planning/1.0.0/prebuilt/arm64/050f4ed4acba795a/lms-nav2-yahboom-planning-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-planning-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "050f4ed4acba795affec8306b7eef116e9e86fd0f42e492da27c7fc624dc8570" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "f96c1462-1a6c-4be6-9700-ba5e8dfceb59", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "sortOrder": 12, + "category": "Gui", + "name": "NAV2-Rviz2", + "folderName": "[lms-nav2-gazebo-gui]nav2-rviz2_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-gui.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-gui/1.0.0/prebuilt/latest/lms-nav2-gazebo-gui-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-gui-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2a816b08d9f39057a96641ce7ace341ce409f77e5043abe074e2e21ecaa871ca" + } + ], + "defaultParameters": [ + "rviz_config:=nav2" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-09T06:01:24.941Z", + "updatedAt": "2026-09-09T06:01:24.941Z" + } + ], + "practices": [ + { + "id": "f15db36a-3042-4546-ae10-bcee5c5701d6", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "title": "팀 자율주행 시나리오 구현", + "description": "팀별 시나리오에 맞춰 NAV2 모듈을 구성하고 소스를 수정합니다.", + "sortOrder": 1 + }, + { + "id": "b614ae40-5cf3-4ff8-bada-753be9c4d44c", + "weekId": "09f28f7c-088f-4aa1-a36f-0510c5cd67c5", + "title": "통합 주행 검증", + "description": "시뮬레이션과 플랫폼에서 재현 가능한 주행 결과를 확보합니다.", + "sortOrder": 2 + } + ] + }, + { + "id": "f0974b58-986b-41bd-968b-7a3e56fe3e35", + "courseId": "26d46589-31a5-4d94-b0e0-385a12c41721", + "week": 3, + "title": "원격 개발", + "tags": [ + "MK-mini", + "진행예정" + ], + "progress": 0, + "state": "locked", + "duration": "1주", + "github": "https://github.com/ros-navigation/navigation2", + "overview": "원거리 MK-mini 플랫폼을 연결하고 원격으로 코드를 편집·빌드·실행합니다. 로컬 MK-mini 시뮬레이션과 실차에서 SLAM 및 자율주행을 검증합니다.", + "deliverable": "SLAM 저장 맵, 자율주행 검증 결과, 원격 개발 소스 변경 내역 및 실행 로그를 제출합니다.", + "requiresSourceSubmission": true, + "createdAt": "2026-09-22T06:11:52.660Z", + "updatedAt": "2026-09-22T06:11:52.660Z", + "topics": [ + { + "id": "0842186d-789d-457d-be88-019c2b22575d", + "weekId": "f0974b58-986b-41bd-968b-7a3e56fe3e35", + "title": "SLAM", + "detail": "원거리 MK-mini 플랫폼에 연결하여 모듈 소스와 파라미터를 수정하고, 센서 토픽을 확인하며 SLAM 맵을 생성·저장합니다. 로컬 MK-mini 시뮬레이션에서 먼저 검증합니다.", + "sortOrder": 1 + }, + { + "id": "fdfa8a65-da0d-485c-a0a5-560396c99e80", + "weekId": "f0974b58-986b-41bd-968b-7a3e56fe3e35", + "title": "자율주행", + "detail": "저장한 맵으로 위치추정·경로 계획·제어 모듈을 구성하고 목표 지점 주행을 검증합니다. 원격 코드 편집과 빌드, 실행 로그 분석 및 파라미터 튜닝을 실습합니다.", + "sortOrder": 2 + } + ], + "modules": [ + { + "id": "0447e787-64da-4363-9ba0-3f4131618162", + "weekId": "f0974b58-986b-41bd-968b-7a3e56fe3e35", + "sortOrder": 8, + "category": "Localization", + "name": "NAV2-SLAM", + "folderName": "[lms-nav2-gazebo-slam]nav2-slam_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-slam.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-slam/1.0.0/prebuilt/amd64/e5aa22340e275d70/lms-nav2-gazebo-slam-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-slam-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "e5aa22340e275d7063e5cd96f974620354760082d22e80b9a58205085d88e337" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T06:11:52.922Z", + "updatedAt": "2026-09-22T06:11:52.922Z" + }, + { + "id": "0c78ec6f-0cb4-4682-8045-583973d60c98", + "weekId": "f0974b58-986b-41bd-968b-7a3e56fe3e35", + "sortOrder": 1, + "category": "Control", + "name": "NAV2-Control", + "folderName": "[lms-nav2-gazebo-control]nav2-control_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-control.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-control/1.0.0/prebuilt/amd64/0ab85a58f37a922b/lms-nav2-gazebo-control-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-control-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "0ab85a58f37a922b493ce21676573e3a8fd339f99a74cce9c4cba58aff9b1e35" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T06:11:52.792Z", + "updatedAt": "2026-09-22T06:11:52.792Z" + }, + { + "id": "100110a7-6619-4431-b323-4838628c8fce", + "weekId": "f0974b58-986b-41bd-968b-7a3e56fe3e35", + "sortOrder": 5, + "category": "Perception", + "name": "NAV2-Perception3D", + "folderName": "[lms-nav2-gazebo-perception3d]nav2-perception3d_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-perception3D.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-perception3d/1.0.0/prebuilt/latest/lms-nav2-gazebo-perception3d-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-perception3d-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "bab9f7383f44950b6cf6cd8f97b4ae2d3ba61571d6b37c10b24922cc0348a7cc" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T06:11:52.874Z", + "updatedAt": "2026-09-22T06:11:52.874Z" + }, + { + "id": "3c134049-7efb-4fd0-a9d5-fe422ef8fe86", + "weekId": "f0974b58-986b-41bd-968b-7a3e56fe3e35", + "sortOrder": 11, + "category": "Gui", + "name": "NAV2-Rviz2", + "folderName": "[lms-nav2-gazebo-gui]nav2-rviz2_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-gui.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-gui/1.0.0/prebuilt/latest/lms-nav2-gazebo-gui-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-gui-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2a816b08d9f39057a96641ce7ace341ce409f77e5043abe074e2e21ecaa871ca" + } + ], + "defaultParameters": [ + "rviz_config:=nav2" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T06:11:52.970Z", + "updatedAt": "2026-09-22T06:11:52.970Z" + }, + { + "id": "3c7110f6-1720-43ea-8f86-5f0dd31430fa", + "weekId": "f0974b58-986b-41bd-968b-7a3e56fe3e35", + "sortOrder": 4, + "category": "Perception", + "name": "NAV2-Perception", + "folderName": "[lms-nav2-gazebo-perception]nav2-perception_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-perception.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-perception/1.0.0/prebuilt/amd64/d18d59ac77130be1/lms-nav2-gazebo-perception-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-perception-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d18d59ac77130be1da9d16cb0716fbf4b2837132de1765726200b3a57217034e" + } + ], + "defaultParameters": [ + "sim_mode:=true" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T06:11:52.857Z", + "updatedAt": "2026-09-22T06:11:52.857Z" + }, + { + "id": "5f8ed3db-acfe-43b1-a90b-ae0f6b1ca893", + "weekId": "f0974b58-986b-41bd-968b-7a3e56fe3e35", + "sortOrder": 3, + "category": "Map", + "name": "NAV2-Map", + "folderName": "[lms-nav2-gazebo-map]nav2-map_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-map.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-map/1.0.0/prebuilt/latest/lms-nav2-gazebo-map-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-map-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "f409ce54c40aeeed8cf3fc06251c2e321887b3ec5f5827dfb74897a62780582f" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T06:11:52.840Z", + "updatedAt": "2026-09-22T06:11:52.840Z" + }, + { + "id": "6d0d71c8-4344-4633-ba7a-6866324994a8", + "weekId": "f0974b58-986b-41bd-968b-7a3e56fe3e35", + "sortOrder": 10, + "category": "Vehicle", + "name": "NAV2-MKMini", + "folderName": "[lms-nav2-mkmini]nav2-mkmini_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-mkmini.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-mkmini/1.0.0/prebuilt/amd64/lms-nav2-mkmini-build-install-amd64.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-mkmini-build-install-amd64.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "6094d2aa5188a28153452aec08e28870984b36c1bc0c06fec8091901f6d26856" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "platform:=mkmini", + "robot:=mkmini", + "level:=2d", + "simulator:=gazebo" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T06:11:52.954Z", + "updatedAt": "2026-09-22T06:11:52.954Z" + }, + { + "id": "8d7779f4-60af-4076-99d5-f68c551622c9", + "weekId": "f0974b58-986b-41bd-968b-7a3e56fe3e35", + "sortOrder": 6, + "category": "Planning", + "name": "NAV2-Planning", + "folderName": "[lms-nav2-gazebo-planning]nav2-planning_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-planning.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-planning/1.0.0/prebuilt/amd64/d1c51b0f211e1420/lms-nav2-gazebo-planning-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-planning-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d1c51b0f211e14208882947dd3bf642dd8ce997f54b37dfc0a4c8d66bd84d608" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T06:11:52.890Z", + "updatedAt": "2026-09-22T06:11:52.890Z" + }, + { + "id": "966ea751-3020-4d46-998e-38fe779d0bcf", + "weekId": "f0974b58-986b-41bd-968b-7a3e56fe3e35", + "sortOrder": 9, + "category": "Localization", + "name": "NAV2-SLAM3D", + "folderName": "[lms-nav2-gazebo-slam3d]nav2-slam3d_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-slam3D.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-slam3d/1.0.0/prebuilt/latest/lms-nav2-gazebo-slam3d-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-slam3d-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "ed59e1e6b5e816403475c44672247cf8747c14edcbfcf7f1939d2b2de1d3263d" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T06:11:52.938Z", + "updatedAt": "2026-09-22T06:11:52.938Z" + }, + { + "id": "ecf9e32e-3ab7-4a81-bdba-a0850037daa6", + "weekId": "f0974b58-986b-41bd-968b-7a3e56fe3e35", + "sortOrder": 2, + "category": "Localization", + "name": "NAV2-Localization", + "folderName": "[lms-nav2-gazebo-localization]nav2-localization_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-localization.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-localization/1.0.0/prebuilt/latest/lms-nav2-gazebo-localization-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-localization-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "44c8d50205f001a196870d03f44d435582b96c51eb4445e50cc8db6203b2c0c9" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d", + "localization_mode:=amcl" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T06:11:52.824Z", + "updatedAt": "2026-09-22T06:11:52.824Z" + }, + { + "id": "fe761922-4638-4e3a-a5bb-3050a097fd67", + "weekId": "f0974b58-986b-41bd-968b-7a3e56fe3e35", + "sortOrder": 7, + "category": "Simulator", + "name": "NAV2-Gazebo", + "folderName": "[lms-nav2-gazebo-simulator]nav2-simulator_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-simulator.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-simulator/1.0.0/prebuilt/amd64/2c97e7672eaec755/lms-nav2-gazebo-simulator-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-simulator-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2c97e7672eaec755eb300442a77b18bbcbaf6e0d305257dc9974724049756756" + } + ], + "defaultParameters": [ + "gui:=false", + "platform:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T06:11:52.905Z", + "updatedAt": "2026-09-22T06:11:52.905Z" + } + ], + "practices": [ + { + "id": "ed3fc436-3c48-4803-b6a6-b1112dfb234b", + "weekId": "f0974b58-986b-41bd-968b-7a3e56fe3e35", + "title": "SLAM", + "description": "원거리 MK-mini 플랫폼에 연결하여 모듈 소스와 파라미터를 수정하고, 센서 토픽을 확인하며 SLAM 맵을 생성·저장합니다. 로컬 MK-mini 시뮬레이션에서 먼저 검증합니다.", + "sortOrder": 1 + }, + { + "id": "15de7629-4fb3-4d2d-a60b-83c77de905d6", + "weekId": "f0974b58-986b-41bd-968b-7a3e56fe3e35", + "title": "자율주행", + "description": "저장한 맵으로 위치추정·경로 계획·제어 모듈을 구성하고 목표 지점 주행을 검증합니다. 원격 코드 편집과 빌드, 실행 로그 분석 및 파라미터 튜닝을 실습합니다.", + "sortOrder": 2 + } + ] + } + ], + "instructorCurriculumWeekOverrides": [ + { + "id": "5d803b17-d999-4be2-a805-2be06373b490", + "organizationId": "7165c8dc-5810-4cce-b7d4-be0931603f6b", + "organizationName": "영남대학교", + "courseId": "26d46589-31a5-4d94-b0e0-385a12c41721", + "week": 2, + "tagLabel": "MK-mini", + "title": "Autonomy Studio 팀 프로젝트", + "duration": "1주", + "overview": "3~4인 팀으로 자율주행 알고리즘이 필요한 문제 상황을 정의하고, 센서 구성과 NAV2 모듈을 조합해 시뮬레이션과 플랫폼에서 검증합니다.", + "deliverable": "팀 프로젝트 소스, 시스템 구성도, 시뮬레이션 및 플랫폼 주행 검증 결과, 발표 자료를 제출합니다.", + "requiresSourceSubmission": true, + "isTeamProject": false, + "learningSteps": [ + { + "title": "프로젝트 주제와 역할 분담", + "concepts": [], + "videoUrl": "", + "description": "팀별 자율주행 문제 상황과 목표, 역할, 검증 기준을 정의합니다.", + "videoEnabled": false + }, + { + "title": "센서·모듈 구성 설계", + "concepts": [], + "videoUrl": "", + "description": "센서 입력과 NAV2 모듈 조합, ROS 토픽 및 실행 순서를 설계합니다.", + "videoEnabled": false + }, + { + "title": "알고리즘 구현과 튜닝", + "concepts": [], + "videoUrl": "", + "description": "SLAM, Localization, Planning, Control 파라미터를 수정하고 성능을 비교합니다.", + "videoEnabled": false + }, + { + "title": "시뮬레이션·플랫폼 검증", + "concepts": [], + "videoUrl": "", + "description": "Gazebo 시뮬레이션과 실제 플랫폼에서 주행 시나리오를 검증합니다.", + "videoEnabled": false + }, + { + "title": "결과 제출과 발표", + "concepts": [], + "videoUrl": "", + "description": "소스, 실행 로그, 검증 결과를 정리해 팀 프로젝트 결과를 제출하고 발표합니다.", + "videoEnabled": false + } + ], + "topics": [ + "프로젝트 주제와 역할 분담", + "센서·모듈 구성 설계", + "알고리즘 구현과 튜닝", + "시뮬레이션·플랫폼 검증", + "결과 제출과 발표" + ], + "topicDetails": [ + "팀별 자율주행 문제 상황과 목표, 역할, 검증 기준을 정의합니다.", + "센서 입력과 NAV2 모듈 조합, ROS 토픽 및 실행 순서를 설계합니다.", + "SLAM, Localization, Planning, Control 파라미터를 수정하고 성능을 비교합니다.", + "Gazebo 시뮬레이션과 실제 플랫폼에서 주행 시나리오를 검증합니다.", + "소스, 실행 로그, 검증 결과를 정리해 팀 프로젝트 결과를 제출하고 발표합니다." + ], + "topicVideoUrls": [ + "", + "", + "", + "", + "" + ], + "practiceContents": [ + { + "title": "팀 자율주행 시나리오 구현", + "description": "팀별 시나리오에 맞춰 NAV2 모듈을 구성하고 소스를 수정합니다." + }, + { + "title": "통합 주행 검증", + "description": "시뮬레이션과 플랫폼에서 재현 가능한 주행 결과를 확보합니다." + } + ], + "disabledModuleIds": [], + "createdAt": "2026-09-09T06:11:39.289Z", + "updatedAt": "2026-09-09T06:11:39.289Z" + } + ], + "environmentProfiles": [ + { + "id": "2e313661-fa84-4447-9c28-6ecc490ce52a", + "courseId": "26d46589-31a5-4d94-b0e0-385a12c41721", + "week": 3, + "platformKey": "PLATFORM", + "profileType": "PLATFORM", + "name": "플랫폼", + "config": { + "type": "PLATFORM", + "bridge": { + "env": { + "ROBOT_STACK": "nav2" + }, + "name": "nav2-ros-bridge", + "port": 8765, + "image": "slam-ros-bridge:latest" + }, + "target": "remote-jetson", + "viewer": { + "stack": "nav2" + }, + "moduleSet": { + "target": "platform", + "modules": [ + { + "id": "0c78ec6f-0cb4-4682-8045-583973d60c98", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "ecf9e32e-3ab7-4a81-bdba-a0850037daa6", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini", + "level:=2d", + "localization_mode:=amcl" + ] + }, + { + "id": "5f8ed3db-acfe-43b1-a90b-ae0f6b1ca893", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "3c7110f6-1720-43ea-8f86-5f0dd31430fa", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false" + ] + }, + { + "id": "100110a7-6619-4431-b323-4838628c8fce", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini" + ] + }, + { + "id": "8d7779f4-60af-4076-99d5-f68c551622c9", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "0447e787-64da-4363-9ba0-3f4131618162", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "966ea751-3020-4d46-998e-38fe779d0bcf", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini" + ] + }, + { + "id": "6d0d71c8-4344-4633-ba7a-6866324994a8", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "platform:=mkmini", + "robot:=mkmini", + "level:=2d" + ] + } + ], + "includeUnlisted": false + }, + "runtimeKind": "real", + "runtimeImages": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/slam-ros-bridge/arm64/20260819-0659d4cf5578/slam-ros-bridge-jetson-orin.tar.zst", + "image": "slam-ros-bridge:jetson_orin", + "fileName": "slam-ros-bridge-jetson-orin.tar.zst", + "required": true, + "checksumSha256": "0659d4cf5578c43bc9c25e4a4fc5d226ccd5b7bec43becfdff83b5390717114e" + }, + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/nav2/jetson-orin/latest/future-nav2-humble-jetson-orin.tar.zst", + "image": "future-nav2:humble-jetson_orin", + "fileName": "future-nav2-humble-jetson-orin.tar.zst", + "required": true + } + ] + }, + "enabled": true, + "createdAt": "2026-09-22T06:11:53.018Z", + "updatedAt": "2026-09-22T06:11:53.018Z" + }, + { + "id": "32bdadfa-aa41-4c04-9ff5-cbdbd83e517d", + "courseId": "26d46589-31a5-4d94-b0e0-385a12c41721", + "week": 2, + "platformKey": "PLATFORM", + "profileType": "PLATFORM", + "name": "플랫폼", + "config": { + "type": "PLATFORM", + "bridge": { + "env": { + "ROBOT_STACK": "nav2" + }, + "name": "nav2-ros-bridge", + "port": 8765, + "image": "slam-ros-bridge:latest" + }, + "target": "remote-jetson", + "viewer": { + "stack": "nav2" + }, + "moduleSet": { + "target": "platform", + "modules": [ + { + "id": "9fad4a9a-29d5-4718-9345-7d72bc25c6d7", + "dockerImage": "future-nav2:humble-yahboom", + "defaultParameters": [ + "sim_mode:=false" + ] + }, + { + "id": "24649bf5-6216-49b9-bd7b-79b454bca31a", + "dockerImage": "future-nav2:humble-yahboom-agent", + "defaultParameters": [ + "serial_device:=/dev/ttyUSB0", + "baudrate:=921600" + ] + }, + { + "id": "c5e38be3-a6ce-40d3-ad0f-4aea462c21d6", + "dockerImage": "future-nav2:humble-yahboom", + "defaultParameters": [ + "video_device:=/dev/video0" + ] + }, + { + "id": "74cfb0a2-1de5-49cd-b855-b30f5ba4e29b", + "dockerImage": "future-nav2:humble-yahboom" + }, + { + "id": "5d73fe3c-27a3-42eb-819a-6257bfac2f2f", + "dockerImage": "future-nav2:humble-yahboom" + }, + { + "id": "199b037e-86e2-427b-83e3-46da8c6db34a", + "dockerImage": "future-nav2:humble-yahboom" + }, + { + "id": "f7dd3726-8ba3-456d-8ed1-81111435b947", + "dockerImage": "future-nav2:humble-yahboom" + }, + { + "id": "c3180f5e-ce78-4f56-be6c-dff004d92e5c", + "dockerImage": "future-nav2:humble-yahboom" + } + ], + "includeUnlisted": false + }, + "runtimeKind": "real", + "runtimeImages": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/slam-ros-bridge/arm64/20260819-0659d4cf5578/slam-ros-bridge-jetson-orin.tar.zst", + "image": "slam-ros-bridge:jetson_orin", + "fileName": "slam-ros-bridge-jetson-orin.tar.zst", + "required": true, + "checksumSha256": "0659d4cf5578c43bc9c25e4a4fc5d226ccd5b7bec43becfdff83b5390717114e" + }, + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/nav2/jetson-orin/latest/future-nav2-humble-jetson-orin.tar.zst", + "image": "future-nav2:humble-jetson_orin", + "fileName": "future-nav2-humble-jetson-orin.tar.zst", + "required": true + } + ] + }, + "enabled": true, + "createdAt": "2026-09-09T06:01:24.946Z", + "updatedAt": "2026-09-22T06:27:14.353Z" + }, + { + "id": "381c7331-b9f4-423f-bfc5-89a602a2cf73", + "courseId": "26d46589-31a5-4d94-b0e0-385a12c41721", + "week": 3, + "platformKey": "NAV2", + "profileType": "NAV2", + "name": "로컬", + "config": { + "type": "NAV2", + "bridge": { + "env": { + "ROBOT_STACK": "nav2" + }, + "name": "nav2-ros-bridge", + "port": 8765, + "image": "slam-ros-bridge:latest" + }, + "target": "local", + "viewer": { + "stack": "nav2" + }, + "runtime": { + "steps": [], + "containers": [] + }, + "moduleSet": { + "target": "local", + "modules": [ + { + "id": "0c78ec6f-0cb4-4682-8045-583973d60c98", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "ecf9e32e-3ab7-4a81-bdba-a0850037daa6", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d", + "localization_mode:=amcl" + ] + }, + { + "id": "5f8ed3db-acfe-43b1-a90b-ae0f6b1ca893", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "3c7110f6-1720-43ea-8f86-5f0dd31430fa", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true" + ] + }, + { + "id": "8d7779f4-60af-4076-99d5-f68c551622c9", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "fe761922-4638-4e3a-a5bb-3050a097fd67", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "gui:=false", + "platform:=mkmini" + ] + }, + { + "id": "0447e787-64da-4363-9ba0-3f4131618162", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "6d0d71c8-4344-4633-ba7a-6866324994a8", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "platform:=mkmini", + "robot:=mkmini", + "level:=2d", + "simulator:=gazebo" + ] + }, + { + "id": "3c134049-7efb-4fd0-a9d5-fe422ef8fe86", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "rviz_config:=nav2" + ] + } + ], + "includeUnlisted": false + }, + "runtimeImages": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/nav2/gazebo/latest/future-nav2-gazebo-humble.tar.zst", + "image": "future-nav2-gazebo:humble", + "fileName": "future-nav2-gazebo-humble.tar.zst", + "required": true, + "checksumSha256": "54230e039c1fa5dc82615cef3828c5acae7b8bea8e921b70cfdc5351d8301644" + } + ] + }, + "enabled": true, + "createdAt": "2026-09-22T06:11:52.986Z", + "updatedAt": "2026-09-22T06:11:52.986Z" + }, + { + "id": "7fe65cff-0d03-4fcd-9b6a-46814f5da017", + "courseId": "26d46589-31a5-4d94-b0e0-385a12c41721", + "week": 1, + "platformKey": "PLATFORM", + "profileType": "PLATFORM", + "name": "플랫폼", + "config": { + "type": "PLATFORM", + "bridge": { + "env": { + "ROBOT_STACK": "nav2" + }, + "name": "nav2-ros-bridge", + "port": 8765, + "image": "slam-ros-bridge:latest" + }, + "target": "remote-jetson", + "viewer": { + "stack": "nav2" + }, + "moduleSet": { + "target": "platform", + "modules": [ + { + "id": "90d77f3b-cb9c-4582-a3a6-8f80299b35e2", + "dockerImage": "future-nav2:humble-yahboom", + "defaultParameters": [ + "sim_mode:=false" + ] + }, + { + "id": "018e8115-24b1-4780-9f1b-be256c22e8ce", + "dockerImage": "future-nav2:humble-yahboom-agent", + "defaultParameters": [ + "serial_device:=/dev/ttyUSB0", + "baudrate:=921600" + ] + }, + { + "id": "740cc0db-bb0b-47e0-85ce-9fcf3a7b598b", + "dockerImage": "future-nav2:humble-yahboom", + "defaultParameters": [ + "video_device:=/dev/video0" + ] + }, + { + "id": "fe081ac8-0ce0-4109-81e3-b4d504c86806", + "dockerImage": "future-nav2:humble-yahboom" + }, + { + "id": "c95db4b0-55b3-497e-a7ae-a752bbc9eafa", + "dockerImage": "future-nav2:humble-yahboom" + }, + { + "id": "360c69d8-fd10-4072-a13b-01922dfa0d8d", + "dockerImage": "future-nav2:humble-yahboom" + }, + { + "id": "23fc9b10-0c1f-4d44-b7cf-ff80ab8e6bc9", + "dockerImage": "future-nav2:humble-yahboom" + }, + { + "id": "d4fa2ab4-05d6-4242-a925-5b389b784f22", + "dockerImage": "future-nav2:humble-yahboom" + } + ], + "includeUnlisted": false + }, + "runtimeKind": "real", + "runtimeImages": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/slam-ros-bridge/arm64/20260819-0659d4cf5578/slam-ros-bridge-jetson-orin.tar.zst", + "image": "slam-ros-bridge:jetson_orin", + "fileName": "slam-ros-bridge-jetson-orin.tar.zst", + "required": true, + "checksumSha256": "0659d4cf5578c43bc9c25e4a4fc5d226ccd5b7bec43becfdff83b5390717114e" + }, + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/nav2/jetson-orin/latest/future-nav2-humble-jetson-orin.tar.zst", + "image": "future-nav2:humble-jetson_orin", + "fileName": "future-nav2-humble-jetson-orin.tar.zst", + "required": true + } + ] + }, + "enabled": true, + "createdAt": "2026-09-09T06:01:24.946Z", + "updatedAt": "2026-09-22T06:27:14.319Z" + }, + { + "id": "8cc79b5f-4122-4742-b6ce-54e725c6f841", + "courseId": "26d46589-31a5-4d94-b0e0-385a12c41721", + "week": 1, + "platformKey": "NAV2", + "profileType": "NAV2", + "name": "로컬", + "config": { + "type": "NAV2", + "bridge": { + "env": { + "ROBOT_STACK": "nav2" + }, + "name": "nav2-ros-bridge", + "port": 8765, + "image": "slam-ros-bridge:latest" + }, + "target": "local", + "viewer": { + "stack": "nav2" + }, + "runtime": { + "steps": [], + "containers": [] + }, + "moduleSet": { + "target": "local", + "modules": [ + { + "id": "af12ada0-ac1e-44dd-89d3-86a89754acc4", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "robot:=turtlebot3" + ] + }, + { + "id": "bc89fbbc-7e44-4228-8f50-70b6800bbf45", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "localization_mode:=amcl" + ] + }, + { + "id": "fab88d49-946d-43dd-9431-d294c7772ded", + "dockerImage": "future-nav2-gazebo:humble" + }, + { + "id": "c20541b8-cdb1-4295-b9a3-6b10bb43ae07", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true" + ] + }, + { + "id": "3ca72ae8-97d9-487a-b766-a586e11a048f", + "dockerImage": "future-nav2-gazebo:humble" + }, + { + "id": "5fe16dc8-d0b3-4f60-8efb-959855f38a26", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "gui:=false", + "platform:=turtlebot3" + ] + }, + { + "id": "b431598e-5541-4272-a953-0951be68e8e2", + "dockerImage": "future-nav2-gazebo:humble" + }, + { + "id": "6458e955-6c31-4528-9683-455a42e6a78c", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "platform:=turtlebot3", + "level:=2d" + ] + }, + { + "id": "2b97ac9b-b036-4dd3-ac8c-7eec8352c142", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "platform:=mkmini", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "317f2de8-439b-41b7-ab5e-9e24e701384f", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "rviz_config:=nav2" + ] + }, + { + "id": "90d77f3b-cb9c-4582-a3a6-8f80299b35e2", + "dockerImage": "future-nav2:humble-yahboom", + "defaultParameters": [ + "sim_mode:=true" + ] + } + ], + "includeUnlisted": false + }, + "runtimeImages": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/nav2/gazebo/latest/future-nav2-gazebo-humble.tar.zst", + "image": "future-nav2-gazebo:humble", + "fileName": "future-nav2-gazebo-humble.tar.zst", + "required": true, + "checksumSha256": "54230e039c1fa5dc82615cef3828c5acae7b8bea8e921b70cfdc5351d8301644" + } + ] + }, + "enabled": true, + "createdAt": "2026-09-09T06:01:24.946Z", + "updatedAt": "2026-09-22T06:27:14.254Z" + }, + { + "id": "d131006c-beca-4c48-a8bf-fc28ac9b5e8f", + "courseId": "26d46589-31a5-4d94-b0e0-385a12c41721", + "week": 2, + "platformKey": "NAV2", + "profileType": "NAV2", + "name": "로컬", + "config": { + "type": "NAV2", + "bridge": { + "env": { + "ROBOT_STACK": "nav2" + }, + "name": "nav2-ros-bridge", + "port": 8765, + "image": "slam-ros-bridge:latest" + }, + "target": "local", + "viewer": { + "stack": "nav2" + }, + "runtime": { + "steps": [], + "containers": [] + }, + "moduleSet": { + "target": "local", + "modules": [ + { + "id": "5a42a1ae-e15c-436a-bde3-61b433eb672a", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "robot:=turtlebot3" + ] + }, + { + "id": "3bafb29e-3dfa-488a-a7f8-334af22c8721", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "localization_mode:=amcl" + ] + }, + { + "id": "5768b8f1-06ea-423b-8cc6-e7e22b004172", + "dockerImage": "future-nav2-gazebo:humble" + }, + { + "id": "20cb031f-195c-4972-a611-bce4eebe0341", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true" + ] + }, + { + "id": "8cfd8e39-4489-40c1-8185-3c16c56ec769", + "dockerImage": "future-nav2-gazebo:humble" + }, + { + "id": "378c8143-b855-414f-8abe-308d58a5d77a", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "gui:=false", + "platform:=turtlebot3" + ] + }, + { + "id": "77a1da7d-7d9b-4aba-a4ca-7ba9dae05fd1", + "dockerImage": "future-nav2-gazebo:humble" + }, + { + "id": "7c553352-825a-42be-a6e2-1ddaa82ea043", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "platform:=turtlebot3", + "level:=2d" + ] + }, + { + "id": "3c64c5e3-77ff-4d34-b2b5-69a2c7d28943", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "platform:=mkmini", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "f96c1462-1a6c-4be6-9700-ba5e8dfceb59", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "rviz_config:=nav2" + ] + }, + { + "id": "9fad4a9a-29d5-4718-9345-7d72bc25c6d7", + "dockerImage": "future-nav2:humble-yahboom", + "defaultParameters": [ + "sim_mode:=true" + ] + } + ], + "includeUnlisted": false + }, + "runtimeImages": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/nav2/gazebo/latest/future-nav2-gazebo-humble.tar.zst", + "image": "future-nav2-gazebo:humble", + "fileName": "future-nav2-gazebo-humble.tar.zst", + "required": true, + "checksumSha256": "54230e039c1fa5dc82615cef3828c5acae7b8bea8e921b70cfdc5351d8301644" + } + ] + }, + "enabled": true, + "createdAt": "2026-09-09T06:01:24.946Z", + "updatedAt": "2026-09-22T06:27:14.336Z" + } + ] + }, + { + "id": "4eb01197-7605-4c3b-9a92-f9a3942050bd", + "slug": "futuredrive-autonomy-basic", + "title": "NAV2 기반 자율주행 교육 과정", + "subtitle": "ROS2, 시뮬레이션, SLAM부터 경로 계획과 제어까지", + "description": "ROS2와 NAV2 기반 시뮬레이션 및 플랫폼 실습을 통해 자율주행 시스템의 핵심 흐름을 학습하고 팀 프로젝트로 검증합니다.", + "organizationName": "퓨처드라이브", + "teacherId": "d077267d-420d-4bf6-b2ef-4f79a68251b6", + "isActive": true, + "createdAt": "2026-06-30T09:58:46.538Z", + "updatedAt": "2026-06-30T09:58:47.035Z", + "weeks": [ + { + "id": "119a0983-d68d-4579-925e-60daed0e1dec", + "courseId": "4eb01197-7605-4c3b-9a92-f9a3942050bd", + "week": 1, + "title": "ROS2 & Simulation", + "tags": [ + "MK-mini", + "진행중" + ], + "progress": 0, + "state": "current", + "duration": "1주", + "github": "https://github.com/ros-navigation/navigation2", + "overview": "ROS2 통신 구조와 Gazebo 시뮬레이션 환경을 구성하고, LiDAR SLAM·위치추정·경로 계획·제어까지 NAV2 자율주행 파이프라인을 실습합니다.", + "deliverable": "NAV2 모듈 소스 변경 내역, SLAM 결과 맵, 목표 지점 주행 검증 화면 및 실행 로그를 제출합니다.", + "requiresSourceSubmission": true, + "createdAt": "2026-06-30T09:58:46.538Z", + "updatedAt": "2026-06-30T09:58:46.538Z", + "topics": [ + { + "id": "8589e6da-b4e8-41bf-9fbe-895a294c5ee0", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "ROS2 기초", + "detail": "ROS Topic, Service, Action 통신과 TF 정의, ROS2 패키지 및 tree 구조를 실습합니다.", + "sortOrder": 1 + }, + { + "id": "894c7578-19d4-4d0c-8fdc-4e1741c101dd", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "Sensor Processing", + "detail": "LiDAR와 카메라 등 센서 데이터 처리 흐름과 Calibration 기초를 확인합니다.", + "sortOrder": 2 + }, + { + "id": "e87af89a-5161-43bf-a4a3-54d87506dccf", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "Simulation 환경 구축 Part 1", + "detail": "Gazebo 월드, 로봇 모델, 센서 토픽을 구성해 시뮬레이션 실습 환경을 만듭니다.", + "sortOrder": 3 + }, + { + "id": "f270cddf-3085-4ac8-8fd0-7fdcc7b0fcc7", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "Simulation 환경 구축 Part 2", + "detail": "시뮬레이션에서 활용할 수 있는 모빌리티 플랫폼과 실행 모듈 구성을 점검합니다.", + "sortOrder": 4 + }, + { + "id": "77c00ffb-0753-4ade-9304-fe7ae187932f", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "LiDAR SLAM", + "detail": "센서 데이터와 SLAM 알고리즘을 활용해 자율주행용 2D Map을 구축합니다.", + "sortOrder": 5 + }, + { + "id": "fd677129-6030-4013-8014-642b26f81799", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "LiDAR Localization", + "detail": "구축한 Map과 실시간 LiDAR 데이터를 이용해 현재 위치를 추정합니다.", + "sortOrder": 6 + }, + { + "id": "f05ec8bf-5e1c-4e4e-9073-f3ef06b516ae", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "Parameter Tuning", + "detail": "모듈 파라미터를 변경하고 결과를 비교해 알고리즘을 튜닝합니다.", + "sortOrder": 7 + }, + { + "id": "507221da-fd06-495d-8be5-c7ef1dee1cfd", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "[심화] Camera based SLAM", + "detail": "카메라 기반 Map 구축과 위치인식의 입력·출력 구조를 분석합니다.", + "sortOrder": 8 + }, + { + "id": "ee73c3ca-3a0d-423f-aa9d-f18b99bfd21e", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "Occupancy Map", + "detail": "장애물 인식을 위한 Occupancy Map과 costmap 반영 과정을 실습합니다.", + "sortOrder": 9 + }, + { + "id": "3d0dc30a-3279-4359-88bf-d56e23d52dd4", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "Planning", + "detail": "장애물 충돌 없이 목표 지점으로 이동하기 위한 전역·지역 경로 계획을 실습합니다.", + "sortOrder": 10 + }, + { + "id": "c445c2cf-fe70-4198-99ee-86c850c310b2", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "Control", + "detail": "생성한 경로를 추종하도록 속도 명령을 만들고 주행 결과를 검증합니다.", + "sortOrder": 11 + }, + { + "id": "76165a4c-1e99-4842-bbb7-c07704777516", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "[심화] 딥러닝 기반 객체 인식", + "detail": "딥러닝 기반 객체 인식 결과를 자율주행 데이터 흐름에 반영하는 방법을 학습합니다.", + "sortOrder": 12 + } + ], + "modules": [ + { + "id": "276f4df2-f214-4ba9-aea6-04e23491a569", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 19, + "category": "Control", + "name": "NAV2-Yahboom-Control", + "folderName": "[lms-nav2-yahboom-control]yahboom_control_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-control.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-control/1.0.0/prebuilt/arm64/be7147024d890249/lms-nav2-yahboom-control-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-control-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "be7147024d89024915f1481a47a0909ea1d06196ef9e9797f260739999e09b3f" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "31ac8bd3-6b92-44bb-955c-248cda322e61", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 2, + "category": "Localization", + "name": "NAV2-Localization", + "folderName": "[lms-nav2-gazebo-localization]nav2-localization_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-localization.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-localization/1.0.0/prebuilt/latest/lms-nav2-gazebo-localization-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-localization-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "44c8d50205f001a196870d03f44d435582b96c51eb4445e50cc8db6203b2c0c9" + } + ], + "defaultParameters": [ + "localization_mode:=amcl" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "356f971a-8750-45f1-9ddd-a3c70bd72912", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 16, + "category": "Map", + "name": "NAV2-Yahboom-Map", + "folderName": "[lms-nav2-yahboom-map]yahboom_map_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-map.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-map/1.0.0/prebuilt/arm64/111981b9ab460ce4/lms-nav2-yahboom-map-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-map-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "111981b9ab460ce450334e5c367e97b7e757ef55d84330ca030b096d4a9c4792" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "421db22e-154d-4df9-8190-ccb65dec6b68", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 17, + "category": "Localization", + "name": "NAV2-Yahboom-Localization", + "folderName": "[lms-nav2-yahboom-localization]yahboom_localization_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-localization.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-localization/1.0.0/prebuilt/arm64/d6534d48841a751c/lms-nav2-yahboom-localization-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-localization-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "d6534d48841a751cb2e21fa73785df61fb81815b406c9c4152c9cbfd0ae59e48" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "55636ffe-88c4-4c0a-8d9b-96b678b9fb53", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 14, + "category": "Vehicle", + "name": "NAV2-Yahboom", + "folderName": "[lms-nav2-yahboom-vehicle]yahboom_vehicle_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-vehicle.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-vehicle/1.0.0/prebuilt/amd64/d54368061d520794/lms-nav2-yahboom-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d54368061d52079489a8d686461e6672ebb84ca0f531fb71f835717b3f2a031f" + }, + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-vehicle/1.0.0/prebuilt/arm64/f409c0b61ca9497d/lms-nav2-yahboom-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "f409c0b61ca9497d4cfd1c2af9f4e137d9316364cab664bb908818f6ecab8331" + } + ], + "defaultParameters": [ + "sim_mode:=false" + ], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:55:16.092Z" + }, + { + "id": "618ceb2e-45b8-4220-8469-9d6947e2abba", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 3, + "category": "Map", + "name": "NAV2-Map", + "folderName": "[lms-nav2-gazebo-map]nav2-map_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-map.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-map/1.0.0/prebuilt/latest/lms-nav2-gazebo-map-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-map-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "f409ce54c40aeeed8cf3fc06251c2e321887b3ec5f5827dfb74897a62780582f" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "6bcb11f1-28ce-4eff-aaa0-81737199a807", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 12, + "category": "Gui", + "name": "NAV2-Rviz2", + "folderName": "[lms-nav2-gazebo-gui]nav2-rviz2_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-gui.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-gui/1.0.0/prebuilt/latest/lms-nav2-gazebo-gui-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-gui-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2a816b08d9f39057a96641ce7ace341ce409f77e5043abe074e2e21ecaa871ca" + } + ], + "defaultParameters": [ + "rviz_config:=nav2" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-07T00:34:42.804Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "6be04dd5-8705-4eb5-96cc-b69282ca7b03", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 10, + "category": "Vehicle", + "name": "NAV2-TurtleBot3Burger", + "folderName": "[lms-nav2-gazebo-vehicle]nav2-vehicle_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-vehicle.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-vehicle/1.0.0/prebuilt/latest/lms-nav2-gazebo-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "42e8179172c178978e5ae5d48e189164f6b8a5030fdaa0eba497ca86a97e96bb" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "platform:=turtlebot3", + "level:=2d" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "71503810-840b-4a6b-8537-735067bbf62e", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 5, + "category": "Perception", + "name": "NAV2-Perception3D", + "folderName": "[lms-nav2-gazebo-perception3d]nav2-perception3d_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-perception3D.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-perception3d/1.0.0/prebuilt/latest/lms-nav2-gazebo-perception3d-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-perception3d-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "bab9f7383f44950b6cf6cd8f97b4ae2d3ba61571d6b37c10b24922cc0348a7cc" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-11T06:01:46.944Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "b1e9b92f-bbab-4759-9e9b-637dbe12066c", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 20, + "category": "Perception", + "name": "NAV2-Yahboom-Camera", + "folderName": "[lms-nav2-yahboom-camera]yahboom_camera_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-camera.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-camera/1.0.0/prebuilt/arm64/b950a71d5babcdb3/lms-nav2-yahboom-camera-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-camera-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "b950a71d5babcdb37e46c7674fb80d0ae8c076e7d7c1186042b1b1f6e7ee2d04" + } + ], + "defaultParameters": [ + "video_device:=/dev/video0" + ], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "b4bb8026-da5f-4a57-a9b0-4dc667f6acb9", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 6, + "category": "Planning", + "name": "NAV2-Planning", + "folderName": "[lms-nav2-gazebo-planning]nav2-planning_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-planning.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-planning/1.0.0/prebuilt/amd64/d1c51b0f211e1420/lms-nav2-gazebo-planning-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-planning-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d1c51b0f211e14208882947dd3bf642dd8ce997f54b37dfc0a4c8d66bd84d608" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "b77f3bd0-c7f5-47a6-aaf1-4c97b8d9ee61", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 13, + "category": "System", + "name": "NAV2-Yahboom-Agent", + "folderName": "[lms-nav2-yahboom-agent]yahboom_agent_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-agent.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-agent/1.0.0/prebuilt/arm64/ec2b2c4578fc71b9/lms-nav2-yahboom-agent-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-agent-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "ec2b2c4578fc71b95c720dcacca5e7c7c5d08400fc80ef21a16097d31869cf9d" + } + ], + "defaultParameters": [ + "serial_device:=/dev/ttyUSB0", + "baudrate:=921600" + ], + "dockerImage": "future-nav2:humble-yahboom-agent", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "bafcb2ea-e4f1-458b-bcb1-5c84306ae845", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 11, + "category": "Vehicle", + "name": "NAV2-MKMini", + "folderName": "[lms-nav2-mkmini]nav2-mkmini_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-mkmini.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-mkmini/1.0.0/prebuilt/amd64/lms-nav2-mkmini-build-install-amd64.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-mkmini-build-install-amd64.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "6094d2aa5188a28153452aec08e28870984b36c1bc0c06fec8091901f6d26856" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "platform:=mkmini", + "level:=2d" + ], + "dockerImage": "future-nav2:humble-jetson_orin", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "c4eaa655-ff69-4aed-9c74-41552d2845f1", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 8, + "category": "Localization", + "name": "NAV2-SLAM", + "folderName": "[lms-nav2-gazebo-slam]nav2-slam_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-slam.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-slam/1.0.0/prebuilt/amd64/e5aa22340e275d70/lms-nav2-gazebo-slam-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-slam-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "e5aa22340e275d7063e5cd96f974620354760082d22e80b9a58205085d88e337" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "dd8acfbd-7f66-41b7-a5ef-60c0bc669825", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 1, + "category": "Control", + "name": "NAV2-Control", + "folderName": "[lms-nav2-gazebo-control]nav2-control_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-control.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-control/1.0.0/prebuilt/amd64/0ab85a58f37a922b/lms-nav2-gazebo-control-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-control-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "0ab85a58f37a922b493ce21676573e3a8fd339f99a74cce9c4cba58aff9b1e35" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=turtlebot3" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "e42f92d1-0d5c-4d3f-a66f-0d1fe317637d", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 15, + "category": "Localization", + "name": "NAV2-Yahboom-Slam", + "folderName": "[lms-nav2-yahboom-slam]yahboom_slam_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-slam.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-slam/1.0.0/prebuilt/arm64/f6444fe604f50ee0/lms-nav2-yahboom-slam-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-slam-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "f6444fe604f50ee00831fc7db121bbebfea6be920b55a498ddc54fc317093c77" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "ec932f99-8911-4327-bc55-e38805bfa88a", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 7, + "category": "Simulator", + "name": "NAV2-Gazebo", + "folderName": "[lms-nav2-gazebo-simulator]nav2-simulator_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-simulator.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-simulator/1.0.0/prebuilt/amd64/2c97e7672eaec755/lms-nav2-gazebo-simulator-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-simulator-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2c97e7672eaec755eb300442a77b18bbcbaf6e0d305257dc9974724049756756" + } + ], + "defaultParameters": [ + "gui:=false", + "platform:=turtlebot3" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "fb3e7227-2da4-453d-8798-e5b7b9d99da9", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 9, + "category": "Localization", + "name": "NAV2-SLAM3D", + "folderName": "[lms-nav2-gazebo-slam3d]nav2-slam3d_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-slam3D.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-slam3d/1.0.0/prebuilt/latest/lms-nav2-gazebo-slam3d-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-slam3d-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "ed59e1e6b5e816403475c44672247cf8747c14edcbfcf7f1939d2b2de1d3263d" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-11T06:01:46.944Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "fb5cd244-e132-4d3d-8248-70534df07309", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 4, + "category": "Perception", + "name": "NAV2-Perception", + "folderName": "[lms-nav2-gazebo-perception]nav2-perception_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-perception.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-perception/1.0.0/prebuilt/amd64/d18d59ac77130be1/lms-nav2-gazebo-perception-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-perception-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d18d59ac77130be1da9d16cb0716fbf4b2837132de1765726200b3a57217034e" + } + ], + "defaultParameters": [ + "sim_mode:=true" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "fe514053-5b6b-4dad-b6d7-0191fa5e8ef4", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "sortOrder": 18, + "category": "Planning", + "name": "NAV2-Yahboom-Planning", + "folderName": "[lms-nav2-yahboom-planning]yahboom_planning_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-planning.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-planning/1.0.0/prebuilt/arm64/050f4ed4acba795a/lms-nav2-yahboom-planning-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-planning-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "050f4ed4acba795affec8306b7eef116e9e86fd0f42e492da27c7fc624dc8570" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + } + ], + "practices": [ + { + "id": "7553cc6e-46f0-48f3-b0f9-52ae899aa864", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "경로 계획과 제어", + "description": "목표 지점을 설정하고 장애물 회피, 경로 계획, 제어 명령을 비교합니다.", + "sortOrder": 3 + }, + { + "id": "a4445367-9679-4af4-a21a-43b02be55c49", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "LiDAR SLAM과 Localization", + "description": "맵을 생성·저장하고 저장된 맵에서 AMCL 기반 위치추정을 검증합니다.", + "sortOrder": 2 + }, + { + "id": "a3cacb48-2d1d-47c9-bf22-d36438d1ca3f", + "weekId": "119a0983-d68d-4579-925e-60daed0e1dec", + "title": "ROS2와 Gazebo 실행 환경", + "description": "Topic, Service, Action, TF를 확인하고 TurtleBot3 Gazebo 환경을 실행합니다.", + "sortOrder": 1 + } + ] + }, + { + "id": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "courseId": "4eb01197-7605-4c3b-9a92-f9a3942050bd", + "week": 2, + "title": "Autonomy Studio 팀 프로젝트", + "tags": [ + "MK-mini", + "진행예정" + ], + "progress": 0, + "state": "locked", + "duration": "1주", + "github": "https://github.com/ros-navigation/navigation2", + "overview": "3~4인 팀으로 자율주행 알고리즘이 필요한 문제 상황을 정의하고, 센서 구성과 NAV2 모듈을 조합해 시뮬레이션과 플랫폼에서 검증합니다.", + "deliverable": "팀 프로젝트 소스, 시스템 구성도, 시뮬레이션 및 플랫폼 주행 검증 결과, 발표 자료를 제출합니다.", + "requiresSourceSubmission": true, + "createdAt": "2026-06-30T09:58:46.538Z", + "updatedAt": "2026-06-30T09:58:46.538Z", + "topics": [ + { + "id": "4d081569-b820-44f5-82a2-b09180da6b6b", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "title": "프로젝트 주제와 역할 분담", + "detail": "팀별 자율주행 문제 상황과 목표, 역할, 검증 기준을 정의합니다.", + "sortOrder": 1 + }, + { + "id": "1655d608-2828-45b3-91a6-4986a3f85581", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "title": "센서·모듈 구성 설계", + "detail": "센서 입력과 NAV2 모듈 조합, ROS 토픽 및 실행 순서를 설계합니다.", + "sortOrder": 2 + }, + { + "id": "0e053b97-39a0-4ff1-9def-185082626827", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "title": "알고리즘 구현과 튜닝", + "detail": "SLAM, Localization, Planning, Control 파라미터를 수정하고 성능을 비교합니다.", + "sortOrder": 3 + }, + { + "id": "9379f099-ec25-442d-ab6e-81a7002831ca", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "title": "시뮬레이션·플랫폼 검증", + "detail": "Gazebo 시뮬레이션과 실제 플랫폼에서 주행 시나리오를 검증합니다.", + "sortOrder": 4 + }, + { + "id": "edc67d22-32ef-46f8-8164-66f2328f6bb5", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "title": "결과 제출과 발표", + "detail": "소스, 실행 로그, 검증 결과를 정리해 팀 프로젝트 결과를 제출하고 발표합니다.", + "sortOrder": 5 + } + ], + "modules": [ + { + "id": "04161c08-f266-445b-a1f1-a68272ee4988", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 7, + "category": "Simulator", + "name": "NAV2-Gazebo", + "folderName": "[lms-nav2-gazebo-simulator]nav2-simulator_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-simulator.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-simulator/1.0.0/prebuilt/amd64/2c97e7672eaec755/lms-nav2-gazebo-simulator-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-simulator-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2c97e7672eaec755eb300442a77b18bbcbaf6e0d305257dc9974724049756756" + } + ], + "defaultParameters": [ + "gui:=false", + "platform:=turtlebot3" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "0a4f97e8-3dd6-4dd8-aa76-d327347c4dc7", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 19, + "category": "Control", + "name": "NAV2-Yahboom-Control", + "folderName": "[lms-nav2-yahboom-control]yahboom_control_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-control.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-control/1.0.0/prebuilt/arm64/be7147024d890249/lms-nav2-yahboom-control-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-control-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "be7147024d89024915f1481a47a0909ea1d06196ef9e9797f260739999e09b3f" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "1072caee-d064-4c9b-8064-810ef90d7498", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 14, + "category": "Vehicle", + "name": "NAV2-Yahboom", + "folderName": "[lms-nav2-yahboom-vehicle]yahboom_vehicle_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-vehicle.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-vehicle/1.0.0/prebuilt/amd64/d54368061d520794/lms-nav2-yahboom-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d54368061d52079489a8d686461e6672ebb84ca0f531fb71f835717b3f2a031f" + }, + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-vehicle/1.0.0/prebuilt/arm64/f409c0b61ca9497d/lms-nav2-yahboom-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "f409c0b61ca9497d4cfd1c2af9f4e137d9316364cab664bb908818f6ecab8331" + } + ], + "defaultParameters": [ + "sim_mode:=false" + ], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:55:16.092Z" + }, + { + "id": "23417175-c667-452c-8398-1542ad036a94", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 4, + "category": "Perception", + "name": "NAV2-Perception", + "folderName": "[lms-nav2-gazebo-perception]nav2-perception_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-perception.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-perception/1.0.0/prebuilt/amd64/d18d59ac77130be1/lms-nav2-gazebo-perception-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-perception-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d18d59ac77130be1da9d16cb0716fbf4b2837132de1765726200b3a57217034e" + } + ], + "defaultParameters": [ + "sim_mode:=true" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "238bd78c-14f7-4707-9964-4b8ace1cfb42", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 1, + "category": "Control", + "name": "NAV2-Control", + "folderName": "[lms-nav2-gazebo-control]nav2-control_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-control.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-control/1.0.0/prebuilt/amd64/0ab85a58f37a922b/lms-nav2-gazebo-control-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-control-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "0ab85a58f37a922b493ce21676573e3a8fd339f99a74cce9c4cba58aff9b1e35" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=turtlebot3" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "4ee736db-533f-485b-abe6-62ed4eba5aae", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 8, + "category": "Localization", + "name": "NAV2-SLAM", + "folderName": "[lms-nav2-gazebo-slam]nav2-slam_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-slam.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-slam/1.0.0/prebuilt/amd64/e5aa22340e275d70/lms-nav2-gazebo-slam-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-slam-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "e5aa22340e275d7063e5cd96f974620354760082d22e80b9a58205085d88e337" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "517cdc75-6e49-4878-baf4-7703155bd45d", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 13, + "category": "System", + "name": "NAV2-Yahboom-Agent", + "folderName": "[lms-nav2-yahboom-agent]yahboom_agent_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-agent.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-agent/1.0.0/prebuilt/arm64/ec2b2c4578fc71b9/lms-nav2-yahboom-agent-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-agent-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "ec2b2c4578fc71b95c720dcacca5e7c7c5d08400fc80ef21a16097d31869cf9d" + } + ], + "defaultParameters": [ + "serial_device:=/dev/ttyUSB0", + "baudrate:=921600" + ], + "dockerImage": "future-nav2:humble-yahboom-agent", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "611ba2e2-6034-4121-bb9b-716df5e0ad96", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 3, + "category": "Map", + "name": "NAV2-Map", + "folderName": "[lms-nav2-gazebo-map]nav2-map_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-map.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-map/1.0.0/prebuilt/latest/lms-nav2-gazebo-map-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-map-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "f409ce54c40aeeed8cf3fc06251c2e321887b3ec5f5827dfb74897a62780582f" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "673cd838-f8c4-4fdc-88b9-c5b3f83c5886", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 5, + "category": "Perception", + "name": "NAV2-Perception3D", + "folderName": "[lms-nav2-gazebo-perception3d]nav2-perception3d_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-perception3D.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-perception3d/1.0.0/prebuilt/latest/lms-nav2-gazebo-perception3d-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-perception3d-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "bab9f7383f44950b6cf6cd8f97b4ae2d3ba61571d6b37c10b24922cc0348a7cc" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-11T06:01:46.967Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "715ef9e8-701f-40d0-987c-6ef272902c70", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 16, + "category": "Map", + "name": "NAV2-Yahboom-Map", + "folderName": "[lms-nav2-yahboom-map]yahboom_map_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-map.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-map/1.0.0/prebuilt/arm64/111981b9ab460ce4/lms-nav2-yahboom-map-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-map-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "111981b9ab460ce450334e5c367e97b7e757ef55d84330ca030b096d4a9c4792" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "921e73b2-ddc6-4fe0-84d2-2efb401ebf32", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 11, + "category": "Vehicle", + "name": "NAV2-MKMini", + "folderName": "[lms-nav2-mkmini]nav2-mkmini_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-mkmini.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-mkmini/1.0.0/prebuilt/amd64/lms-nav2-mkmini-build-install-amd64.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-mkmini-build-install-amd64.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "6094d2aa5188a28153452aec08e28870984b36c1bc0c06fec8091901f6d26856" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "platform:=mkmini", + "level:=2d" + ], + "dockerImage": "future-nav2:humble-jetson_orin", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "a046ffd3-1e0c-4fd7-943f-3af60a776a7f", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 15, + "category": "Localization", + "name": "NAV2-Yahboom-Slam", + "folderName": "[lms-nav2-yahboom-slam]yahboom_slam_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-slam.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-slam/1.0.0/prebuilt/arm64/f6444fe604f50ee0/lms-nav2-yahboom-slam-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-slam-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "f6444fe604f50ee00831fc7db121bbebfea6be920b55a498ddc54fc317093c77" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "a98a6eab-f771-4586-b8b4-4ab61300a762", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 9, + "category": "Localization", + "name": "NAV2-SLAM3D", + "folderName": "[lms-nav2-gazebo-slam3d]nav2-slam3d_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-slam3D.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-slam3d/1.0.0/prebuilt/latest/lms-nav2-gazebo-slam3d-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-slam3d-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "ed59e1e6b5e816403475c44672247cf8747c14edcbfcf7f1939d2b2de1d3263d" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-11T06:01:46.967Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "c892dd62-6cbe-43c0-84ce-bfb2086a872a", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 2, + "category": "Localization", + "name": "NAV2-Localization", + "folderName": "[lms-nav2-gazebo-localization]nav2-localization_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-localization.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-localization/1.0.0/prebuilt/latest/lms-nav2-gazebo-localization-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-localization-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "44c8d50205f001a196870d03f44d435582b96c51eb4445e50cc8db6203b2c0c9" + } + ], + "defaultParameters": [ + "localization_mode:=amcl" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "d1e29d86-a9ae-40b7-b876-f3c99cf656c8", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 6, + "category": "Planning", + "name": "NAV2-Planning", + "folderName": "[lms-nav2-gazebo-planning]nav2-planning_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-planning.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-planning/1.0.0/prebuilt/amd64/d1c51b0f211e1420/lms-nav2-gazebo-planning-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-planning-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d1c51b0f211e14208882947dd3bf642dd8ce997f54b37dfc0a4c8d66bd84d608" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "dcd39368-069a-4b3d-a31d-510628edce8b", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 17, + "category": "Localization", + "name": "NAV2-Yahboom-Localization", + "folderName": "[lms-nav2-yahboom-localization]yahboom_localization_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-localization.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-localization/1.0.0/prebuilt/arm64/d6534d48841a751c/lms-nav2-yahboom-localization-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-localization-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "d6534d48841a751cb2e21fa73785df61fb81815b406c9c4152c9cbfd0ae59e48" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "de01197b-d7b1-4ebb-812b-4943befb8539", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 20, + "category": "Perception", + "name": "NAV2-Yahboom-Camera", + "folderName": "[lms-nav2-yahboom-camera]yahboom_camera_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-camera.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-camera/1.0.0/prebuilt/arm64/b950a71d5babcdb3/lms-nav2-yahboom-camera-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-camera-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "b950a71d5babcdb37e46c7674fb80d0ae8c076e7d7c1186042b1b1f6e7ee2d04" + } + ], + "defaultParameters": [ + "video_device:=/dev/video0" + ], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "fa788eeb-6ba4-4f69-89aa-ddf0c6b875a5", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 18, + "category": "Planning", + "name": "NAV2-Yahboom-Planning", + "folderName": "[lms-nav2-yahboom-planning]yahboom_planning_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-planning.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-planning/1.0.0/prebuilt/arm64/050f4ed4acba795a/lms-nav2-yahboom-planning-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-planning-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "050f4ed4acba795affec8306b7eef116e9e86fd0f42e492da27c7fc624dc8570" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "fadfb101-884b-4566-ad99-71f6ec4f2b14", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 12, + "category": "Gui", + "name": "NAV2-Rviz2", + "folderName": "[lms-nav2-gazebo-gui]nav2-rviz2_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-gui.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-gui/1.0.0/prebuilt/latest/lms-nav2-gazebo-gui-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-gui-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2a816b08d9f39057a96641ce7ace341ce409f77e5043abe074e2e21ecaa871ca" + } + ], + "defaultParameters": [ + "rviz_config:=nav2" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-07T00:34:42.804Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "ff32df67-203c-4781-b770-68d19f5b4d5e", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "sortOrder": 10, + "category": "Vehicle", + "name": "NAV2-TurtleBot3Burger", + "folderName": "[lms-nav2-gazebo-vehicle]nav2-vehicle_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-vehicle.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-vehicle/1.0.0/prebuilt/latest/lms-nav2-gazebo-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "42e8179172c178978e5ae5d48e189164f6b8a5030fdaa0eba497ca86a97e96bb" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "platform:=turtlebot3", + "level:=2d" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + } + ], + "practices": [ + { + "id": "49a1f5db-0f86-4be3-8a3b-9866ef86b80d", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "title": "통합 주행 검증", + "description": "시뮬레이션과 플랫폼에서 재현 가능한 주행 결과를 확보합니다.", + "sortOrder": 2 + }, + { + "id": "e63803b3-b888-44b9-9cf0-13d9783eab70", + "weekId": "fa532e19-ef05-4001-b3fa-66b7ce30448b", + "title": "팀 자율주행 시나리오 구현", + "description": "팀별 시나리오에 맞춰 NAV2 모듈을 구성하고 소스를 수정합니다.", + "sortOrder": 1 + } + ] + }, + { + "id": "10eeb415-c568-4ed5-9ef6-8eeb23b68c7d", + "courseId": "4eb01197-7605-4c3b-9a92-f9a3942050bd", + "week": 3, + "title": "원격 개발", + "tags": [ + "MK-mini", + "진행예정" + ], + "progress": 0, + "state": "locked", + "duration": "1주", + "github": "https://github.com/ros-navigation/navigation2", + "overview": "원거리 MK-mini 플랫폼을 연결하고 원격으로 코드를 편집·빌드·실행합니다. 로컬 MK-mini 시뮬레이션과 실차에서 SLAM 및 자율주행을 검증합니다.", + "deliverable": "SLAM 저장 맵, 자율주행 검증 결과, 원격 개발 소스 변경 내역 및 실행 로그를 제출합니다.", + "requiresSourceSubmission": true, + "createdAt": "2026-09-22T05:57:24.295Z", + "updatedAt": "2026-09-22T05:57:24.295Z", + "topics": [ + { + "id": "c80efebe-4f60-4da2-b4c0-a09d159f54b5", + "weekId": "10eeb415-c568-4ed5-9ef6-8eeb23b68c7d", + "title": "SLAM", + "detail": "원거리 MK-mini 플랫폼에 연결하여 모듈 소스와 파라미터를 수정하고, 센서 토픽을 확인하며 SLAM 맵을 생성·저장합니다. 로컬 MK-mini 시뮬레이션에서 먼저 검증합니다.", + "sortOrder": 1 + }, + { + "id": "b29d3f27-5530-45e9-8920-4233af999297", + "weekId": "10eeb415-c568-4ed5-9ef6-8eeb23b68c7d", + "title": "자율주행", + "detail": "저장한 맵으로 위치추정·경로 계획·제어 모듈을 구성하고 목표 지점 주행을 검증합니다. 원격 코드 편집과 빌드, 실행 로그 분석 및 파라미터 튜닝을 실습합니다.", + "sortOrder": 2 + } + ], + "modules": [ + { + "id": "2377a171-689f-4f00-b92a-c7138e00d90a", + "weekId": "10eeb415-c568-4ed5-9ef6-8eeb23b68c7d", + "sortOrder": 3, + "category": "Map", + "name": "NAV2-Map", + "folderName": "[lms-nav2-gazebo-map]nav2-map_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-map.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-map/1.0.0/prebuilt/latest/lms-nav2-gazebo-map-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-map-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "f409ce54c40aeeed8cf3fc06251c2e321887b3ec5f5827dfb74897a62780582f" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T05:57:24.464Z", + "updatedAt": "2026-09-22T05:57:24.464Z" + }, + { + "id": "316fa7e6-dd9c-4c89-a911-8ccf8605a24b", + "weekId": "10eeb415-c568-4ed5-9ef6-8eeb23b68c7d", + "sortOrder": 9, + "category": "Localization", + "name": "NAV2-SLAM3D", + "folderName": "[lms-nav2-gazebo-slam3d]nav2-slam3d_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-slam3D.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-slam3d/1.0.0/prebuilt/latest/lms-nav2-gazebo-slam3d-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-slam3d-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "ed59e1e6b5e816403475c44672247cf8747c14edcbfcf7f1939d2b2de1d3263d" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T05:57:24.558Z", + "updatedAt": "2026-09-22T05:57:24.558Z" + }, + { + "id": "3b164b3e-16d2-452b-9a5f-7cdb367e4916", + "weekId": "10eeb415-c568-4ed5-9ef6-8eeb23b68c7d", + "sortOrder": 10, + "category": "Vehicle", + "name": "NAV2-MKMini", + "folderName": "[lms-nav2-mkmini]nav2-mkmini_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-mkmini.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-mkmini/1.0.0/prebuilt/amd64/lms-nav2-mkmini-build-install-amd64.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-mkmini-build-install-amd64.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "6094d2aa5188a28153452aec08e28870984b36c1bc0c06fec8091901f6d26856" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "platform:=mkmini", + "robot:=mkmini", + "level:=2d", + "simulator:=gazebo" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T05:57:24.574Z", + "updatedAt": "2026-09-22T05:57:24.574Z" + }, + { + "id": "495b0f80-1d87-4b38-9625-370e70de2d49", + "weekId": "10eeb415-c568-4ed5-9ef6-8eeb23b68c7d", + "sortOrder": 6, + "category": "Planning", + "name": "NAV2-Planning", + "folderName": "[lms-nav2-gazebo-planning]nav2-planning_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-planning.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-planning/1.0.0/prebuilt/amd64/d1c51b0f211e1420/lms-nav2-gazebo-planning-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-planning-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d1c51b0f211e14208882947dd3bf642dd8ce997f54b37dfc0a4c8d66bd84d608" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T05:57:24.512Z", + "updatedAt": "2026-09-22T05:57:24.512Z" + }, + { + "id": "6d61da3c-70f6-4ceb-b134-b6d319249a3c", + "weekId": "10eeb415-c568-4ed5-9ef6-8eeb23b68c7d", + "sortOrder": 4, + "category": "Perception", + "name": "NAV2-Perception", + "folderName": "[lms-nav2-gazebo-perception]nav2-perception_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-perception.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-perception/1.0.0/prebuilt/amd64/d18d59ac77130be1/lms-nav2-gazebo-perception-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-perception-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d18d59ac77130be1da9d16cb0716fbf4b2837132de1765726200b3a57217034e" + } + ], + "defaultParameters": [ + "sim_mode:=true" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T05:57:24.481Z", + "updatedAt": "2026-09-22T05:57:24.481Z" + }, + { + "id": "73b34795-5848-44fa-a097-c48de8405c2b", + "weekId": "10eeb415-c568-4ed5-9ef6-8eeb23b68c7d", + "sortOrder": 1, + "category": "Control", + "name": "NAV2-Control", + "folderName": "[lms-nav2-gazebo-control]nav2-control_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-control.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-control/1.0.0/prebuilt/amd64/0ab85a58f37a922b/lms-nav2-gazebo-control-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-control-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "0ab85a58f37a922b493ce21676573e3a8fd339f99a74cce9c4cba58aff9b1e35" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T05:57:24.417Z", + "updatedAt": "2026-09-22T05:57:24.417Z" + }, + { + "id": "b4b253d8-c202-4c28-bcd7-6c8bdee37d52", + "weekId": "10eeb415-c568-4ed5-9ef6-8eeb23b68c7d", + "sortOrder": 11, + "category": "Gui", + "name": "NAV2-Rviz2", + "folderName": "[lms-nav2-gazebo-gui]nav2-rviz2_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-gui.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-gui/1.0.0/prebuilt/latest/lms-nav2-gazebo-gui-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-gui-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2a816b08d9f39057a96641ce7ace341ce409f77e5043abe074e2e21ecaa871ca" + } + ], + "defaultParameters": [ + "rviz_config:=nav2" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T05:57:24.589Z", + "updatedAt": "2026-09-22T05:57:24.589Z" + }, + { + "id": "d1535889-73e8-4300-8677-6260fd8dd436", + "weekId": "10eeb415-c568-4ed5-9ef6-8eeb23b68c7d", + "sortOrder": 7, + "category": "Simulator", + "name": "NAV2-Gazebo", + "folderName": "[lms-nav2-gazebo-simulator]nav2-simulator_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-simulator.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-simulator/1.0.0/prebuilt/amd64/2c97e7672eaec755/lms-nav2-gazebo-simulator-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-simulator-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2c97e7672eaec755eb300442a77b18bbcbaf6e0d305257dc9974724049756756" + } + ], + "defaultParameters": [ + "gui:=false", + "platform:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T05:57:24.528Z", + "updatedAt": "2026-09-22T05:57:24.528Z" + }, + { + "id": "da4f1d95-6270-47dc-b7e8-5529784cad29", + "weekId": "10eeb415-c568-4ed5-9ef6-8eeb23b68c7d", + "sortOrder": 8, + "category": "Localization", + "name": "NAV2-SLAM", + "folderName": "[lms-nav2-gazebo-slam]nav2-slam_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-slam.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-slam/1.0.0/prebuilt/amd64/e5aa22340e275d70/lms-nav2-gazebo-slam-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-slam-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "e5aa22340e275d7063e5cd96f974620354760082d22e80b9a58205085d88e337" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T05:57:24.544Z", + "updatedAt": "2026-09-22T05:57:24.544Z" + }, + { + "id": "f823ab59-d4a1-4b18-b84f-d06fc6c11e33", + "weekId": "10eeb415-c568-4ed5-9ef6-8eeb23b68c7d", + "sortOrder": 2, + "category": "Localization", + "name": "NAV2-Localization", + "folderName": "[lms-nav2-gazebo-localization]nav2-localization_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-localization.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-localization/1.0.0/prebuilt/latest/lms-nav2-gazebo-localization-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-localization-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "44c8d50205f001a196870d03f44d435582b96c51eb4445e50cc8db6203b2c0c9" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d", + "localization_mode:=amcl" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T05:57:24.448Z", + "updatedAt": "2026-09-22T05:57:24.448Z" + }, + { + "id": "ff6cba53-96f9-4fee-b378-4317ea52ae21", + "weekId": "10eeb415-c568-4ed5-9ef6-8eeb23b68c7d", + "sortOrder": 5, + "category": "Perception", + "name": "NAV2-Perception3D", + "folderName": "[lms-nav2-gazebo-perception3d]nav2-perception3d_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-perception3D.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-perception3d/1.0.0/prebuilt/latest/lms-nav2-gazebo-perception3d-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-perception3d-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "bab9f7383f44950b6cf6cd8f97b4ae2d3ba61571d6b37c10b24922cc0348a7cc" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T05:57:24.496Z", + "updatedAt": "2026-09-22T05:57:24.496Z" + } + ], + "practices": [ + { + "id": "737bb4ba-6dcb-4b03-8e4c-573bcf414e76", + "weekId": "10eeb415-c568-4ed5-9ef6-8eeb23b68c7d", + "title": "SLAM", + "description": "원거리 MK-mini 플랫폼에 연결하여 모듈 소스와 파라미터를 수정하고, 센서 토픽을 확인하며 SLAM 맵을 생성·저장합니다. 로컬 MK-mini 시뮬레이션에서 먼저 검증합니다.", + "sortOrder": 1 + }, + { + "id": "a3f8dc80-5f7d-45b2-9f45-9f488a5d4a3c", + "weekId": "10eeb415-c568-4ed5-9ef6-8eeb23b68c7d", + "title": "자율주행", + "description": "저장한 맵으로 위치추정·경로 계획·제어 모듈을 구성하고 목표 지점 주행을 검증합니다. 원격 코드 편집과 빌드, 실행 로그 분석 및 파라미터 튜닝을 실습합니다.", + "sortOrder": 2 + } + ] + } + ], + "instructorCurriculumWeekOverrides": [ + { + "id": "1ae44253-20e6-47a0-914f-6f14b1f3d97a", + "organizationId": "b545a634-e877-4935-8041-c83e352b1fb7", + "organizationName": "퓨처드라이브", + "courseId": "4eb01197-7605-4c3b-9a92-f9a3942050bd", + "week": 2, + "tagLabel": "MK-mini", + "title": "Autonomy Studio 팀 프로젝트", + "duration": "1주", + "overview": "3~4인 팀으로 자율주행 알고리즘이 필요한 문제 상황을 정의하고, 센서 구성과 NAV2 모듈을 조합해 시뮬레이션과 플랫폼에서 검증합니다.", + "deliverable": "팀 프로젝트 소스, 시스템 구성도, 시뮬레이션 및 플랫폼 주행 검증 결과, 발표 자료를 제출합니다.", + "requiresSourceSubmission": true, + "isTeamProject": false, + "learningSteps": [ + { + "title": "프로젝트 주제와 역할 분담", + "concepts": [], + "videoUrl": "", + "description": "팀별 자율주행 문제 상황과 목표, 역할, 검증 기준을 정의합니다.", + "videoEnabled": false + }, + { + "title": "센서·모듈 구성 설계", + "concepts": [], + "videoUrl": "", + "description": "센서 입력과 NAV2 모듈 조합, ROS 토픽 및 실행 순서를 설계합니다.", + "videoEnabled": false + }, + { + "title": "알고리즘 구현과 튜닝", + "concepts": [], + "videoUrl": "", + "description": "SLAM, Localization, Planning, Control 파라미터를 수정하고 성능을 비교합니다.", + "videoEnabled": false + }, + { + "title": "시뮬레이션·플랫폼 검증", + "concepts": [], + "videoUrl": "", + "description": "Gazebo 시뮬레이션과 실제 플랫폼에서 주행 시나리오를 검증합니다.", + "videoEnabled": false + }, + { + "title": "결과 제출과 발표", + "concepts": [], + "videoUrl": "", + "description": "소스, 실행 로그, 검증 결과를 정리해 팀 프로젝트 결과를 제출하고 발표합니다.", + "videoEnabled": false + } + ], + "topics": [ + "프로젝트 주제와 역할 분담", + "센서·모듈 구성 설계", + "알고리즘 구현과 튜닝", + "시뮬레이션·플랫폼 검증", + "결과 제출과 발표" + ], + "topicDetails": [ + "팀별 자율주행 문제 상황과 목표, 역할, 검증 기준을 정의합니다.", + "센서 입력과 NAV2 모듈 조합, ROS 토픽 및 실행 순서를 설계합니다.", + "SLAM, Localization, Planning, Control 파라미터를 수정하고 성능을 비교합니다.", + "Gazebo 시뮬레이션과 실제 플랫폼에서 주행 시나리오를 검증합니다.", + "소스, 실행 로그, 검증 결과를 정리해 팀 프로젝트 결과를 제출하고 발표합니다." + ], + "topicVideoUrls": [ + "", + "", + "", + "", + "" + ], + "practiceContents": [ + { + "title": "팀 자율주행 시나리오 구현", + "description": "팀별 시나리오에 맞춰 NAV2 모듈을 구성하고 소스를 수정합니다." + }, + { + "title": "통합 주행 검증", + "description": "시뮬레이션과 플랫폼에서 재현 가능한 주행 결과를 확보합니다." + } + ], + "disabledModuleIds": [], + "createdAt": "2026-09-10T01:09:16.147Z", + "updatedAt": "2026-09-10T01:09:22.868Z" + }, + { + "id": "8882c821-4095-4314-8139-a05dca1abcc3", + "organizationId": "b545a634-e877-4935-8041-c83e352b1fb7", + "organizationName": "퓨처드라이브", + "courseId": "4eb01197-7605-4c3b-9a92-f9a3942050bd", + "week": 1, + "tagLabel": "MK-mini", + "title": "ROS2 & Simulation", + "duration": "1주", + "overview": "ROS2 통신 구조와 Gazebo 시뮬레이션 환경을 구성하고, LiDAR SLAM·위치추정·경로 계획·제어까지 NAV2 자율주행 파이프라인을 실습합니다.", + "deliverable": "NAV2 모듈 소스 변경 내역, SLAM 결과 맵, 목표 지점 주행 검증 화면 및 실행 로그를 제출합니다.", + "requiresSourceSubmission": true, + "isTeamProject": false, + "learningSteps": [ + { + "title": "ROS2 기초", + "concepts": [], + "videoUrl": "https://www.youtube.com/watch?v=gyskLlvX3oI&list=PLNWNEEf8BvG45noktLVI9N0SmD72BpmH7", + "description": "ROS Topic, Service, Action 통신과 TF 정의, ROS2 패키지 및 tree 구조를 실습합니다.", + "videoEnabled": true + }, + { + "title": "Sensor Processing", + "concepts": [], + "videoUrl": "", + "description": "LiDAR와 카메라 등 센서 데이터 처리 흐름과 Calibration 기초를 확인합니다.", + "videoEnabled": false + }, + { + "title": "Simulation 환경 구축 Part 1", + "concepts": [], + "videoUrl": "", + "description": "Gazebo 월드, 로봇 모델, 센서 토픽을 구성해 시뮬레이션 실습 환경을 만듭니다.", + "videoEnabled": false + }, + { + "title": "Simulation 환경 구축 Part 2", + "concepts": [], + "videoUrl": "", + "description": "시뮬레이션에서 활용할 수 있는 모빌리티 플랫폼과 실행 모듈 구성을 점검합니다.", + "videoEnabled": false + }, + { + "title": "LiDAR SLAM", + "concepts": [], + "videoUrl": "", + "description": "센서 데이터와 SLAM 알고리즘을 활용해 자율주행용 2D Map을 구축합니다.", + "videoEnabled": false + }, + { + "title": "LiDAR Localization", + "concepts": [], + "videoUrl": "", + "description": "구축한 Map과 실시간 LiDAR 데이터를 이용해 현재 위치를 추정합니다.", + "videoEnabled": false + }, + { + "title": "Parameter Tuning", + "concepts": [], + "videoUrl": "", + "description": "모듈 파라미터를 변경하고 결과를 비교해 알고리즘을 튜닝합니다.", + "videoEnabled": false + }, + { + "title": "[심화] Camera based SLAM", + "concepts": [], + "videoUrl": "", + "description": "카메라 기반 Map 구축과 위치인식의 입력·출력 구조를 분석합니다.", + "videoEnabled": false + }, + { + "title": "Occupancy Map", + "concepts": [], + "videoUrl": "", + "description": "장애물 인식을 위한 Occupancy Map과 costmap 반영 과정을 실습합니다.", + "videoEnabled": false + }, + { + "title": "Planning", + "concepts": [], + "videoUrl": "", + "description": "장애물 충돌 없이 목표 지점으로 이동하기 위한 전역·지역 경로 계획을 실습합니다.", + "videoEnabled": false + }, + { + "title": "Control", + "concepts": [], + "videoUrl": "", + "description": "생성한 경로를 추종하도록 속도 명령을 만들고 주행 결과를 검증합니다.", + "videoEnabled": false + }, + { + "title": "[심화] 딥러닝 기반 객체 인식", + "concepts": [], + "videoUrl": "", + "description": "딥러닝 기반 객체 인식 결과를 자율주행 데이터 흐름에 반영하는 방법을 학습합니다.", + "videoEnabled": false + } + ], + "topics": [ + "ROS2 기초", + "Sensor Processing", + "Simulation 환경 구축 Part 1", + "Simulation 환경 구축 Part 2", + "LiDAR SLAM", + "LiDAR Localization", + "Parameter Tuning", + "[심화] Camera based SLAM", + "Occupancy Map", + "Planning", + "Control", + "[심화] 딥러닝 기반 객체 인식" + ], + "topicDetails": [ + "ROS Topic, Service, Action 통신과 TF 정의, ROS2 패키지 및 tree 구조를 실습합니다.", + "LiDAR와 카메라 등 센서 데이터 처리 흐름과 Calibration 기초를 확인합니다.", + "Gazebo 월드, 로봇 모델, 센서 토픽을 구성해 시뮬레이션 실습 환경을 만듭니다.", + "시뮬레이션에서 활용할 수 있는 모빌리티 플랫폼과 실행 모듈 구성을 점검합니다.", + "센서 데이터와 SLAM 알고리즘을 활용해 자율주행용 2D Map을 구축합니다.", + "구축한 Map과 실시간 LiDAR 데이터를 이용해 현재 위치를 추정합니다.", + "모듈 파라미터를 변경하고 결과를 비교해 알고리즘을 튜닝합니다.", + "카메라 기반 Map 구축과 위치인식의 입력·출력 구조를 분석합니다.", + "장애물 인식을 위한 Occupancy Map과 costmap 반영 과정을 실습합니다.", + "장애물 충돌 없이 목표 지점으로 이동하기 위한 전역·지역 경로 계획을 실습합니다.", + "생성한 경로를 추종하도록 속도 명령을 만들고 주행 결과를 검증합니다.", + "딥러닝 기반 객체 인식 결과를 자율주행 데이터 흐름에 반영하는 방법을 학습합니다." + ], + "topicVideoUrls": [ + "https://www.youtube.com/watch?v=gyskLlvX3oI&list=PLNWNEEf8BvG45noktLVI9N0SmD72BpmH7", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "practiceContents": [ + { + "title": "ROS2와 Gazebo 실행 환경", + "description": "Topic, Service, Action, TF를 확인하고 TurtleBot3 Gazebo 환경을 실행합니다." + }, + { + "title": "LiDAR SLAM과 Localization", + "description": "맵을 생성·저장하고 저장된 맵에서 AMCL 기반 위치추정을 검증합니다." + }, + { + "title": "경로 계획과 제어", + "description": "목표 지점을 설정하고 장애물 회피, 경로 계획, 제어 명령을 비교합니다." + } + ], + "disabledModuleIds": [], + "createdAt": "2026-08-07T00:22:12.058Z", + "updatedAt": "2026-09-10T01:08:00.565Z" + } + ], + "environmentProfiles": [ + { + "id": "119ece78-9921-4c01-9334-669d91aca149", + "courseId": "4eb01197-7605-4c3b-9a92-f9a3942050bd", + "week": 3, + "platformKey": "NAV2", + "profileType": "NAV2", + "name": "로컬", + "config": { + "type": "NAV2", + "bridge": { + "env": { + "ROBOT_STACK": "nav2" + }, + "name": "nav2-ros-bridge", + "port": 8765, + "image": "slam-ros-bridge:latest" + }, + "target": "local", + "viewer": { + "stack": "nav2" + }, + "runtime": { + "steps": [], + "containers": [] + }, + "moduleSet": { + "target": "local", + "modules": [ + { + "id": "73b34795-5848-44fa-a097-c48de8405c2b", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "f823ab59-d4a1-4b18-b84f-d06fc6c11e33", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d", + "localization_mode:=amcl" + ] + }, + { + "id": "2377a171-689f-4f00-b92a-c7138e00d90a", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "6d61da3c-70f6-4ceb-b134-b6d319249a3c", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true" + ] + }, + { + "id": "495b0f80-1d87-4b38-9625-370e70de2d49", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "d1535889-73e8-4300-8677-6260fd8dd436", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "gui:=false", + "platform:=mkmini" + ] + }, + { + "id": "da4f1d95-6270-47dc-b7e8-5529784cad29", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "3b164b3e-16d2-452b-9a5f-7cdb367e4916", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "platform:=mkmini", + "robot:=mkmini", + "level:=2d", + "simulator:=gazebo" + ] + }, + { + "id": "b4b253d8-c202-4c28-bcd7-6c8bdee37d52", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "rviz_config:=nav2" + ] + } + ], + "includeUnlisted": false + }, + "runtimeImages": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/nav2/gazebo/latest/future-nav2-gazebo-humble.tar.zst", + "image": "future-nav2-gazebo:humble", + "fileName": "future-nav2-gazebo-humble.tar.zst", + "required": true, + "checksumSha256": "54230e039c1fa5dc82615cef3828c5acae7b8bea8e921b70cfdc5351d8301644" + } + ] + }, + "enabled": true, + "createdAt": "2026-09-22T05:57:24.606Z", + "updatedAt": "2026-09-22T05:57:24.606Z" + }, + { + "id": "19175b62-d8a2-458b-9a63-8b3fa9d8889e", + "courseId": "4eb01197-7605-4c3b-9a92-f9a3942050bd", + "week": 2, + "platformKey": "NAV2", + "profileType": "NAV2", + "name": "로컬", + "config": { + "type": "NAV2", + "bridge": { + "env": { + "ROBOT_STACK": "nav2" + }, + "name": "nav2-ros-bridge", + "port": 8765, + "image": "slam-ros-bridge:latest" + }, + "target": "local", + "viewer": { + "stack": "nav2" + }, + "runtime": { + "steps": [], + "containers": [] + }, + "moduleSet": { + "target": "local", + "modules": [ + { + "id": "238bd78c-14f7-4707-9964-4b8ace1cfb42", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "robot:=turtlebot3" + ] + }, + { + "id": "c892dd62-6cbe-43c0-84ce-bfb2086a872a", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "localization_mode:=amcl" + ] + }, + { + "id": "611ba2e2-6034-4121-bb9b-716df5e0ad96", + "dockerImage": "future-nav2-gazebo:humble" + }, + { + "id": "23417175-c667-452c-8398-1542ad036a94", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true" + ] + }, + { + "id": "d1e29d86-a9ae-40b7-b876-f3c99cf656c8", + "dockerImage": "future-nav2-gazebo:humble" + }, + { + "id": "04161c08-f266-445b-a1f1-a68272ee4988", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "gui:=false", + "platform:=turtlebot3" + ] + }, + { + "id": "4ee736db-533f-485b-abe6-62ed4eba5aae", + "dockerImage": "future-nav2-gazebo:humble" + }, + { + "id": "ff32df67-203c-4781-b770-68d19f5b4d5e", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "platform:=turtlebot3", + "level:=2d" + ] + }, + { + "id": "921e73b2-ddc6-4fe0-84d2-2efb401ebf32", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "platform:=mkmini", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "fadfb101-884b-4566-ad99-71f6ec4f2b14", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "rviz_config:=nav2" + ] + }, + { + "id": "1072caee-d064-4c9b-8064-810ef90d7498", + "dockerImage": "future-nav2:humble-yahboom", + "defaultParameters": [ + "sim_mode:=true" + ] + } + ], + "includeUnlisted": false + }, + "runtimeImages": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/nav2/gazebo/latest/future-nav2-gazebo-humble.tar.zst", + "image": "future-nav2-gazebo:humble", + "fileName": "future-nav2-gazebo-humble.tar.zst", + "required": true, + "checksumSha256": "54230e039c1fa5dc82615cef3828c5acae7b8bea8e921b70cfdc5351d8301644" + } + ] + }, + "enabled": true, + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-22T06:18:59.960Z" + }, + { + "id": "336b8cf4-57b2-4bb2-b809-8007dddd630f", + "courseId": "4eb01197-7605-4c3b-9a92-f9a3942050bd", + "week": 1, + "platformKey": "PLATFORM", + "profileType": "PLATFORM", + "name": "플랫폼", + "config": { + "type": "PLATFORM", + "bridge": { + "env": { + "ROBOT_STACK": "nav2" + }, + "name": "nav2-ros-bridge", + "port": 8765, + "image": "slam-ros-bridge:latest" + }, + "target": "remote-jetson", + "viewer": { + "stack": "nav2" + }, + "moduleSet": { + "target": "platform", + "modules": [ + { + "id": "55636ffe-88c4-4c0a-8d9b-96b678b9fb53", + "dockerImage": "future-nav2:humble-yahboom", + "defaultParameters": [ + "sim_mode:=false" + ] + }, + { + "id": "b77f3bd0-c7f5-47a6-aaf1-4c97b8d9ee61", + "dockerImage": "future-nav2:humble-yahboom-agent", + "defaultParameters": [ + "serial_device:=/dev/ttyUSB0", + "baudrate:=921600" + ] + }, + { + "id": "b1e9b92f-bbab-4759-9e9b-637dbe12066c", + "dockerImage": "future-nav2:humble-yahboom", + "defaultParameters": [ + "video_device:=/dev/video0" + ] + }, + { + "id": "e42f92d1-0d5c-4d3f-a66f-0d1fe317637d", + "dockerImage": "future-nav2:humble-yahboom" + }, + { + "id": "421db22e-154d-4df9-8190-ccb65dec6b68", + "dockerImage": "future-nav2:humble-yahboom" + }, + { + "id": "276f4df2-f214-4ba9-aea6-04e23491a569", + "dockerImage": "future-nav2:humble-yahboom" + }, + { + "id": "fe514053-5b6b-4dad-b6d7-0191fa5e8ef4", + "dockerImage": "future-nav2:humble-yahboom" + }, + { + "id": "356f971a-8750-45f1-9ddd-a3c70bd72912", + "dockerImage": "future-nav2:humble-yahboom" + } + ], + "includeUnlisted": false + }, + "runtimeKind": "real", + "runtimeImages": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/slam-ros-bridge/arm64/20260819-0659d4cf5578/slam-ros-bridge-jetson-orin.tar.zst", + "image": "slam-ros-bridge:jetson_orin", + "fileName": "slam-ros-bridge-jetson-orin.tar.zst", + "required": true, + "checksumSha256": "0659d4cf5578c43bc9c25e4a4fc5d226ccd5b7bec43becfdff83b5390717114e" + }, + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/nav2/jetson-orin/latest/future-nav2-humble-jetson-orin.tar.zst", + "image": "future-nav2:humble-jetson_orin", + "fileName": "future-nav2-humble-jetson-orin.tar.zst", + "required": true + } + ] + }, + "enabled": true, + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-22T06:18:59.911Z" + }, + { + "id": "377e58bf-039b-48f9-8db0-48dba4ba5549", + "courseId": "4eb01197-7605-4c3b-9a92-f9a3942050bd", + "week": 2, + "platformKey": "PLATFORM", + "profileType": "PLATFORM", + "name": "플랫폼", + "config": { + "type": "PLATFORM", + "bridge": { + "env": { + "ROBOT_STACK": "nav2" + }, + "name": "nav2-ros-bridge", + "port": 8765, + "image": "slam-ros-bridge:latest" + }, + "target": "remote-jetson", + "viewer": { + "stack": "nav2" + }, + "moduleSet": { + "target": "platform", + "modules": [ + { + "id": "1072caee-d064-4c9b-8064-810ef90d7498", + "dockerImage": "future-nav2:humble-yahboom", + "defaultParameters": [ + "sim_mode:=false" + ] + }, + { + "id": "517cdc75-6e49-4878-baf4-7703155bd45d", + "dockerImage": "future-nav2:humble-yahboom-agent", + "defaultParameters": [ + "serial_device:=/dev/ttyUSB0", + "baudrate:=921600" + ] + }, + { + "id": "de01197b-d7b1-4ebb-812b-4943befb8539", + "dockerImage": "future-nav2:humble-yahboom", + "defaultParameters": [ + "video_device:=/dev/video0" + ] + }, + { + "id": "a046ffd3-1e0c-4fd7-943f-3af60a776a7f", + "dockerImage": "future-nav2:humble-yahboom" + }, + { + "id": "dcd39368-069a-4b3d-a31d-510628edce8b", + "dockerImage": "future-nav2:humble-yahboom" + }, + { + "id": "0a4f97e8-3dd6-4dd8-aa76-d327347c4dc7", + "dockerImage": "future-nav2:humble-yahboom" + }, + { + "id": "fa788eeb-6ba4-4f69-89aa-ddf0c6b875a5", + "dockerImage": "future-nav2:humble-yahboom" + }, + { + "id": "715ef9e8-701f-40d0-987c-6ef272902c70", + "dockerImage": "future-nav2:humble-yahboom" + } + ], + "includeUnlisted": false + }, + "runtimeKind": "real", + "runtimeImages": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/slam-ros-bridge/arm64/20260819-0659d4cf5578/slam-ros-bridge-jetson-orin.tar.zst", + "image": "slam-ros-bridge:jetson_orin", + "fileName": "slam-ros-bridge-jetson-orin.tar.zst", + "required": true, + "checksumSha256": "0659d4cf5578c43bc9c25e4a4fc5d226ccd5b7bec43becfdff83b5390717114e" + }, + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/nav2/jetson-orin/latest/future-nav2-humble-jetson-orin.tar.zst", + "image": "future-nav2:humble-jetson_orin", + "fileName": "future-nav2-humble-jetson-orin.tar.zst", + "required": true + } + ] + }, + "enabled": true, + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-22T06:19:00.019Z" + }, + { + "id": "89ff37ab-bf54-43bb-87c8-c965237362bd", + "courseId": "4eb01197-7605-4c3b-9a92-f9a3942050bd", + "week": 1, + "platformKey": "NAV2", + "profileType": "NAV2", + "name": "로컬", + "config": { + "type": "NAV2", + "bridge": { + "env": { + "ROBOT_STACK": "nav2" + }, + "name": "nav2-ros-bridge", + "port": 8765, + "image": "slam-ros-bridge:latest" + }, + "target": "local", + "viewer": { + "stack": "nav2" + }, + "runtime": { + "steps": [], + "containers": [] + }, + "moduleSet": { + "target": "local", + "modules": [ + { + "id": "dd8acfbd-7f66-41b7-a5ef-60c0bc669825", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "robot:=turtlebot3" + ] + }, + { + "id": "31ac8bd3-6b92-44bb-955c-248cda322e61", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "localization_mode:=amcl" + ] + }, + { + "id": "618ceb2e-45b8-4220-8469-9d6947e2abba", + "dockerImage": "future-nav2-gazebo:humble" + }, + { + "id": "fb5cd244-e132-4d3d-8248-70534df07309", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true" + ] + }, + { + "id": "b4bb8026-da5f-4a57-a9b0-4dc667f6acb9", + "dockerImage": "future-nav2-gazebo:humble" + }, + { + "id": "ec932f99-8911-4327-bc55-e38805bfa88a", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "gui:=false", + "platform:=turtlebot3" + ] + }, + { + "id": "c4eaa655-ff69-4aed-9c74-41552d2845f1", + "dockerImage": "future-nav2-gazebo:humble" + }, + { + "id": "6be04dd5-8705-4eb5-96cc-b69282ca7b03", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "platform:=turtlebot3", + "level:=2d" + ] + }, + { + "id": "bafcb2ea-e4f1-458b-bcb1-5c84306ae845", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "platform:=mkmini", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "6bcb11f1-28ce-4eff-aaa0-81737199a807", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "rviz_config:=nav2" + ] + }, + { + "id": "55636ffe-88c4-4c0a-8d9b-96b678b9fb53", + "dockerImage": "future-nav2:humble-yahboom", + "defaultParameters": [ + "sim_mode:=true" + ] + } + ], + "includeUnlisted": false + }, + "runtimeImages": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/nav2/gazebo/latest/future-nav2-gazebo-humble.tar.zst", + "image": "future-nav2-gazebo:humble", + "fileName": "future-nav2-gazebo-humble.tar.zst", + "required": true, + "checksumSha256": "54230e039c1fa5dc82615cef3828c5acae7b8bea8e921b70cfdc5351d8301644" + } + ] + }, + "enabled": true, + "createdAt": "2026-08-04T01:27:57.076Z", + "updatedAt": "2026-09-22T06:18:59.879Z" + }, + { + "id": "8e36f6bc-15cd-45a5-9122-737a8422ec09", + "courseId": "4eb01197-7605-4c3b-9a92-f9a3942050bd", + "week": 3, + "platformKey": "PLATFORM", + "profileType": "PLATFORM", + "name": "플랫폼", + "config": { + "type": "PLATFORM", + "bridge": { + "env": { + "ROBOT_STACK": "nav2" + }, + "name": "nav2-ros-bridge", + "port": 8765, + "image": "slam-ros-bridge:latest" + }, + "target": "remote-jetson", + "viewer": { + "stack": "nav2" + }, + "moduleSet": { + "target": "platform", + "modules": [ + { + "id": "73b34795-5848-44fa-a097-c48de8405c2b", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "f823ab59-d4a1-4b18-b84f-d06fc6c11e33", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini", + "level:=2d", + "localization_mode:=amcl" + ] + }, + { + "id": "2377a171-689f-4f00-b92a-c7138e00d90a", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "6d61da3c-70f6-4ceb-b134-b6d319249a3c", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false" + ] + }, + { + "id": "ff6cba53-96f9-4fee-b378-4317ea52ae21", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini" + ] + }, + { + "id": "495b0f80-1d87-4b38-9625-370e70de2d49", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "da4f1d95-6270-47dc-b7e8-5529784cad29", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "316fa7e6-dd9c-4c89-a911-8ccf8605a24b", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini" + ] + }, + { + "id": "3b164b3e-16d2-452b-9a5f-7cdb367e4916", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "platform:=mkmini", + "robot:=mkmini", + "level:=2d" + ] + } + ], + "includeUnlisted": false + }, + "runtimeKind": "real", + "runtimeImages": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/slam-ros-bridge/arm64/20260819-0659d4cf5578/slam-ros-bridge-jetson-orin.tar.zst", + "image": "slam-ros-bridge:jetson_orin", + "fileName": "slam-ros-bridge-jetson-orin.tar.zst", + "required": true, + "checksumSha256": "0659d4cf5578c43bc9c25e4a4fc5d226ccd5b7bec43becfdff83b5390717114e" + }, + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/nav2/jetson-orin/latest/future-nav2-humble-jetson-orin.tar.zst", + "image": "future-nav2:humble-jetson_orin", + "fileName": "future-nav2-humble-jetson-orin.tar.zst", + "required": true + } + ] + }, + "enabled": true, + "createdAt": "2026-09-22T05:57:24.639Z", + "updatedAt": "2026-09-22T05:57:24.639Z" + } + ] + }, + { + "id": "8e296f81-8445-455c-b1a2-47f2ce9099a4", + "slug": "nav2-autonomy-50419393-77f", + "title": "2026 하반기 퓨처드라이브 테스트", + "subtitle": "ROS2, 시뮬레이션, SLAM부터 경로 계획과 제어까지", + "description": "ROS2와 NAV2 기반 시뮬레이션 및 플랫폼 실습을 통해 자율주행 시스템의 핵심 흐름을 학습하고 팀 프로젝트로 검증합니다.", + "organizationName": "퓨처드라이브", + "teacherId": "50419393-77f7-40c3-ac97-ddfe884e5cb2", + "isActive": true, + "createdAt": "2026-08-12T06:54:50.872Z", + "updatedAt": "2026-08-12T06:54:50.872Z", + "weeks": [ + { + "id": "d2047273-91d8-49dd-89a1-0e348f43f265", + "courseId": "8e296f81-8445-455c-b1a2-47f2ce9099a4", + "week": 1, + "title": "ROS2 & Simulation", + "tags": [ + "MK-mini", + "진행중" + ], + "progress": 0, + "state": "current", + "duration": "1주", + "github": "https://github.com/ros-navigation/navigation2", + "overview": "ROS2 통신 구조와 Gazebo 시뮬레이션 환경을 구성하고, LiDAR SLAM·위치추정·경로 계획·제어까지 NAV2 자율주행 파이프라인을 실습합니다.", + "deliverable": "NAV2 모듈 소스 변경 내역, SLAM 결과 맵, 목표 지점 주행 검증 화면 및 실행 로그를 제출합니다.", + "requiresSourceSubmission": true, + "createdAt": "2026-08-12T06:54:50.874Z", + "updatedAt": "2026-08-12T06:54:50.874Z", + "topics": [ + { + "id": "39b65ead-8df4-44b9-a337-12e21b3bf376", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "title": "ROS2 기초", + "detail": "ROS Topic, Service, Action 통신과 TF 정의, ROS2 패키지 및 tree 구조를 실습합니다.", + "sortOrder": 1 + }, + { + "id": "c2db3fad-3545-4685-9e75-7455ee9e0dec", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "title": "Sensor Processing", + "detail": "LiDAR와 카메라 등 센서 데이터 처리 흐름과 Calibration 기초를 확인합니다.", + "sortOrder": 2 + }, + { + "id": "c54a19d2-2507-4569-bbc3-fef151edb793", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "title": "Simulation 환경 구축 Part 1", + "detail": "Gazebo 월드, 로봇 모델, 센서 토픽을 구성해 시뮬레이션 실습 환경을 만듭니다.", + "sortOrder": 3 + }, + { + "id": "2b77f2d9-68e7-41fc-a4b3-2808f2137646", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "title": "Simulation 환경 구축 Part 2", + "detail": "시뮬레이션에서 활용할 수 있는 모빌리티 플랫폼과 실행 모듈 구성을 점검합니다.", + "sortOrder": 4 + }, + { + "id": "d4721074-0b74-46c2-8728-73e4e04968ad", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "title": "LiDAR SLAM", + "detail": "센서 데이터와 SLAM 알고리즘을 활용해 자율주행용 2D Map을 구축합니다.", + "sortOrder": 5 + }, + { + "id": "8c5934f5-fdbe-40f9-9032-15393c0010fb", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "title": "LiDAR Localization", + "detail": "구축한 Map과 실시간 LiDAR 데이터를 이용해 현재 위치를 추정합니다.", + "sortOrder": 6 + }, + { + "id": "85893d34-2a1a-40a4-8a09-64d2dc7e35aa", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "title": "Parameter Tuning", + "detail": "모듈 파라미터를 변경하고 결과를 비교해 알고리즘을 튜닝합니다.", + "sortOrder": 7 + }, + { + "id": "55e73514-28d4-4840-8d5f-be94d804ad49", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "title": "[심화] Camera based SLAM", + "detail": "카메라 기반 Map 구축과 위치인식의 입력·출력 구조를 분석합니다.", + "sortOrder": 8 + }, + { + "id": "c8dc09c3-34c0-439a-b38f-22b59df16b95", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "title": "Occupancy Map", + "detail": "장애물 인식을 위한 Occupancy Map과 costmap 반영 과정을 실습합니다.", + "sortOrder": 9 + }, + { + "id": "a3bfb023-c5ca-46a3-82d6-7ac68a87197f", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "title": "Planning", + "detail": "장애물 충돌 없이 목표 지점으로 이동하기 위한 전역·지역 경로 계획을 실습합니다.", + "sortOrder": 10 + }, + { + "id": "dd8004d8-94ff-4668-bd94-3574334714b1", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "title": "Control", + "detail": "생성한 경로를 추종하도록 속도 명령을 만들고 주행 결과를 검증합니다.", + "sortOrder": 11 + }, + { + "id": "905ebc42-9648-4b99-a347-43ffd89cf408", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "title": "[심화] 딥러닝 기반 객체 인식", + "detail": "딥러닝 기반 객체 인식 결과를 자율주행 데이터 흐름에 반영하는 방법을 학습합니다.", + "sortOrder": 12 + } + ], + "modules": [ + { + "id": "0817062b-045c-45c0-9d36-ae9e0ea456b0", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 4, + "category": "Perception", + "name": "NAV2-Perception", + "folderName": "[lms-nav2-gazebo-perception]nav2-perception_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-perception.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-perception/1.0.0/prebuilt/amd64/d18d59ac77130be1/lms-nav2-gazebo-perception-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-perception-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d18d59ac77130be1da9d16cb0716fbf4b2837132de1765726200b3a57217034e" + } + ], + "defaultParameters": [ + "sim_mode:=true" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.886Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "130b973e-dae3-4a98-a9d9-65e12107d8ac", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 15, + "category": "Localization", + "name": "NAV2-Yahboom-Slam", + "folderName": "[lms-nav2-yahboom-slam]yahboom_slam_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-slam.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-slam/1.0.0/prebuilt/arm64/f6444fe604f50ee0/lms-nav2-yahboom-slam-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-slam-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "f6444fe604f50ee00831fc7db121bbebfea6be920b55a498ddc54fc317093c77" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "18805cbf-c01f-4ea5-956d-cced888b2697", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 2, + "category": "Localization", + "name": "NAV2-Localization", + "folderName": "[lms-nav2-gazebo-localization]nav2-localization_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-localization.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-localization/1.0.0/prebuilt/latest/lms-nav2-gazebo-localization-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-localization-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "44c8d50205f001a196870d03f44d435582b96c51eb4445e50cc8db6203b2c0c9" + } + ], + "defaultParameters": [ + "localization_mode:=amcl" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.883Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "2c34469d-0a53-459f-9698-468fba0048ba", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 16, + "category": "Map", + "name": "NAV2-Yahboom-Map", + "folderName": "[lms-nav2-yahboom-map]yahboom_map_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-map.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-map/1.0.0/prebuilt/arm64/111981b9ab460ce4/lms-nav2-yahboom-map-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-map-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "111981b9ab460ce450334e5c367e97b7e757ef55d84330ca030b096d4a9c4792" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "303687ab-542a-415b-a991-434e49a93922", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 7, + "category": "Simulator", + "name": "NAV2-Gazebo", + "folderName": "[lms-nav2-gazebo-simulator]nav2-simulator_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-simulator.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-simulator/1.0.0/prebuilt/amd64/2c97e7672eaec755/lms-nav2-gazebo-simulator-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-simulator-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2c97e7672eaec755eb300442a77b18bbcbaf6e0d305257dc9974724049756756" + } + ], + "defaultParameters": [ + "gui:=false", + "platform:=turtlebot3" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.890Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "3b98d72a-a744-46ee-a12b-69241d7c7248", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 5, + "category": "Perception", + "name": "NAV2-Perception3D", + "folderName": "[lms-nav2-gazebo-perception3d]nav2-perception3d_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-perception3D.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-perception3d/1.0.0/prebuilt/latest/lms-nav2-gazebo-perception3d-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-perception3d-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "bab9f7383f44950b6cf6cd8f97b4ae2d3ba61571d6b37c10b24922cc0348a7cc" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.887Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "5cfd7b92-eb8b-46b3-b6f0-c5c24c5f8676", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 12, + "category": "Gui", + "name": "NAV2-Rviz2", + "folderName": "[lms-nav2-gazebo-gui]nav2-rviz2_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-gui.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-gui/1.0.0/prebuilt/latest/lms-nav2-gazebo-gui-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-gui-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2a816b08d9f39057a96641ce7ace341ce409f77e5043abe074e2e21ecaa871ca" + } + ], + "defaultParameters": [ + "rviz_config:=nav2" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.896Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "645b6f17-a8a1-49d9-b6c7-ff5caf01dd4b", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 6, + "category": "Planning", + "name": "NAV2-Planning", + "folderName": "[lms-nav2-gazebo-planning]nav2-planning_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-planning.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-planning/1.0.0/prebuilt/amd64/d1c51b0f211e1420/lms-nav2-gazebo-planning-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-planning-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d1c51b0f211e14208882947dd3bf642dd8ce997f54b37dfc0a4c8d66bd84d608" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.889Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "6b2c5597-be2e-4c81-a2a9-7df4a180c8c6", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 8, + "category": "Localization", + "name": "NAV2-SLAM", + "folderName": "[lms-nav2-gazebo-slam]nav2-slam_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-slam.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-slam/1.0.0/prebuilt/amd64/e5aa22340e275d70/lms-nav2-gazebo-slam-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-slam-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "e5aa22340e275d7063e5cd96f974620354760082d22e80b9a58205085d88e337" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.891Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "6d4a2cb8-b816-4f04-9874-8e8a03222a35", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 11, + "category": "Vehicle", + "name": "NAV2-MKMini", + "folderName": "[lms-nav2-mkmini]nav2-mkmini_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-mkmini.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-mkmini/1.0.0/prebuilt/amd64/lms-nav2-mkmini-build-install-amd64.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-mkmini-build-install-amd64.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "6094d2aa5188a28153452aec08e28870984b36c1bc0c06fec8091901f6d26856" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "platform:=mkmini", + "level:=2d" + ], + "dockerImage": "future-nav2:humble-jetson_orin", + "createdAt": "2026-08-12T06:54:50.895Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "8140fefb-7aa2-48ba-a52e-09f2cf3caaca", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 20, + "category": "Perception", + "name": "NAV2-Yahboom-Camera", + "folderName": "[lms-nav2-yahboom-camera]yahboom_camera_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-camera.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-camera/1.0.0/prebuilt/arm64/b950a71d5babcdb3/lms-nav2-yahboom-camera-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-camera-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "b950a71d5babcdb37e46c7674fb80d0ae8c076e7d7c1186042b1b1f6e7ee2d04" + } + ], + "defaultParameters": [ + "video_device:=/dev/video0" + ], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "88186ea4-da6e-423f-b3e6-9d4176692617", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 17, + "category": "Localization", + "name": "NAV2-Yahboom-Localization", + "folderName": "[lms-nav2-yahboom-localization]yahboom_localization_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-localization.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-localization/1.0.0/prebuilt/arm64/d6534d48841a751c/lms-nav2-yahboom-localization-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-localization-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "d6534d48841a751cb2e21fa73785df61fb81815b406c9c4152c9cbfd0ae59e48" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "9b92dae5-575d-44a9-bf9f-f0bd1b128dff", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 13, + "category": "System", + "name": "NAV2-Yahboom-Agent", + "folderName": "[lms-nav2-yahboom-agent]yahboom_agent_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-agent.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-agent/1.0.0/prebuilt/arm64/ec2b2c4578fc71b9/lms-nav2-yahboom-agent-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-agent-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "ec2b2c4578fc71b95c720dcacca5e7c7c5d08400fc80ef21a16097d31869cf9d" + } + ], + "defaultParameters": [ + "serial_device:=/dev/ttyUSB0", + "baudrate:=921600" + ], + "dockerImage": "future-nav2:humble-yahboom-agent", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "bc33d3d7-ccaf-4d1c-8490-7bc09122bdb2", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 19, + "category": "Control", + "name": "NAV2-Yahboom-Control", + "folderName": "[lms-nav2-yahboom-control]yahboom_control_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-control.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-control/1.0.0/prebuilt/arm64/be7147024d890249/lms-nav2-yahboom-control-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-control-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "be7147024d89024915f1481a47a0909ea1d06196ef9e9797f260739999e09b3f" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "bcbd0382-5ec5-4bcb-90a9-0492f5f628b9", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 9, + "category": "Localization", + "name": "NAV2-SLAM3D", + "folderName": "[lms-nav2-gazebo-slam3d]nav2-slam3d_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-slam3D.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-slam3d/1.0.0/prebuilt/latest/lms-nav2-gazebo-slam3d-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-slam3d-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "ed59e1e6b5e816403475c44672247cf8747c14edcbfcf7f1939d2b2de1d3263d" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.893Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "e01c68d3-7f31-4359-89dd-ed32055c082c", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 3, + "category": "Map", + "name": "NAV2-Map", + "folderName": "[lms-nav2-gazebo-map]nav2-map_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-map.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-map/1.0.0/prebuilt/latest/lms-nav2-gazebo-map-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-map-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "f409ce54c40aeeed8cf3fc06251c2e321887b3ec5f5827dfb74897a62780582f" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.884Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "e4bf535f-ed53-4ca9-840c-c025cb997fa5", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 18, + "category": "Planning", + "name": "NAV2-Yahboom-Planning", + "folderName": "[lms-nav2-yahboom-planning]yahboom_planning_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-planning.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-planning/1.0.0/prebuilt/arm64/050f4ed4acba795a/lms-nav2-yahboom-planning-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-planning-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "050f4ed4acba795affec8306b7eef116e9e86fd0f42e492da27c7fc624dc8570" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "efc492b5-afdc-4d01-935e-ea71ac3047d0", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 10, + "category": "Vehicle", + "name": "NAV2-TurtleBot3Burger", + "folderName": "[lms-nav2-gazebo-vehicle]nav2-vehicle_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-vehicle.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-vehicle/1.0.0/prebuilt/latest/lms-nav2-gazebo-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "42e8179172c178978e5ae5d48e189164f6b8a5030fdaa0eba497ca86a97e96bb" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "platform:=turtlebot3", + "level:=2d" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.894Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "f5abf8ab-280b-4ad4-93d7-142bb22fb4bb", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 1, + "category": "Control", + "name": "NAV2-Control", + "folderName": "[lms-nav2-gazebo-control]nav2-control_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-control.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-control/1.0.0/prebuilt/amd64/0ab85a58f37a922b/lms-nav2-gazebo-control-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-control-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "0ab85a58f37a922b493ce21676573e3a8fd339f99a74cce9c4cba58aff9b1e35" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=turtlebot3" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.880Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + }, + { + "id": "ffacc8a8-08ac-4633-9eb2-24f18606d875", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "sortOrder": 14, + "category": "Vehicle", + "name": "NAV2-Yahboom", + "folderName": "[lms-nav2-yahboom-vehicle]yahboom_vehicle_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-vehicle.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-vehicle/1.0.0/prebuilt/amd64/d54368061d520794/lms-nav2-yahboom-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d54368061d52079489a8d686461e6672ebb84ca0f531fb71f835717b3f2a031f" + }, + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-vehicle/1.0.0/prebuilt/arm64/f409c0b61ca9497d/lms-nav2-yahboom-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "f409c0b61ca9497d4cfd1c2af9f4e137d9316364cab664bb908818f6ecab8331" + } + ], + "defaultParameters": [ + "sim_mode:=false" + ], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T05:52:15.647Z" + } + ], + "practices": [ + { + "id": "084bf79b-d292-4379-9735-e591943b4819", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "title": "ROS2와 Gazebo 실행 환경", + "description": "Topic, Service, Action, TF를 확인하고 TurtleBot3 Gazebo 환경을 실행합니다.", + "sortOrder": 1 + }, + { + "id": "3cc51467-6739-4dd7-bc7e-de9752e86647", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "title": "LiDAR SLAM과 Localization", + "description": "맵을 생성·저장하고 저장된 맵에서 AMCL 기반 위치추정을 검증합니다.", + "sortOrder": 2 + }, + { + "id": "09741348-896f-4916-abb0-699cbc25095e", + "weekId": "d2047273-91d8-49dd-89a1-0e348f43f265", + "title": "경로 계획과 제어", + "description": "목표 지점을 설정하고 장애물 회피, 경로 계획, 제어 명령을 비교합니다.", + "sortOrder": 3 + } + ] + }, + { + "id": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "courseId": "8e296f81-8445-455c-b1a2-47f2ce9099a4", + "week": 2, + "title": "Autonomy Studio 팀 프로젝트", + "tags": [ + "MK-mini", + "진행예정" + ], + "progress": 0, + "state": "locked", + "duration": "1주", + "github": "https://github.com/ros-navigation/navigation2", + "overview": "3~4인 팀으로 자율주행 알고리즘이 필요한 문제 상황을 정의하고, 센서 구성과 NAV2 모듈을 조합해 시뮬레이션과 플랫폼에서 검증합니다.", + "deliverable": "팀 프로젝트 소스, 시스템 구성도, 시뮬레이션 및 플랫폼 주행 검증 결과, 발표 자료를 제출합니다.", + "requiresSourceSubmission": true, + "createdAt": "2026-08-12T06:54:50.897Z", + "updatedAt": "2026-08-12T06:54:50.897Z", + "topics": [ + { + "id": "547d0e28-d4ba-4702-9997-1ec7d460ce52", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "title": "프로젝트 주제와 역할 분담", + "detail": "팀별 자율주행 문제 상황과 목표, 역할, 검증 기준을 정의합니다.", + "sortOrder": 1 + }, + { + "id": "e5e209c0-096d-403a-b1a6-5f1a5669cd26", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "title": "센서·모듈 구성 설계", + "detail": "센서 입력과 NAV2 모듈 조합, ROS 토픽 및 실행 순서를 설계합니다.", + "sortOrder": 2 + }, + { + "id": "7bedfd65-c358-491e-87cd-ea313015d643", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "title": "알고리즘 구현과 튜닝", + "detail": "SLAM, Localization, Planning, Control 파라미터를 수정하고 성능을 비교합니다.", + "sortOrder": 3 + }, + { + "id": "f0b41fa3-4a12-40a3-9d36-84e81aa3f4e0", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "title": "시뮬레이션·플랫폼 검증", + "detail": "Gazebo 시뮬레이션과 실제 플랫폼에서 주행 시나리오를 검증합니다.", + "sortOrder": 4 + }, + { + "id": "394cc4e2-abb5-435b-b6b1-33d0e47856e8", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "title": "결과 제출과 발표", + "detail": "소스, 실행 로그, 검증 결과를 정리해 팀 프로젝트 결과를 제출하고 발표합니다.", + "sortOrder": 5 + } + ], + "modules": [ + { + "id": "1cc184c7-83e0-4762-9dfa-f48306ea8c96", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 8, + "category": "Localization", + "name": "NAV2-SLAM", + "folderName": "[lms-nav2-gazebo-slam]nav2-slam_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-slam.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-slam/1.0.0/prebuilt/amd64/e5aa22340e275d70/lms-nav2-gazebo-slam-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-slam-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "e5aa22340e275d7063e5cd96f974620354760082d22e80b9a58205085d88e337" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.932Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "2fc3f487-1f31-4ad2-98ec-1ffd71bf5765", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 16, + "category": "Map", + "name": "NAV2-Yahboom-Map", + "folderName": "[lms-nav2-yahboom-map]yahboom_map_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-map.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-map/1.0.0/prebuilt/arm64/111981b9ab460ce4/lms-nav2-yahboom-map-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-map-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "111981b9ab460ce450334e5c367e97b7e757ef55d84330ca030b096d4a9c4792" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "36cab3bd-093e-41d7-bc3f-6d999f9dcf22", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 9, + "category": "Localization", + "name": "NAV2-SLAM3D", + "folderName": "[lms-nav2-gazebo-slam3d]nav2-slam3d_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-slam3D.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-slam3d/1.0.0/prebuilt/latest/lms-nav2-gazebo-slam3d-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-slam3d-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "ed59e1e6b5e816403475c44672247cf8747c14edcbfcf7f1939d2b2de1d3263d" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.934Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "3730f0db-957d-4478-a1e3-2bfa6ab1e850", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 18, + "category": "Planning", + "name": "NAV2-Yahboom-Planning", + "folderName": "[lms-nav2-yahboom-planning]yahboom_planning_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-planning.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-planning/1.0.0/prebuilt/arm64/050f4ed4acba795a/lms-nav2-yahboom-planning-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-planning-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "050f4ed4acba795affec8306b7eef116e9e86fd0f42e492da27c7fc624dc8570" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "3b145e73-05f9-4d16-93f0-ec493bd93a04", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 10, + "category": "Vehicle", + "name": "NAV2-TurtleBot3Burger", + "folderName": "[lms-nav2-gazebo-vehicle]nav2-vehicle_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-vehicle.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-vehicle/1.0.0/prebuilt/latest/lms-nav2-gazebo-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "42e8179172c178978e5ae5d48e189164f6b8a5030fdaa0eba497ca86a97e96bb" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "platform:=turtlebot3", + "level:=2d" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.937Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "409523ba-25fb-4376-ac7e-185ab85f54f1", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 12, + "category": "Gui", + "name": "NAV2-Rviz2", + "folderName": "[lms-nav2-gazebo-gui]nav2-rviz2_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-gui.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-gui/1.0.0/prebuilt/latest/lms-nav2-gazebo-gui-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-gui-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2a816b08d9f39057a96641ce7ace341ce409f77e5043abe074e2e21ecaa871ca" + } + ], + "defaultParameters": [ + "rviz_config:=nav2" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.941Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "497bd74c-d8b2-4121-baa7-d0ca2bb56b2f", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 3, + "category": "Map", + "name": "NAV2-Map", + "folderName": "[lms-nav2-gazebo-map]nav2-map_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-map.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-map/1.0.0/prebuilt/latest/lms-nav2-gazebo-map-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-map-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "f409ce54c40aeeed8cf3fc06251c2e321887b3ec5f5827dfb74897a62780582f" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.923Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "6e9c3116-7ffe-48eb-a8dc-31e19427fe4a", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 19, + "category": "Control", + "name": "NAV2-Yahboom-Control", + "folderName": "[lms-nav2-yahboom-control]yahboom_control_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-control.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-control/1.0.0/prebuilt/arm64/be7147024d890249/lms-nav2-yahboom-control-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-control-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "be7147024d89024915f1481a47a0909ea1d06196ef9e9797f260739999e09b3f" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "7849797a-1087-4e1c-a0e6-fc0ac25066a0", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 11, + "category": "Vehicle", + "name": "NAV2-MKMini", + "folderName": "[lms-nav2-mkmini]nav2-mkmini_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-mkmini.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-mkmini/1.0.0/prebuilt/amd64/lms-nav2-mkmini-build-install-amd64.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-mkmini-build-install-amd64.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "6094d2aa5188a28153452aec08e28870984b36c1bc0c06fec8091901f6d26856" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "platform:=mkmini", + "level:=2d" + ], + "dockerImage": "future-nav2:humble-jetson_orin", + "createdAt": "2026-08-12T06:54:50.939Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "8d2f2a89-5bb1-47fd-bc67-b6ad4e1dea33", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 20, + "category": "Perception", + "name": "NAV2-Yahboom-Camera", + "folderName": "[lms-nav2-yahboom-camera]yahboom_camera_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-camera.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-camera/1.0.0/prebuilt/arm64/b950a71d5babcdb3/lms-nav2-yahboom-camera-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-camera-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "b950a71d5babcdb37e46c7674fb80d0ae8c076e7d7c1186042b1b1f6e7ee2d04" + } + ], + "defaultParameters": [ + "video_device:=/dev/video0" + ], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "9166ebc6-147d-4d51-bd86-8f88df88ae9e", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 7, + "category": "Simulator", + "name": "NAV2-Gazebo", + "folderName": "[lms-nav2-gazebo-simulator]nav2-simulator_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-simulator.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-simulator/1.0.0/prebuilt/amd64/2c97e7672eaec755/lms-nav2-gazebo-simulator-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-simulator-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2c97e7672eaec755eb300442a77b18bbcbaf6e0d305257dc9974724049756756" + } + ], + "defaultParameters": [ + "gui:=false", + "platform:=turtlebot3" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.930Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "b8816337-7c45-4c45-b0c4-8679313b2e4a", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 5, + "category": "Perception", + "name": "NAV2-Perception3D", + "folderName": "[lms-nav2-gazebo-perception3d]nav2-perception3d_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-perception3D.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-perception3d/1.0.0/prebuilt/latest/lms-nav2-gazebo-perception3d-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-perception3d-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "bab9f7383f44950b6cf6cd8f97b4ae2d3ba61571d6b37c10b24922cc0348a7cc" + } + ], + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.926Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "b966f562-170a-4dbf-ae0d-35ebf3b3d0c8", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 1, + "category": "Control", + "name": "NAV2-Control", + "folderName": "[lms-nav2-gazebo-control]nav2-control_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-control.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-control/1.0.0/prebuilt/amd64/0ab85a58f37a922b/lms-nav2-gazebo-control-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-control-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "0ab85a58f37a922b493ce21676573e3a8fd339f99a74cce9c4cba58aff9b1e35" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=turtlebot3" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.900Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "c6b2e359-954c-46f8-999a-02db7263431e", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 4, + "category": "Perception", + "name": "NAV2-Perception", + "folderName": "[lms-nav2-gazebo-perception]nav2-perception_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-perception.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-perception/1.0.0/prebuilt/amd64/d18d59ac77130be1/lms-nav2-gazebo-perception-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-perception-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d18d59ac77130be1da9d16cb0716fbf4b2837132de1765726200b3a57217034e" + } + ], + "defaultParameters": [ + "sim_mode:=true" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.925Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "ced7672a-46e1-4531-9226-a49b3bd617d4", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 13, + "category": "System", + "name": "NAV2-Yahboom-Agent", + "folderName": "[lms-nav2-yahboom-agent]yahboom_agent_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-agent.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-agent/1.0.0/prebuilt/arm64/ec2b2c4578fc71b9/lms-nav2-yahboom-agent-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-agent-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "ec2b2c4578fc71b95c720dcacca5e7c7c5d08400fc80ef21a16097d31869cf9d" + } + ], + "defaultParameters": [ + "serial_device:=/dev/ttyUSB0", + "baudrate:=921600" + ], + "dockerImage": "future-nav2:humble-yahboom-agent", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "e03f0c95-2b3c-4697-9f84-32094d34a9ac", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 15, + "category": "Localization", + "name": "NAV2-Yahboom-Slam", + "folderName": "[lms-nav2-yahboom-slam]yahboom_slam_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-slam.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-slam/1.0.0/prebuilt/arm64/f6444fe604f50ee0/lms-nav2-yahboom-slam-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-slam-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "f6444fe604f50ee00831fc7db121bbebfea6be920b55a498ddc54fc317093c77" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "e30ffd05-131b-4cb0-a9b2-53f7d19fe7de", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 6, + "category": "Planning", + "name": "NAV2-Planning", + "folderName": "[lms-nav2-gazebo-planning]nav2-planning_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-planning.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-planning/1.0.0/prebuilt/amd64/d1c51b0f211e1420/lms-nav2-gazebo-planning-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-planning-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d1c51b0f211e14208882947dd3bf642dd8ce997f54b37dfc0a4c8d66bd84d608" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.928Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "eb938a93-f178-40e7-af97-b51db3fcb24f", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 17, + "category": "Localization", + "name": "NAV2-Yahboom-Localization", + "folderName": "[lms-nav2-yahboom-localization]yahboom_localization_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-localization.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-localization/1.0.0/prebuilt/arm64/d6534d48841a751c/lms-nav2-yahboom-localization-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-localization-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "d6534d48841a751cb2e21fa73785df61fb81815b406c9c4152c9cbfd0ae59e48" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "ec74a0c5-a8a4-40f6-8c92-1ad2b234155c", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 14, + "category": "Vehicle", + "name": "NAV2-Yahboom", + "folderName": "[lms-nav2-yahboom-vehicle]yahboom_vehicle_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-vehicle.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-vehicle/1.0.0/prebuilt/amd64/d54368061d520794/lms-nav2-yahboom-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d54368061d52079489a8d686461e6672ebb84ca0f531fb71f835717b3f2a031f" + }, + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-vehicle/1.0.0/prebuilt/arm64/f409c0b61ca9497d/lms-nav2-yahboom-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "f409c0b61ca9497d4cfd1c2af9f4e137d9316364cab664bb908818f6ecab8331" + } + ], + "defaultParameters": [ + "sim_mode:=false" + ], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:55:16.092Z" + }, + { + "id": "f9115dd5-b318-4e70-a031-d71360f92745", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "sortOrder": 2, + "category": "Localization", + "name": "NAV2-Localization", + "folderName": "[lms-nav2-gazebo-localization]nav2-localization_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-localization.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-localization/1.0.0/prebuilt/latest/lms-nav2-gazebo-localization-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-localization-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "44c8d50205f001a196870d03f44d435582b96c51eb4445e50cc8db6203b2c0c9" + } + ], + "defaultParameters": [ + "localization_mode:=amcl" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-12T06:54:50.902Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + } + ], + "practices": [ + { + "id": "4fc8713c-d003-4dc1-982f-a52906518d4b", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "title": "팀 자율주행 시나리오 구현", + "description": "팀별 시나리오에 맞춰 NAV2 모듈을 구성하고 소스를 수정합니다.", + "sortOrder": 1 + }, + { + "id": "5c5ec0e7-20cb-4366-8988-22e59f14c7cb", + "weekId": "10925ae0-964c-4f19-bc7a-e725cd307e86", + "title": "통합 주행 검증", + "description": "시뮬레이션과 플랫폼에서 재현 가능한 주행 결과를 확보합니다.", + "sortOrder": 2 + } + ] + }, + { + "id": "4255e11e-4882-477a-840b-f64b8ae8c6db", + "courseId": "8e296f81-8445-455c-b1a2-47f2ce9099a4", + "week": 3, + "title": "원격 개발", + "tags": [ + "MK-mini", + "진행예정" + ], + "progress": 0, + "state": "locked", + "duration": "1주", + "github": "https://github.com/ros-navigation/navigation2", + "overview": "원거리 MK-mini 플랫폼을 연결하고 원격으로 코드를 편집·빌드·실행합니다. 로컬 MK-mini 시뮬레이션과 실차에서 SLAM 및 자율주행을 검증합니다.", + "deliverable": "SLAM 저장 맵, 자율주행 검증 결과, 원격 개발 소스 변경 내역 및 실행 로그를 제출합니다.", + "requiresSourceSubmission": true, + "createdAt": "2026-09-22T06:11:53.084Z", + "updatedAt": "2026-09-22T06:11:53.084Z", + "topics": [ + { + "id": "3764b382-ab4a-4162-9be8-d70b72d63ee2", + "weekId": "4255e11e-4882-477a-840b-f64b8ae8c6db", + "title": "SLAM", + "detail": "원거리 MK-mini 플랫폼에 연결하여 모듈 소스와 파라미터를 수정하고, 센서 토픽을 확인하며 SLAM 맵을 생성·저장합니다. 로컬 MK-mini 시뮬레이션에서 먼저 검증합니다.", + "sortOrder": 1 + }, + { + "id": "ca9b8bb3-9cf9-4964-816c-95bfa59fa087", + "weekId": "4255e11e-4882-477a-840b-f64b8ae8c6db", + "title": "자율주행", + "detail": "저장한 맵으로 위치추정·경로 계획·제어 모듈을 구성하고 목표 지점 주행을 검증합니다. 원격 코드 편집과 빌드, 실행 로그 분석 및 파라미터 튜닝을 실습합니다.", + "sortOrder": 2 + } + ], + "modules": [ + { + "id": "3e8324cb-c747-40a6-8cab-e5fa9473300e", + "weekId": "4255e11e-4882-477a-840b-f64b8ae8c6db", + "sortOrder": 11, + "category": "Gui", + "name": "NAV2-Rviz2", + "folderName": "[lms-nav2-gazebo-gui]nav2-rviz2_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-gui.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-gui/1.0.0/prebuilt/latest/lms-nav2-gazebo-gui-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-gui-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2a816b08d9f39057a96641ce7ace341ce409f77e5043abe074e2e21ecaa871ca" + } + ], + "defaultParameters": [ + "rviz_config:=nav2" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T06:11:53.323Z", + "updatedAt": "2026-09-22T06:11:53.323Z" + }, + { + "id": "5ded14c7-0d95-49a5-b39a-2af32cd30fb7", + "weekId": "4255e11e-4882-477a-840b-f64b8ae8c6db", + "sortOrder": 2, + "category": "Localization", + "name": "NAV2-Localization", + "folderName": "[lms-nav2-gazebo-localization]nav2-localization_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-localization.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-localization/1.0.0/prebuilt/latest/lms-nav2-gazebo-localization-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-localization-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "44c8d50205f001a196870d03f44d435582b96c51eb4445e50cc8db6203b2c0c9" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d", + "localization_mode:=amcl" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T06:11:53.177Z", + "updatedAt": "2026-09-22T06:11:53.177Z" + }, + { + "id": "61ba3bc3-7623-41e0-a3c7-b0f7bf424075", + "weekId": "4255e11e-4882-477a-840b-f64b8ae8c6db", + "sortOrder": 5, + "category": "Perception", + "name": "NAV2-Perception3D", + "folderName": "[lms-nav2-gazebo-perception3d]nav2-perception3d_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-perception3D.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-perception3d/1.0.0/prebuilt/latest/lms-nav2-gazebo-perception3d-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-perception3d-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "bab9f7383f44950b6cf6cd8f97b4ae2d3ba61571d6b37c10b24922cc0348a7cc" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T06:11:53.226Z", + "updatedAt": "2026-09-22T06:11:53.226Z" + }, + { + "id": "644f8ee6-2103-4809-8961-de00db3c224e", + "weekId": "4255e11e-4882-477a-840b-f64b8ae8c6db", + "sortOrder": 1, + "category": "Control", + "name": "NAV2-Control", + "folderName": "[lms-nav2-gazebo-control]nav2-control_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-control.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-control/1.0.0/prebuilt/amd64/0ab85a58f37a922b/lms-nav2-gazebo-control-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-control-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "0ab85a58f37a922b493ce21676573e3a8fd339f99a74cce9c4cba58aff9b1e35" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T06:11:53.161Z", + "updatedAt": "2026-09-22T06:11:53.161Z" + }, + { + "id": "64f36b02-c1b1-4815-af43-451dce90b9ee", + "weekId": "4255e11e-4882-477a-840b-f64b8ae8c6db", + "sortOrder": 3, + "category": "Map", + "name": "NAV2-Map", + "folderName": "[lms-nav2-gazebo-map]nav2-map_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-map.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-map/1.0.0/prebuilt/latest/lms-nav2-gazebo-map-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-map-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "f409ce54c40aeeed8cf3fc06251c2e321887b3ec5f5827dfb74897a62780582f" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T06:11:53.193Z", + "updatedAt": "2026-09-22T06:11:53.193Z" + }, + { + "id": "75e52819-88c3-48bc-ac2c-5ef3fa057410", + "weekId": "4255e11e-4882-477a-840b-f64b8ae8c6db", + "sortOrder": 8, + "category": "Localization", + "name": "NAV2-SLAM", + "folderName": "[lms-nav2-gazebo-slam]nav2-slam_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-slam.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-slam/1.0.0/prebuilt/amd64/e5aa22340e275d70/lms-nav2-gazebo-slam-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-slam-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "e5aa22340e275d7063e5cd96f974620354760082d22e80b9a58205085d88e337" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T06:11:53.275Z", + "updatedAt": "2026-09-22T06:11:53.275Z" + }, + { + "id": "7fc02d9c-4c38-4b9c-8ea6-79e827010a17", + "weekId": "4255e11e-4882-477a-840b-f64b8ae8c6db", + "sortOrder": 4, + "category": "Perception", + "name": "NAV2-Perception", + "folderName": "[lms-nav2-gazebo-perception]nav2-perception_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-perception.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-perception/1.0.0/prebuilt/amd64/d18d59ac77130be1/lms-nav2-gazebo-perception-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-perception-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d18d59ac77130be1da9d16cb0716fbf4b2837132de1765726200b3a57217034e" + } + ], + "defaultParameters": [ + "sim_mode:=true" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T06:11:53.210Z", + "updatedAt": "2026-09-22T06:11:53.210Z" + }, + { + "id": "9293c430-cf1b-43da-83e1-a385927adf1d", + "weekId": "4255e11e-4882-477a-840b-f64b8ae8c6db", + "sortOrder": 10, + "category": "Vehicle", + "name": "NAV2-MKMini", + "folderName": "[lms-nav2-mkmini]nav2-mkmini_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-mkmini.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-mkmini/1.0.0/prebuilt/amd64/lms-nav2-mkmini-build-install-amd64.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-mkmini-build-install-amd64.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "6094d2aa5188a28153452aec08e28870984b36c1bc0c06fec8091901f6d26856" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "platform:=mkmini", + "robot:=mkmini", + "level:=2d", + "simulator:=gazebo" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T06:11:53.307Z", + "updatedAt": "2026-09-22T06:11:53.307Z" + }, + { + "id": "bc7e3156-7b27-4f92-a991-bf7599b2d9e8", + "weekId": "4255e11e-4882-477a-840b-f64b8ae8c6db", + "sortOrder": 9, + "category": "Localization", + "name": "NAV2-SLAM3D", + "folderName": "[lms-nav2-gazebo-slam3d]nav2-slam3d_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-slam3D.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-slam3d/1.0.0/prebuilt/latest/lms-nav2-gazebo-slam3d-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-slam3d-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "ed59e1e6b5e816403475c44672247cf8747c14edcbfcf7f1939d2b2de1d3263d" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T06:11:53.291Z", + "updatedAt": "2026-09-22T06:11:53.291Z" + }, + { + "id": "ef43520e-f4a4-4cb0-bc75-96f07664c28b", + "weekId": "4255e11e-4882-477a-840b-f64b8ae8c6db", + "sortOrder": 6, + "category": "Planning", + "name": "NAV2-Planning", + "folderName": "[lms-nav2-gazebo-planning]nav2-planning_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-planning.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-planning/1.0.0/prebuilt/amd64/d1c51b0f211e1420/lms-nav2-gazebo-planning-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-planning-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d1c51b0f211e14208882947dd3bf642dd8ce997f54b37dfc0a4c8d66bd84d608" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T06:11:53.242Z", + "updatedAt": "2026-09-22T06:11:53.242Z" + }, + { + "id": "f6e540a6-130c-4da5-b9ea-5c3e8f63cc58", + "weekId": "4255e11e-4882-477a-840b-f64b8ae8c6db", + "sortOrder": 7, + "category": "Simulator", + "name": "NAV2-Gazebo", + "folderName": "[lms-nav2-gazebo-simulator]nav2-simulator_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-simulator.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-simulator/1.0.0/prebuilt/amd64/2c97e7672eaec755/lms-nav2-gazebo-simulator-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-simulator-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2c97e7672eaec755eb300442a77b18bbcbaf6e0d305257dc9974724049756756" + } + ], + "defaultParameters": [ + "gui:=false", + "platform:=mkmini" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-09-22T06:11:53.258Z", + "updatedAt": "2026-09-22T06:11:53.258Z" + } + ], + "practices": [ + { + "id": "0771ea3f-26b2-41a9-8280-998902bbc7bb", + "weekId": "4255e11e-4882-477a-840b-f64b8ae8c6db", + "title": "SLAM", + "description": "원거리 MK-mini 플랫폼에 연결하여 모듈 소스와 파라미터를 수정하고, 센서 토픽을 확인하며 SLAM 맵을 생성·저장합니다. 로컬 MK-mini 시뮬레이션에서 먼저 검증합니다.", + "sortOrder": 1 + }, + { + "id": "aba77659-e707-43e9-854e-87b419939de5", + "weekId": "4255e11e-4882-477a-840b-f64b8ae8c6db", + "title": "자율주행", + "description": "저장한 맵으로 위치추정·경로 계획·제어 모듈을 구성하고 목표 지점 주행을 검증합니다. 원격 코드 편집과 빌드, 실행 로그 분석 및 파라미터 튜닝을 실습합니다.", + "sortOrder": 2 + } + ] + } + ], + "instructorCurriculumWeekOverrides": [ + { + "id": "d4069536-1b4b-4349-8412-3a18906468fb", + "organizationId": "b545a634-e877-4935-8041-c83e352b1fb7", + "organizationName": "퓨처드라이브", + "courseId": "8e296f81-8445-455c-b1a2-47f2ce9099a4", + "week": 1, + "tagLabel": "MK-mini", + "title": "ROS2 & Simulation", + "duration": "1주", + "overview": "ROS2 통신 구조와 Gazebo 시뮬레이션 환경을 구성하고, LiDAR SLAM·위치추정·경로 계획·제어까지 NAV2 자율주행 파이프라인을 실습합니다.", + "deliverable": "NAV2 모듈 소스 변경 내역, SLAM 결과 맵, 목표 지점 주행 검증 화면 및 실행 로그를 제출합니다.", + "requiresSourceSubmission": true, + "isTeamProject": false, + "learningSteps": [ + { + "title": "ROS2 기초", + "concepts": [], + "videoUrl": "https://www.youtube.com/watch?v=gyskLlvX3oI&list=PLNWNEEf8BvG45noktLVI9N0SmD72BpmH7", + "description": "ROS Topic, Service, Action 통신과 TF 정의, ROS2 패키지 및 tree 구조를 실습합니다.", + "videoEnabled": true + }, + { + "title": "Sensor Processing", + "concepts": [], + "videoUrl": "", + "description": "LiDAR와 카메라 등 센서 데이터 처리 흐름과 Calibration 기초를 확인합니다.", + "videoEnabled": false + }, + { + "title": "Simulation 환경 구축 Part 1", + "concepts": [], + "videoUrl": "", + "description": "Gazebo 월드, 로봇 모델, 센서 토픽을 구성해 시뮬레이션 실습 환경을 만듭니다.", + "videoEnabled": false + }, + { + "title": "Simulation 환경 구축 Part 2", + "concepts": [], + "videoUrl": "", + "description": "시뮬레이션에서 활용할 수 있는 모빌리티 플랫폼과 실행 모듈 구성을 점검합니다.", + "videoEnabled": false + }, + { + "title": "LiDAR SLAM", + "concepts": [], + "videoUrl": "", + "description": "센서 데이터와 SLAM 알고리즘을 활용해 자율주행용 2D Map을 구축합니다.", + "videoEnabled": false + }, + { + "title": "LiDAR Localization", + "concepts": [], + "videoUrl": "", + "description": "구축한 Map과 실시간 LiDAR 데이터를 이용해 현재 위치를 추정합니다.", + "videoEnabled": false + }, + { + "title": "Parameter Tuning", + "concepts": [], + "videoUrl": "", + "description": "모듈 파라미터를 변경하고 결과를 비교해 알고리즘을 튜닝합니다.", + "videoEnabled": false + }, + { + "title": "[심화] Camera based SLAM", + "concepts": [], + "videoUrl": "", + "description": "카메라 기반 Map 구축과 위치인식의 입력·출력 구조를 분석합니다.", + "videoEnabled": false + }, + { + "title": "Occupancy Map", + "concepts": [], + "videoUrl": "", + "description": "장애물 인식을 위한 Occupancy Map과 costmap 반영 과정을 실습합니다.", + "videoEnabled": false + }, + { + "title": "Planning", + "concepts": [], + "videoUrl": "", + "description": "장애물 충돌 없이 목표 지점으로 이동하기 위한 전역·지역 경로 계획을 실습합니다.", + "videoEnabled": false + }, + { + "title": "Control", + "concepts": [], + "videoUrl": "", + "description": "생성한 경로를 추종하도록 속도 명령을 만들고 주행 결과를 검증합니다.", + "videoEnabled": false + }, + { + "title": "[심화] 딥러닝 기반 객체 인식", + "concepts": [], + "videoUrl": "", + "description": "딥러닝 기반 객체 인식 결과를 자율주행 데이터 흐름에 반영하는 방법을 학습합니다.", + "videoEnabled": false + } + ], + "topics": [ + "ROS2 기초", + "Sensor Processing", + "Simulation 환경 구축 Part 1", + "Simulation 환경 구축 Part 2", + "LiDAR SLAM", + "LiDAR Localization", + "Parameter Tuning", + "[심화] Camera based SLAM", + "Occupancy Map", + "Planning", + "Control", + "[심화] 딥러닝 기반 객체 인식" + ], + "topicDetails": [ + "ROS Topic, Service, Action 통신과 TF 정의, ROS2 패키지 및 tree 구조를 실습합니다.", + "LiDAR와 카메라 등 센서 데이터 처리 흐름과 Calibration 기초를 확인합니다.", + "Gazebo 월드, 로봇 모델, 센서 토픽을 구성해 시뮬레이션 실습 환경을 만듭니다.", + "시뮬레이션에서 활용할 수 있는 모빌리티 플랫폼과 실행 모듈 구성을 점검합니다.", + "센서 데이터와 SLAM 알고리즘을 활용해 자율주행용 2D Map을 구축합니다.", + "구축한 Map과 실시간 LiDAR 데이터를 이용해 현재 위치를 추정합니다.", + "모듈 파라미터를 변경하고 결과를 비교해 알고리즘을 튜닝합니다.", + "카메라 기반 Map 구축과 위치인식의 입력·출력 구조를 분석합니다.", + "장애물 인식을 위한 Occupancy Map과 costmap 반영 과정을 실습합니다.", + "장애물 충돌 없이 목표 지점으로 이동하기 위한 전역·지역 경로 계획을 실습합니다.", + "생성한 경로를 추종하도록 속도 명령을 만들고 주행 결과를 검증합니다.", + "딥러닝 기반 객체 인식 결과를 자율주행 데이터 흐름에 반영하는 방법을 학습합니다." + ], + "topicVideoUrls": [ + "https://www.youtube.com/watch?v=gyskLlvX3oI&list=PLNWNEEf8BvG45noktLVI9N0SmD72BpmH7", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "practiceContents": [ + { + "title": "ROS2와 Gazebo 실행 환경", + "description": "Topic, Service, Action, TF를 확인하고 TurtleBot3 Gazebo 환경을 실행합니다." + }, + { + "title": "LiDAR SLAM과 Localization", + "description": "맵을 생성·저장하고 저장된 맵에서 AMCL 기반 위치추정을 검증합니다." + }, + { + "title": "경로 계획과 제어", + "description": "목표 지점을 설정하고 장애물 회피, 경로 계획, 제어 명령을 비교합니다." + } + ], + "disabledModuleIds": [], + "createdAt": "2026-08-13T08:30:14.022Z", + "updatedAt": "2026-09-22T05:52:15.682Z" + } + ], + "environmentProfiles": [ + { + "id": "07f87f3f-5c93-4ea6-b9f3-4228960adfa5", + "courseId": "8e296f81-8445-455c-b1a2-47f2ce9099a4", + "week": 1, + "platformKey": "PLATFORM", + "profileType": "PLATFORM", + "name": "플랫폼", + "config": { + "type": "PLATFORM", + "bridge": { + "env": { + "ROBOT_STACK": "nav2" + }, + "name": "nav2-ros-bridge", + "port": 8765, + "image": "slam-ros-bridge:latest" + }, + "target": "remote-jetson", + "viewer": { + "stack": "nav2" + }, + "moduleSet": { + "target": "platform", + "modules": [ + { + "id": "ffacc8a8-08ac-4633-9eb2-24f18606d875", + "dockerImage": "future-nav2:humble-yahboom", + "defaultParameters": [ + "sim_mode:=false" + ] + }, + { + "id": "9b92dae5-575d-44a9-bf9f-f0bd1b128dff", + "dockerImage": "future-nav2:humble-yahboom-agent", + "defaultParameters": [ + "serial_device:=/dev/ttyUSB0", + "baudrate:=921600" + ] + }, + { + "id": "8140fefb-7aa2-48ba-a52e-09f2cf3caaca", + "dockerImage": "future-nav2:humble-yahboom", + "defaultParameters": [ + "video_device:=/dev/video0" + ] + }, + { + "id": "130b973e-dae3-4a98-a9d9-65e12107d8ac", + "dockerImage": "future-nav2:humble-yahboom" + }, + { + "id": "88186ea4-da6e-423f-b3e6-9d4176692617", + "dockerImage": "future-nav2:humble-yahboom" + }, + { + "id": "bc33d3d7-ccaf-4d1c-8490-7bc09122bdb2", + "dockerImage": "future-nav2:humble-yahboom" + }, + { + "id": "e4bf535f-ed53-4ca9-840c-c025cb997fa5", + "dockerImage": "future-nav2:humble-yahboom" + }, + { + "id": "2c34469d-0a53-459f-9698-468fba0048ba", + "dockerImage": "future-nav2:humble-yahboom" + } + ], + "includeUnlisted": false + }, + "runtimeKind": "real", + "runtimeImages": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/slam-ros-bridge/arm64/20260819-0659d4cf5578/slam-ros-bridge-jetson-orin.tar.zst", + "image": "slam-ros-bridge:jetson_orin", + "fileName": "slam-ros-bridge-jetson-orin.tar.zst", + "required": true, + "checksumSha256": "0659d4cf5578c43bc9c25e4a4fc5d226ccd5b7bec43becfdff83b5390717114e" + }, + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/nav2/jetson-orin/latest/future-nav2-humble-jetson-orin.tar.zst", + "image": "future-nav2:humble-jetson_orin", + "fileName": "future-nav2-humble-jetson-orin.tar.zst", + "required": true + } + ] + }, + "enabled": true, + "createdAt": "2026-08-12T06:54:50.945Z", + "updatedAt": "2026-09-22T05:52:15.667Z" + }, + { + "id": "0e9654b5-a12a-49ba-abba-ca00ee296be8", + "courseId": "8e296f81-8445-455c-b1a2-47f2ce9099a4", + "week": 3, + "platformKey": "PLATFORM", + "profileType": "PLATFORM", + "name": "플랫폼", + "config": { + "type": "PLATFORM", + "bridge": { + "env": { + "ROBOT_STACK": "nav2" + }, + "name": "nav2-ros-bridge", + "port": 8765, + "image": "slam-ros-bridge:latest" + }, + "target": "remote-jetson", + "viewer": { + "stack": "nav2" + }, + "moduleSet": { + "target": "platform", + "modules": [ + { + "id": "644f8ee6-2103-4809-8961-de00db3c224e", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "5ded14c7-0d95-49a5-b39a-2af32cd30fb7", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini", + "level:=2d", + "localization_mode:=amcl" + ] + }, + { + "id": "64f36b02-c1b1-4815-af43-451dce90b9ee", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "7fc02d9c-4c38-4b9c-8ea6-79e827010a17", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false" + ] + }, + { + "id": "61ba3bc3-7623-41e0-a3c7-b0f7bf424075", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini" + ] + }, + { + "id": "ef43520e-f4a4-4cb0-bc75-96f07664c28b", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "75e52819-88c3-48bc-ac2c-5ef3fa057410", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "bc7e3156-7b27-4f92-a991-bf7599b2d9e8", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "robot:=mkmini" + ] + }, + { + "id": "9293c430-cf1b-43da-83e1-a385927adf1d", + "dockerImage": "future-nav2:humble-jetson_orin", + "defaultParameters": [ + "sim_mode:=false", + "platform:=mkmini", + "robot:=mkmini", + "level:=2d" + ] + } + ], + "includeUnlisted": false + }, + "runtimeKind": "real", + "runtimeImages": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/slam-ros-bridge/arm64/20260819-0659d4cf5578/slam-ros-bridge-jetson-orin.tar.zst", + "image": "slam-ros-bridge:jetson_orin", + "fileName": "slam-ros-bridge-jetson-orin.tar.zst", + "required": true, + "checksumSha256": "0659d4cf5578c43bc9c25e4a4fc5d226ccd5b7bec43becfdff83b5390717114e" + }, + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/nav2/jetson-orin/latest/future-nav2-humble-jetson-orin.tar.zst", + "image": "future-nav2:humble-jetson_orin", + "fileName": "future-nav2-humble-jetson-orin.tar.zst", + "required": true + } + ] + }, + "enabled": true, + "createdAt": "2026-09-22T06:11:53.356Z", + "updatedAt": "2026-09-22T06:11:53.356Z" + }, + { + "id": "1323c10b-aeb5-4e9f-99c9-472f5759cb69", + "courseId": "8e296f81-8445-455c-b1a2-47f2ce9099a4", + "week": 2, + "platformKey": "NAV2", + "profileType": "NAV2", + "name": "로컬", + "config": { + "type": "NAV2", + "bridge": { + "env": { + "ROBOT_STACK": "nav2" + }, + "name": "nav2-ros-bridge", + "port": 8765, + "image": "slam-ros-bridge:latest" + }, + "target": "local", + "viewer": { + "stack": "nav2" + }, + "runtime": { + "steps": [], + "containers": [] + }, + "moduleSet": { + "target": "local", + "modules": [ + { + "id": "b966f562-170a-4dbf-ae0d-35ebf3b3d0c8", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "robot:=turtlebot3" + ] + }, + { + "id": "f9115dd5-b318-4e70-a031-d71360f92745", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "localization_mode:=amcl" + ] + }, + { + "id": "497bd74c-d8b2-4121-baa7-d0ca2bb56b2f", + "dockerImage": "future-nav2-gazebo:humble" + }, + { + "id": "c6b2e359-954c-46f8-999a-02db7263431e", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true" + ] + }, + { + "id": "e30ffd05-131b-4cb0-a9b2-53f7d19fe7de", + "dockerImage": "future-nav2-gazebo:humble" + }, + { + "id": "9166ebc6-147d-4d51-bd86-8f88df88ae9e", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "gui:=false", + "platform:=turtlebot3" + ] + }, + { + "id": "1cc184c7-83e0-4762-9dfa-f48306ea8c96", + "dockerImage": "future-nav2-gazebo:humble" + }, + { + "id": "3b145e73-05f9-4d16-93f0-ec493bd93a04", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "platform:=turtlebot3", + "level:=2d" + ] + }, + { + "id": "7849797a-1087-4e1c-a0e6-fc0ac25066a0", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "platform:=mkmini", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "409523ba-25fb-4376-ac7e-185ab85f54f1", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "rviz_config:=nav2" + ] + }, + { + "id": "ec74a0c5-a8a4-40f6-8c92-1ad2b234155c", + "dockerImage": "future-nav2:humble-yahboom", + "defaultParameters": [ + "sim_mode:=true" + ] + } + ], + "includeUnlisted": false + }, + "runtimeImages": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/nav2/gazebo/latest/future-nav2-gazebo-humble.tar.zst", + "image": "future-nav2-gazebo:humble", + "fileName": "future-nav2-gazebo-humble.tar.zst", + "required": true, + "checksumSha256": "54230e039c1fa5dc82615cef3828c5acae7b8bea8e921b70cfdc5351d8301644" + } + ] + }, + "enabled": true, + "createdAt": "2026-08-12T06:54:50.945Z", + "updatedAt": "2026-09-22T06:16:53.801Z" + }, + { + "id": "587c8b3a-0c80-4431-818d-a3bf8565cb2f", + "courseId": "8e296f81-8445-455c-b1a2-47f2ce9099a4", + "week": 2, + "platformKey": "PLATFORM", + "profileType": "PLATFORM", + "name": "플랫폼", + "config": { + "type": "PLATFORM", + "bridge": { + "env": { + "ROBOT_STACK": "nav2" + }, + "name": "nav2-ros-bridge", + "port": 8765, + "image": "slam-ros-bridge:latest" + }, + "target": "remote-jetson", + "viewer": { + "stack": "nav2" + }, + "moduleSet": { + "target": "platform", + "modules": [ + { + "id": "ec74a0c5-a8a4-40f6-8c92-1ad2b234155c", + "dockerImage": "future-nav2:humble-yahboom", + "defaultParameters": [ + "sim_mode:=false" + ] + }, + { + "id": "ced7672a-46e1-4531-9226-a49b3bd617d4", + "dockerImage": "future-nav2:humble-yahboom-agent", + "defaultParameters": [ + "serial_device:=/dev/ttyUSB0", + "baudrate:=921600" + ] + }, + { + "id": "8d2f2a89-5bb1-47fd-bc67-b6ad4e1dea33", + "dockerImage": "future-nav2:humble-yahboom", + "defaultParameters": [ + "video_device:=/dev/video0" + ] + }, + { + "id": "e03f0c95-2b3c-4697-9f84-32094d34a9ac", + "dockerImage": "future-nav2:humble-yahboom" + }, + { + "id": "eb938a93-f178-40e7-af97-b51db3fcb24f", + "dockerImage": "future-nav2:humble-yahboom" + }, + { + "id": "6e9c3116-7ffe-48eb-a8dc-31e19427fe4a", + "dockerImage": "future-nav2:humble-yahboom" + }, + { + "id": "3730f0db-957d-4478-a1e3-2bfa6ab1e850", + "dockerImage": "future-nav2:humble-yahboom" + }, + { + "id": "2fc3f487-1f31-4ad2-98ec-1ffd71bf5765", + "dockerImage": "future-nav2:humble-yahboom" + } + ], + "includeUnlisted": false + }, + "runtimeKind": "real", + "runtimeImages": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/slam-ros-bridge/arm64/20260819-0659d4cf5578/slam-ros-bridge-jetson-orin.tar.zst", + "image": "slam-ros-bridge:jetson_orin", + "fileName": "slam-ros-bridge-jetson-orin.tar.zst", + "required": true, + "checksumSha256": "0659d4cf5578c43bc9c25e4a4fc5d226ccd5b7bec43becfdff83b5390717114e" + }, + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/nav2/jetson-orin/latest/future-nav2-humble-jetson-orin.tar.zst", + "image": "future-nav2:humble-jetson_orin", + "fileName": "future-nav2-humble-jetson-orin.tar.zst", + "required": true + } + ] + }, + "enabled": true, + "createdAt": "2026-08-12T06:54:50.945Z", + "updatedAt": "2026-09-22T06:16:53.866Z" + }, + { + "id": "93b1f4d4-8640-4e6a-8c2c-1a0d6d8e7a6b", + "courseId": "8e296f81-8445-455c-b1a2-47f2ce9099a4", + "week": 3, + "platformKey": "NAV2", + "profileType": "NAV2", + "name": "로컬", + "config": { + "type": "NAV2", + "bridge": { + "env": { + "ROBOT_STACK": "nav2" + }, + "name": "nav2-ros-bridge", + "port": 8765, + "image": "slam-ros-bridge:latest" + }, + "target": "local", + "viewer": { + "stack": "nav2" + }, + "runtime": { + "steps": [], + "containers": [] + }, + "moduleSet": { + "target": "local", + "modules": [ + { + "id": "644f8ee6-2103-4809-8961-de00db3c224e", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "5ded14c7-0d95-49a5-b39a-2af32cd30fb7", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d", + "localization_mode:=amcl" + ] + }, + { + "id": "64f36b02-c1b1-4815-af43-451dce90b9ee", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "7fc02d9c-4c38-4b9c-8ea6-79e827010a17", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true" + ] + }, + { + "id": "ef43520e-f4a4-4cb0-bc75-96f07664c28b", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "f6e540a6-130c-4da5-b9ea-5c3e8f63cc58", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "gui:=false", + "platform:=mkmini" + ] + }, + { + "id": "75e52819-88c3-48bc-ac2c-5ef3fa057410", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "9293c430-cf1b-43da-83e1-a385927adf1d", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "platform:=mkmini", + "robot:=mkmini", + "level:=2d", + "simulator:=gazebo" + ] + }, + { + "id": "3e8324cb-c747-40a6-8cab-e5fa9473300e", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "rviz_config:=nav2" + ] + } + ], + "includeUnlisted": false + }, + "runtimeImages": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/nav2/gazebo/latest/future-nav2-gazebo-humble.tar.zst", + "image": "future-nav2-gazebo:humble", + "fileName": "future-nav2-gazebo-humble.tar.zst", + "required": true, + "checksumSha256": "54230e039c1fa5dc82615cef3828c5acae7b8bea8e921b70cfdc5351d8301644" + } + ] + }, + "enabled": true, + "createdAt": "2026-09-22T06:11:53.339Z", + "updatedAt": "2026-09-22T06:11:53.339Z" + }, + { + "id": "c7b9a405-5d88-4273-8686-edd51c7562ae", + "courseId": "8e296f81-8445-455c-b1a2-47f2ce9099a4", + "week": 1, + "platformKey": "NAV2", + "profileType": "NAV2", + "name": "로컬", + "config": { + "type": "NAV2", + "bridge": { + "env": { + "ROBOT_STACK": "nav2" + }, + "name": "nav2-ros-bridge", + "port": 8765, + "image": "slam-ros-bridge:latest" + }, + "target": "local", + "viewer": { + "stack": "nav2" + }, + "runtime": { + "steps": [], + "containers": [] + }, + "moduleSet": { + "target": "local", + "modules": [ + { + "id": "f5abf8ab-280b-4ad4-93d7-142bb22fb4bb", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "robot:=turtlebot3" + ] + }, + { + "id": "18805cbf-c01f-4ea5-956d-cced888b2697", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "localization_mode:=amcl" + ] + }, + { + "id": "e01c68d3-7f31-4359-89dd-ed32055c082c", + "dockerImage": "future-nav2-gazebo:humble" + }, + { + "id": "0817062b-045c-45c0-9d36-ae9e0ea456b0", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true" + ] + }, + { + "id": "645b6f17-a8a1-49d9-b6c7-ff5caf01dd4b", + "dockerImage": "future-nav2-gazebo:humble" + }, + { + "id": "303687ab-542a-415b-a991-434e49a93922", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "gui:=false", + "platform:=turtlebot3" + ] + }, + { + "id": "6b2c5597-be2e-4c81-a2a9-7df4a180c8c6", + "dockerImage": "future-nav2-gazebo:humble" + }, + { + "id": "efc492b5-afdc-4d01-935e-ea71ac3047d0", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "platform:=turtlebot3", + "level:=2d" + ] + }, + { + "id": "6d4a2cb8-b816-4f04-9874-8e8a03222a35", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "sim_mode:=true", + "platform:=mkmini", + "robot:=mkmini", + "level:=2d" + ] + }, + { + "id": "5cfd7b92-eb8b-46b3-b6f0-c5c24c5f8676", + "dockerImage": "future-nav2-gazebo:humble", + "defaultParameters": [ + "rviz_config:=nav2" + ] + }, + { + "id": "ffacc8a8-08ac-4633-9eb2-24f18606d875", + "dockerImage": "future-nav2:humble-yahboom", + "defaultParameters": [ + "sim_mode:=true" + ] + } + ], + "includeUnlisted": false + }, + "runtimeImages": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/nav2/gazebo/latest/future-nav2-gazebo-humble.tar.zst", + "image": "future-nav2-gazebo:humble", + "fileName": "future-nav2-gazebo-humble.tar.zst", + "required": true, + "checksumSha256": "54230e039c1fa5dc82615cef3828c5acae7b8bea8e921b70cfdc5351d8301644" + } + ] + }, + "enabled": true, + "createdAt": "2026-08-12T06:54:50.945Z", + "updatedAt": "2026-09-22T05:52:15.667Z" + } + ] + }, + { + "id": "e5be4acd-c5b8-4514-900a-0614a74a7d17", + "slug": "autonomy-studio-lms-guide", + "title": "NAV2 알아보기", + "subtitle": "처음 사용하는 수강생을 위한 짧은 체험 강좌", + "description": "강좌 배정 전 신규 사용자가 LMS 화면 흐름을 빠르게 익힐 수 있는 공통 체험 강좌입니다. NAV2 개념을 예시로 커리큘럼 확인, 학습단계 열람, 질의응답 사용법만 간단히 안내합니다.", + "organizationName": "Autonomy Studio", + "teacherId": "c54b2cf6-db10-4441-b195-e150cb4f4255", + "isActive": true, + "createdAt": "2026-07-07T07:25:59.445Z", + "updatedAt": "2026-07-07T07:25:59.445Z", + "weeks": [ + { + "id": "b9aedd46-ba1b-4b3d-bdd7-7270ae46e303", + "courseId": "e5be4acd-c5b8-4514-900a-0614a74a7d17", + "week": 1, + "title": "NAV2 모듈 교육", + "tags": [ + "NAV2", + "진행중" + ], + "progress": 0, + "state": "current", + "duration": "15분", + "github": "제출 없음", + "overview": "NAV2 자율주행 파이프라인을 구성하는 Gazebo, Vehicle, Perception, SLAM, Rviz2 모듈의 역할과 실행 순서를 확인합니다.", + "deliverable": "기본 NAV2 모듈을 설치하고 실행 상태를 확인합니다.", + "requiresSourceSubmission": false, + "createdAt": "2026-07-07T07:25:59.445Z", + "updatedAt": "2026-08-07T01:01:57.746Z", + "topics": [ + { + "id": "8d2e88e3-80e8-475a-91c9-7f5bb55a5342", + "weekId": "b9aedd46-ba1b-4b3d-bdd7-7270ae46e303", + "title": "NAV2 모듈 교육", + "detail": "NAV2 자율주행을 구성하는 모듈과 전체 데이터 흐름을 확인합니다.", + "sortOrder": 1 + }, + { + "id": "ab02a08f-10f2-4152-a0c3-8e6179a267f6", + "weekId": "b9aedd46-ba1b-4b3d-bdd7-7270ae46e303", + "title": "시뮬레이션 모듈 구성", + "detail": "Gazebo와 로봇 모듈을 연결해 시뮬레이션 환경을 구성하는 방법을 확인합니다.", + "sortOrder": 2 + }, + { + "id": "027d34ab-4347-4372-ad4e-33799454bcae", + "weekId": "b9aedd46-ba1b-4b3d-bdd7-7270ae46e303", + "title": "센서·SLAM·시각화 모듈", + "detail": "Perception, SLAM, Rviz2 모듈의 역할과 실행 상태를 확인합니다.", + "sortOrder": 3 + } + ], + "modules": [ + { + "id": "0d5d21bd-543c-4ba6-b18c-e47199507da2", + "weekId": "b9aedd46-ba1b-4b3d-bdd7-7270ae46e303", + "sortOrder": 12, + "category": "Control", + "name": "NAV2-Yahboom-Control", + "folderName": "[lms-nav2-yahboom-control]yahboom_control_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-control.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-control/1.0.0/prebuilt/arm64/be7147024d890249/lms-nav2-yahboom-control-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-control-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "be7147024d89024915f1481a47a0909ea1d06196ef9e9797f260739999e09b3f" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "0dd53004-d8ee-401e-90c2-9123314f4868", + "weekId": "b9aedd46-ba1b-4b3d-bdd7-7270ae46e303", + "sortOrder": 3, + "category": "Perception", + "name": "NAV2-Perception", + "folderName": "[lms-nav2-gazebo-perception]nav2-perception_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-perception.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-perception/1.0.0/prebuilt/amd64/d18d59ac77130be1/lms-nav2-gazebo-perception-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-perception-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d18d59ac77130be1da9d16cb0716fbf4b2837132de1765726200b3a57217034e" + } + ], + "defaultParameters": [ + "sim_mode:=true" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-06T08:51:53.827Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "1e566da2-07a6-4fbe-9995-0c7d8e275a29", + "weekId": "b9aedd46-ba1b-4b3d-bdd7-7270ae46e303", + "sortOrder": 2, + "category": "Vehicle", + "name": "NAV2-TurtleBot3Burger", + "folderName": "[lms-nav2-gazebo-vehicle]nav2-vehicle_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-vehicle.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-vehicle/1.0.0/prebuilt/latest/lms-nav2-gazebo-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "42e8179172c178978e5ae5d48e189164f6b8a5030fdaa0eba497ca86a97e96bb" + } + ], + "defaultParameters": [ + "sim_mode:=true", + "platform:=turtlebot3", + "level:=2d" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-06T08:26:43.868Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "277e413b-2aad-4b02-8d61-0bb3eeb0de05", + "weekId": "b9aedd46-ba1b-4b3d-bdd7-7270ae46e303", + "sortOrder": 11, + "category": "Planning", + "name": "NAV2-Yahboom-Planning", + "folderName": "[lms-nav2-yahboom-planning]yahboom_planning_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-planning.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-planning/1.0.0/prebuilt/arm64/050f4ed4acba795a/lms-nav2-yahboom-planning-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-planning-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "050f4ed4acba795affec8306b7eef116e9e86fd0f42e492da27c7fc624dc8570" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "4084be2a-28ea-42e8-8de8-794c71365fbe", + "weekId": "b9aedd46-ba1b-4b3d-bdd7-7270ae46e303", + "sortOrder": 7, + "category": "Vehicle", + "name": "NAV2-Yahboom", + "folderName": "[lms-nav2-yahboom-vehicle]yahboom_vehicle_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-vehicle.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-vehicle/1.0.0/prebuilt/amd64/d54368061d520794/lms-nav2-yahboom-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "d54368061d52079489a8d686461e6672ebb84ca0f531fb71f835717b3f2a031f" + }, + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-vehicle/1.0.0/prebuilt/arm64/f409c0b61ca9497d/lms-nav2-yahboom-vehicle-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-vehicle-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "f409c0b61ca9497d4cfd1c2af9f4e137d9316364cab664bb908818f6ecab8331" + } + ], + "defaultParameters": [ + "sim_mode:=false" + ], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:55:16.092Z" + }, + { + "id": "4737a8d1-116a-4a2b-80a4-a8765ff24817", + "weekId": "b9aedd46-ba1b-4b3d-bdd7-7270ae46e303", + "sortOrder": 13, + "category": "Perception", + "name": "NAV2-Yahboom-Camera", + "folderName": "[lms-nav2-yahboom-camera]yahboom_camera_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-camera.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-camera/1.0.0/prebuilt/arm64/b950a71d5babcdb3/lms-nav2-yahboom-camera-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-camera-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "b950a71d5babcdb37e46c7674fb80d0ae8c076e7d7c1186042b1b1f6e7ee2d04" + } + ], + "defaultParameters": [ + "video_device:=/dev/video0" + ], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "4b54c904-e680-4098-9ecf-594fd74c178e", + "weekId": "b9aedd46-ba1b-4b3d-bdd7-7270ae46e303", + "sortOrder": 5, + "category": "Gui", + "name": "NAV2-Rviz2", + "folderName": "[lms-nav2-gazebo-gui]nav2-rviz2_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-gui.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-gui/1.0.0/prebuilt/latest/lms-nav2-gazebo-gui-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-gui-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2a816b08d9f39057a96641ce7ace341ce409f77e5043abe074e2e21ecaa871ca" + } + ], + "defaultParameters": [ + "rviz_config:=nav2" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-07T00:36:25.552Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "57131030-e61e-49fb-b1b1-d70172becbd6", + "weekId": "b9aedd46-ba1b-4b3d-bdd7-7270ae46e303", + "sortOrder": 1, + "category": "Simulator", + "name": "NAV2-Gazebo", + "folderName": "[lms-nav2-gazebo-simulator]nav2-simulator_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-simulator.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-simulator/1.0.0/prebuilt/amd64/2c97e7672eaec755/lms-nav2-gazebo-simulator-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-simulator-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "2c97e7672eaec755eb300442a77b18bbcbaf6e0d305257dc9974724049756756" + } + ], + "defaultParameters": [ + "gui:=false" + ], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-06T08:26:43.868Z", + "updatedAt": "2026-09-08T07:07:04.215Z" + }, + { + "id": "69d1e4ed-6eaa-49bf-8ebd-56fffb7c98b1", + "weekId": "b9aedd46-ba1b-4b3d-bdd7-7270ae46e303", + "sortOrder": 9, + "category": "Map", + "name": "NAV2-Yahboom-Map", + "folderName": "[lms-nav2-yahboom-map]yahboom_map_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-map.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-map/1.0.0/prebuilt/arm64/111981b9ab460ce4/lms-nav2-yahboom-map-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-map-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "111981b9ab460ce450334e5c367e97b7e757ef55d84330ca030b096d4a9c4792" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "71534df5-7435-43f8-b8b5-84ca4c159cd9", + "weekId": "b9aedd46-ba1b-4b3d-bdd7-7270ae46e303", + "sortOrder": 4, + "category": "Localization", + "name": "NAV2-SLAM", + "folderName": "[lms-nav2-gazebo-slam]nav2-slam_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-gazebo-slam.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-slam/1.0.0/prebuilt/amd64/e5aa22340e275d70/lms-nav2-gazebo-slam-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-gazebo-slam-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "amd64", + "checksumSha256": "e5aa22340e275d7063e5cd96f974620354760082d22e80b9a58205085d88e337" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2-gazebo:humble", + "createdAt": "2026-08-06T08:26:43.868Z", + "updatedAt": "2026-09-22T02:15:17.705Z" + }, + { + "id": "c17095b4-af7c-4155-801e-0e8d4cf9794a", + "weekId": "b9aedd46-ba1b-4b3d-bdd7-7270ae46e303", + "sortOrder": 8, + "category": "Localization", + "name": "NAV2-Yahboom-Slam", + "folderName": "[lms-nav2-yahboom-slam]yahboom_slam_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-slam.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-slam/1.0.0/prebuilt/arm64/f6444fe604f50ee0/lms-nav2-yahboom-slam-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-slam-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "f6444fe604f50ee00831fc7db121bbebfea6be920b55a498ddc54fc317093c77" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "f3d34488-03f4-43ba-b195-80fd75f84cf9", + "weekId": "b9aedd46-ba1b-4b3d-bdd7-7270ae46e303", + "sortOrder": 10, + "category": "Localization", + "name": "NAV2-Yahboom-Localization", + "folderName": "[lms-nav2-yahboom-localization]yahboom_localization_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-localization.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-localization/1.0.0/prebuilt/arm64/d6534d48841a751c/lms-nav2-yahboom-localization-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-localization-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "d6534d48841a751cb2e21fa73785df61fb81815b406c9c4152c9cbfd0ae59e48" + } + ], + "defaultParameters": [], + "dockerImage": "future-nav2:humble-yahboom", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + }, + { + "id": "fc86d1d2-2e76-438f-b2eb-a0fa0a6fe8c9", + "weekId": "b9aedd46-ba1b-4b3d-bdd7-7270ae46e303", + "sortOrder": 6, + "category": "System", + "name": "NAV2-Yahboom-Agent", + "folderName": "[lms-nav2-yahboom-agent]yahboom_agent_v1.0.0_ws", + "templateRepositoryUrl": "https://gitea.autonomystudio.net/templates/lms-nav2-yahboom-agent.git", + "sourceType": "GIT", + "prebuiltArtifacts": [ + { + "url": "https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-yahboom-agent/1.0.0/prebuilt/arm64/ec2b2c4578fc71b9/lms-nav2-yahboom-agent-build-install.tar.zst", + "type": "build-install", + "fileName": "lms-nav2-yahboom-agent-build-install.tar.zst", + "required": false, + "extractPath": ".", + "architecture": "arm64", + "checksumSha256": "ec2b2c4578fc71b95c720dcacca5e7c7c5d08400fc80ef21a16097d31869cf9d" + } + ], + "defaultParameters": [ + "serial_device:=/dev/ttyUSB0", + "baudrate:=921600" + ], + "dockerImage": "future-nav2:humble-yahboom-agent", + "createdAt": "2026-09-22T01:00:21.656Z", + "updatedAt": "2026-09-22T04:47:39.303Z" + } + ], + "practices": [ + { + "id": "b6e2514c-808a-40d6-a3ef-fc551b5d3a11", + "weekId": "b9aedd46-ba1b-4b3d-bdd7-7270ae46e303", + "title": "모듈 목록 확인", + "description": "기본강좌에 제공된 NAV2 모듈의 역할과 실행 순서를 확인합니다.", + "sortOrder": 1 + }, + { + "id": "6c967e3b-615f-4c27-859d-589d0ce0b1fa", + "weekId": "b9aedd46-ba1b-4b3d-bdd7-7270ae46e303", + "title": "모듈 실행 확인", + "description": "필요한 모듈을 설치하고 실행 상태 및 ROS 상태를 확인합니다.", + "sortOrder": 2 + } + ] + } + ], + "instructorCurriculumWeekOverrides": [ + { + "id": "94f0e797-0142-4ce0-a018-18ad5d54a56d", + "organizationId": null, + "organizationName": "Autonomy Studio", + "courseId": "e5be4acd-c5b8-4514-900a-0614a74a7d17", + "week": 1, + "tagLabel": null, + "title": null, + "duration": null, + "overview": null, + "deliverable": null, + "requiresSourceSubmission": true, + "isTeamProject": false, + "learningSteps": null, + "topics": null, + "topicDetails": null, + "topicVideoUrls": [ + "https://www.youtube.com/watch?v=gyskLlvX3oI&list=PLNWNEEf8BvG45noktLVI9N0SmD72BpmH7", + "", + "" + ], + "practiceContents": null, + "disabledModuleIds": null, + "createdAt": "2026-08-07T00:25:15.922Z", + "updatedAt": "2026-08-07T01:03:09.493Z" + } + ], + "environmentProfiles": [ + { + "id": "24313ddf-93f7-4402-b7e8-9bab805c847e", + "courseId": "e5be4acd-c5b8-4514-900a-0614a74a7d17", + "week": 1, + "platformKey": "futuredrive-platform", + "profileType": "PLATFORM", + "name": "플랫폼", + "config": { + "target": "remote-jetson", + "moduleSet": { + "target": "platform", + "modules": [ + { + "id": "57131030-e61e-49fb-b1b1-d70172becbd6" + }, + { + "id": "1e566da2-07a6-4fbe-9995-0c7d8e275a29" + }, + { + "id": "0dd53004-d8ee-401e-90c2-9123314f4868" + }, + { + "id": "71534df5-7435-43f8-b8b5-84ca4c159cd9" + }, + { + "id": "4b54c904-e680-4098-9ecf-594fd74c178e" + } + ], + "includeUnlisted": false + } + }, + "enabled": true, + "createdAt": "2026-09-22T01:00:03.755Z", + "updatedAt": "2026-09-22T01:00:03.755Z" + }, + { + "id": "6de5ed51-70e4-456b-9d30-643082dcded8", + "courseId": "e5be4acd-c5b8-4514-900a-0614a74a7d17", + "week": 1, + "platformKey": "futuredrive-local-pc", + "profileType": "LOCAL", + "name": "로컬", + "config": { + "target": "local", + "moduleSet": { + "target": "local", + "modules": [ + { + "id": "57131030-e61e-49fb-b1b1-d70172becbd6" + }, + { + "id": "1e566da2-07a6-4fbe-9995-0c7d8e275a29" + }, + { + "id": "0dd53004-d8ee-401e-90c2-9123314f4868" + }, + { + "id": "71534df5-7435-43f8-b8b5-84ca4c159cd9" + }, + { + "id": "4b54c904-e680-4098-9ecf-594fd74c178e" + } + ], + "includeUnlisted": false + } + }, + "enabled": true, + "createdAt": "2026-09-22T01:00:03.755Z", + "updatedAt": "2026-09-22T01:00:03.755Z" + } + ] + } +] \ No newline at end of file diff --git a/scripts/add-base-remote-development-week.cjs b/scripts/add-base-remote-development-week.cjs new file mode 100644 index 0000000..83b8cda --- /dev/null +++ b/scripts/add-base-remote-development-week.cjs @@ -0,0 +1,134 @@ +const assert = require('node:assert/strict'); +const fs = require('node:fs'); +const path = require('node:path'); +require('dotenv').config({ quiet: true }); +const { PrismaClient } = require('@prisma/client'); + +const url = new URL(process.env.DATABASE_URL); +url.hostname = '192.168.0.20'; +url.port = '15437'; +url.pathname = '/lms'; +url.searchParams.set('connect_timeout', '5'); +const db = new PrismaClient({ datasources: { db: { url: url.toString() } } }); +const apply = process.argv.includes('--apply'); +const slug = 'futuredrive-autonomy-basic'; +const localImage = 'future-nav2-gazebo:humble'; +const remoteImage = 'future-nav2:humble-jetson_orin'; +const names = ['NAV2-Control', 'NAV2-Localization', 'NAV2-Map', 'NAV2-Perception', + 'NAV2-Perception3D', 'NAV2-Planning', 'NAV2-Gazebo', 'NAV2-SLAM', 'NAV2-SLAM3D', + 'NAV2-MKMini', 'NAV2-Rviz2']; +const steps = [ + { title: 'SLAM', detail: '원거리 MK-mini 플랫폼에 연결하여 모듈 소스와 파라미터를 수정하고, 센서 토픽을 확인하며 SLAM 맵을 생성·저장합니다. 로컬 MK-mini 시뮬레이션에서 먼저 검증합니다.' }, + { title: '자율주행', detail: '저장한 맵으로 위치추정·경로 계획·제어 모듈을 구성하고 목표 지점 주행을 검증합니다. 원격 코드 편집과 빌드, 실행 로그 분석 및 파라미터 튜닝을 실습합니다.' }, +]; + +function parameters(module, remote) { + const sim = `sim_mode:=${!remote}`; + switch (module.name) { + case 'NAV2-Gazebo': return ['gui:=false', 'platform:=mkmini']; + case 'NAV2-MKMini': return [sim, 'platform:=mkmini', 'robot:=mkmini', 'level:=2d', ...(!remote ? ['simulator:=gazebo'] : [])]; + case 'NAV2-Control': return [sim, 'robot:=mkmini', 'level:=2d']; + case 'NAV2-Perception': return [sim]; + case 'NAV2-Perception3D': + case 'NAV2-SLAM3D': return [sim, 'robot:=mkmini']; + case 'NAV2-Localization': return [sim, 'robot:=mkmini', 'level:=2d', 'localization_mode:=amcl']; + case 'NAV2-SLAM': + case 'NAV2-Planning': + case 'NAV2-Map': return [sim, 'robot:=mkmini', 'level:=2d']; + default: return module.defaultParameters; + } +} + +async function snapshot(client) { + return client.course.findUniqueOrThrow({ where: { slug }, include: { + weeks: { orderBy: { week: 'asc' }, include: { + modules: { orderBy: { sortOrder: 'asc' } }, topics: { orderBy: { sortOrder: 'asc' } }, + practices: { orderBy: { sortOrder: 'asc' } }, references: true, + } }, environmentProfiles: { orderBy: [{ week: 'asc' }, { platformKey: 'asc' }] }, + weekMaps: true, + } }); +} + +async function main() { + const before = await snapshot(db); + assert.equal(before.weeks.length, 2, 'Expected only weeks 1 and 2; refusing to overwrite'); + const source = before.weeks.find(w => w.week === 1); + assert(source); + const selected = names.map(name => { + const matches = source.modules.filter(m => m.name === name); + assert.equal(matches.length, 1, `Missing or ambiguous module: ${name}`); + return matches[0]; + }); + const profiles = before.environmentProfiles.filter(p => p.week === 1); + assert.equal(profiles.length, 2); + assert(profiles.some(p => p.config.target === 'local')); + assert(profiles.some(p => p.config.target === 'remote-jetson')); + if (apply) { + const backup = path.resolve('backups', `base-before-week3-${Date.now()}.json`); + fs.mkdirSync(path.dirname(backup), { recursive: true }); + fs.writeFileSync(backup, JSON.stringify(before, null, 2), { mode: 0o600, flag: 'wx' }); + console.log('Backup:', backup); + } + let summary; + try { + await db.$transaction(async tx => { + assert.deepEqual(await snapshot(tx), before, 'Source changed during preparation'); + const week = await tx.courseWeek.create({ data: { + courseId: before.id, week: 3, title: '원격 개발', tags: ['MK-mini', '진행예정'], + progress: 0, state: 'locked', duration: '1주', github: source.github, + overview: '원거리 MK-mini 플랫폼을 연결하고 원격으로 코드를 편집·빌드·실행합니다. 로컬 MK-mini 시뮬레이션과 실차에서 SLAM 및 자율주행을 검증합니다.', + deliverable: 'SLAM 저장 맵, 자율주행 검증 결과, 원격 개발 소스 변경 내역 및 실행 로그를 제출합니다.', + requiresSourceSubmission: true, + topics: { create: steps.map((s, i) => ({ ...s, sortOrder: i + 1 })) }, + practices: { create: steps.map((s, i) => ({ title: s.title, description: s.detail, sortOrder: i + 1 })) }, + } }); + const mapping = new Map(); + const created = []; + for (const [i, m] of selected.entries()) { + const { id, weekId, createdAt, updatedAt, ...data } = m; + const next = await tx.courseWeekModule.create({ data: { + ...data, weekId: week.id, sortOrder: i + 1, + dockerImage: localImage, defaultParameters: parameters(m, false), + } }); + mapping.set(id, next.id); + created.push(next); + } + const newProfiles = []; + for (const p of profiles) { + const remote = p.config.target === 'remote-jetson'; + const config = structuredClone(p.config); + config.moduleSet.modules = p.config.moduleSet.modules.flatMap(entry => { + if (!mapping.has(entry.id)) return []; + const m = selected.find(m => m.id === entry.id); + return [{ ...entry, id: mapping.get(entry.id), dockerImage: remote ? remoteImage : localImage, + defaultParameters: parameters(m, remote) }]; + }); + config.moduleSet.includeUnlisted = false; + assert.equal(config.moduleSet.modules.length, 9); + assert(config.moduleSet.modules.every(m => created.some(c => c.id === m.id))); + newProfiles.push(await tx.courseEnvironmentProfile.create({ data: { + courseId: before.id, week: 3, platformKey: p.platformKey, profileType: p.profileType, + name: p.name, enabled: p.enabled, config, + } })); + } + for (const m of before.weekMaps.filter(m => m.week === 1)) { + await tx.courseWeekMap.create({ data: { courseId: before.id, week: 3, mapKey: m.mapKey, sortOrder: m.sortOrder } }); + } + const after = await snapshot(tx); + assert.deepEqual(after.weeks.filter(w => w.week !== 3), before.weeks); + assert.deepEqual(after.environmentProfiles.filter(p => p.week !== 3), before.environmentProfiles); + assert.equal(after.weeks.find(w => w.week === 3).topics.length, 2); + assert(!created.some(m => /yahboom|turtlebot/i.test(JSON.stringify(m)))); + summary = { applied: apply, course: before.title, weekId: week.id, title: week.title, + steps: steps.map(s => s.title), modules: created.map(m => m.name), + environments: newProfiles.map(p => ({ target: p.config.target, modules: p.config.moduleSet.modules.map(m => ({ + name: created.find(c => c.id === m.id).name, image: m.dockerImage, parameters: m.defaultParameters, + })) })) }; + if (!apply) throw new Error('DRY_RUN_ROLLBACK'); + }, { isolationLevel: 'Serializable', timeout: 30000 }); + } catch (e) { + if (e.message !== 'DRY_RUN_ROLLBACK') throw e; + } + console.log(JSON.stringify(summary, null, 2)); +} +main().catch(e => { console.error(e.message); process.exitCode = 1; }).finally(() => db.$disconnect()); diff --git a/scripts/copy-remote-development-week.cjs b/scripts/copy-remote-development-week.cjs new file mode 100644 index 0000000..77c74af --- /dev/null +++ b/scripts/copy-remote-development-week.cjs @@ -0,0 +1,107 @@ +const assert = require('node:assert/strict'); +const fs = require('node:fs'); +require('dotenv').config({ quiet: true }); +const { PrismaClient } = require('@prisma/client'); +const url = new URL(process.env.DATABASE_URL); +url.hostname = '192.168.0.20'; +url.port = '15437'; +url.pathname = '/lms'; +url.searchParams.set('connect_timeout', '5'); +const db = new PrismaClient({ datasources: { db: { url: url.toString() } } }); +const apply = process.argv.includes('--apply'); +const include = { + weeks: { orderBy: { week: 'asc' }, include: { + modules: { orderBy: { sortOrder: 'asc' } }, topics: { orderBy: { sortOrder: 'asc' } }, + practices: { orderBy: { sortOrder: 'asc' } }, references: { orderBy: { id: 'asc' } }, + } }, + environmentProfiles: { orderBy: { id: 'asc' } }, maps: { orderBy: { id: 'asc' } }, + weekMaps: { orderBy: { id: 'asc' } }, instructorCurriculumWeekOverrides: { orderBy: { id: 'asc' } }, +}; +const snapshot = client => client.course.findMany({ orderBy: { id: 'asc' }, include }); +function data(row) { + const { id, createdAt, updatedAt, ...rest } = row; + return rest; +} +async function main() { + const before = await snapshot(db); + const base = before.find(c => c.slug === 'futuredrive-autonomy-basic'); + assert(base); + const source = base.weeks.find(w => w.week === 3); + assert.equal(source?.title, '원격 개발'); + assert.equal(source.topics.length, 2); + assert.equal(source.modules.length, 11); + const profiles = base.environmentProfiles.filter(p => p.week === 3); + assert.equal(profiles.length, 2); + const targets = before.filter(c => c.id !== base.id + && c.slug !== 'autonomy-studio-lms-guide' + && !c.weeks.some(w => w.week === 3)); + for (const c of targets) { + assert(!c.environmentProfiles.some(p => p.week === 3), `${c.title}: existing profile`); + assert(!c.weekMaps.some(p => p.week === 3), `${c.title}: existing map assignments`); + assert(!c.instructorCurriculumWeekOverrides.some(p => p.week === 3), `${c.title}: existing override`); + } + if (apply) { + fs.mkdirSync('backups', { recursive: true }); + const file = `backups/courses-before-remote-week-${Date.now()}.json`; + fs.writeFileSync(file, JSON.stringify(before, null, 2), { mode: 0o600, flag: 'wx' }); + console.log('Backup:', file); + } + const summary = []; + try { + await db.$transaction(async tx => { + assert.deepEqual(await snapshot(tx), before); + for (const c of targets) { + const { modules, topics, practices, references, ...weekData } = data(source); + const week = await tx.courseWeek.create({ data: { ...weekData, courseId: c.id } }); + for (const topic of topics) await tx.courseWeekTopic.create({ data: { ...data(topic), weekId: week.id } }); + for (const practice of practices) await tx.courseWeekPractice.create({ data: { ...data(practice), weekId: week.id } }); + for (const reference of references) await tx.courseWeekReference.create({ data: { ...data(reference), weekId: week.id } }); + const ids = new Map(); + for (const module of modules) { + const created = await tx.courseWeekModule.create({ data: { ...data(module), weekId: week.id } }); + ids.set(module.id, created.id); + } + for (const profile of profiles) { + const config = structuredClone(profile.config); + config.moduleSet.modules = config.moduleSet.modules.map(m => { + assert(ids.has(m.id), 'Cross-week module reference'); + return { ...m, id: ids.get(m.id) }; + }); + await tx.courseEnvironmentProfile.create({ data: { ...data(profile), courseId: c.id, config } }); + } + for (const assignment of base.weekMaps.filter(m => m.week === 3)) { + const systemMap = ['nav2-turtlebot3-world', 'nav2-turtlebot3-house'].includes(assignment.mapKey); + if (!systemMap && !c.maps.some(m => m.key === assignment.mapKey)) { + const map = base.maps.find(m => m.key === assignment.mapKey); + assert(map, 'Missing source map'); + await tx.courseMap.create({ data: { ...data(map), courseId: c.id } }); + } + await tx.courseWeekMap.create({ data: { ...data(assignment), courseId: c.id } }); + } + summary.push({ course: c.title, week: 3, weekId: week.id, modules: ids.size }); + } + const after = await snapshot(tx); + for (const old of before) { + const current = after.find(c => c.id === old.id); + if (!targets.some(c => c.id === old.id)) { assert.deepEqual(current, old); continue; } + assert.deepEqual(current.weeks.filter(w => w.week !== 3), old.weeks); + assert.deepEqual(current.environmentProfiles.filter(p => p.week !== 3), old.environmentProfiles); + assert.deepEqual(current.weekMaps.filter(m => m.week !== 3), old.weekMaps); + assert.deepEqual(current.instructorCurriculumWeekOverrides, old.instructorCurriculumWeekOverrides); + for (const map of old.maps) assert.deepEqual(current.maps.find(m => m.id === map.id), map); + const added = current.weeks.find(w => w.week === 3); + assert.equal(added.topics.length, 2); + assert.equal(added.modules.length, 11); + const envs = current.environmentProfiles.filter(p => p.week === 3); + assert.equal(envs.length, 2); + for (const p of envs) { + assert.equal(p.config.moduleSet.modules.length, 9); + assert(p.config.moduleSet.modules.every(m => added.modules.some(n => n.id === m.id))); + } + } + if (!apply) throw new Error('DRY_RUN_ROLLBACK'); + }, { isolationLevel: 'Serializable', timeout: 30000 }); + } catch (e) { if (e.message !== 'DRY_RUN_ROLLBACK') throw e; } + console.log(JSON.stringify({ applied: apply, courses: summary }, null, 2)); +} +main().catch(e => { console.error(e.message); process.exitCode = 1; }).finally(() => db.$disconnect()); diff --git a/scripts/enrich-curriculum-steps.cjs b/scripts/enrich-curriculum-steps.cjs new file mode 100644 index 0000000..b4260e3 --- /dev/null +++ b/scripts/enrich-curriculum-steps.cjs @@ -0,0 +1,92 @@ +const assert = require('node:assert/strict'); +const fs = require('node:fs'); +require('dotenv').config({ quiet: true }); +const { PrismaClient } = require('@prisma/client'); +const url = new URL(process.env.DATABASE_URL); +url.hostname = '192.168.0.20'; url.port = '15437'; url.pathname = '/lms'; +url.searchParams.set('connect_timeout', '5'); +const db = new PrismaClient({ datasources: { db: { url: url.toString() } } }); +const lessons = { + 1: [ + ['ROS2 기초', '노드와 패키지 구조를 이해하고 Topic, Service, Action으로 데이터를 주고받습니다. CLI로 통신 상태를 확인하고 TF를 통해 센서와 차량 좌표계의 관계를 살펴봅니다.', ['노드와 패키지', 'Topic · Service · Action', 'TF 좌표계']], + ['Sensor Processing', 'LiDAR와 카메라 데이터의 형식, 갱신 주기와 좌표계를 확인합니다. 노이즈와 불필요한 데이터를 걸러내고 센서 보정 결과가 인식에 미치는 영향을 비교합니다.', ['센서 메시지와 타임스탬프', '필터링과 전처리', '센서 캘리브레이션']], + ['Simulation 환경 구축 Part 1', 'Gazebo 월드와 차량 모듈을 실행하고 센서 데이터가 ROS2 토픽으로 전달되는 과정을 확인합니다. 시뮬레이션 시간과 TF 연결을 점검해 실습의 기본 환경을 구성합니다.', ['Gazebo 월드와 로봇 모델', '시뮬레이션 시간', '센서 토픽과 TF 연결']], + ['Simulation 환경 구축 Part 2', '실습 차량에 맞는 모듈과 파라미터를 선택하고 실행 순서를 정리합니다. 차량 모델을 바꾸며 공통 NAV2 모듈과 차량별 인터페이스의 역할을 구분합니다.', ['환경별 모듈 구성', '차량 인터페이스', '실행 순서와 의존성']], + ['LiDAR SLAM', '차량을 이동시키며 LiDAR 관측과 오도메트리를 이용해 2D 맵을 생성합니다. 반복 구간과 이동 속도에 따른 맵 품질을 비교하고, 완성한 맵을 저장해 다시 확인합니다.', ['점유격자 지도', '오도메트리와 스캔 정합', '루프 클로저']], + ['LiDAR Localization', '저장한 맵을 불러오고 초기 위치를 지정해 AMCL 위치추정을 시작합니다. 이동 중 추정 위치와 센서 관측이 일치하는지 확인하고 초기화가 잘못된 경우의 증상을 살펴봅니다.', ['AMCL 입자 필터', '초기 위치 설정', 'map · odom · base_link']], + ['Parameter Tuning', '센서 처리와 NAV2 모듈의 주요 파라미터를 한 번에 하나씩 변경합니다. 같은 주행 조건에서 경로, 오차와 처리 시간을 비교하고 설정값과 결과를 기록합니다.', ['기준 시나리오', '단일 변수 비교', '성능 지표와 재현성']], + ['[심화] Camera based SLAM', '카메라 기반 SLAM의 영상 입력과 위치·맵 출력 구조를 살펴봅니다. 특징점 추적과 깊이 정보의 역할을 이해하고 조명 변화나 반복 무늬에서 발생하는 한계를 분석합니다.', ['영상 특징점 추적', '깊이 정보와 스케일', '시각 오도메트리']], + ['Occupancy Map', '센서 관측이 점유격자와 costmap에 반영되는 흐름을 확인합니다. 장애물 주변의 비용과 차량 크기 설정을 바꾸며 통과 가능한 공간과 안전 여유가 달라지는 모습을 비교합니다.', ['점유 확률', 'Costmap 레이어', 'Footprint와 Inflation']], + ['Planning', '시작 위치와 목표 지점을 설정해 전역 경로 생성 과정을 확인합니다. 장애물 배치와 주행 제약을 바꾸며 경로의 길이, 안전성 및 재계획 결과를 비교합니다.', ['전역 경로 탐색', '장애물 비용과 주행 제약', '경로 재계획']], + ['Control', '계획된 경로를 따라가도록 속도 명령을 생성하는 제어 흐름을 확인합니다. 속도와 회전 관련 설정을 조절하고 곡선 및 좁은 구간에서 추종 오차와 안정성을 비교합니다.', ['경로 추종', '속도·회전 제약', '추종 오차와 안정성']], + ['[심화] 딥러닝 기반 객체 인식', '카메라 영상에서 객체를 검출하고 클래스, 위치와 신뢰도 결과를 해석합니다. 인식 결과를 ROS2 데이터 흐름에 연결하고 오검출과 추론 지연이 주행 판단에 미치는 영향을 살펴봅니다.', ['객체 검출과 신뢰도', '오검출·미검출', '추론 지연과 ROS2 연동']], + ], + 2: [ + ['프로젝트 주제와 역할 분담', '팀이 해결할 자율주행 문제를 정의하고 실습 가능한 시나리오로 구체화합니다. 성공 기준과 역할, 일정을 정하고 공통으로 기록할 검증 항목을 합의합니다.', ['문제 정의와 요구사항', '역할과 인터페이스 분담', '성공 기준']], + ['센서·모듈 구성 설계', '시나리오에 필요한 센서와 NAV2 모듈을 선택하고 입력·출력 토픽 및 TF 관계를 정리합니다. 로컬 시뮬레이션과 실차의 차이를 구분해 실행 순서와 파라미터를 설계합니다.', ['센서·모듈 데이터 흐름', '토픽과 TF 인터페이스', '환경별 실행 구성']], + ['알고리즘 구현과 튜닝', 'SLAM, 위치추정, 경로 계획과 제어 중 개선할 부분을 정해 소스나 파라미터를 수정합니다. 변경 전후를 같은 조건에서 비교하고 팀원이 재현할 수 있도록 설정과 결과를 공유합니다.', ['소스 변경 관리', '파라미터 튜닝', '비교 실험']], + ['시뮬레이션·플랫폼 검증', '시뮬레이션에서 기능을 확인한 뒤 안전한 실차 환경에서 동일한 시나리오를 검증합니다. 토픽, 로그와 주행 결과를 함께 분석해 환경 차이와 실패 원인을 정리합니다.', ['단계별 통합 검증', '시뮬레이션과 실차 차이', '로그 기반 원인 분석']], + ['결과 제출과 발표', '문제 정의부터 설계, 구현과 검증까지의 과정을 소스 및 실행 결과와 함께 정리합니다. 성능 개선 근거와 남은 한계를 설명하고 다른 팀이 실행할 수 있는 절차를 제공합니다.', ['재현 가능한 실행 절차', '정량·정성 평가', '결과와 한계 전달']], + ], + 3: [ + ['SLAM', '원거리 MK-mini 플랫폼에 연결해 센서 토픽과 TF 상태를 점검하고 원격으로 모듈을 편집·빌드·실행합니다. 로컬 MK-mini 시뮬레이션에서 먼저 확인한 뒤 실차에서 SLAM 맵을 생성·저장하고 통신 지연과 맵 품질을 비교합니다.', ['원격 개발·실행 흐름', '센서 토픽과 TF 점검', 'SLAM 맵 생성·저장']], + ['자율주행', '저장한 맵으로 MK-mini의 위치추정, 경로 계획과 제어 모듈을 구성하고 초기 위치와 목표 지점을 설정합니다. 원격으로 로그와 파라미터를 확인하며 주행 결과를 개선하고, 통신 단절에 대비한 정지·복구 절차를 점검합니다.', ['위치추정·계획·제어 연동', '원격 튜닝과 로그 분석', '통신 지연과 안전한 복구']], + ], +}; +const include = { weeks: { orderBy: { week: 'asc' }, include: { topics: { orderBy: { sortOrder: 'asc' } }, modules: { orderBy: { id: 'asc' } }, practices: true } }, instructorCurriculumWeekOverrides: { orderBy: { id: 'asc' } }, environmentProfiles: { orderBy: { id: 'asc' } } }; +const snapshot = tx => tx.course.findMany({ orderBy: { id: 'asc' }, include }); +async function main() { + const before = await snapshot(db); + const targets = before.filter(c => c.slug !== 'autonomy-studio-lms-guide'); + assert.equal(targets.length, 3); + for (const c of targets) for (const week of [1, 2, 3]) { + const w = c.weeks.find(w => w.week === week); assert(w); + assert.deepEqual(w.topics.map(t => t.title), lessons[week].map(l => l[0])); + } + const backup = `backups/learning-steps-before-${Date.now()}.json`; + fs.mkdirSync('backups', { recursive: true }); + fs.writeFileSync(backup, JSON.stringify(before, null, 2), { mode: 0o600, flag: 'wx' }); + console.log('Backup:', backup); + await db.$transaction(async tx => { + assert.deepEqual(await snapshot(tx), before); + for (const c of targets) for (const week of [1, 2, 3]) { + const w = c.weeks.find(w => w.week === week); + for (const [i, topic] of w.topics.entries()) await tx.courseWeekTopic.update({ where: { id: topic.id }, data: { detail: lessons[week][i][1] } }); + const existing = c.instructorCurriculumWeekOverrides.filter(o => o.week === week); + const overrides = existing.length ? existing : [{ organizationName: c.organizationName }]; + for (const o of overrides) { + const steps = lessons[week].map(([title, description, concepts], i) => { + const old = o.learningSteps?.[i]; + if (old) assert.equal(old.title, title); + const videoUrl = old?.videoUrl ?? o.topicVideoUrls?.[i] ?? ''; + return { ...old, title, description, concepts, videoUrl, videoEnabled: old?.videoEnabled ?? Boolean(videoUrl) }; + }); + const data = { learningSteps: steps, topics: steps.map(s => s.title), topicDetails: steps.map(s => s.description) }; + if (o.id) await tx.instructorCurriculumWeekOverride.update({ where: { id: o.id }, data }); + else await tx.instructorCurriculumWeekOverride.create({ data: { courseId: c.id, week, organizationName: c.organizationName, ...data } }); + } + } + const after = await snapshot(tx); + assert.deepEqual(after.find(c => c.slug === 'autonomy-studio-lms-guide'), before.find(c => c.slug === 'autonomy-studio-lms-guide')); + for (const old of targets) { + const current = after.find(c => c.id === old.id); + assert.deepEqual(current.environmentProfiles, old.environmentProfiles); + for (const w of current.weeks) { + const prev = old.weeks.find(p => p.id === w.id); + assert.deepEqual(w.modules, prev.modules); + assert.deepEqual(w.practices, prev.practices); + } + for (const o of current.instructorCurriculumWeekOverrides.filter(o => [1, 2, 3].includes(o.week))) { + assert.deepEqual(o.learningSteps.map(s => [s.title, s.description, s.concepts]), lessons[o.week]); + const prev = old.instructorCurriculumWeekOverrides.find(p => p.id === o.id); + if (prev) { + const omit = v => { const { learningSteps, topics, topicDetails, updatedAt, ...rest } = v; return rest; }; + assert.deepEqual(omit(o), omit(prev)); + if (prev.learningSteps) assert.deepEqual(o.learningSteps.map(s => [s.videoUrl, s.videoEnabled]), prev.learningSteps.map(s => [s.videoUrl, s.videoEnabled])); + } + } + } + }, { isolationLevel: 'Serializable', timeout: 30000 }); + console.log('Updated 3 courses, 9 weeks, 57 learning steps; 3 concepts per step.'); +} +main().catch(e => { console.error(e.message); process.exitCode = 1; }).finally(() => db.$disconnect()); diff --git a/scripts/reseed-base-nav2-curriculum.sql b/scripts/reseed-base-nav2-curriculum.sql index abd1bcc..219a6f3 100644 --- a/scripts/reseed-base-nav2-curriculum.sql +++ b/scripts/reseed-base-nav2-curriculum.sql @@ -221,7 +221,7 @@ CROSS JOIN ( ), 'runtimeImages', jsonb_build_array( jsonb_build_object( - 'url', 'https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/slam-ros-bridge/jetson-orin/latest/slam-ros-bridge-jetson-orin.tar.zst?v=0659d4cf5578', + 'url', 'https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/slam-ros-bridge/arm64/20260819-0659d4cf5578/slam-ros-bridge-jetson-orin.tar.zst', 'image', 'slam-ros-bridge:jetson_orin', 'fileName', 'slam-ros-bridge-jetson-orin.tar.zst', 'required', true, diff --git a/scripts/update-jetson-bridge-artifact-url.sql b/scripts/update-jetson-bridge-artifact-url.sql new file mode 100644 index 0000000..b25830d --- /dev/null +++ b/scripts/update-jetson-bridge-artifact-url.sql @@ -0,0 +1,31 @@ +-- Update only the legacy Jetson bridge URL; preserve array order and all other settings. +WITH replacement AS ( + SELECT + 'https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/slam-ros-bridge/jetson-orin/latest/slam-ros-bridge-jetson-orin.tar.zst'::text AS old_url, + 'https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/runtime-images/slam-ros-bridge/arm64/20260819-0659d4cf5578/slam-ros-bridge-jetson-orin.tar.zst'::text AS new_url +), updated_profiles AS ( + SELECT profile.id, + jsonb_agg( + CASE WHEN artifact->>'image' = 'slam-ros-bridge:jetson_orin' + AND split_part(artifact->>'url', '?', 1) = replacement.old_url + THEN jsonb_set(artifact, '{url}', to_jsonb(replacement.new_url)) + ELSE artifact END + ORDER BY ordinal + ) AS images + FROM "course_environment_profiles" profile + CROSS JOIN replacement + CROSS JOIN LATERAL jsonb_array_elements( + CASE WHEN jsonb_typeof(profile.config::jsonb->'runtimeImages') = 'array' + THEN profile.config::jsonb->'runtimeImages' ELSE '[]'::jsonb END + ) WITH ORDINALITY AS entries(artifact, ordinal) + WHERE profile.config::jsonb->>'target' = 'remote-jetson' + GROUP BY profile.id + HAVING bool_or(artifact->>'image' = 'slam-ros-bridge:jetson_orin' + AND split_part(artifact->>'url', '?', 1) = replacement.old_url) +) +UPDATE "course_environment_profiles" profile +SET config = jsonb_set(profile.config::jsonb, '{runtimeImages}', updated.images), + updated_at = CURRENT_TIMESTAMP +FROM updated_profiles updated +WHERE profile.id = updated.id +RETURNING profile.id, profile.config::jsonb->'runtimeImages' AS runtime_images; diff --git a/src/curriculum/curriculum.service.ts b/src/curriculum/curriculum.service.ts index 1849c0d..3ef0323 100644 --- a/src/curriculum/curriculum.service.ts +++ b/src/curriculum/curriculum.service.ts @@ -7,6 +7,7 @@ import { PlatformControlService } from '../platform-control/platform-control.ser import { PrismaService } from '../prisma/prisma.service'; import { R2PublicFileService } from '../storage/r2-public-file.service'; import { serializeCourseMaps } from './course-maps'; +import { readPlatformCamera } from '../instructor/platform-camera'; const COURSE_REFERENCE_UPLOAD_ROOT = join(process.cwd(), 'uploads', 'course-references'); const PUBLIC_GUIDE_COURSE_SLUG = 'autonomy-studio-lms-guide'; @@ -1099,6 +1100,7 @@ export class CurriculumService { organizationName: platform.organizationName, iconKey: platform.platform.iconKey, sourceSettings: platform.studioSettingsOverride ?? platform.platform.defaultStudioSettings, + camera: readPlatformCamera(platform.studioSettingsOverride), vehicleRuntimeProfile: this.toVehicleRuntimeProfile({ platformKey: platform.platform.platformKey, vehicleType: platform.vehicleType, diff --git a/src/instructor/curriculum-learning-copy.spec.ts b/src/instructor/curriculum-learning-copy.spec.ts new file mode 100644 index 0000000..74cba92 --- /dev/null +++ b/src/instructor/curriculum-learning-copy.spec.ts @@ -0,0 +1,33 @@ +import { InstructorService } from './instructor.service'; + +describe('base course learning content copy', () => { + it.each([true, false])('preserves learning concepts when present: %s', async (hasOverride) => { + const steps = [{ title: 'SLAM', description: 'Build and save a map.', concepts: ['TF', 'Mapping', 'Odometry'], videoEnabled: false, videoUrl: '' }]; + const template = { + organizationName: 'Source', weeks: [{ week: 1, topics: [{ title: 'SLAM', detail: 'Map', sortOrder: 1 }], practices: [], references: [], modules: [] }], + environmentProfiles: [], maps: [], weekMaps: [], + instructorCurriculumWeekOverrides: hasOverride ? [{ week: 1, organizationName: 'Source', learningSteps: steps }] : [], + }; + const tx = { + course: { findFirst: jest.fn().mockResolvedValue(null), create: jest.fn().mockResolvedValue({ id: 'new-course' }) }, + courseWeek: { create: jest.fn().mockResolvedValue({ id: 'new-week', week: 1 }) }, + courseWeekTopic: { createMany: jest.fn() }, courseWeekPractice: { createMany: jest.fn() }, + courseWeekReference: { createMany: jest.fn() }, instructorCurriculumWeekOverride: { create: jest.fn() }, + }; + const service = Object.assign(Object.create(InstructorService.prototype), { + prisma: { + course: { findFirst: jest.fn().mockResolvedValueOnce(null).mockResolvedValueOnce(template) }, + $transaction: (callback: (client: typeof tx) => Promise) => callback(tx), + }, + }); + await service.createBaseCourseForInstructor('teacher', 'Destination', 'New course'); + if (hasOverride) { + expect(tx.instructorCurriculumWeekOverride.create).toHaveBeenCalledWith({ data: { + courseId: 'new-course', organizationName: 'Destination', week: 1, learningSteps: steps, + topics: ['SLAM'], topicDetails: ['Build and save a map.'], topicVideoUrls: [''], + } }); + } else { + expect(tx.instructorCurriculumWeekOverride.create).not.toHaveBeenCalled(); + } + }); +}); diff --git a/src/instructor/dto/update-instructor-platform.dto.ts b/src/instructor/dto/update-instructor-platform.dto.ts index b58bc16..53c56ad 100644 --- a/src/instructor/dto/update-instructor-platform.dto.ts +++ b/src/instructor/dto/update-instructor-platform.dto.ts @@ -1,6 +1,14 @@ import { IsArray, IsInt, IsNumber, IsObject, IsOptional, IsString, Max, Min } from 'class-validator'; export class UpdateInstructorPlatformDto { + @IsOptional() + @IsString() + cameraViewUrl?: string; + + @IsOptional() + @IsString() + cameraPassword?: string; + @IsString() displayName: string; diff --git a/src/instructor/instructor.controller.ts b/src/instructor/instructor.controller.ts index 95f8f28..b903449 100644 --- a/src/instructor/instructor.controller.ts +++ b/src/instructor/instructor.controller.ts @@ -122,10 +122,12 @@ export class InstructorController { deleteCurriculumWeek( @Req() request: Request, @Param('week', ParseIntPipe) week: number, + @Query('courseId') courseId?: string, ) { return this.instructorService.deleteCurriculumWeek( this.getBearerToken(request), week, + courseId, ); } diff --git a/src/instructor/instructor.service.ts b/src/instructor/instructor.service.ts index 6a78480..5081dad 100644 --- a/src/instructor/instructor.service.ts +++ b/src/instructor/instructor.service.ts @@ -23,6 +23,7 @@ import { CreateInstructorPlatformDto } from './dto/create-instructor-platform.dt import { CreateInstructorStudentDto } from './dto/create-instructor-student.dto'; import { SaveInstructorGroupDto } from './dto/save-instructor-group.dto'; import { groupCourseScope } from './group-course-scope'; +import { normalizeCameraUrl, readPlatformCamera } from './platform-camera'; import { SaveSubmissionScoreDto } from './dto/save-submission-score.dto'; import { UpdateInstructorCurriculumDto } from './dto/update-instructor-curriculum.dto'; import { UpdateInstructorPlatformDto } from './dto/update-instructor-platform.dto'; @@ -1337,6 +1338,7 @@ export class InstructorService { type: this.toPlatformType(platform.platform.displayName), status: activeControl ? '활성' : '대기', battery: platform.battery, + camera: readPlatformCamera(platform.studioSettingsOverride), uptime: typeof agentConnection?.agentUptimeSeconds === 'number' ? this.formatUptimeSeconds(agentConnection.agentUptimeSeconds) : this.formatUptime(platform.uptimeMinutes), @@ -1462,6 +1464,7 @@ export class InstructorService { return { week: week.week, title: override?.title ?? week.title, + canDelete: false, tags: this.resolveWeekTags(this.resolveBaseWeekTags(week.tags, override?.tagLabel), progressState.state), progress: progressState.progress, state: progressState.state, @@ -1516,6 +1519,7 @@ export class InstructorService { return { week: override.week, title: override.title ?? `${override.week}주차 커리큘럼`, + canDelete: true, tags: this.resolveWeekTags([override.tagLabel ?? '추가', '대기'], progressState.state), progress: progressState.progress, state: progressState.state, @@ -1907,13 +1911,13 @@ export class InstructorService { }); } - async deleteCurriculumWeek(accessToken: string | undefined, week: number) { + async deleteCurriculumWeek(accessToken: string | undefined, week: number, courseId?: string | null) { const { authUser, instructor } = await this.getInstructor(accessToken); const organizationId = authUser.primaryAffiliation?.organizationId; const organizationName = authUser.primaryAffiliation?.organizationName?.trim(); if (!organizationName) throw new BadRequestException('Instructor organization is required'); - const course = await this.findInstructorCourse(organizationName, instructor.id); + const course = await this.findInstructorCourse(organizationName, instructor.id, courseId); if (!course) throw new NotFoundException('Course not found'); const baseWeek = course.weeks.find((courseWeek) => courseWeek.week === week); @@ -2223,6 +2227,12 @@ export class InstructorService { const maxSteeringAngleDegrees = this.toBoundedNumber(input.maxSteeringAngleDegrees, 30, 0, 90); const sensors = this.normalizeNameDescriptionList(input.sensors, { withEnabled: true }); const algorithms = this.normalizeAlgorithms(input.algorithms); + let cameraViewUrl: string | undefined; + try { + cameraViewUrl = input.cameraViewUrl === undefined ? undefined : normalizeCameraUrl(input.cameraViewUrl); + } catch { + throw new BadRequestException('VDO.Ninja 시청 URL에 올바른 room과 view를 지정해주세요.'); + } const platform = await this.prisma.instructorPlatform.findFirst({ where: { @@ -2235,6 +2245,7 @@ export class InstructorService { select: { id: true, displayName: true, + studioSettingsOverride: true, }, }); if (!platform) throw new NotFoundException('Platform not found'); @@ -2253,6 +2264,14 @@ export class InstructorService { algorithms, controlDurationMinutes, controlWarningMinutes, + ...((cameraViewUrl !== undefined || input.cameraPassword !== undefined) ? { + studioSettingsOverride: { + ...(platform.studioSettingsOverride && typeof platform.studioSettingsOverride === 'object' && !Array.isArray(platform.studioSettingsOverride) + ? platform.studioSettingsOverride : {}), + ...(cameraViewUrl !== undefined ? { cameraViewUrl } : {}), + ...(cameraViewUrl === '' ? { cameraPassword: '' } : input.cameraPassword !== undefined ? { cameraPassword: input.cameraPassword } : {}), + }, + } : {}), }, }), this.prisma.studentGroup.updateMany({ @@ -3692,6 +3711,7 @@ export class InstructorService { environmentProfiles: { orderBy: [{ week: 'asc' }, { platformKey: 'asc' }] }, maps: { orderBy: { key: 'asc' } }, weekMaps: { orderBy: [{ week: 'asc' }, { sortOrder: 'asc' }] }, + instructorCurriculumWeekOverrides: true, }, }); if (!template) { @@ -3743,6 +3763,28 @@ export class InstructorService { tx.courseWeekReference.createMany({ data: sourceWeek.references.map((reference) => ({ weekId: week.id, kind: reference.kind, title: reference.title, originalFileName: reference.originalFileName, storedFileName: reference.storedFileName, contentType: reference.contentType, fileSizeBytes: reference.fileSizeBytes, sortOrder: reference.sortOrder })) }), ]); + const learningOverride = template.instructorCurriculumWeekOverrides.find( + (override) => override.week === sourceWeek.week && override.organizationName === template.organizationName, + ); + if (learningOverride?.learningSteps) { + const learningSteps = this.resolveLearningSteps( + learningOverride.learningSteps, + sourceWeek.topics.map((topic) => topic.title), + sourceWeek.topics.map((topic) => topic.detail), + ); + await tx.instructorCurriculumWeekOverride.create({ + data: { + courseId: course.id, + organizationName, + week: week.week, + learningSteps, + topics: learningSteps.map((step) => step.title), + topicDetails: learningSteps.map((step) => step.description), + topicVideoUrls: learningSteps.map((step) => step.videoUrl), + }, + }); + } + for (const sourceModule of sourceWeek.modules) { const module = await tx.courseWeekModule.create({ data: { diff --git a/src/instructor/platform-camera.spec.ts b/src/instructor/platform-camera.spec.ts new file mode 100644 index 0000000..a9bd9e9 --- /dev/null +++ b/src/instructor/platform-camera.spec.ts @@ -0,0 +1,23 @@ +import { normalizeCameraUrl, readPlatformCamera } from './platform-camera'; + +describe('platform camera settings', () => { + it('keeps only viewing parameters', () => { + const url = new URL(normalizeCameraUrl('https://vdo.ninja/?room=track&view=camera&push=bad&director=bad&password=secret')); + expect(url.searchParams.get('room')).toBe('track'); + expect(url.searchParams.get('view')).toBe('camera'); + expect(url.searchParams.has('scene')).toBe(true); + expect(url.searchParams.has('push')).toBe(false); + expect(url.searchParams.has('director')).toBe(false); + expect(url.searchParams.has('password')).toBe(false); + }); + + it.each(['http://vdo.ninja/?room=x&view=y', 'https://example.com/?room=x&view=y', 'https://vdo.ninja/?room=x', 'javascript:alert(1)', 'https://vdo.ninja:8443/?room=x&view=y'])('rejects unsafe or incomplete URL %s', (url) => { + expect(() => normalizeCameraUrl(url)).toThrow(); + }); + + it('supports unset camera settings and preserves password whitespace', () => { + expect(normalizeCameraUrl(' ')).toBe(''); + expect(readPlatformCamera(null)).toEqual({ url: '', password: '' }); + expect(readPlatformCamera({ cameraViewUrl: 'url', cameraPassword: ' a&b ' })).toEqual({ url: 'url', password: ' a&b ' }); + }); +}); diff --git a/src/instructor/platform-camera.ts b/src/instructor/platform-camera.ts new file mode 100644 index 0000000..6c5f1a2 --- /dev/null +++ b/src/instructor/platform-camera.ts @@ -0,0 +1,24 @@ +export function readPlatformCamera(settings: unknown): { url: string; password: string } { + const value = settings && typeof settings === 'object' ? settings as Record : {}; + return { + url: typeof value.cameraViewUrl === 'string' ? value.cameraViewUrl : '', + password: typeof value.cameraPassword === 'string' ? value.cameraPassword : '', + }; +} + +export function normalizeCameraUrl(input: string): string { + if (!input.trim()) return ''; + const url = new URL(input.trim()); + if (url.protocol !== 'https:' || url.hostname !== 'vdo.ninja' || url.port || url.username || url.password || url.pathname !== '/') { + throw new Error('VDO.Ninja 시청 URL을 입력해주세요.'); + } + if (!url.searchParams.get('room')?.trim() || !url.searchParams.get('view')?.trim()) { + throw new Error('시청 URL에 room과 view가 필요합니다.'); + } + // Only viewer parameters are accepted; never retain publishing/director options. + const view = new URL('https://vdo.ninja/'); + view.searchParams.set('scene', ''); + view.searchParams.set('room', url.searchParams.get('room')!); + view.searchParams.set('view', url.searchParams.get('view')!); + return view.toString(); +}