竞赛无人机搭积木式编程——以2022年TI电赛送货无人机一等奖复现为例学习(7月B题)
在学习本教程前,请确保已经学习了前4讲中无人机相关坐标系知识、基础飞行控制函数、激光雷达SLAM定位条件下的室内定点控制、自动飞行支持函数、导航控制函数等入门阶段的先导教程。
同时用户在做二次开发自定义的飞行任务时,可以参照第5讲中2021年国赛植保无人机G题中的编程思路,了解子线程执行过程几组关键变量的用法与实际作用效果。
了解了上述自主飞行任务设计关键要点后,下面我们以2022年全国大学生电子设计竞赛中B题送货无人机中题目要求为例,编写自动飞行任务函数完成比赛中的基础部分+发挥部分+创新部分等所有赛题要求。
根据赛题要求,我们可以将设计的软件部分拆解为以下三个部分:
- 机器视觉部分:需要识别底部目标的颜色和形状并通过SDK串口实现和飞控的数据交互;
- 飞控人机交互界面部分:按键、显示屏配合实现目标航点坐标的录入、学习到的目标特征录入、圆环的坐标与角度信息录入,将设置好的参数存储在飞控EEPROM内;
- 无人机自动飞行任务设计:完成自动起飞、根据现场录入或者学习到的航点目标进行作业(包括作业高度调整、自动投放/回收装置、蜂鸣器报警提示等)、执行完毕后自动返航。
2.1 机器视觉部分软件的设计
底部目标特征点的颜色为红色和蓝色,可以通过OPENMV机器视觉模组的寻找色块函数find_blob()对底部目标进行识别,我们可以判断识别到的色块的密度参数即blob.density(),可以很方便的区分出矩形、圆形、三角形。
最后将识别到的色块坐标、色块形状等关键参数填入到目标类中,编码后通过串口发送到飞控SDK串口,飞控通过解析到的数据帧就能判断出目标点的形状和颜色用于控制决策。
2.2 飞控人机交互界面软件设计
依靠Tiva LaunchPad核心板上板载的两个独立按键SW1、SW2,同时配合OLED显示屏实现对赛题中相关参数的进行修改、存储,新加功能需要兼容原来按键的翻页切换的功能,就必须设置相应的菜单界面配合按键的长按、短按响应来予以实现。
菜单界面的包括换行参数选中、参数加减调整,由于按键功能复用的关系,操作起来相关比较繁琐,用户后期可以通过外接ADC按键的方式,用扩展按键实现本例中的按键操作功能,人机交互部分操作视频教程见下方链接。
TI电赛B题送货无人机通过按键、菜单对坐标、模板进行设置
https://www.bilibili.com/video/BV1PB4y1t7y9/?vd_source=fa3e626a57e95e09ecf1b8f1627e58ac
2.3 无人机自动飞行任务的软件设计
第一阶段——自动起飞到航巡高度
uint8_t Auto_Takeoff(float target)//自动起飞到某一高度
函数输入参数target为目标高度,自动起飞任务分为两个线程,第一步为记录当前3维位置信息,作为导航初始原点位置。并且通过导航控制函数设置期望目标高度位置。第二步为实时检测高度偏差值,连续2S满足位置偏差在10cm以内后,函数返回值置1后,自动起飞到目标高度任务完成,用法参照Developer_Mode.c开发者模式中case 11用法,自主起飞任务完成后会进入case 15/16/17执行航点遍历作业任务。
- 第二阶段——航点遍历作业任务
void Deliver_UAV_Basic(void)
第一步将高度期望设置成第一作业高度150cm,水平位置期望为初始起飞时候的水平位置,并设置激光笔为持续闪烁,便于裁判判断飞机机身中心在地面上的投影位置,起飞点上方悬停时间设置为5S。
起飞点上方悬停5S后,会将键盘输入的第一个作业点的水平坐标填入到期望的目标位置,随后飞机会执行从起飞点正上方飞向第一作业点的动作,在执行本任务中对水平位置误差进行实时检测,连续N次水平位置误差小于某一阈值,即可以认为到达第一作业点正上方附近,满足达到第一作业点条件后会将高度期望设置成第二作业高度,飞机高度会下降。
第三步是判断无人机是否到达第二作业高度,检测高度是否达到的原理和水平方向一样,同样是检测高度方向上位置误差持续N次满足某一阈值。
第四步飞机处于第一作业点正上方附件,并且高度已经调整为第二作业高度,此时由于定位传感器会存在一定位置误差,这个时候水平方向位置控制会引入OPENMV识别到的色块坐标信息,无人机会对水平位置进行二次修正,使得无人机中心投影处于色块的中心区域。相当于用SLAM定位提供的位置信息做粗对准,在接近作业点时使用机器视觉实现进一步地精确对准。
与此同时会执行吊舱下放动作指令,利用的是360度转动的舵机,以某一角速度执行一定时间予以实现,具体的时间角速度、时间参数和自己舵机选型、绞盘的半径有关,这两个参数在实际调试也比较容易确定。塔吊下方执行完毕后会驱动高分贝蜂鸣器进行报警提示,原地悬停5S之后抬升塔吊装置并恢复到第一作业高度
第五步是无人机执行完第一作业点任务并回到第一作业高度后,会想任务线程发布第二作业点的位置,与第一作业点类似无人机会到第二作业点正上方附近,随即下降高度高第二作业高度,执行视觉二次对准、下放/抬升塔吊、蜂鸣器报警,之后重新返回到第一作业高度,准备返航。
完成预设的两个作业送货后,无人机会执行返航动作,首先无人机飞到起飞点正上方,连续N次水平位置误差小于某一阈值即可认为达到起飞点正上方附近,满足水平抵达之后会执行原地降落至地面的任务,到达地面后无人机会满足地面检测条件自动上锁。
这里需要注意的是程序在此处有一段特殊处理部分为SLAM建图复位指令,在之所以需要这么操作的原因是减小定位误差,NC360竞赛无人机平台使用的是2D激光雷达,理论上只适合平面运动机器人平台的SLAM建图,无人机在空中的线性运动为3维的,无人机在不同高度上,由于周围环境的陈设布置变化会造成一定的定位误差,通常在3~5cm以内,该误差范围能满足无人机在竞赛中的控制精度要求。对于不同高度空间环境变化较大的情况,可以采用本方案中的特殊处理形式,本特殊处理方式非必须,用户可以自己二次开发过程中根据实际情况来决策是否选用,同时对于末端降落过程,依然可以利用底部视觉特征精准对准的方法,实现精准降落。
针对创新+发挥部分的自动学习和穿越圆环部分内容,大体过程和本例程类似,差别在于坐标是通过现场识别到的模板特征录入的,这个处理过程主要工作量在于OPENMV部分,整个飞行任务执行过程和基础部分基本一样,同时对于穿越圆环部分,通过手动输入圆环的坐标和大致角度后,整个飞行过程就是航点遍历、机头对准圆环、穿越的过程,执行完毕后返航降落,整个过程相比前两项只是多了一个航向控制,相对来讲实现难度并没有拔高,仍然属于常规考察项,用户结合程序注释可以比较容易理解,故在这里不做展开。
2022年7月电赛B题送货无人机加装硬件介绍
2022年7月电赛B题送货无人机加装硬件介绍—NC360深度开源竞赛无人机开发平台_哔哩哔哩_bilibili
2022年TI电赛B题—送货无人机开源方案
2022年TI电赛B题—送货无人机开源方案NC360深度开源竞赛无人机开发平台_哔哩哔哩_bilibili
任意位置、角度自主飞行穿越圆框——2022年TI电赛飞行器B题送货无人机
任意位置、角度自主飞行穿越圆框——2022年TI电赛飞行器B题送货无人机_哔哩哔哩_bilibili
2021年电赛G题植保无人机国奖标准方案学习样例
电赛G题植保无人机国奖标准方案学习样例——NC360深度开源竞赛无人机开发平台_哔哩哔哩_bilibili
2021年电赛G题—植保无人机实现例程—NC360深度开源竞赛无人机开发平台_哔哩哔哩_bilibili
5_竞赛无人机搭积木式编程 ——以2021年电赛国奖标准完整复现为例学习
5_竞赛无人机搭积木式编程——以2021年电赛国奖标准完整复现为例学习 - 哔哩哔哩
NC360深度开源竞赛无人机开发平台
- 送货无人机(7 月份 B 题)
- 任务
设计一基于多旋翼飞行器的送货无人机,能够根据不同的要求,向指定的目标地点运送货物。图 2 为作业区域示意图,有起飞降落点和多个具有不同特征的目标地点。
送货无人机上需安装一可升降吊舱,吊舱重量 50±5g,升降范围 60±10cm;起飞、飞行过程中,吊舱紧贴无人机机腹;到达目标地点上方,无人机下降悬停,并将吊舱降至距离地面一定高度,送货操作完成后恢复到巡航高度飞行。无人机上需安装扬声器,可播放语音提示信息;无人机安装垂直向下的激光笔,用以标识航迹。
图 2 送货无人机作业区示意图
- 要求
- 无人机可按照现场设置的目标位置信息,对 2 个指定位置的目标地点完成送货作业。目标地点位置信息坐标可用无人机上携带的键盘设置。
- 无人机在“十”字起降点垂直起飞,升空至 150±10cm 的巡航高度;(5 分)
- 根据现场设置的送货目标,先后依次飞行抵达目标地点上方,无人机降低飞行高度到 80±10cm;(16 分)
- 无人机放出吊舱,吊舱降至距地面 20±5cm 高度,并保持稳定悬停 5 秒,完成送货作业,期间播放 提醒目标点收货的语音;悬停期间,标识无人机位置的激光笔光斑落在以目标中心为圆心、半径 15cm 的圆内;(20 分)
- 作业完成后飞行到起降点稳定准确降落,无人机几何中心点与起降点中心距离偏差不大于±10cm;(4 分)
- 送货过程必须要在 180 秒内完成,用时越少越好。(5 分)
- 无人机在作业区外学习识别某一种指定目标特征(颜色、形状),然后寻找具有此特征的两个目标地点,完成送货作业。
- 无人机从起降点起飞到 150cm 巡航高度,先后寻找 2 个上述已识别的目标,飞行抵达目标地点上方,降低飞行高度到 80±10cm 左右;(20 分)
- 放出下降吊舱至距地面 20±5cm 左右高度,稳定保持悬停 5 秒完成送货作业,期间播放提醒目标点收货的语音;送货期间,标识无人机位置的激光笔光斑落在以目标中心为圆心、半径 15cm 的圆内;送货完成即恢复巡航高度;(10 分)
- 送货作业完成后无人机降落到起降点;送货过程用时越少越好,需在 270 秒内完成;(5 分)
- 无人机找到放置在A 附近区域的红色圆框,并从圆框中穿越而过。(10 分)
- 设计报告
- 其他自主发挥。(5 分)
- 无人机找到放置在A 附近区域的红色圆框,并从圆框中穿越而过。(10 分)
项 目 | 主要内容 | 满分 |
系统方案 | 技术路线、系统结构,方案描述、比较与选择 | 3 |
设计与计算 | 控制方法描述及参数计算 | 5 |
电路与程序设计 | 系统组成,原理框图与各部分电路图 系统软件设计与流程图 | 7 |
测试方案与测试结果 | 测试方案及测试条件;测试结果完整性;测试结果 分析 | 3 |
设计报告结构及规范性 | 摘要、报告正文结构、公式、图表的完整性和规范 性 | 2 |
小计 | 20 |
- 说明送货作业现场说明
- 作业区域中标志“A”所在附近区域可放置供无人机穿越的圆框,见图 3,圆框可采用外径约 110cm
- 送货目标中的数字并非给无人机识别用,仅为了描述、记录方便,颜色与目标底色相近。
- 测评将现场准备图 1 所示 6 种送货目标的特征样板,如“红色三角形”、“蓝色正方形”等,以备给无人机识别。
- 送货作业区域铺设亚光喷绘布为淡灰色(R-240、G-240、B-240),目标地点的形状有三种(圆、正方形、三角形,最大边长或直径为 25cm),颜色有红、蓝两种(红 R-255、G-0、B-0,蓝 R-0、G-0、B- 255);作业区上、右两侧有 1.8cm 宽黑色标志线;应考虑到材料及颜料导致颜色存在差异的可能性。
- 参赛队在赛区提供的场地测试,不得擅自改变测试环境条件。的红色呼啦圈,呼啦圈固定在地面支架上,圆心高度约 150cm,支架为黑色。
图 3 圆框示意图
- 400cm×500cm 作业区四周及顶部设置安全网,安全网支架在安全网外。
- 测试现场避免阳光直射,但不排除顶部照明灯及窗外环境光照射,参赛队应考虑到测试现场会受到外界光照或室内照明不均等影响因素;测试时不得提出光照条件要求。
- 飞行器要求
- 参赛队使用无人机时应遵守中国民用航空局的相关管理规定。
- 无人机最大轴间距不大于 45cm。
- 无人机桨叶必须全防护,否则不得测试。
- 无人机上的激光笔垂直向下安装,不得移动、转动。
- 起飞前,无人机可手动放置到起降点;可手动一键启动后起飞,起飞后整个飞行过程中不得人为干预;若采用无人机以外的启动或急停操作装置,一键启动起飞操作后必须立刻将装置交给工作人员。
- 调试及测试时必须佩戴防护眼镜,穿戴防护手套。
- 测试要求与说明
- 吊舱可用软线悬吊 50g 砝码来模仿。
- 提醒目标点收货的语音可自行设定,时长 1~3 秒。
- 要求 1 送货前,可连续输入两个目标地点的位置信息;如,若以起降点为原点,编号 11 号目标的位置可为(200,275);目标的位置信息格式可自己定义。
- 在要求 2 送货前,将现场指定形状及颜色的样板(如“红色三角形”),在场外手持给无人机学习识别将要送货的目标特征。
- 要求 1 的送货过程必须在 180 秒内完成,超时不得分。
- 要求 2 的送货过程必须在 270 秒内完成,超时不得分。
- 要求 1 的(1)~(4)必须连续完成,期间不得人为干预;要求 2 的(1)~(3)必须连续完成,期间不得人为干预。
- 每次测试全过程中不得更换电池;两次测试之间允许更换电池,更换电池时间不大于 2 分钟。
- 飞行期间,无人机触及地面后自行恢复飞行的,扣 5 分;触地后 5 秒内不能自行恢复飞行视为失败,失败前完成动作仍计分。平稳降落是指在降落过程中无明显的跌落、弹跳及着地后滑行等情况出现。
相关文章:

