机器人制作开源方案 | 基于混合现实的可移动机械臂平台

 作者:董泽宇 李肖兵 叶彤 李秉宸 吴雅霏

单位:广西大学 电气工程学院

指导老师:李勇 雷圆媛

      为应对特殊条件下不便于实地进行移动式操作的问题,本作品设计了一套基于混合现实的可移动机械臂操作控制系统。该系统分为人机交互、机械驱动、虚拟现实三个模块,人机交互模块通过摄像头识别操作者肢体手势动作并发布相应操作指令,机械驱动模块解析由人机交互模块发布的操作指令后完成相应动作并反馈设备工作状态,虚拟现实模块接收机械驱动模块反馈信息后将设备运行情况在构建好的虚拟场景中还原,实现对设备运行情况的实时监控。我们利用可移动机械臂平台进行测试,最终结果表明操作者通过本系统可以实现对可移动机械臂的远程精准控制与实时监控,系统响应速度能够达到60~100ms/帧。

1. 引言

      2022年5月-6月,国内发生了多起自然灾害[1]以及其他诸如火灾、毒气泄漏等突发事故。救援队进入或接近现场进行抢救工作的安全成本与技术难度极大。为提供一种解决此类问题的技术思路,本文提出了一种基于混合现实技术的远程机械臂操作控制系统。该系统通过搭建混合现实系统框架,辅助使用者实现对极端环境下工作的灾后救援机器人远程操纵与监测系统的设计思路。

      混合现实技术将可视化、人机交互和自动分析方法整合为一体,支持用户以视觉的方式感知数据,通过交互方式对数据进行探索[2]。传统的人机交互功能依赖可视化交互设备实现可视化交互功能,其中信息的输出通过二维显示屏实现、指令的输入功能则是依赖键盘与鼠标实现。随着混合现实技术的发展,如今出现了更加自然直观的多模态人机交互方式,其中包含了大数据可视化交互、基于声场感知的交互、混合现实实物交互、可穿戴设备交互、人机对话交互、及其他人机交互方式[3]。人机交互的目的在于感知人类的交互意图,当前已有一些用于人机交互的设备,例如,Vahid Pooryousef等人通过对柔性印制线路板进行设计开发,制作出依赖触觉进行交互的虚拟手套[4]、Microsoft公司开发了能够应用在动作捕捉中的深度摄像头Kinect[5]等,然而这些产品的成本相对较高,在使用时会受到一定程序的限制。

      此外,目前应用于机械臂的主动控制方法[6-7]一种是通过由摇杆与按键组合而成的控制设备进行指令发布工作,另一种则是通过力反馈传感设备实现对机械臂的遥操作控制。两种主流的控制方式都对于操作环境的局限性极大,并不利于对机械臂的应用普及。然而,两种机械臂的主动控制方式都需要一定的空间用于布置控制设施,这便对使用者操作环境造成了非常固定的局限。如今新兴的人机交互方式同样需要特定的环境布置传感设备,其成本与应用环境的局限性极大。因此,为降低应用成本与环境因素限制,以使得此类技术能够用于在特殊环境下的机械臂操作,本文采用基于视觉的动作捕捉功能以实现人机交互,采用Unity引擎构建虚拟仿真环境,同时通过ROS系统实现无线数据通讯功能实现指令的发布与接收,构建了一套基于混合现实的可移动机械臂操作控制系统。

2. 总体架构

2.1 软件系统

      如下图所示,基于混合现实的可移动机械臂操作控制系统的软件模块分为人机交互、机械驱动、虚拟现实三个功能模块,分别实现指令信号的输入、执行与反馈功能。不同模块间通过基于消息队列遥测传输协议(Message Queuing Telemetry Transport, MQTT)的网络通讯通道[8]与局域网通讯通道[9]结合,实现对指令信号的格式化、发布与接收功能。在保证系统良好的稳定性的同时,具有良好的拓展性。

2.2 硬件系统

      本系统结构为钢材结构构成,机械臂与底盘Meacanum轮组分别由机器时代(北京)科技有限公司的“探索者”创新平台开发的Basra主控板进行控制。两块Basra主控板都通过蓝牙串口通信,连接至基于树莓派的ROS系统内,进行基于物联网的通信网络搭建,主控板如下图所示:

