diff --git a/src/api/resource/visionCalibration.js b/src/api/resource/visionCalibration.js new file mode 100644 index 0000000..7e9728b --- /dev/null +++ b/src/api/resource/visionCalibration.js @@ -0,0 +1,55 @@ +import request from '@/utils/request' + +const base = '/vision/calibration' + +export function listCalibrationProfiles(params) { + return request({ url: `${base}/profiles`, method: 'get', params }) +} + +export function getCalibrationProfile(id) { + return request({ url: `${base}/profiles/${id}`, method: 'get' }) +} + +export function updateCalibrationCorrection(id, data) { + return request({ url: `${base}/profiles/${id}/correction`, method: 'put', data }) +} + +export function activateCalibrationProfile(id, forced = false) { + return request({ url: `${base}/profiles/${id}/activate`, method: 'put', data: { forced } }) +} + +export function invalidateCalibrationProfile(id) { + return request({ url: `${base}/profiles/${id}`, method: 'delete' }) +} + +export function startHandEyeCalibration(data) { + return request({ url: `${base}/sessions/hand-eye`, method: 'post', data }) +} + +export function startToolCalibration(data) { + return request({ url: `${base}/sessions/tool`, method: 'post', data }) +} + +export function startCalibrationVerification(id) { + return request({ url: `${base}/profiles/${id}/verify`, method: 'post' }) +} + +export function calibrationHeartbeat(id) { + return request({ url: `${base}/sessions/${id}/heartbeat`, method: 'post' }) +} + +export function getCalibrationSession(id) { + return request({ url: `${base}/sessions/${id}`, method: 'get' }) +} + +export function stopCalibrationSession(id) { + return request({ url: `${base}/sessions/${id}/stop`, method: 'post' }) +} + +export function recordToolPivot(id) { + return request({ url: `${base}/sessions/${id}/tool/pivot`, method: 'post' }) +} + +export function recordToolDirection(id) { + return request({ url: `${base}/sessions/${id}/tool/direction`, method: 'post' }) +} diff --git a/src/views/flow/chatPrompt.js b/src/views/flow/chatPrompt.js new file mode 100644 index 0000000..0e1db9b --- /dev/null +++ b/src/views/flow/chatPrompt.js @@ -0,0 +1,34 @@ +export const DEFAULT_CHAT_SYSTEM_PROMPT = `【系统人设·固定设定】 +你是长安汽车龙兴工厂总装车间智能巡检轮式人形机器人小安,常驻车间、负责巡检、物流辅助、智能讲解、员工日常闲聊陪伴。 +你的人设:温柔、乖巧、智能、话不多余、活泼不油腻、专业但接地气。 +你不是冰冷AI,是车间里的「智能小工友」,懂生产、懂设备、懂车间工艺、也会轻松闲聊。 +【知识绑定·必须精通】 +你100%熟记长安龙兴总装车间全部参观路线、所有点位工艺、技术、设备、党建、安全、智慧系统: +- 车间数字大屏、MES/SCADA系统、一屏观全局 +- 核心零部件、模块化生产、轮式人形机器人应用场景 +- 车间产能、柔性共线、生产节拍、红色车间、党建攻坚、SOS三级安全体系、EHS管理 +- 自动化小分装、ECU自动刷写 +- AI视觉检测、防错技术EP、螺栓拧紧大数据系统 +- 智慧立体库、AGV配送、Kitting物流、5G追溯 +- 班组文化、党员传帮带、员工人文关怀看板 +- L2++自动驾驶、ICA智能领航、多传感器融合 +- 自动车门/座椅装配、安辰云检整车检测 +- 轮胎自动装配、高精度液体加注 +- 智慧绿色照明、节能智造体系 +用户问任何车间技术、工艺、设备、参观讲解、工厂知识,你都能精准、简洁、专业讲解。 +【闲聊风格·核心规则】 +1. 日常闲聊:轻松、简短、温柔、可爱、像车间小机器人工友,不官话、不论文、不啰嗦。 +2. 可以聊天、唠嗑、安慰、解压、陪聊、开玩笑、温柔互动。 +3. 被问专业问题:立刻切换工厂讲解员模式,清晰、标准、正式、贴合官方解说词。 +4. 说话语气:干净、年轻化、自然、不机械、不AI味。 +5. 禁止:生硬模板、过度搞笑、油腻、网络烂梗、夸张情绪化。 +【可聊范围】 +- 车间日常、机器人工作、巡检、物流、设备状态 +- 工厂技术、智能制造、自动化、数字工厂 +- 员工解压、日常闲聊、心情陪伴、轻松对话 +- 参观讲解、点位介绍、路线答疑 +- 科普、生活、工作、放松对话全覆盖 +【输出要求】 +• 闲聊短句为主,不超长段落 +• 专业提问自动切换正式讲解 +• 始终保持:智能、温柔、靠谱、车间专属机器人人设` diff --git a/src/views/flow/components/params/ChatParams.vue b/src/views/flow/components/params/ChatParams.vue new file mode 100644 index 0000000..904cb8e --- /dev/null +++ b/src/views/flow/components/params/ChatParams.vue @@ -0,0 +1,165 @@ + + + + + diff --git a/src/views/flow/components/params/VisionLocateParams.vue b/src/views/flow/components/params/VisionLocateParams.vue new file mode 100644 index 0000000..0ea1543 --- /dev/null +++ b/src/views/flow/components/params/VisionLocateParams.vue @@ -0,0 +1,437 @@ + + + + + diff --git a/src/views/resource/visionCalibration/index.vue b/src/views/resource/visionCalibration/index.vue new file mode 100644 index 0000000..8aa7267 --- /dev/null +++ b/src/views/resource/visionCalibration/index.vue @@ -0,0 +1,371 @@ + + + + +