竞赛无人机搭积木式编程——以2022年TI电赛送货无人机一等奖复现为例学习(7月B题)
在学习本教程前,请确保已经学习了前4讲中无人机相关坐标系知识、基础飞行控制函数、激光雷达SLAM定位条件下的室内定点控制、自动飞行支持函数、导航控制函数等入门阶段的先导教程。 同时用户在做二次开发自定义的飞行任务时,可以参照第5讲中2021年国赛植…...
oracle基础操作
oracle基础操作语法: 1、查询会话 SQL> select count(*) from v$session;2、增大连接数 SQL> alter system set processes5000 scope spfile;3、增大会话数 SQL> alter system set sessions7552 scopespfile;4、查询 参数: SQL> sho…...
python爬虫数据写入excel
在Jmeter118中描述了如何将接口请求的响应数据写入到csv中,同样的接口如果采用python写法,会简便很多,主要是用到了python中的pandas库#爬取展台数据import requestsimport pandas as pdurlhttps://ficonline.cfaa.cn/Exhibition/searchExhib…...

优思学院|六西格玛DMAIC,傻傻搞不清?
DMAIC还是搞不清? DMAIC是一个用于过程改进和六西格玛的问题解决方法论。它是以下五个步骤的缩写: 定义(Define):明确问题,设定项目的目标和目的。绘制流程图,并收集数据,以建立未来…...

