尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
TS30/TS50 GeoCom二次开发:RPC通信与AUT/BAP/FTR联调
简介这份中文说明书聚焦徕卡TS30、TS50兼容TM30/TPS1200测量机器人的GEOCOM二次开发接口面向具备一定编程基础、需要自行编写采集与控制程序的测量工程师和开发者帮助其在不深入仪器内部结构的前提下调用功能函数完成个性化定制开发。压缩包内共1个docx文件约1.49MB是完整中文译本目录层级清晰便于按章节查阅。内容从地理数据通讯接口与TPS1200系统软件的组织方式讲起依次展开GEOCOM操作的基本概念、ASCII协议语法与数据类型定义、C/C及VBA两种语言的函数调用协议并给出基础应用框架与程序示例末尾还整理了联合值、仪器操作方式与常见通信错误等排错要点。读者可据此对照实现数据采集、实时传输与后端分析的自动化流程减少反复试错的成本。目前已有2426人学习。1. 从手动照准到脚本控制TS30/TS50 的 GeoCom 二次开发入口TS30/TS50 系列测量机器人的 GeoCom 二次开发难点不在会不会写代码而在能不能把设备侧的 RPC 调用稳定地嵌进自己的采集流程。很多人拿到设备后手动照准、测距、记录都没问题一旦要做自动监测、批量放样或者和后台系统联动就卡在“怎么让仪器听懂程序”这一步。GeoCom 就是设备侧的那层编程接口这份中文说明书把 COM、AUT、BAP、FTR 这些子系统的函数、参数和返回码拆开讲适合做测量机器人二次开发、自动化监测集成和工业测量脚本的从业者。它不教你测量原理而是告诉你每个函数怎么调、参数怎么填、错误码怎么看。新手可以按通信设置一路跟到 AUT 和 BAP熟手更适合把它当函数字典遇到问题直接翻对应章节。同系列 TS60 在函数命名上大多能对上但具体参数仍要以对应型号的手册为准。2. GeoCom 通信底座ASCII 帧、串口参数与超时双精度设置2.1 为什么先啃 ASCII 协议而不是直接抄函数GeoCom 的调用关系是“客户端发一个 RPC 请求设备侧执行后返回结果”C/C、VBA 只是把这层请求封装成函数调用。说明书第 2 章讲一般概念2.3 节讲 ASCII 协议语法3.2 节讲 ASCII 协议编程这个顺序是有道理的先让一条文本帧能发出去、能收回来再去碰 AUT、BAP 那些业务函数排错范围会小很多。ASCII 协议的好处是可读、可抓包、跨语言Python 写的采集脚本和 C 写的上位机可以用同一套帧格式代价是解析不能偷懒逗号分隔字段、小数点精度、字符串转义都要自己处理。实际联调时我一般先把链路拆成三层看物理层确认串口线序和端口号协议层确认帧头、RPC 号、参数个数业务层才看函数返回码。手册 3.7 节列了常见通信错误遇到“发得出去收不回来”先翻这一节比盲改代码快。下面这张表是我拆帧时必对的几个字段具体取值以手册 2.3.1 节的示例帧为准层级你要确认的东西常见翻车点帧头请求/响应标识、事务字段把响应帧当成请求帧解析RPC 号函数对应的数字标识抄错号设备返回参数错误参数个数、类型、单位角度单位混用距离单位混用结束符回车换行还是单结束符读不到完整帧一直超时返回码成功码与错误码分支只判断 0漏掉设备状态错误提示不要一上来就改波特率。先用设备当前通信参数做一次空调用确认线序和流控没问题再动参数。2.2 建立一条能复现的串口/TCP 链路串口链路的参数看着简单实际最容易翻车的是流控和结束符。常见做法是 8 数据位、无校验、1 停止位波特率从设备当前设置读不要凭印象填。TCP 链路则要先确认设备侧端口是否打开以及客户端和服务端的超时是否匹配。下面这段 Python 只做一件事按 ASCII 帧格式发一条请求把原始响应打出来。RPC 号我用占位符实际值从手册函数表查不要猜。import serial def build_request(rpc_id, *params): # 帧头按手册 2.3.1 节示例替换这里保留常见的文本帧结构 body ,.join([str(rpc_id)] [str(p) for p in params]) return f%R1P,0,0:rcs,{body}\r\n.encode(ascii) def read_frame(port, timeout2.0): port.timeout timeout data port.read_until(b\r\n) if not data: raise TimeoutError(no response, check port/baud/flow control) return data.decode(ascii, errorsreplace).strip() ser serial.Serial( portCOM3, # 换成实际端口 baudrate115200, # 先读设备当前值不要盲改 bytesize8, parityN, stopbits1, timeout1, xonxoffFalse, rtsctsFalse ) # 1 只是占位 RPC 号实际号查手册对应函数 ser.write(build_request(1)) print(read_frame(ser)) ser.close()代码里build_request只负责拼帧不负责校验业务参数read_frame按结束符读到完整一帧读不到就抛超时。参数说明port是系统识别的串口名baudrate必须和设备侧一致xonxoff和rtscts是流控开关很多“能打开但发不出去”的问题就出在这两个开关和设备设置不匹配。如果链路是 TCP把serial.Serial换成 socket 连接帧的拼装和解析逻辑不变但要把连接超时和读超时分开设连接超时短一点读超时按最慢测量动作留余量。注意第一次联调不要直接调 AUT_Locate 这类会动望远镜的函数。先用 COM_NullProc 或只读的 CSV_GetInstrumentName 探活确认请求-响应闭环。2.3 双精度与超时两个最容易被忽略的全局开关COM_SetDoublePrecision和COM_SetTimeout是全局设置影响后面所有函数的返回精度和等待行为。双精度打开后角度和距离的小数位会变多解析代码如果写死了小数点后几位就会出现“昨天还对今天差一点”的玄学问题。我的做法是初始化时显式设置一次双精度解析时按字段转浮点不按字符串截断。超时设置则要大于单次测量动作的最长耗时尤其是 AUT 搜索和 FTR 文件下载设短了会频繁触发超时设长了会让故障发现变慢。// 伪代码按手册函数表替换 RPC 号和参数 GeoComClient client(COM3, 115200); client.SetTimeout(3000); // 单位按手册常见为毫秒 client.SetDoublePrecision(true); // 打开双精度解析端按浮点处理 int rc client.Call(COM_GetTimeout, {}); if (rc ! GRC_OK) { // 先取错误文本不要只打印 rc std::string err client.CallString(COM_GetErrorText, {rc}); throw std::runtime_error(err); }逻辑说明先设超时再设双精度然后读一次超时值确认设置生效。参数说明SetTimeout的值要覆盖“最慢的一次 AUT 搜索 一次距离测量”如果现场棱镜回波弱搜索时间会明显变长超时至少留两倍余量SetDoublePrecision的开关状态要记录下来写进日志方便复现。说明书 5.3 节和 5.4 节把这组客户端函数放在一起讲建议按“打开端口 → 设超时 → 设双精度 → 探活”的顺序初始化不要在业务循环里反复设置。3. AUT 自动化子系统定位、换面、微调与搜索的状态机3.1 AUT 的状态机定位、换面、微调、搜索不是四个独立按钮AUT 子系统负责望远镜的自动动作手册第 7 章从AUT_ReadTol、AUT_SetTol讲到AUT_Locate、AUT_ChangeFace、AUT_FineAdjust、AUT_Search这些函数不是并列关系而是一条状态链。典型顺序是先设定位公差和定位超时再发AUT_Locate把望远镜转到目标附近如果返回码表示没锁住再发AUT_Search在搜索窗口里找棱镜找到后发AUT_FineAdjust做微调需要盘左盘右观测时用AUT_ChangeFace换面。连续发AUT_Locate而不检查前一次状态是现场最常见的翻车方式设备还在动作下一条命令已经把状态冲掉了。函数作用关键参数/返回使用时机AUT_SetTol设置定位公差角度公差单位与手册一致初始化或换目标类型后AUT_SetTimeout设置定位超时超时值常见为毫秒搜索慢的环境要加长AUT_Locate望远镜转到指定方向水平角、天顶距、定位模式已知目标大致方向AUT_ChangeFace换到另一盘无或面标识需要消除横轴误差AUT_FineAdjust自动微调微调模式、超时Locate 后精度不够AUT_Search自动目标搜索搜索窗口、超时目标不在视场中心参数设置上我一般先把公差放到比测量要求略宽的位置让 Locate 先到位再用 FineAdjust 收紧如果一上来就把公差设得很小Locate 会反复失败日志里全是超时反而看不出是目标偏了还是参数太严。Hz、V 的单位必须和手册一致有的固件用弧度有的用度或 gon解析前先确认不要凭经验硬转。3.2 用一段 Python 脚本跑通“定位-搜索-测量”下面这段脚本把“定位 → 失败则搜索 → 再测量”串起来重点不是函数多而是每一步都检查返回码失败就退回上一步而不是继续往下发。RPC 号和参数顺序仍以手册函数表为准这里展示的是控制流。def locate_then_measure(client, hz, v, search_window): # 第一步定位到目标大致方向 rc client.call(AUT_Locate, hz, v, AUT_NORMAL) if rc ! 0: # 定位失败退回搜索不要直接测距 rc client.call(AUT_Search, search_window) if rc ! 0: raise RuntimeError(fsearch failed, rc{rc}) # 第二步微调把目标拉到视场中心 rc client.call(AUT_FineAdjust, 1.0, 2000) if rc ! 0: raise RuntimeError(ffine adjust failed, rc{rc}) # 第三步测距测角返回结构按手册字段顺序解析 result client.call_with_result(BAP_MeasDistanceAngle, BAP_DIST_STANDARD) return result逻辑说明AUT_Locate失败不一定代表目标不存在可能是目标在视场边缘所以先AUT_Search再微调微调参数里的第一个值按手册是微调范围或模式第二个是超时实际填法看第 7 章函数表。BAP_MeasDistanceAngle返回的不只是距离还有水平角、天顶距和返回码解析时按字段顺序取不要用固定字符串截取。参数说明search_window是搜索窗口大小窗口越大搜索越慢、误锁风险越高hz、v的单位要和AUT_SetTol保持一致否则会出现“明明转到了却报定位失败”。提示AUT 动作期间不要并发发 BAP 测距。设备侧是串行执行前一条没结束就发下一条返回码会变得很难解释。3.3 ATR 与 PowerSearch 窗口搜索范围不是越大越好手册 7.4 节后半段讲AUT_PS_GetWindow、AUT_PS_SetWindow、AUT_GetATRSearchWindow、AUT_SetATRSearchWindow、AUT_PS_EnableRange、AUT_PS_SetRange、AUT_PS_Start、AUT_PS_SearchNext这些函数解决的是“目标大概在哪一片区域”的问题。搜索窗口设得太大视场里多个棱镜或反光物会被误锁设得太小目标稍微偏一点就搜不到。我的经验是先用默认窗口跑通一次再按目标距离和棱镜类型微调远距离目标适当放大近距离多目标场景收小。参数作用调整方向ATR 搜索窗口限定 ATR 找棱镜的范围目标偏得远就放大误锁多就收小PowerSearch 窗口限定粗搜索区域不知道目标大致方向时先用大窗口PowerSearch 范围控制搜索距离段近距离多目标时限制范围减少误锁微调模式决定 FineAdjust 的收敛方式精度优先选精细模式速度优先选快速模式做测量机器人二次开发时搜索窗口最好做成配置项不要写死在代码里。现场换棱镜、换距离、换天气同一个窗口值不一定好用。AUT_PS_SearchNext适合多目标场景找到一个后继续找下一个但每找到一次都要重新确认目标类型和棱镜常数否则测距值会对不上。4. BAP、EDM 与 FTR测距参数、棱镜常数和文件回传4.1 BAP 的目标类型与棱镜常数测距错 3 mm 往往不是算法问题BAP 子系统管的是基本应用目标类型、棱镜类型、测距程序、距离角度测量。手册第 8 章从BAP_GetTargetType、BAP_SetTargetType讲到BAP_GetPrismType2、BAP_SetPrismType2、BAP_GetUserPrismDef、BAP_SetUserPrismDef、BAP_SetDistMeasProgram、BAP_MeasDistanceAngle。现场测距差一个固定小值血泪经验是先去查棱镜常数和用户棱镜定义而不是怀疑算法。棱镜类型选错或者用户棱镜定义没写进去每次测距都会带同一个偏移看起来“很稳定”其实全错。函数作用参数注意BAP_SetTargetType设置 EDM 目标类型棱镜、反射片、无合作目标要对应BAP_SetPrismType设置默认棱镜类型先读当前值再改避免覆盖现场配置BAP_SetUserPrismDef写用户棱镜定义棱镜常数单位按手册常见为毫米BAP_SetDistMeasProgram设置测距程序标准、快速、跟踪模式按场景选BAP_MeasDistanceAngle测水平角、天顶距和距离返回字段顺序按手册解析参数设置的原则是“先读后设”先用BAP_GetPrismType2读当前棱镜类型确认和现场用的棱镜一致不一致再写用户棱镜定义写完后再读一次确认常数落进去了。EDM 类型和测距程序要匹配跟踪模式适合动态目标但精度和速度的取舍要在程序里写清楚不要一套参数打天下。4.2 一次完整的距离角度测量调用下面这段 C 伪代码展示一次完整测量前的参数准备和测量后的字段解析。函数名和参数顺序按手册第 8 章替换重点看控制流和检查点。// 伪代码按手册函数表替换 RPC 号和参数 int rc client.Call(BAP_SetTargetType, BAP_TARGET_PRISM); if (rc ! GRC_OK) throw std::runtime_error(set target type failed); rc client.Call(BAP_SetPrismType, prism_type); if (rc ! GRC_OK) throw std::runtime_error(set prism type failed); rc client.Call(BAP_SetDistMeasProgram, BAP_DIST_STANDARD); if (rc ! GRC_OK) throw std::runtime_error(set dist program failed); Measurement m; rc client.CallMeas(BAP_MeasDistanceAngle, m); if (rc ! GRC_OK) { std::string err client.CallString(COM_GetErrorText, {rc}); throw std::runtime_error(measure failed: err); } // 字段顺序按手册不要按经验猜 double hz m.hz; double v m.v; double dist m.slope_distance;逻辑说明先设目标类型再设棱镜类型再设测距程序最后才测量每一步失败都取错误文本不把 rc 当唯一信息。参数说明prism_type要和现场棱镜铭牌一致BAP_DIST_STANDARD是标准测距程序动态跟踪场景再换跟踪模式m.hz、m.v的单位要和 AUT 阶段保持一致m.slope_distance是斜距需要平距或高差就在上层自己算不要指望设备返回所有派生量。注意测距前先确认望远镜已经稳定锁住目标。AUT 还在动作时发测量返回的距离可能是上一次的缓存值。4.3 FTR 文件传输列表、下载、中断与删除的顺序FTR 子系统管文件传输手册第 13 章列了FTR_SetupList、FTR_AbortList、FTR_SetupDownload、FTR_Download、FTR_AbortDownload、FTR_Delete。这条链路的顺序不能乱先建列表再设下载再分块下载失败先 Abort 再重试最后才删除。直接重发FTR_Download而不 Abort设备侧可能还停在上一个传输状态表现就是“下到一半卡死”。步骤函数作用失败后的动作1FTR_SetupList设置要传输的文件列表检查远程路径和文件是否存在2FTR_SetupDownload设置下载参数确认覆盖标志和本地路径3FTR_Download执行下载记录已收字节数失败先 Abort4FTR_AbortDownload中止当前下载清状态后再重试5FTR_Delete删除远程文件确认下载完整后再删// 伪代码文件下载的控制流 int rc client.Call(FTR_SetupList, remote_file); if (rc ! GRC_OK) throw std::runtime_error(setup list failed); rc client.Call(FTR_SetupDownload, local_file, overwrite_flag); if (rc ! GRC_OK) throw std::runtime_error(setup download failed); rc client.Call(FTR_Download); if (rc ! GRC_OK) { client.Call(FTR_AbortDownload, {}); throw std::runtime_error(download failed, abort sent); } // 下载完整后再删除不要提前删 client.Call(FTR_Delete, remote_file);逻辑说明FTR_SetupList和FTR_SetupDownload是准备动作真正传数据的是FTR_Download任何一步失败都先 Abort把设备状态清干净再重试。参数说明remote_file是设备侧路径local_file是本地落盘路径overwrite_flag控制是否覆盖已有文件。文件传输不要和 AUT 动作并发设备侧的通信资源是有限的并发会让超时变得随机。5. 避坑与排查GeoCom 联调现场最常见的 5 个翻车点5.1 返回码不是“成功/失败”二元GeoCom 的返回码分通信类、参数类、设备状态类很多函数返回非零不代表链路断了可能是目标没锁住、参数超范围、设备正在动作。常见做法是先把GRC_OK之外的分支全部打日志再用COM_GetErrorText取可读错误文本。只判断“等于 0 还是不等于 0”会把“参数错了”和“设备忙”混在一起排查时只能猜。手册每个函数下面都列了返回码联调前先把常用函数的返回码表抄到自己的错误处理里比事后翻手册快。5.2 五条踩坑记录坑一串口能打开一发请求就超时。现象是serial.Serial不报错read_frame一直等不到结束符。原因多半是流控开关和设备不一致或者 TX/RX 线序接反也可能是波特率看着对、实际设备侧被改过。解决顺序是先用COM_NullProc或只读函数探活再把流控关掉试一次最后核对设备当前通信参数。不要一上来就重装驱动。坑二角度值差 2π 或差 360。现象是 AUT 定位明明转到了程序算出来的方向却偏一圈。原因是 Hz、V 的单位在 AUT 参数、BAP 返回和上层业务里用了不同体系弧度、度、gon 混着转。解决方式是入口统一单位出口再按业务需要转换日志里把原始值和转换值都打出来。凡是涉及角度的函数参数说明里先写单位再写范围。坑三AUT_Locate 偶发失败重试又好了。现象是同一目标有时一次到位有时报定位失败。原因通常是目标不在视场中心、ATR 搜索窗口太小或者棱镜类型和当前 EDM 设置不匹配。解决方式是 Locate 失败后先AUT_Search再AUT_FineAdjust不要原地重发 Locate同时把搜索窗口做成可配置项现场按目标距离调。坑四测距每次差一个固定小值。现象是重复测量很稳定但和已知边长对不上差值每次差不多。原因多半是棱镜常数或用户棱镜定义没设对也可能是BAP_SetTargetType选了无合作目标却拿了棱镜去测。解决方式是先读BAP_GetPrismType2和BAP_GetUserPrismDef和现场棱镜铭牌核对再写设置写完再读一次确认。坑五FTR 下载到一半卡死重发也没用。现象是文件传到一半不再推进重新调FTR_Download还是卡在同一位置。原因是上一次传输状态没清设备侧还停在旧会话。解决方式是先FTR_AbortDownload再重新FTR_SetupList和FTR_SetupDownload最后才FTR_Download删除远程文件一定放在下载完整校验之后。5.3 用日志把“黑匣子”变成可复现链路GeoCom 联调最怕“当时没好后来好了不知道为什么”。我的习惯是每条请求和响应都落一行结构化日志时间戳、方向、帧内容、RPC 号、返回码、错误文本、当前超时和双精度状态。日志不用多漂亮但字段要固定方便事后按 RPC 号筛。下面这张表是我日志里必留的字段字段用途timestamp对齐设备动作和程序时序direction区分请求和响应raw_frame保留原始帧排查结束符和字段错位rpc_id快速筛某个函数的调用历史return_code区分通信错误和业务错误error_text把返回码翻译成可读原因timeout_ms判断是不是超时设短了double_precision判断精度问题是不是全局开关变了把这几列留住很多“玄学”问题会变成一条能复现的链路是超时太短、是单位混了、还是设备状态没清。日志不要只写“失败”要写“哪一步、什么参数、返回什么”。6. 进阶验证用一轮闭环自检确认程序不是“只能跑一次”二次开发程序最容易出现的不是“完全跑不通”而是“第一次能跑连续跑就飘”。我一般在上现场前做一轮闭环自检不测复杂业务只验证通信、单位、ATR、测距和文件传输这五件事能不能稳定重复。自检顺序如下先打开端口设超时和双精度用只读函数探活再发一次AUT_Locate到固定方向检查返回码和实际转角然后AUT_Search找棱镜AUT_FineAdjust微调接着设目标类型和棱镜类型连续测 10 次距离和角度看数值是否收敛最后跑一次小文件FTR_SetupList→FTR_Download→FTR_Delete确认文件完整再删。检查项动作通过标准通信只读函数探活每次都能收到完整响应帧单位Locate 到已知方向实际转角和计算值一致ATRSearch FineAdjust连续 10 次都能锁住同一棱镜测距固定目标连续测量数值不跳变和已知边长对得上文件小文件下载后校验文件大小和内容完整再删除这轮自检里我最看重“连续 10 次”而不是“单次成功”。单次成功可能只是运气好连续 10 次能暴露超时设短、状态没清、单位混用这些边界问题。自检脚本里把每次的返回码、角度值、距离值和耗时都打出来跑完看趋势比看单条日志有用。从那以后我每次改完参数都强制走一遍空转自检再上现场资源包里我按子系统做了函数索引拿到后先翻到第 5 章通信设置再对照第 7 章 AUT 的函数表跑一遍空转定位最后看 FTR 的下载流程基本能少走很多弯路。希望帮到你。本文还有配套的精品资源点击获取
RELATED

