patch curriculum..

This commit is contained in:
2026-08-07 10:26:26 +09:00
parent b98339d299
commit 7c0bdf02a2
6 changed files with 227 additions and 63 deletions
@@ -5,6 +5,26 @@ import type { VisualizationStack } from './WorkspaceVisualizationPanel'
export type Nav2VisualizationMode = 'slam' | 'navigation'
const DEFAULT_NAV2_VISUALIZATION_PROFILE: EnvironmentProfile = {
id: 'default-nav2-visualization',
week: 0,
platformKey: 'futuredrive-local-pc',
profileType: 'NAV2',
name: 'NAV2',
config: {
type: 'NAV2',
target: 'local',
viewer: { stack: 'nav2' },
bridge: {
name: 'nav2-ros-bridge',
port: 8765,
image: 'slam-ros-bridge:latest',
buildContext: 'resources/slam-ros-bridge',
env: { ROBOT_STACK: 'nav2' }
}
}
}
function resolveVisualizationStack(profileType: string): VisualizationStack | null {
const type = profileType.toLowerCase()
if (type === 'real_slam') return 'slam'
@@ -77,7 +97,11 @@ export function useWorkspaceVisualization({
const [, setVisualizationStatusMessage] = useState('대기')
const [visualizationBusy, setVisualizationBusy] = useState(false)
const runtimeProfiles = useMemo(() => selectRuntimeProfiles(profiles, remoteWorkspace), [profiles, remoteWorkspace])
const runtimeProfiles = useMemo(() => {
const candidates = selectRuntimeProfiles(profiles, remoteWorkspace)
const nav2Profiles = candidates.filter((profile) => resolveVisualizationStack(profile.profileType) !== 'autoware')
return nav2Profiles.length ? nav2Profiles : [DEFAULT_NAV2_VISUALIZATION_PROFILE]
}, [profiles, remoteWorkspace])
const visualizationStacks = useMemo(() => (
runtimeProfiles
.map((profile) => resolveVisualizationStack(profile.profileType))
@@ -141,11 +165,6 @@ export function useWorkspaceVisualization({
const startVisualizationBridge = async (): Promise<void> => {
if (visualizationBusy) return
if (!activeEnvironmentProfile) {
setVisualizationStatusMessage('지원 안함')
onTitlebarNotice('해당 주차는 시각화를 지원하지 않습니다', 'warning')
return
}
setVisualizationBusy(true)
setVisualizationStatusMessage('시작 중')
try {