feat(training): release V0.9.1 避障训练与基础策略迁移
web-platform-ci / TypeScript, lint, unit, build (push) Has been cancelled
web-platform-ci / Playwright E2E (push) Has been cancelled

This commit is contained in:
2026-09-08 10:50:13 +08:00
parent fa5485049a
commit 438e56bcc8
113 changed files with 15027 additions and 539 deletions
@@ -1,3 +1,6 @@
import type { TrainingSceneCompiler } from '../../map/trainingMap';
import type { PolicyDeployment } from '../../rl/deployment';
import type { PlacedMapAsset } from '../../map/types';
import type { ControllerCommand, ControllerStatus } from '../../controller/types';
import { PythonControllerPanel } from '../../controller/PythonControllerPanel';
import type { RLCommand, RLPolicyStatus } from '../../rl/types';
@@ -63,8 +66,14 @@ export function WorkspaceToolsPanel({
onSelectPolicyPath,
onLoadPolicyPath,
onImportPolicy,
compileTrainingScene,
trainingSceneMaps,
trainingSceneDirty,
onTogglePolicy,
onPolicyCommand,
navigationTargetMode,
onNavigationTargetMode,
onResetNavigationTarget,
onRemovePolicy,
onDataRecorderConfigure,
onDataRecordingStart,
@@ -85,6 +94,9 @@ export function WorkspaceToolsPanel({
policyPaths: string[];
selectedPolicyPath?: string;
policyStatus?: RLPolicyStatus;
navigationTargetMode?: boolean;
onNavigationTargetMode?: (active: boolean) => void;
onResetNavigationTarget?: () => void;
onResetJoints: () => void;
onToggleJointLimits: () => void;
onToggleAdvanced: () => void;
@@ -101,7 +113,10 @@ export function WorkspaceToolsPanel({
onRemoveController: () => void;
onSelectPolicyPath: (path: string) => void;
onLoadPolicyPath: (path: string) => void;
onImportPolicy: (file: File) => void;
onImportPolicy: (file: File, deployment?: PolicyDeployment) => void | Promise<void>;
compileTrainingScene?: TrainingSceneCompiler;
trainingSceneMaps?: readonly PlacedMapAsset[];
trainingSceneDirty?: boolean;
onTogglePolicy: (enabled: boolean) => void;
onPolicyCommand: (command: RLCommand) => void;
onRemovePolicy: () => void;
@@ -251,9 +266,14 @@ export function WorkspaceToolsPanel({
loading={loading}
onSelectPath={onSelectPolicyPath}
onLoadPath={onLoadPolicyPath}
onImport={onImportPolicy}
onImport={(file) => {
void Promise.resolve(onImportPolicy(file)).catch(() => {});
}}
onToggle={onTogglePolicy}
onCommand={onPolicyCommand}
navigationTargetMode={navigationTargetMode}
onNavigationTargetMode={onNavigationTargetMode}
onResetNavigationTarget={onResetNavigationTarget}
onRemove={onRemovePolicy}
/>
</CollapsibleSection>
@@ -262,7 +282,12 @@ export function WorkspaceToolsPanel({
defaultOpen={false}
badge={<ConsoleSectionBadges category="训练" />}
>
<LocalTrainingPanel onPolicyReady={onImportPolicy} />
<LocalTrainingPanel
onPolicyReady={onImportPolicy}
compileScene={compileTrainingScene}
sceneMaps={trainingSceneMaps}
sceneDirty={trainingSceneDirty}
/>
</CollapsibleSection>
</>
) : (