add commits..

This commit is contained in:
2026-08-12 14:46:57 +09:00
parent 324e644ef6
commit 38ab528d24
11 changed files with 450 additions and 31 deletions
@@ -0,0 +1,16 @@
UPDATE "course_environment_profiles"
SET "config" = replace(
replace(
replace(
"config"::text,
'nav2-slam:humble',
'future-nav2-gazebo:humble'
),
'runtime-images/nav2/humble/latest/nav2-slam-humble.tar.zst',
'runtime-images/nav2/gazebo/latest/future-nav2-gazebo-humble.tar.zst'
),
'nav2-slam-humble.tar.zst',
'future-nav2-gazebo-humble.tar.zst'
)::jsonb
WHERE "config"::text LIKE '%nav2-slam:humble%'
OR "config"::text LIKE '%nav2-slam-humble.tar.zst%';
@@ -0,0 +1,17 @@
UPDATE "course_week_modules" AS module
SET "prebuilt_artifacts" = (
SELECT jsonb_agg(
CASE
WHEN artifact->>'fileName' = 'lms-nav2-gazebo-simulator-build-install.tar.zst'
OR artifact->>'url' LIKE '%/lms-nav2-gazebo-simulator-build-install.tar.zst'
THEN jsonb_set(
artifact,
'{checksumSha256}',
to_jsonb('8432100a17d85047ab4ac79445d5eacf236ccc79a785db61d14270104af270b7'::text)
)
ELSE artifact
END
)
FROM jsonb_array_elements(module."prebuilt_artifacts") AS artifact
)
WHERE module."folder_name" = '[lms-nav2-gazebo-simulator]nav2-simulator_v1.0.0_ws';
@@ -0,0 +1,18 @@
-- The NAV2 viewer expects the unified slam-ros-bridge API
-- (/state, /ws/state and /ws/control). The older nav2-ros-bridge context
-- does not expose those endpoints, so remove that override from every
-- local NAV2 course environment profile.
UPDATE "course_environment_profiles"
SET
"config" = jsonb_set(
("config"::jsonb #- '{bridge,buildContext}'),
'{bridge,image}',
'"slam-ros-bridge:latest"'::jsonb,
true
),
"updated_at" = CURRENT_TIMESTAMP
WHERE "platform_key" = 'NAV2'
AND (
"config"::jsonb #>> '{bridge,buildContext}' = 'resources/nav2-ros-bridge'
OR "config"::jsonb #>> '{bridge,image}' = 'nav2-ros-bridge'
);
@@ -0,0 +1,27 @@
UPDATE "course_week_modules" AS module
SET "prebuilt_artifacts" = (
SELECT jsonb_agg(
CASE
WHEN artifact->>'fileName' = 'lms-nav2-gazebo-planning-build-install.tar.zst'
OR artifact->>'url' LIKE '%/lms-nav2-gazebo-planning-build-install.tar.zst'
THEN jsonb_set(
artifact,
'{checksumSha256}',
to_jsonb('6087b12b35a4c2ea3073c6b9fad5e43175d7425c2f4a042fa654e8c42b2bf29d'::text)
)
WHEN artifact->>'fileName' = 'lms-nav2-gazebo-control-build-install.tar.zst'
OR artifact->>'url' LIKE '%/lms-nav2-gazebo-control-build-install.tar.zst'
THEN jsonb_set(
artifact,
'{checksumSha256}',
to_jsonb('ce8949b8a14f6d29b3924b82d4819923368fb67029f45cc50a07175afa659a7a'::text)
)
ELSE artifact
END
)
FROM jsonb_array_elements(module."prebuilt_artifacts") AS artifact
)
WHERE module."folder_name" IN (
'[lms-nav2-gazebo-planning]nav2-planning_v1.0.0_ws',
'[lms-nav2-gazebo-control]nav2-control_v1.0.0_ws'
);
@@ -0,0 +1,20 @@
UPDATE "course_week_modules" AS module
SET "default_parameters" = CASE
WHEN EXISTS (
SELECT 1
FROM jsonb_array_elements(module."default_parameters") AS parameter
WHERE parameter #>> '{}' LIKE 'localization_mode:=%'
) THEN (
SELECT jsonb_agg(
CASE
WHEN parameter #>> '{}' LIKE 'localization_mode:=%'
THEN to_jsonb('localization_mode:=amcl'::text)
ELSE parameter
END
)
FROM jsonb_array_elements(module."default_parameters") AS parameter
)
ELSE COALESCE(module."default_parameters", '[]'::jsonb)
|| jsonb_build_array('localization_mode:=amcl')
END
WHERE module."folder_name" = '[lms-nav2-gazebo-localization]nav2-localization_v1.0.0_ws';
@@ -0,0 +1,7 @@
-- The selected map determines SLAM/navigation and 2D/3D viewer mode.
-- Environment profiles retain only runtime connection configuration.
UPDATE "course_environment_profiles"
SET
"config" = "config" #- '{viewer,mode}',
"updated_at" = CURRENT_TIMESTAMP
WHERE "config" #> '{viewer,mode}' IS NOT NULL;
@@ -0,0 +1,39 @@
-- SLAM/navigation is selected from the map. Keep one runtime configuration
-- for the remote platform instead of separate visualization profiles.
DELETE FROM "course_environment_profiles" legacy
USING "course_environment_profiles" platform
WHERE legacy."course_id" = platform."course_id"
AND legacy."week" = platform."week"
AND platform."platform_key" = 'PLATFORM'
AND legacy."platform_key" IN ('REAL_SLAM', 'REAL_SLAM_3D', 'REAL_NAVIGATION');
WITH canonical AS (
SELECT id
FROM (
SELECT
id,
row_number() OVER (
PARTITION BY "course_id", "week"
ORDER BY CASE "platform_key"
WHEN 'REAL_SLAM' THEN 1
WHEN 'REAL_NAVIGATION' THEN 2
WHEN 'REAL_SLAM_3D' THEN 3
END
) AS rank
FROM "course_environment_profiles"
WHERE "platform_key" IN ('REAL_SLAM', 'REAL_SLAM_3D', 'REAL_NAVIGATION')
) ranked
WHERE rank = 1
)
UPDATE "course_environment_profiles" profile
SET
"platform_key" = 'PLATFORM',
"profile_type" = 'PLATFORM',
"name" = '플랫폼',
"config" = jsonb_set(profile."config" #- '{viewer,mode}', '{type}', '"PLATFORM"'::jsonb, true),
"updated_at" = CURRENT_TIMESTAMP
FROM canonical
WHERE profile.id = canonical.id;
DELETE FROM "course_environment_profiles"
WHERE "platform_key" IN ('REAL_SLAM', 'REAL_SLAM_3D', 'REAL_NAVIGATION');