3. 人机交互模块

      肢体动作是人类表达自我意识的一种重要手段,更是一种便捷的人机交互方式。该模块通过摄像头获取包含使用者肢体手势动作的图像数据,通过感知哈希算法进行滤波后提取使用者的关键点2D数据,最后对关键点进行深度估计,最终实现对使用者的肢体手势动作识别功能。

3.1 感知哈希算法

      目标检测对于设备性能要求高且费时,而对视频数据进行实时目标检测时由于摄像头、检测对象以及目标检测算法等多方面因素影响,对于输出结果的精度影响极大。因此本系统利用感知哈希算法对输入视频进行预处理,减少关键点检测工作的任务量并减小因使用者抖动等原因产生的误差,提高系统输出指令的有效率与准确性。

      感知哈希算法[10]是一种判断图像相似性的一类哈希算法的总称,包括了均值哈希算法(aHash)、感知哈希算法(pHash)、差异值哈希算法(dHash)等。为保证该部分有效提高系统的处理速度,本文采用差异值哈希算法进行对图像的预处理。

      启动摄像头后系统保存第一帧图像作为待处理图像,随后计算摄像头读取图像与待处理图像的Hamming距离。当Hamming距离大于预设阈值时,将此帧摄像头读取图像替换待处理图像,并进行后续处理。

3.2 基于RGB图像的人体关键点坐标提取

      本系统通过MediaPipe框架[11]实现对使用者的关键点坐标提取。MediaPipe框架是由Google开发的一种基于机器学习的目标检测框架。关键点坐标提取流程与分布如下图所示,在关键点追踪过程中,系统首先预测虚拟关键点坐标实现对各关节关键点的匹配,最终实现动作捕捉功能。

      系统在获得待处理图像后,首先对使用者与背景环境进行分割处理,随后进入人体关键点坐标预测环节 (Pose_Landmarker_GPU),利用提前训练好的人体关键点模型(关键点分布如下图所示)与目标进行匹配,从而获取在该图像中目标的关键点分布坐标,并通过坐标检测环节确定其置信度。最后由图像渲染环节(Pose_Renderer_GPU)接收由图像分割处理输出的图像数据流与坐标检测环节校正后输出的关键点分布坐标,在图像数据流中进行标记,最终输出标记了关键点的图像流与关键点坐标数据。

3.3 关键点深度估计

      系统通过人体运动特征结合几何原理,实现对关键点的深度估算[12]。基于下图所示的人体关键点分布,系统将11、12、23、24号关键点作为特征关键点,并将特征关键点组成四边形的几何特征建立特征关键点矩阵A,最后通过空间几何原理实现对关键点的深度预测,生成深度矩阵H。矩阵A、H如下所示,其中为i、j关键点间距离,hi为i关键点深度值。

      当使用者所在平面平行于摄像头平面时,以特征关键点所围图形中心为原点,以平行于11、12号关键点组成线段为x轴,以垂直于该平面且指向摄像头所在平面为z轴正方向,建立如上图所示空间坐标系。建立基准特征关键点矩阵A0,并保存各关键点间距离,作为基准单位长度lt0  ,此时深度矩阵记作

      系统运行过程中,由矩阵A与矩阵A0的变换关系,得到基准关键点沿z轴移动矩阵Hz、沿x轴旋转矩阵Hx、沿y轴旋转矩阵Hy。最终通过运动学的叠加原理[13],合成基准点深度矩阵H。矩阵关系如下所示,i、j、k为基准点特征常量,与摄像头捕捉的图像宽度w与高度h以及矩阵A相关。

特征关键点所围图形沿x轴旋转时,有

特征关键点所围图形沿y轴旋转时,有

特征关键点所围图形沿z轴平移时,有

4. 机械驱动模块

      机械驱动模块的建立基于ROS操作系统,可以实时读取设备运行情况并利用固定在机械臂上的摄像头采集设备的工作环境信息,最终通过局域网远程控制通讯功能,有效地实现对可移动机械臂的远距离操作控制,辅助使用者完成作业。