【Linux】网络编程套接字(下)
🎇Linux: 博客主页:一起去看日落吗分享博主的在Linux中学习到的知识和遇到的问题博主的能力有限,出现错误希望大家不吝赐教分享给大家一句我很喜欢的话: 看似不起波澜的日复一日,一定会在某一天让你看见坚持…...

【Linux网络】网络编程套接字(上)
🎇Linux: 博客主页:一起去看日落吗分享博主的在Linux中学习到的知识和遇到的问题博主的能力有限,出现错误希望大家不吝赐教分享给大家一句我很喜欢的话: 看似不起波澜的日复一日,一定会在某一天让你看见坚持…...

十二、51单片机之DS1302
1、DS1302简介 (1)详情查看数据手册。 (2)管角描述 管教名称功能1Vcc2双供电配置中的主电源供电引脚2X1与标准的32.768kHz晶振相连。用于ds1302记时。3X24GND电源地5CE输入信号,CE信号在读写时必须保持高电平6I/O输入/推挽输出I/O,是三线接口的双向数…...

ChatGPT-4震撼发布
3月15日消息,美国当地时间周二,人工智能研究公司OpenAI发布了其下一代大型语言模型GPT-4,这是其支持ChatGPT和新必应等应用程序的最新AI大型语言模型。该公司表示,该模型在许多专业测试中的表现超出了“人类水平”。GPT-4, 相较于…...