相关推荐

AI Agent概念抽象与泛化能力的技术实现与应用

AI Agent概念抽象与泛化能力的技术实现与应用

1. AI Agent的核心能力解析 在人工智能领域,AI Agent的构建已经从简单的任务执行发展到需要具备高级认知能力的阶段。概念抽象与泛化能力作为AI Agent的核心竞争力,直接决定了智能体能否适应复杂多变的应用场景。 概念抽象能力使AI Agent能够从具体实例…

📅 2026/10/29 13:00:49
Python浮点数计算与IEEE754标准实践指南

Python浮点数计算与IEEE754标准实践指南

1. 项目概述:Python与IEEE754的数学计算实践 这个看似简单的圆周长和面积计算程序,实际上涉及两个关键的技术维度:Python的基础语法和IEEE754浮点数标准的底层实现。作为一门解释型语言,Python在数学计算方面有着天然优势&#xf…

📅 2026/10/29 13:00:49
明阳数字化管理平台解读:SAP HANA数据仓库与治理架构实战

明阳数字化管理平台解读:SAP HANA数据仓库与治理架构实战

简介:这是一份面向能源企业数字化转型管理层的项目建议书,聚焦明阳智慧能源集团在数据分散、决策效率低、资源利用率不高等挑战下的数字化管理平台建设思路。文档共128页,以1个doc文件打包,约18MB,内容按项目背景、需求…