4.1 基于D-H参数的机械臂驱动控制

      系统通过该模块实现对目标物体搬运与环境信息采集工作。系统通过人机交互模块实现对动作的捕捉与判断后将使用者的姿势映射为相应的机械臂驱动控制指令,并对指令执行发布、接收、解析工作,从而实现对机械臂的远程控制。

      机械臂的链路由被称作连杆的刚体组成,在已知机械臂的各个关节连杆参数的情况下,通过控制机械臂各关节舵机转动角度,即可驱动机械臂的运动到指定位置[14]。其中Denavit-Hartenberg(D-H)参数算法是本模块的核心[15]。针对本研究的需求,选择使用基于几何结构的正运动学[16]解法,为机械臂的结构建立D-H矩阵。

      针对系统需求,采用的机械臂自由度为6。使用基于几何结构的运动学求解。通过余弦定理和连杆机构在笛卡尔坐标系的投影,推断每条机械臂的运动学正解方程组,并且系统采用D-H矩阵参数法,将其初始位姿和零点旋转至同一笛卡尔坐标系下进行计算。

      在三维空间中,为方便确定各个连杆之间的几何参数关系,通常规定两个参数连杆距离a和连杆转角α来描述。两轴之间公垂线上的直线距离称为连杆距离,记为a。两轴线在与公垂线垂直的平面上投影的夹角称为连杆转角,记为α。

      相邻的两连杆之间具有一个公共的轴,两连杆沿公共关节轴偏移的距离称为连杆偏移,记为d。两相邻连杆绕公共关节轴转动的角度称为关节角,记为θ。机械臂的每个连杆轴都可以用上述四个参数来描述,对于旋转关节,只有关节角θ是变量,其余参数作为常量一经确定不再发生改变。对于移动关节,只有连杆偏移是变量,其余参数为常量。

      定义各个连杆坐标系后,根据上述机械臂的四个连杆参数列出下列D-H参数表:

      得到D-H参数表后,根据上述公式可以得到相邻连杆之间的变换矩阵,最后按照上式将各个矩阵连乘即可得到机械臂的末端位置。人机交互模块识别使用者的肢体姿势数据后,优化处理后的数据通过局域网传输,即可实现从不同的人机维度进行人机协作,对机器的控制更加灵活、高效和稳定。

4.2 基于正运动学的Mecanum轮式机器人运动控制

      系统选取Mecanum轮式结构作为机械臂平台的运动驱动底盘。该部分根据人机交互模块发布的信息,实现在平面的全方向移动。Mecanum轮式机器人的全方位系统结构依赖轮组的速度组合即可实现稳定可靠且控制简单的全方位运动效果[17]。然而由于在复杂地形环境下Mecanum轮式机器人的底盘受力情况并非理想状态,实际运动轨迹与预测轨迹存在较大差异[18],因此需要人工辅助控制。所以本系统通过人机交互模块实现对Mecanum轮式机器人进行远程控制,以满足在不利于使用者进入的极端条件下对设备进行主动控制的需求。

      为实现对麦克纳姆轮的机械控制,系统对每个Mecanum轮添加三个独立的端口进行指令发布,从而实现对三自由度Mecanum轮的控制。因此,本系统基于4个Mecanum轮式结构构成移动平台,实现平面全向移动。其中四轮Mecanum轮式系统存在六种布局结构,如下图所示的结构是最适用于本系统的运动结构[19],能够较为有效地保证系统的稳定性、载重能力和控制力。

     由于轮式机器人在平面进行工作,因此本文对Mecanum轮式机器人建立坐标系,进行运动学分析。设机器人在平面内的运动速度v,并v将分解为x轴平移速度y轴平移速度yaw轴自传角速度,设r为几何中心指向轮子轴心的矢量,为N号轮子轴心的速度矢量。因此可以得出      的运动方程15以及其x轴与y轴分量:

    由Mecanum轮结构可知为设备提供动力运动的x轴与y轴分量来源于平行于辊子方向的速度。易知当辊子与轮子本身夹角呈45。时效率最大,设轮子平行于辊子方向的速度为v,并可得其与轴心位置速度关系如下:

不妨设车的旋转中心到各轮子的距离坐标为(a,b),因此可以得到速度分量方程组:

所以对于4个轮子的转速为:

矩阵方程(上式)即为机器人的逆运动学模型,反之则可以求得机器人的正运动学模型如下:

      所以当已知各个电机的转速或小车的运动状态时,便可以求得相应时刻小车运动状态与电机转速。

