新增agent语音输入控制、优化web界面ui布局和样式、优化摄像头控制响应

This commit is contained in:
Cx330 committed 2026-04-25 15:49:23 +08:00
1 parent 7896e90602
commit 2f8c3bfdca
11 files changed
+1415 -737

No files matched your search

+122 -80
View File
@@ -9,99 +9,141 @@
<link rel="stylesheet" href="CSS/agent.css">
</head>
<body>
<div class="container">
<h1 class="title">垃圾桶控制界面</h1>
<div class="page-shell">
<div class="container">
<header class="page-intro">
<p class="eyebrow">Robot Console</p>
<h1 class="title">垃圾桶控制界面</h1>
<p class="subtitle">把实时控制、轨迹管理和智能指令整理到同一个更清晰的工作台里。</p>
</header>
<!-- 手柄风格控制器 -->
<div class="controller">
<div class="controller-layout">
<!-- 左侧:八个方向控制 -->
<div class="dpad">
<div class="dpad-row">
<button class="btn btn-forward-left" id="forwardLeftBtn"><span>↖</span></button>
<button class="btn btn-forward" id="forwardBtn"><span>↑</span></button>
<button class="btn btn-forward-right" id="forwardRightBtn"><span>↗</span></button>
</div>
<div class="dpad-row">
<button class="btn btn-left" id="leftBtn"><span>←</span></button>
<div class="btn btn-center"></div>
<button class="btn btn-right" id="rightBtn"><span>→</span></button>
</div>
<div class="dpad-row">
<button class="btn btn-backward-left" id="backwardLeftBtn"><span>↙</span></button>
<button class="btn btn-backward" id="backwardBtn"><span>↓</span></button>
<button class="btn btn-backward-right" id="backwardRightBtn"><span>↘</span></button>
</div>
</div>
<main class="dashboard">
<section class="main-column">
<section class="surface control-surface">
<div class="section-heading">
<div>
<p class="section-kicker">实时控制</p>
<h2>方向与动作</h2>
</div>
<p class="section-note">按住按钮持续运动,松开后自动停止。</p>
</div>
<!-- 中间:录制回放控制 -->
<div class="center-controls">
<button class="btn btn-record" id="recordBtn"><span>录制</span></button>
<button class="btn btn-playback" id="playbackBtn"><span>回放</span></button>
</div>
<div class="controller">
<div class="controller-layout">
<div class="control-cluster">
<span class="cluster-label">移动</span>
<div class="dpad">
<div class="dpad-row">
<button class="btn btn-forward-left" id="forwardLeftBtn" type="button"><span>&#8598;</span></button>
<button class="btn btn-forward" id="forwardBtn" type="button"><span>&#8593;</span></button>
<button class="btn btn-forward-right" id="forwardRightBtn" type="button"><span>&#8599;</span></button>
</div>
<div class="dpad-row">
<button class="btn btn-left" id="leftBtn" type="button"><span>&#8592;</span></button>
<div class="btn btn-center" aria-hidden="true"></div>
<button class="btn btn-right" id="rightBtn" type="button"><span>&#8594;</span></button>
</div>
<div class="dpad-row">
<button class="btn btn-backward-left" id="backwardLeftBtn" type="button"><span>&#8601;</span></button>
<button class="btn btn-backward" id="backwardBtn" type="button"><span>&#8595;</span></button>
<button class="btn btn-backward-right" id="backwardRightBtn" type="button"><span>&#8600;</span></button>
</div>
</div>
</div>
<!-- 右侧:旋转控制 -->
<div class="rotate-controls">
<button class="btn btn-rotate-left" id="rotateLeftBtn"><span>↶</span></button>
<button class="btn btn-rotate-right" id="rotateRightBtn"><span>↷</span></button>
</div>
</div>
</div>
<div class="control-cluster control-cluster-center">
<span class="cluster-label">录制</span>
<div class="center-controls">
<button class="btn btn-record" id="recordBtn" type="button"><span>录制</span></button>
<button class="btn btn-playback" id="playbackBtn" type="button"><span>回放</span></button>
</div>
</div>
<!-- 轨迹管理区域 -->
<div class="path-management">
<h3>轨迹管理</h3>
<div class="path-input">
<input type="text" id="pathName" placeholder="输入轨迹名称(如:test1)">
<button class="btn btn-save" id="savePathBtn">保存轨迹</button>
</div>
<div class="path-list">
<h4>已保存轨迹</h4>
<ul id="pathList"></ul>
</div>
</div>
<div class="control-cluster control-cluster-rotate">
<span class="cluster-label">旋转</span>
<div class="rotate-controls">
<button class="btn btn-rotate-left" id="rotateLeftBtn" type="button"><span>&#10226;</span></button>
<button class="btn btn-rotate-right" id="rotateRightBtn" type="button"><span>&#10227;</span></button>
</div>
</div>
</div>
</div>
</section>
<!-- 状态显示区域 -->
<div class="status" id="status">
<p>就绪</p>
</div>
<section class="surface status-surface">
<div class="section-heading compact">
<div>
<p class="section-kicker">运行状态</p>
<h2>设备反馈</h2>
</div>
</div>
<div class="status" id="status">
<p>就绪</p>
</div>
</section>
</section>
<!-- Agent聊天区域 -->
<div class="agent-chat">
<h3>智能控制助手</h3>
<aside class="side-column">
<section class="surface path-management">
<div class="section-heading compact">
<div>
<p class="section-kicker">轨迹管理</p>
<h3>保存与回放路径</h3>
</div>
</div>
<div class="path-input">
<input type="text" id="pathName" placeholder="输入轨迹名称,例如 test1">
<button class="btn btn-save" id="savePathBtn" type="button">保存轨迹</button>
</div>
<div class="path-list">
<h4>已保存轨迹</h4>
<ul id="pathList"></ul>
</div>
</section>
<!-- LLM配置区域 -->
<div class="llm-config">
<h4>LLM模型配置</h4>
<div class="config-row">
<label for="apiUrlInput">API URL:</label>
<input type="text" id="apiUrlInput" placeholder="例如: https://api.openai.com/v1">
</div>
<div class="config-row">
<label for="apiKeyInput">API Key:</label>
<input type="password" id="apiKeyInput" placeholder="输入API密钥">
</div>
<div class="config-row">
<label for="modelInput">模型:</label>
<input type="text" id="modelInput" placeholder="例如: gpt-3.5-turbo">
</div>
<button class="btn btn-config" id="saveConfigBtn">保存配置</button>
</div>
<section class="surface agent-chat">
<div class="section-heading compact">
<div>
<p class="section-kicker">智能助手</p>
<h3>自然语言控制</h3>
</div>
</div>
<!-- 聊天输入区域 -->
<div class="chat-input">
<input type="text" id="agentInput" placeholder="输入命令,例如:前进3秒、左转、执行路径test1">
<button class="btn btn-save" id="sendAgentBtn">发送</button>
</div>
<div class="chat-history" id="chatHistory">
<!-- 聊天历史记录 -->
</div>
<div class="chat-input">
<input type="text" id="agentInput" placeholder="输入命令,例如:前进 3 秒、左转、执行路径 test1">
<button class="btn btn-save" id="sendAgentBtn" type="button">发送</button>
</div>
<div class="llm-config">
<h4>LLM 模型配置</h4>
<div class="config-row">
<label for="apiUrlInput">API URL</label>
<input type="text" id="apiUrlInput" placeholder="例如: https://api.openai.com/v1">
</div>
<div class="config-row">
<label for="apiKeyInput">API Key</label>
<input type="password" id="apiKeyInput" placeholder="输入 API 密钥">
</div>
<div class="config-row">
<label for="modelInput">模型</label>
<input type="text" id="modelInput" placeholder="例如: gpt-3.5-turbo">
</div>
<button class="btn btn-config" id="saveConfigBtn" type="button">保存配置</button>
</div>
<div class="chat-history" id="chatHistory">
<!-- 聊天历史记录 -->
</div>
</section>
</aside>
</main>
</div>
</div>
<script src="Javascript/control.js"></script>
<script src="Javascript/record.js"></script>
<script src="Javascript/joycon.js"></script>
<script src="Javascript/voice.js"></script>
<script src="Javascript/agent.js"></script>
</body>
</html>
</html>