HTML樱花飘落
樱花效果 FOR YOU GIRL 以梦为马,不负韶华 LOVE YOU FOREVER 实现代码 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html><head><meta http-equiv"…...

力扣-排名靠前的旅行者
大家好,我是空空star,本篇带大家了解一道简单的力扣sql练习题。 文章目录前言一、题目:1407. 排名靠前的旅行者二、解题1.正确示范①提交SQL运行结果2.正确示范②提交SQL运行结果3.正确示范③提交SQL运行结果4.正确示范④提交SQL运行结果5.其…...

马上要面试了,还有八股文没理解?让ChatGPT来给你讲讲吧——如何更好使用ChatGPT?
最近这段时间 ChatGPT 掀起了一阵 AI 热潮,目前来看网上大部分内容都是在调戏 AI,很少有人写如何用 ChatGPT 做正事儿。 作为一个大部分知识都是从搜索引擎和 GitHub 学来的程序员,第一次和 ChatGPT 促膝长谈后,基本认定了一个事…...
怎么避免服务内存溢出?
在高并发、高吞吐的场景下,很多简单的事情,会变得非常复杂,而很多程序并没有在设计时针对高并发高吞吐量的情况做好内存管理。 自动内存管理机制的实现原理 做内存管理,主要考虑申请内存和内存回收两部分。 申请内存的步骤&…...