5. 虚拟现实模块

      数字孪生技术可以实现对设备与工作环境建立五维结构模型与应用预测 [20],可以改变传统模式下设备运行的“黑箱”状态[21],辅助使用者更好操作设备。系统通过Unity引擎搭建可移动机械臂的数字孪生模型,实现对设备反馈数据的形象化展示,此即系统的虚拟现实模块。

      虚拟现实模块的节点分布如下图所示,建立了Car、Even两个主要节点,其中Car节点部署了可移动机械臂的数字化模型,Even节点则用于搭载工作环境数字化虚拟模型并展示由固定在机械臂上的摄像头采集的工作实际场景。在系统运行状态下,该模块将接收到机械臂的数据反馈,驱动模型运动,给使用者直观形象的设备工况反馈。

      该模块的运动控制脚本挂载在Car节点中,负责接收、解析与模拟由移动机械臂平台发布的设备工况数据。Even节点中挂载的脚本则执行简单的设备碰撞检测以及解析显示安装在机械臂端的摄像头捕捉画面。场景3D展示效果如下图所示:

6. 系统测试

6.1 感知哈希阈值选取

      本文通过差异值哈希算法对输入图像进行预处理判断。其中三种感知哈希算法运算效率与动作差异值的结果输出如下表所示。

      本文通过感知哈希算法,以实现对输入图像的滤波,故选择算法处理速度更快的差异值哈希算法,其流程图如下图所示。本文将输入的对比图像压缩为11´10单通道后拆分为[0:10, 0:10]与[1:11, 0:10]两向输入图像,两向图像通过比较像素大小,生成bool-hash矩阵。最后计算并输出两项矩阵的Hamming距离。

      为区分使用者期待发布指令与使用者因抖动等问题造成的抖动误差指令,本文通过对三项控制方法分别进行四组测试,其中机械臂夹具控制的前后图像差异值最小,且不同使用者该动作前后图像的Hamming距离都不小于5,因此本文选取Hamming距离5作为输入图像预处理的阈值。

6.2 系统响应速度测试

      本文将系统按模块分别搭建在Windows8系统(电脑配置为八内核Intel Core i7-3635QM,内存8GB,CPU主频2.40GHz)与jetson nano(设备配置为四内核ARMA57,内存4GB,CPU主频1.43GHz)。为实现对系统响应速度的测试,本文通过在主函数内嵌入time.perf_counter()函数调取设备性能计数器测试系统相邻两次的处理时间。经过对五次测试数据的统计,绘制如下图所示的系统响应速度测试折

      由折线图可见,系统的响应速度稳定在60~100ms/次。第一次指令发布过程中,由于系统需要进行摄像头激活、服务器连接等工作,因此产生一定的延迟,此后每一次指令的发布耗时都稳定在60~100ms。在运行过程中,当使用者的输入图像变化差异值小于阈值时系统处于静默状态,故静默状态系统的响应速度相比于发布指令时的速度有较大差异。因此加入输入图像预处理环节能有效降低系统对设备处理性能的占用率,且系统对于设备的性能要求较低。

6.3 角度估计测试

      系统选择肢体关键点23-11-13、11-13-15、手部关键点4-5-12所成夹角,手臂如下图所示,由(a)运动至(c):

      在上图的测试中,(a)项测试平均标准差为2.49、(b)项测试平均标准差为3.77、(c)项测试平均标准差为11.77。本项测试选取五人完成该动作,其中起点位置与终点位置为预先设定位置,故在测试过程中使用者的运动轨迹存在一定波动,但各关键点夹角的变化趋势相似且最终都向目标角度收敛,因此可以证明该方法的稳定性可以满足大部分对于精度要求不高的环境下机械臂的操作工作。

      最终获取三个夹角变化折线图如下图所示:

      由上图所示的实验结果可知,将机械臂夹具的控制阈值设为60°,可以保障系统当且仅当手势调整至指定动作后,方可执行夹取与释放指令,有效避免系统运行过程中手势动作存在的波动。

6.4 系统运行效果展示

      系统运行效果最终展示效果如下图所示,使用者首先在个人计算机中部署人机交互模块与虚拟现实模块,然后先后启动机械驱动模块与部署在个人计算机的模块,建立两者的通讯通道,随后使用者即可通过肢体手势动作对机械臂平台进行远程操作控制。

      由上图所示的实验结果可知:设备在运动过程中,由于肢体部分的关键点分布结构相比于手部关键点相互遮挡概率小,故肢体部分关键点分布预测精度相较于手势部分高,更适合作为系统的线性输入变量,并将手势指令通过阶跃函数处理,实现对夹具的布尔控制。此外相比于未加入感知哈希函数,本系统对于使用者肢体在使用过程中产生的自然抖动具有良好的滤波效果。

      系统通过读取使用者右臂及右手的空间状态,并通过函数关系式映射为机械臂的运动控制指令,最终辅助使用者实现对设备的预期运动控制效果。