📅 2026/10/29 13:00:49
MORE NEWS

更多资讯

📰

技能盘点与成长策略:从评估到复利,打造个人核心竞争力

1. 先别急着学新东西,盘清楚你手里有什么聊到 skills 这个话题,我见过太多人第一反应是"我好像什么都不会",然后转头就去收藏一堆"2024年必学技能清单"。但真正拉开人与人差距的,往往不是你会多少&#xff0c…

📰

营销技能的底层逻辑与五大核心能力实战拆解

1. 营销技能的底层逻辑:先想清楚再做动作1.1 营销的本质不是“推销”而是“匹配”做营销这些年,我见过太多人陷入一个误区:以为营销就是想办法把东西卖出去——写文案、投广告、搞活动、做促销,恨不得一天发十条朋友圈轰炸用户。结…

📰

Context-Mode驱动的技术内容策划:从零散描述到完整博文

抱歉,我这边只收到了你的提示指令,并没有看到具体的项目标题、项目正文、关键词和摘要描述。麻烦你按下面的格式把素材发给我,我马上开始整理成一篇可直接发布的完整博文:项目标题:在这里填入你的标题 项目正文&#x…

📰

Django+微信小程序开发健康生活助手全栈实践

1. 项目概述:健康生活助手微信小程序的全栈实现这个项目本质上是一个融合了前后端技术的健康类活动管理平台。作为全栈开发者,我们选择了PythonDjango作为后端核心,搭配微信小程序前端,实现了从活动发布、用户报名到数据可视化的完…

📰

连锁品牌私域流量运营:企业微信+SCRM实战指南

1. 项目概述:连锁品牌的私域流量突围战去年服务某烘焙连锁品牌时,他们的市场总监给我算过一笔账:在第三方外卖平台每成交100元订单,要支付22元平台佣金6元配送费。这还不算平台上的竞价排名费用。当时我就意识到,传统餐…

📰

深度学习入门指南:从零构建手写数字识别模型

1. 李哥深度学习班第一课:从零开始的AI入门指南第一次接触深度学习的朋友们,你们好!我是李哥,一个在AI领域摸爬滚打了8年的老码农。今天这堂课,我想用最接地气的方式带你们走进深度学习的大门。很多人觉得AI高深莫测&a…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