01_I.MX6U芯片简介
目录 I.MX6芯片简介 Corterx -A7架构简介 Cortex-A处理器运行模型 Cortex-A 寄存器组 IMX6U IO表示形式 I.MX6芯片简介 ARM Cortex-A7内核可达900 MHz,128 KB L2缓存。 并行24bit RGB LCD接口,可以支持1366*768分辨率。 3.8/10/16位 并行摄像头传感器接口(CS…...

嵌入式学习笔记——STM32的中断控制体系
STM32的中断控制体系前言STM32中断的概念中断类型中断控制常用控制函数区分中断源与中断信号配置中断优先级分组问题中断使能中断服务函数总结前言 上一篇中,借着串口接受的问题,简要说了一下串口中断的作用和用法,本文将对STM32的中断控制体…...

如何发布自己的npm包
一、什么是npm npm是随同nodejs一起安装的javascript包管理工具,能解决nodejs代码部署上的很多问题,常见的使用场景有以下几种: ①.允许用户从npm服务器下载别人编写的第三方包到本地使用。 ②.允许用户从npm服务器下载并安装别人编写的命令…...
Qt QProcess管道命令带“|”多命令执行获取stdout输出问题总结
问题描述: 在Qt中,使用system和QProcess执行命令,system执行的命令,我们通常不需要获取stdout的输出结果,所以只需要得到返回结果,知道成功失败即可。 而用到QProcess,多半是要获取输出的返回信息。 这里的返回信息只要是标准输出的即可,当然了,也可以是别的channe…...

【JavaEE进阶篇2】spring基于注解开发1
在上一篇文章当中,我们提到了怎样使用spring来创建一个bean对象。下面,我们继续来研究一下,更加优胜的开发方式:基于注解开发【JavaEE进阶篇1】认识Spring、认识IoC、使用spring创建对象_革凡成圣211的博客-CSDN博客springIoc、使…...
统一登录验证统一返回格式统一异常处理的实现
统一登录验证&统一返回格式&统一异常处理的实现 一、用户登录权限效验1.1 最初的用户登录验证1.2 Spring AOP 用户统一登录验证的问题1.3 Spring 拦截器1.3.1 准备工作1.3.2 自定义拦截器1.3.3 将自定义拦截器加入到系统配置1.4 拦截器实现原理1.4.1 实现原理源码分析1…...
【建议收藏】华为OD面试,什么场景下会使用到kafka,消息消费中需要注意哪些问题,kafka的幂等性,联合索引等问题
文章目录 华为 OD 面试流程一、什么场景下会使用到 kafka二、消息消费中需要注意哪些问题三、怎么处理重复消费四、kafka 的幂等性怎么处理的五、kafka 会怎么处理消费者消费失败的问题六、数据库设计中,你会如何去设计一张表七、联合索引有什么原则华为 OD 面试流程 机试:三…...

【MySQL】MySQL的优化(二)
目录 explain分析执行计划 Explain分析执行计划-Explain 之 id Explain分析执行计划-Explain 之 select_type Explain分析执行计划-Explain 之 type Explain分析执行计划-其他指标字段 explain分析执行计划 通过以上步骤查询到效率低的 SQL 语句后,可以通过 …...

TDengine 快速体验(Docker 镜像方式)
简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...

Appium+python自动化(十六)- ADB命令
简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试…...
今日科技热点速览
🔥 今日科技热点速览 🎮 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售,主打更强图形性能与沉浸式体验,支持多模态交互,受到全球玩家热捧 。 🤖 人工智能持续突破 DeepSeek-R1&…...

IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)
文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...

全志A40i android7.1 调试信息打印串口由uart0改为uart3
一,概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本:2014.07; Kernel版本:Linux-3.10; 二,Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01),并让boo…...

Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

OPENCV形态学基础之二腐蚀
一.腐蚀的原理 (图1) 数学表达式:dst(x,y) erode(src(x,y)) min(x,y)src(xx,yy) 腐蚀也是图像形态学的基本功能之一,腐蚀跟膨胀属于反向操作,膨胀是把图像图像变大,而腐蚀就是把图像变小。腐蚀后的图像变小变暗淡。 腐蚀…...

Reasoning over Uncertain Text by Generative Large Language Models
https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...

回溯算法学习
一、电话号码的字母组合 import java.util.ArrayList; import java.util.List;import javax.management.loading.PrivateClassLoader;public class letterCombinations {private static final String[] KEYPAD {"", //0"", //1"abc", //2"…...
IP如何挑?2025年海外专线IP如何购买?
你花了时间和预算买了IP,结果IP质量不佳,项目效率低下不说,还可能带来莫名的网络问题,是不是太闹心了?尤其是在面对海外专线IP时,到底怎么才能买到适合自己的呢?所以,挑IP绝对是个技…...