7. 结语

      混合现实技术是解决特殊环境或要求条件下实现使用者远程操控设备的一种重要技术手段,本文提出了基于混合现实的可移动机械臂操作控制系统。控制系统软件部分涵盖了人机交互、机械驱动、虚拟现实三个主要功能模块。本文亦搭建了一整套硬件测试平台,测试表明该平台可以实现对使用者肢体手势动作的解析,并将解析后的数据映射为机械控制指令,实现对机械臂的精准控制,能够解决特殊条件下操作者对设备无法进行实地操作的问题,具有一定的应用价值。测试中,常规状态下平台运行的响应速度能够达到60~100ms/帧,且响应速度与硬件设备性能具有较大的相关性,系统具有实现实时处理的前景,为该技术未来应用场景的选择和配套硬件设备的选择提供了参考。

      此外本系统需要在摄像头捕捉到头部后才会进行下一步的关键点检测功能,这对于个人计算机的摄像头捕捉视角范围提出了一定的要求,而对于未在摄像头视野范围内的肢体部分的预测处理则是系统下一步发展的一个方向。

参考文献

[1] 李生才,安莹.2022年5—6月国内环境事件[J].安全与环境学报, 2022,22(04):2292-2296.DOI:10.13637/j.issn.1009-6094.2022.1537.

[2] 温圳,李鹏,王叙萌,黄文琦,梁凌宇,周越凡,陈为.基于混合现实的可视分析综述[J].计算机辅助设计与图形学学报,2022,34(06):821-829.

[3] 陶建华,巫英才,喻纯,翁冬冬,李冠君,韩腾,王运涛,刘斌.多模态人机交互综述[J].中国图象图形学报,2022,27(06):1956-1987.

[4] Vahid Pooryousef, Ross Brown, and Selen Turkay. 2019. Shape Recognition and Selection in Medical Volume Visualisation with Haptic Gloves. In Proceedings of the 31st Australian Conference on Human-Computer-Interaction (OZCHI'19). Association for Computing Machinery, New York, NY, USA, 433–436.

[5] CAO, C.; SHAN, B.; ZHANG, H. Pattern Recognition of Wushu Routine Action Decomposition Process Based on Kinect. athematical Problems in Engineering, [s. l.], p. 1–11, 2022. DOI 10.1155/2022/ 3876487. Disponível em:

?direct=true&db=a9h&AN=158754607&lang=zh-cn&site=ehost-live. Acesso em: 1 out. 2022.

[6] 朱晓俊,王学谦,马云萱,梁斌,孙汉旭.绳驱超冗余空间柔性机械臂遥操作系统设计与实验研究[J].机器人,2022,44(01):9-18.DOI:10. 13973/j.cnki.robot.210228.

[7] 高晓科,孙亮,张伟军.高压带电引流作业机器人系统的设计与开发[J].机械设计与研究,2021,37(05):10-14+20.DOI:10.13952/j. cnki.jofmdr.2021.0171.

[8] 孔垂跃,陈羽,赵乾名.基于MQTT协议的配电物联网云边通信映射研究[J].电力系统保护与控制,2021,49(08):168-176.DOI:10.19783/ j.cnki.pspc.200775.)

[9] 欧军,吴清秀,裴云,张洪.基于socket的网络通信技术研究[J].网络安全技术与应用,2011(07):19-21.

[10] 许庚林,冉峰,邓良,史华康,郭爱英.轻量化神经网络和哈希跟踪算法在嵌入式人脸抓拍系统中的应用[J].上海大学学报(自然科学版),2021,27(06):1018-1028.

[11] https://doi.org/10.48550 /arXiv.2006.10204.

[12] 许宇能,朱西产,马志雄,李霖.基于单目摄像头的车辆前方道路三维重建[J].汽车技术,2014(02):48-52.

[13] 丁学成,冯晓敏,宋增云.叠加原理在力学中的应用[J].物理通报,2018 (07):25-27.

[14] 任敬轶,孙汉旭.一种新颖的笛卡尔空间轨迹规划方法[J].机器人,2002(03):217-221.DOI:10.13973/j.cnki.robot.2002.03.006.

[15] S. Wen, Z. Ma, S. Wen, Y. Zhao and J. Yao, "The study of NAO robot arm based on direct kinematics by using D-H method," 2014 UKACC International Conference on Control (CONTROL), 2014, pp. 515-518, doi: 10.1109/CONTROL. 2014.6915193.

[16] 冷舒,吴克,居鹤华.机械臂运动学建模及解算方法综述[J].宇航学报,2019,40(11):1262-1273.

[17] 夏长安,肖雨琴,岳义,赵现朝,韦宝琛.基于Mecanum轮的移动机器人运动建模与仿真[J].机械设计与研究,2022,38(04):17-21.DOI:10. 13952/j.cnki.jofmdr.2022.0096.

[18] 杨霖. Mecanum轮式全向移动平台减振技术的研究[D].大连交通大学,2016.

[19] 王一治,常德功.Mecanum四轮全方位系统的运动性能分析及结构形式优选[J].机械工程学报,2009,45(05):307-310+316.

[20] Tao, Fei and Meng Zhang. “Digital Twin Shop-Floor: A New Shop-Floor Paradigm Towards Smart Manufacturing.” IEEE Access 5 (2017): 20418-20427.

[21] 陶飞,刘蔚然,刘检华,等.数字孪生及其应用探索[J].计算机集成制造系统,2018,24(01):1-18.DOI:10.13196/j.cims.2018.01.001

更多详情请见 【S053】基于混合现实的可移动机械臂平台

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/315673.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【期末不挂科-C++考前速过系列P3】大二C++第3次过程考核(20道选择题&12道判断题&2道代码题)【解析,注释】

前言 大家好吖,欢迎来到 YY 滴C考前速过系列 ,热烈欢迎! 本章主要内容面向接触过C的老铁 主要内容含: 欢迎订阅 YY滴C专栏!更多干货持续更新!以下是传送门! YY的《C》专栏YY的《C11》专栏YY的《…

Linux中断 -- 中断应答、嵌套、

接上文,本文继续介绍Linux软件部分逻辑。 参考内核版本:kernel-4.19 目录 1.中断信号在各级中断控制器中的应答 2.supports_deactivate_key意义 3.中断嵌套 1.中断信号在各级中断控制器中的应答 本章主要从内核软件层面来看各中断控制器对中断信号处…

self-attention机制详解

目前,对于我们的network,给定的input大都是一个向量: 但是对于更复杂的情况,我们的input是a set of vec: 举例: nlp中的句子,对于每个word都是一个word embedding: 图学习中每个节点有一个e…

SpringBoot3.X源码分析(启动流程)

SpringBootApplication(scanBasePackages {"com.javaedge.base"} ) public class BaseApplication {public BaseApplication() {}public static void main(String[] args) {SpringApplication.run(BaseApplication.class, args);} } 1 启动入口 静态辅助类&#x…

【从0上手cornerstone3D】如何渲染一个基础的Dicom文件(含演示)

一、Cornerstone3D 是什么? Cornerstone3D官网:https://www.cornerstonejs.org/ 在线查看显示效果(加载需时间,可先点击运行),欢迎fork 二、代码示例 了解了Cornerstone是什么,有什么作用后&…

SpringBoot3自动配置原理

​​​​​​自动配置 遵循约定大约配置的原则,在boot程序启动后,起步依赖中的一些bean对象会自动注入到ioc容器 看一下我们前面写的代码有没有达到自动配置的效果呢? 没有自动,我们写了配置类,写了Import注解&#…

解释程序基本原理

解释程序基本原理 1、解释程序的基本结构2、高级语言编译与解释方式的比较 语言处理程序是一类系统软件的总称,其主要作用是将高级语言或汇编语言编写的程序翻译成某种机器语言程序,使程序可在计算机上运行。语言处理程序主要分为汇编程序、编译程序和解…

匠心科技BLDC开发板原理图讲解

匠心科技BLDC开发板资料 链接:https://pan.baidu.com/s/1s5YjzRSDLKQvl86lBVAqKA?pwda6cx 提取码:a6cx 解压密码:JXKJ_RALDNWB站视频讲解() 链接: 匠心科技直流无刷电机开发板原理图讲解 BLDC的开发板主要分为四个模…

Docker登录MySQL,密码正确却提示密码错误

当我输入了正确的MySQL密码的时候确提示我密码错误: ERROR 1045 (28000): Access denied for user rootlocalhost (using password: YES) docker run --name mysql_master \ -e MYSQL_ROOT_PASSWORD123123 \ -v /root/mysql_master/data:/var/lib/mysql \ -v /root…

Vulnhub-GoldenEye

一、信息收集 nmap探测:nmap -p 1-65535 -T4 -A -v 192.168.1.9 PORT STATE SERVICE VERSION 25/tcp open smtp Postfix smtpd |_smtp-commands: ubuntu, PIPELINING, SIZE 10240000, VRFY, ETRN, STARTTLS, ENHANCEDSTATUSCODES, 8BITMIME, DSN |_…

【Git】本地仓库文件的创建、修改和删除

目录 一、基本信息设置 1、设置用户名2、设置用户名邮箱 二、Git仓库操作介绍 1、创建一个新的文件夹2、在文件内初始化git仓库(创建git仓库)3、向仓库中添加文件 1.创建一个文件2.将文件添加到暂存区3.将暂存区添加到仓库 4、修改仓库文件 1.修改文件2.…

imgaug库指南(20):从入门到精通的【图像增强】之旅

引言 在深度学习和计算机视觉的世界里,数据是模型训练的基石,其质量与数量直接影响着模型的性能。然而,获取大量高质量的标注数据往往需要耗费大量的时间和资源。正因如此,数据增强技术应运而生,成为了解决这一问题的…

紫光展锐T770安卓核心板_展锐T770 5G核心板规格参数

紫光展锐T770安卓核心板是一款高性能的5G安卓智能模块,拥有先进的6nm制程工艺和强大的性能。板载8GB Ram 256GBROM的内存单元,支持4K H.265/ H.264视频编解码,搭载Android 13以上操作系统,功能丰富。除了支持5G NSA和SA双模式向下…

大数据赋能电竞出海企业发展

近几年电竞行业发展迅速,我国单2022年新增近4万家电竞相关企业,竞争十分激烈。中国电竞市场规模在全球占比19%左右,海外有巨大的增量市场,特别是东南亚、中南亚和拉丁美洲是电竞市场增长最快的地区,在2020至2025年期间…

Hive基础知识(十二):Hive的基本查询

1. 全表和特定列查询 0)数据准备 原始数据 dept: 10 ACCOUNTING 1700 20 RESEARCH 1800 30 SALES 1900 40 OPERATIONS 1700 emp: 7369 SMITH CLERK 7902 1980-12-17 800.00 20 7499 ALLEN SALESMAN 7698 1981-2-20 1600.00 300.00 30 7521 WARD SALESM…

【如何使用iPad通过Code App+cpolar实现公网地址远程访问vscode】

🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​💫个人格言:“没有罗马,那就自己创造罗马~” 文章目录 1. 在iPad下载Code APP2.安装cpolar内网穿透2.1 cpolar 安装2.2 创建TCP隧道 3. iPad远程vscode4. …

Pytorch的默认初始化分布 nn.Embedding.weight初始化分布

一、nn.Embedding.weight初始化分布 nn.Embedding.weight随机初始化方式是标准正态分布 ,即均值$\mu0$,方差$\sigma1$的正态分布。 论据1——查看源代码 ## class Embedding具体实现(在此只展示部分代码) import torch from t…

如何在 SwiftUI 中实现音频图表

文章目录 前言DataPoint 结构体BarChartView 结构体ContentView 结构体实现协议实现线图总结 前言 在可访问性方面,图表是复杂的事物之一。iOS 15 引入了一项名为“音频图表”的新功能。 下面我们将学习如何通过使用 accessibilityChartDescriptor 视图修饰符为任…

数据结构与算法教程,数据结构C语言版教程!(第三部分、栈(Stack)和队列(Queue)详解)五

第三部分、栈(Stack)和队列(Queue)详解 栈和队列,严格意义上来说,也属于线性表,因为它们也都用于存储逻辑关系为 "一对一" 的数据,但由于它们比较特殊,因此将其单独作为一章,做重点讲解。 使用栈…

Histone H3K4me2 Antibody, SNAP-Certified™ for CUTRUN

EpiCypher是一家为表观遗传学和染色质生物学研究提供高质量试剂和工具的专业制造商。EpiCypher推出的CUT&RUN级别的Histone H3K4me2 Antibody符合EpiCypher的批次特异性SNAP-CertifiedTM标准,在CUT&RUN中具有特异性和高效的靶点富集。通过SNAP-CUTANA™K-Me…