大模型机器人发展史:从VoxPoser、RT2到斯坦福Mobile ALOHA、Google机器人
前言
23年7月,我在朋友圈评估Google的RT2说道:
- “大模型正在革新一切领域啊,超帅,通过大模型不仅能理解“人话”,还能对“人话”进行推理,并转变为机器人能理解的指令,从而分阶段完成任务。回头仔细看下论文”
- 当时便对大模型机器人印象深刻,一直想仔细研究下来着,但因为后来一直和团队忙于论文审稿GPT、企业知识库问答等项目,所以一直没抽出时间去深入研究
没成想,前几天,斯坦福的炒菜机器人火爆全网,再次让包括我在内的所有人目瞪口呆,再次在朋友圈评论道:
- 多模态 + 大模型 + AI agent可以全方位赋能机器人
一年前我决心彻底写清楚ChatGPT原理
一年前,因为对ChatGPT背后技术原理巨大的「好奇心」,加之极高的「分享热情」、以及想写一篇关于其原理最全面 最深入 最细致文章的「决心」,彻底改变了过去一年的轨迹
最后,博客证明了技术研究能力,课程证明了教学教研能力,项目证明了带队开发能力
一年后的今天,我下定决心准备彻底研究下机器人 - 刚好今年q1本身要做一个AI agent小项目,希望q2起,有机会做这个机器人agent大项目,如能和某高校实验室或资本合作更好
说干就干
- 一方面,我组建了一个斯坦福机器人复现小组,准备复现斯坦福这个炒菜或家务机器人
- 二方面,我准备把大模型机器人的发展史以及其中涉及到的所有关键技术细节,全部都梳理一下(毕竟新闻稿只能看个大概,但想精准理解,必须结合一系列论文理解)
总之,不要看一篇新闻稿觉得很行,再看一篇 又觉得不行了,不要人云亦云 被新闻稿带节奏(比如,虽然其有些动作是被远程操控完成的,但还是有很多动作是其自主完成),行与不行,得花几个月尝试下才可知,我们今年Q1之内的三个步骤:
- 先做技术准备
- 复现团队复现Mobile ALOHA
- 建后续迭代优化的机器人开发团队,作为我司的第4项目组
第一部分 李飞飞团队:具身智能
1.1 机器人对从没见过的任务也能一次执行且不需要示范
大模型接入机器人,把复杂指令转化成具体行动规划,无需额外数据和训练,说白了,人类可以很随意地用自然语言给机器人下达指令,如:打开上面的抽屉,小心花瓶!
大语言模型+视觉语言模型就能从3D空间中分析出目标和需要绕过的障碍,帮助机器人做行动规划
然后重点来了, 真实世界中的机器人在未经“培训”的情况下,就能直接执行这个任务。
新方法实现了零样本的日常操作任务轨迹合成,也就是机器人从没见过的任务也能一次执行,连给他做个示范都不需要。
可操作的物体也是开放的,不用事先划定范围,开瓶子、按开关、拔充电线都能完成
1.2 VoxPoser:大模型指导机器人如何与环境进行交互
1.2.1 3D Value Map:既标记了“在哪里行动”,也标记了“如何行动”
机器人如何直接听懂人话?李飞飞团队将该系统命名为VoxPoser,如下图所示,它的原理非常简单(项目地址、论文地址、代码地址)
- 首先,给定环境信息(用相机采集RGB-D图像)和我们要执行的自然语言指令
- 接着,LLM(大语言模型)根据这些内容编写代码,所生成代码与VLM(视觉语言模型)进行交互,指导系统生成相应的操作指示地图,即3D Value Map 所谓3D Value Map,它是Affordance Map和Constraint Map的总称,既标记了“在哪里行动”,也标记了“如何行动”
- 如此一来,再搬出动作规划器,将生成的3D地图作为其目标函数,便能够合成最终要执行的操作轨迹了
而从这个过程我们可以看到,相比传统方法需要进行额外的预训练,这个方法用大模型指导机器人如何与环境进行交互,所以直接解决了机器人训练数据稀缺的问题
更进一步,正是由于这个特点,它也实现了零样本能力,只要掌握了以上基本流程,就能hold任何给定任务
1.2.2 将指令拆解成很多子任务 + 规划路径
在具体实现中,作者将VoxPoser的思路转化为一个优化问题,即下面这样一个复杂的公式:
它考虑到了人类下达的指令可能范围很大,并且需要上下文理解,于是将指令拆解成很多子任务,比如开头第一个示例就由“抓住抽屉把手”和“拉开抽屉”组成
VoxPoser要实现的就是优化每一个子任务,获得一系列机器人轨迹,最终最小化总的工作量和工作时间
而在用LLM和VLM将语言指令映射为3D地图的过程中,系统考虑到语言可以传达丰富的语义空间,便利用“感兴趣的实体(entity of interest)”来引导机器人进行操作,也就是通过3D Value Map中标记的值来反应哪个物体是对它具有“吸引力”的,那些物体是具有“排斥性”。
还是以开头的例子举例,抽屉就是“吸引”的,花瓶是“排斥”的。
当然,这些值如何生成,就靠大语言模型的理解能力了。
而在最后的轨迹合成过程中,由于语言模型的输出在整个任务中保持不变,所以我们可以通过缓存其输出,并使用闭环视觉反馈重新评估生成的代码,从而在遇到干扰时快速进行重新规划
因此,VoxPoser有着很强的抗干扰能力,比如下图将废纸放进蓝色托盘
最后,作者还惊喜地发现,VoxPoser产生了4个“涌现能力”:
- 评估物理特性,比如给定两个质量未知的方块,让机器人使用工具进行物理实验,确定哪个块更重;
- 行为常识推理,比如在摆餐具的任务中,告诉机器人“我是左撇子”,它就能通过上下文理解其含义;
- 细粒度校正,比如执行“给茶壶盖上盖子”这种精度要求较高的任务时,我们可以向机器人发出“你偏离了1厘米”等精确指令来校正它的操作;
- 基于视觉的多步操作,比如叫机器人将抽屉精准地打开成一半,由于没有对象模型导致的信息不足可能让机器人无法执行这样的任务,但VoxPoser可以根据视觉反馈提出多步操作策略,即首先完全打开抽屉同时记录手柄位移,然后将其推回至中点就可以满足要求了
// 待更
第二部分 Google的RT-2
// 待更
第三部分
// 待更
第四部分 斯坦福机器人Mobile ALOHA:炒菜、家务全活了
4.1 Mobile ALOHA整体训练流程
在机器人技术领域,通过对人类示范进行模仿学习已经取得了令人瞩目的成绩。然而,目前大多数研究结果都集中在桌面操作上,缺乏完成一般任务的移动性和灵活性
近日,斯坦福一研究团队(Zipeng Fu、Tony Z. Zhao、Chelsea Finn)开发了一个系统:Mobile ALOHA(论文地址、项目地址、技术文档),由于其可以做各种家务,比如炒菜、刷碗等等,使得其一经发布便火爆全网
斯坦福家务机器人mobile-aloha
该系统用于模仿需要全身控制的双臂移动操作任务(In this work, we develop a systemfor imitating mobile manipulation tasks that are bi-manual and require whole-body control)
- 首先提出了Mobile ALOHA系统,作为低成本全身远程操作系统来收集数据(通过一个移动底座和一个全身远程操作界面增强了ALOHA 系统)
We first present Mobile ALOHA, a low-cost and whole-bodyteleoperation system for data collection. It augmentsthe ALOHA system [104] with a mobile base, and awhole-body teleoperation interface.
注,ALOHA这个系统最早在23年这篇论文中被详细介绍:Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware(这是其解读),且论文中首次系统阐述了ACT(至于什么是ACT,下文很快会介绍)
相当于Mobile ALOHA其实是基于该篇论文的工作基础上迭代优化出来的,不是一蹴而就 - 之后利用Mobile ALOHA 收集的数据,然后进行有监督的行为克隆(behavioral cloning),且和静态ALOHA 数据集进行协同训练co-training
Using data col-lected with Mobile ALOHA, we then perform super-vised behavior cloning and find that co-training with existing static ALOHA datasets boosts performanceon mobile manipulation tasks. - 每个任务包含50次演示(说白了,人类先做示范,然后机器人先向人类学习),在经过协同训练后成功率可达到90%,使得Mobile ALOHA能够自主完成复杂的移动操作任务,如炒虾、打开双门壁柜存放沉重的烹饪锅、呼叫并进入电梯以及使用厨房水龙头轻轻冲洗用过的平底锅。
With 50 demonstra-tions for each task, co-training can increase successrates by up to 90%, allowing Mobile ALOHA to au-tonomously complete complex mobile manipulationtasks such as sauteing and serving a piece of shrimp,opening a two-door wall cabinet to store heavy cook-ing pots, calling and entering an elevator, and lightlyrinsing a used pan using a kitchen faucet.
4.2 Mobile ALOHA 硬件
4.2.1 Mobile ALOHA 硬件的总体情况
在此之前
- 能够即插即用的全身遥控硬件是比较昂贵的,比如像PR2、TIAGo这样的机器人价格一般超过20万美刀
- 且之前的机器人也没法完成复杂的需要双手互相配合的各种灵活操作,毕竟人类的十指多么灵活
虽然最近的许多研究表明,在细粒度的多模态操作任务中,高表达能力的策略类方法(如扩散模型和Transformer)可以取得良好效果(While many recent works demon-strate that highly expressive policy classes such asdiffusion models and transformers can perform wellon fine-grained),但目前尚不清楚这些方法是否适用于移动操作:随着附加自由度增加,手臂与基础动作之间的相互作用可能变得复杂,微小偏差可能导致手臂末端执行器姿态大幅漂移
而Mobile ALOHA 是一种低成本的移动机械手,可以执行各种家庭任务,其继承了原始 ALOHA 系统的优点,即低成本、灵巧、可维修的双臂远程操作装置,同时将其功能扩展到桌面操作之外,且重点做到了以下4点
- 移动性:移动速度与人类行走速度相当,约为 1.42 米 / 秒
- 稳定性:在操作重型家用物品时它能保持稳定,如锅和橱柜
- 全身遥控操作:所有自由度均可同时进行遥控操作,包括双臂和移动底座
- 无绳:具有机载电源和计算设备(数据收集和推断期间的所有计算都是在配备了Nvidia 3070 Ti GPU (8GB VRAM)和Intel i7-12800H的消费级笔记本电脑上进行)
如上图所示
- 上图左侧部分(Mobile ALOHA has two wrist cameras and one top camera, with onboard power and compute)
展示了研究者发现将操作员的腰部与移动底座系在一起的设计是最简单直接的解决方案 - 上图中间部分(Middle: The teleoperation setup can be removed and only two ViperX 300 [3] are used during autonomous execution. Both arms can reach a min/max height of 65cm/200cm, and extends 100cm from the base)中的数据表明
机械手相对于地面的垂直高度为 65 厘米至 200 厘米,可伸出底座 100 厘米,可举起 1.5 千克重的物体,并可在 1.5 米高处施加 100 牛的拉力
这样的设计让 Mobile ALOHA 可以完成很多任务,包括实物烹饪、家务管理、人机互动等 - 上图右侧部分(Right: Technical specifications of Mobile ALOHA)中列出了 Mobile ALOHA 的更多技术规格
除了现成的机器人外,研究者还开源了所有的软件和硬件部件,并提供了详细的教程,包括三维打印、组装和软件安装
4.2.2 硬件材料清单与硬件制作步骤
首先,准备一系列硬件材料,比如
- 它接受来自三个罗技C922x RGB网络摄像头的流媒体,分辨率为480 × 640,频率为50Hz
- 两个摄像头安装在跟随者机器人的手腕上,第三个摄像头面向前方
- 笔记本电脑还通过USB串行端口接收来自所有4个手臂的本体感觉流,通过CAN总线接收来自Tracer移动基地的本体感觉流
Part
Quantity
Link
Price
(per unit)
Robots
ViperX 300 Robot Arm 6DOF
2
ViperX 300 Robot Arm 6DOF
$5,695.95
WidowX 250 Robot Arm 6DOF
2
WidowX 250 Robot Arm 6DOF - X-Series Robotic Arm
$3,295.95
Tracer AGV(移动底座)
1
AgileX Tracer AGV
$8,999.95
Onboard Compute
Lambda Labs Tensorbook
1
Deep Learning Laptop - RTX 3080 Max-Q | Razer x Lambda Tensorbook
$2,399.00
Robot Frame
4040 800mm x 8
4
Amazon.com (2 pcs)
$42.29
4040 500mm x 6
2
Amazon.com (4 pcs)
$58.99
4040 400mm x 2
2
Amazon.com (1 pcs)
$22.99
4040 300mm x 7
2
Amazon.com (4 pcs)
$59.99
4040 L-shape connectors x 28
5
Amazon.com (6 pcs)
$32.99
4040 T-shape connectors x 4
1
Amazon.com (6 pcs)
$30.99
4040 45-degree corner connectors
1
Amazon.com
$21.99
4040 Corner Bracket and T-Slot Sliding Nuts
2
Amazon.com
$24.99
4040 caps
2
Amazon.com
$9.81
M6 20mm
(for mounting robot)
1
Amazon.com
$9.99
M6 T nuts for 4040
(for mounting robot)
2
Amazon.com
$14.16
Camera setup
Logitech C922x Pro Stream Webcam
4
Amazon.com
$98.35
USB Hub
2
Amazon.com
$19.99
Power
Battery Pack
1
Amazon.com
$699.00
600W DC Supply
1
Amazon.com
$59.00
12V DC Cable
5
Amazon.com
$15.99
Fork Spade Connectors
1
Amazon.com
$13.69
USB-A to Micro USB Cable
4
Amazon.com
$17.87
Wheel Odometry
DYNAMIXEL XL430-W250-T
2
DYNAMIXEL XL430-W250-T - ROBOTIS
$49.90
U2D2
1
U2D2 - ROBOTIS
$32.10
U2D2 Power Hub Board Set
1
U2D2 Power Hub Board Set - ROBOTIS
$19.00
Jumper Wire
1
Amazon.com
$9.99
Weights
1
Amazon.com: ACCRETION 1 Oz Grey Adhesive Backed Wheel Weights (24 Oz Pack) : Automotive
$14.65
Misc
Rubber Band
1
Amazon.com
$9.99
Gripping Tape
1
Amazon.com
$54.14
Common equipments
Allen keys
Hot glue gun
Total
$31,757.86
硬件材料准备齐全后,按以下步骤一步步执行
- Install ALOHA end-effectors
通过6个步骤打造ALOHA:ALOHA 🏖️ Tutorial,单纯打造这个还不具备移动功能的ALOHA便得花费3万刀中的1.9万刀- Build the robot frame
- Mount the robots and the cameras
- Cable connections
4.3 增加静态ALOHA 数据进行Co-training
4.3.1 静态ALOHA 数据的组成情况
对于机器人的训练,数据是一个很大的问题
- 使用模仿学习(imitation learning)来解决现实世界机器人任务的典型方法依赖于在特定机器人硬件平台上收集的目标任务数据集。然而,这种方法虽够但数据本身收集的过程过于冗长,因为在特定机器人硬件平台上,人类操作员需要从头开始为每个任务收集演示数据
The typical approach for using imitation learning to solve real-world robotics tasks relies on using thedatasets that are collected on a specific robot hard-ware platform for a targeted task. This straightfor-ward approach, however, suffers from lengthy datacollection processes where human operators collect demonstration data from scratch for every task onthe a specific robot hardware platform.
且由于这些专门数据集中视觉差异有限,在这些数据集上训练得到的策略通常对感知干扰(如干扰和照明变化)不够鲁棒
The policie strained on these specialized datasets are often not ro-bust to the perceptual perturbations (e.g. distractorsand lighting changes) due to the limited visual diver-sity in these datasets [95] - 好在最近,在从不同但类似类型的机器人收集的各种真实数据集上进行co-training,在单臂操作和导航方面已经显示出了有希望的结果
Recently, co-training ondiverse real-world datasets collected from different but similar types of robots have shown promising results on single-arm manipulation [11, 20, 31, 61],and on navigation [79].
斯坦福的研究者在这项工作中便使用的Co-training,且利用现有的静态ALOHA 数据集来提高移动操作的模仿学习性能,尤其是双臂动作
- 静态ALOHA 数据集总共有 825 个示范动作,任务包括密封密封袋、拿起叉子、包装糖果、撕纸巾、打开带盖塑料瓶、玩乒乓球、分发胶带、使用咖啡机、交接铅笔和操作螺丝刀等
需要注意的是,静态ALOHA 数据都是在黑色桌面上收集的,两只手臂固定朝向对方
这种设置与移动 ALOHA 不同,移动 ALOHA 的背景会随着移动底座的变化而变化,两臂平行朝前放置 - 在Co-training中,研究者没有对静态ALOHA 数据中的 RGB 观察结果或双臂动作使用任何特殊的数据处理技术
4.3.2 基于两套数据(静态ALOHA数据和移动ALOHA数据)训练损失函数
任务的移动操作策略的训练目标是最小化模拟损失函数
其中表示观察结果,包括两个手腕摄像头RGB观察(two wrist camera RGB observations),和一个安装在手臂和手臂关节之间、以自我为中心的顶部摄像头RGB观察(top camera RGB observation mounted,其固定不动),如下图左上角所示
我们以相同概率从静态ALOHA数据和移动ALOHA数据中进行抽样,并将批量大小设置为16
- 由于静态ALOHA数据点没有移动基本动作,我们对动作标签进行零填充处理,使得来自两个数据集的动作具有相同维度,我们还忽略了静态ALOHA数据中的前置摄像头,因此两个数据集都有3个摄像头
Since static ALOHA datapoints have no mobile base actions, we zero-pad the action labels so actions from both datasets have the same dimension.We also ignore the front camera in the static ALOHA data so that both datasets have 3 cameras. - 同时,我们仅根据移动ALOHA数据集的统计信息对每个动作进行标准化处理
We normalize every action based on the statistics of the Mobile ALOHA dataset Dm mobile alone - 在实验中,我们将这种协同训练方法与多种基本模仿学习方法(如ACT [Learning fine-grained bimanual manipulation with low-cost hardware]、扩散策略[Diffusion policy: Visuomotor policy learning via action diffusion]和VINN [The surprising effectiveness of representation learning for visual imitation])结合使用 In our experiments, we combine this co-training recipe with multiple base imitation learning approaches, including ACT [104], Diffusion Policy [18], and VINN [63]
关于ACT的技术细节,详见此文《斯坦福机器人Mobile ALOHA的背后技术:动作分块ACT、Diffusion Policy、VINN》的第一部分,讲得非常细致
最终该团队选择了 7 个任务,它们涵盖了现实应用中可能出现的各种功能、对象和交互,分别是擦拭葡萄酒、煮虾、冲洗锅、使用橱柜、呼叫电梯、推椅子和击掌
下图则是机器人在执行任务时的导航移动轨迹
4.4 实验
在实验中回答两个核心问题:
- 移动ALOHA是否能够通过协同训练co-training和少量移动操作数据来获得复杂的移动操作技能?
Can Mobile ALOHA acquire complex mobile manipulation skills with co-training and a small amount of mobile manipulation data? - 移动ALOHA是否能够与不同类型的模仿学习方法一起工作,包括ACT、扩散策略和基于检索的VINN?
Can Mobile ALOHA work with different types of imita-tion learning methods, including ACT [104], Diffu-sion Policy [18], and retrieval-based VINN [63]?
作为初步研究,我们将使用“动作分块”[action chunking]这种方法,在该方法中一个策略预测未来一系列动作,而不是每个时间步只预测一个动作。这种方法已经被应用于ACT和扩散策略,并且可以简单地添加到VINN中(As a preliminary, all methods we will examine em-ploy “action chunking” [104], where a policy predictsa sequence of future actions instead of one action ateach time step)
- 采用动作分块对于操作至关重要,它提高了生成轨迹的一致性,并减少了逐步策略推断所带来的延迟
We found action chunking to be crucial formanipulation, improving the coherence of generated trajectory and reducing the latency from per-steppolicy inference. - 我们观察到移动基座目标速度与实际速度之间存在延迟,而位置控制手臂则具有更小的延迟。为了解释移动基座d步骤上出现的延迟情况,我们使机器人执行长度为k-d 的第一个k-d 手臂行为以及最后一个k-d 基座行为
We observe a delay between target and actual veloc-ities of our mobile base, while the delay for position-controlled arms is much smaller. To account for adelay of d steps of the mobile base, our robot exe-cutes the first k −d arm actions and last k −d baseactions of an action chunk of length k.
4.4.1 协同训练提高了性能
研究发现,Co-training可以提高ACT性能。在7项具有挑战性的移动操作任务中,与静态ALOHA数据集进行Co-training可持续提高ACT的成功率
这对于乘电梯时需要按键、清洗锅时需要打开水龙头,等子任务尤为重要,因为在这些任务中,精确操作是瓶颈所在
4.4.2 兼容ACT、扩散策略和VINN
除了ACT,还使用Mobile ALOHA训练了两种最新的模仿学习方法,即扩散策略[18]和VINN[63](We train two recent imitation learning methods,Diffusion Policy [18] and VINN [63], with Mobile ALOHA in addition to ACT.)
- 扩散策略通过逐步细化动作预测来训练神经网络。为提高推理速度,采用DDIM调度器[85]并对图像观测应用数据增强以防止过拟合。co-training数据管道与ACT相同,在附录A中有更多的训练细节可供参考
Diffusion policy trains aneural network to gradually refine the action predic-tion. We use the DDIM scheduler [85] to improve in-ference speed, and apply data augmentation to image observations to prevent overfitting. The co-training data pipeline is the same as ACT, and we includemore training details in the Appendix A.3. - VINN利用BYOL[Bootstrap your own latenta new approach to self-supervised learning]训练一个视觉表示模型(简单地用移动和静态数据的组合对BYOL编码器进行co-training),并使用该模型从具有最近邻演示数据集中检索动作。且采用本体感知特征增强VINN检索,并调整相对权重以平衡视觉和本体感知特征的重要性
VINN trains a visual representation model, BYOL [37] anduses it to retrieve actions from the demonstrationdataset with nearest neighbors. We augment VINNretrieval with proprioception features and tune therelative weight to balance visual and proprioceptionfeature importance
此外,进行了动作块的检索而非单个动作,并发现类似于Zhao等人的显著性能改进
We also retrieve an action chunkinstead of a single action and find significant per-formance improvement similar to Zhao et al.. For
总之,带分块的VINN、扩散策略和ACT在Mobile ALOHA上都取得了良好的性能,并且受益于与静态ALOHA的协同训练
此外,协同训练在擦拭酒的任务中的表现,成功率95%,大大优于预训练的成功率40%
最终,仅用32000美元的预算,通过静态ALOHA数据Co-training的模仿学习,Mobile ALOHA只需要20-50个演示就能学会各种复杂的任务
斯坦福Mobile ALOHA向所有人展示了机器人在各种应用场景的潜力,甚至机器人开源实现了人人可复刻
第五部分 Google家务机器人
// 待更
参考文献与推荐阅读
- 李飞飞「具身智能」新成果!机器人接入大模型直接听懂人话,0预训练就能完成复杂指令
VoxPoser论文一作在Twitter上发的关于VoxPoser的视频:https://twitter.com/wenlong_huang/status/1677375515811016704 - 谷歌AGI机器人大招!54人天团憋7个月,强泛化强推理,DeepMind和谷歌大脑合并后新成果
- 斯坦福炒虾机器人爆火全网!华人团队成本22万元,能做满汉全席还会洗碗,新智元发的新闻稿
- 斯坦福开源的机器人厨子,今天又接手了所有家务,机器之心发的新闻稿
- 关于Google家务机器人的报道
谷歌DeepMind机器人成果三连发!两大能力全提升,数据收集系统可同时管理20个机器人,量子位
谷歌家务机器人单挑斯坦福炒虾机器人!端茶倒水逗猫,连甩三连弹开打,新智元
大模型正在重构机器人,谷歌Deepmind这样定义具身智能的未来,机器之心 - ..
相关文章:
大模型机器人发展史:从VoxPoser、RT2到斯坦福Mobile ALOHA、Google机器人
前言 23年7月,我在朋友圈评估Google的RT2说道: “大模型正在革新一切领域啊,超帅,通过大模型不仅能理解“人话”,还能对“人话”进行推理,并转变为机器人能理解的指令,从而分阶段完成任务。回…...
Ubunutu18.04 ROS melodic 无人机 XTDrone PX4 Vins-Fuison 运行配置
一、PX4飞控EKF配置 PX4默认使用的EKF配置为融合GPS的水平位置与气压计高度。如果我们想使用视觉定位,就需要把修改配置文件。让EKF融合来自mavros/vision_pose/pose的数据 1.1修改rcS配置文件 gedit ~/PX4_Firmware/ROMFS/px4fmu_common/init.d-posix/rcS 通过注…...
Linux 常见服务配置
笔记所以内容很多,建议选择性看看 SSH Secure Shell 用于与服务器建立安全的连接 对应服务 sshd 注意:配置文件 配制文件修改需要重启或重载sshd服务才能生效 systemctl sshd reload # 重载 sshd 配置文件 systemctl sshd restart # 重启 ssh…...
Flutter基础
一、关键字 class:用于定义一个新的类; extends: 用于指定一个类继承另一个类; mixin: 用于将一个类的代码片段添加到另一个类中,实现代码复用; abstract: 用于声明一个抽象类或抽象方法,不能直接实例化&a…...
MySQL-数据库概述
数据库相关概念: 数据库(DateBase)简称DB,就是一个存储数据的仓库,数据有组织的进行存储。 数据库分为关系型数据库简称RDBMS和非关系型数据库 关系型数据库简称RDBMS:建立在关系模型的基础上,由多张相互连接的二维表组成的数据库.简单来说…...
HTML---JQurey的基本使用
文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据总结 本章目标 (1)能够搭建jQuery开发环境 (2)使用ready( )方法加载页面、掌握jQuery语法 使用addClass( )方法和css( )方法为元素添加CSS样式使用n…...
搜索docker镜像
要查看Docker镜像库,可以使用docker search命令。 docker search <关键词>例如,如果你想要查找名为nginx的镜像,可以执行以下命令: docker search nginx命令执行后,将会列出所有与关键词nginx相关的Docker镜像…...
旋变检测AD2s1205手册学习笔记
旋变故障检测故障表 信号丢失检测 检测原理:任一旋变输入(正弦或余弦)降至指定的LOS正弦/余弦阈值 以下时,器件会检测到信号丢失(LOS)。AD2S1205通过将 监视信号与固定最小值进行比较检测此点 丢失的效果表现:LOS由DOS和LOT引脚均闩锁为逻辑…...
【温故而知新】JavaScript的防抖与节流
一、概念 JavaScript中的防抖(debounce)和节流(throttle)是用于控制函数执行频率的技术。 防抖:当一个事件连续触发时,防抖技术将只执行最后一次触发事件的函数调用。换句话说,只有在停止触发…...
C++模板——(3)类模板
归纳编程学习的感悟, 记录奋斗路上的点滴, 希望能帮到一样刻苦的你! 如有不足欢迎指正! 共同学习交流! 🌎欢迎各位→点赞 👍 收藏⭐ 留言📝 勤奋,机会,乐观…...
深度学习中Epoch和Batch Size的关系
在深度学习中,Epoch(周期)和 Batch Size(批大小)是训练神经网络时经常使用的两个重要的超参数。它们之间的关系是通过以下方式连接的: Epoch(周期): Epoch 表示整个训练…...
Python采集微博评论做词云图
嗨喽~大家好呀,这里是魔王呐 ❤ ~! python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取 环境使用: Python 3.10 Pycharm 第三方模块使用: import requests >>> pip install requests import wordcloud >>> pip install wordclou…...
一文详解VScode 的远程开发
VS code登录服务器后进行编码和调试,VS code上的所有功能都可以使用,和在本地开发基本无区别。 一、配置免密远程登录 因为是要远程登录,那么需要通过使用ssh进行密钥对登录,这样每次登录服务器就可以不用输入密码了。 先来一句官…...
捕捉“五彩斑斓的黑”:锗基短波红外相机的多种成像应用
红外处于人眼可观察范围以外,为我们了解未知领域提供了新的途径。红外又可以根据波段范围,分为短波红外、中波红外与长波红外。较短的SWIR波长——大约900nm-1700nm——与可见光范围内的光子表现相似。虽然在SWIR中目标的光谱含量不同,但所产…...
解读 Sobit v2:铭文资产跨链更注重安全、易用性
铭文市场的发展正在从早期的“无序”进入到“有序”阶段,我们看到从 12 月份以来,比特币生态内的多个应用纷纷宣布获得融资。这表明,目前仍旧有大量的资金有意向铭文领域,同样铭文赛道新一轮浪潮或许正在酝酿。 另一方面ÿ…...
[开源]万界星空开源MES系统,支持低代码大屏设计
一、开源系统概述: 万界星空科技免费MES、开源MES、商业开源MES、商业开源低代码MES、市面上最好的开源MES、MES源代码、免费MES、免费智能制造系统、免费排产系统、免费排班系统、免费质检系统、免费生产计划系统、精美的数据大屏。 二、开源协议: 使…...
开源软件运维安全防护的六个手段
开源,顾名思义,即开放软件源代码。代码贡献者可将自己编写的程序提交到开源社区的公开平台上,其他代码开发者如有类似的功能需求可以不必再自己动脑动手编写代码,而是直接集成、修改或应用贡献者公开的代码。 开源软件是通过特定…...
开启Android学习之旅-5-Activity全屏
Android 两种方式设置全屏: 1. 第一行代码中的方法 通过 getWindow().getDecorView()方法拿到当前Activity的DecorView,再调用 setSystemUiVisibility() 方法来改变系统UI的显示,这里传入了 View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN 和 View.SYSTEM_UI_…...
运行时类型信息 typeid、type_info...(C++)
4.5 运行时类型信息4.5.1 typeid和type_info4.5.2 dynamic_cast 4.5 运行时类型信息 运行时类型信息(Run-time Type Information,RTTI)提供了在程序运行时刻确定对象类型的方法,是面向对象程序语言为解决多态问题而引入的一种语言特性。由于…...
2023-12-02 青少年软件编程(C语言)等级考试试卷(七级)解析
2023-12-02 青少年软件编程(C语言)等级考试试卷(七级)解析 一、编程题(共4题,共100分)T1. 迷宫 一天Extense在森林里探险的时候不小心走入了一个迷宫,迷宫可以看成是由n * n的格点组成,每个格点只有2种状态,.和#,前者表示可以通行后者表示不能通行。同时当Extense…...
计算机网络-以太网交换基础
一、网络设备的演变 最初的网络在两台设备间使用传输介质如网线等进行连接就可以进行通信。但是随着数据的传输需求,多个设备需要进行数据通信时就需要另外的设备进行网络互联,并且随着网络传输的需求不断更新升级。从一开始的两台设备互联到企业部门内部…...
C++系列十六:枚举
枚举 一、C枚举基础 在C中,枚举(Enumeration)是一种用户定义的数据类型,它包含一组整数值,每个值都与一个标识符关联。通过使用枚举,我们可以使代码更加清晰易懂,避免使用魔术数字或字符串。 …...
flask web学习之flask与http(四)
文章目录 一、重定向进阶功能1.1 重定向回上一个页面1.2 对URL进行安全验证 二、使用Ajax技术发送异步请求2.1 什么是Ajax2.2使用jQuery发送Ajax请求 三、服务器推送四、web安全规范1. 注入攻击2. XSS攻击3. CSRF攻击 一、重定向进阶功能 1.1 重定向回上一个页面 有时候&#…...
电子签章Java后端与前端交互签名位置计算
电子签章过程中存在着在网页上对签署文件进行预览、指定签署位置、文件签署等操作,由于图片在浏览器上的兼容性和友好性优于PDF文件,所以一般在网页上进行电子签章时,会先将PDF文件转换成图片,展示给用户。用户在页面上确定好签署…...
为什么选择嬴图?
图数据库、图计算、图中台都是用图论的方式去构造实体间的关联关系,实体用顶点来表达,而实体间的关系用边来表达。图数据库的这种简洁、自由、高维但100%还原世界的数据建模的方式让实体间的关联关系的计算比SQL类的数据库高效成千上万倍。 图࿱…...
Python学习之路-编码风格
Python学习之路-编码风格 设计哲学 Python的设计哲学是“优雅”、“明确”、“简单”。它的重要准则被称为“Python之禅”。Python之禅又名PEP 20,在Python解释器内运行import this可以获得完整的列表,下面是我的翻译与解读: 提姆彼得斯&a…...
权威认可!甄知科技猪齿鱼产品荣获信创产品评估证书
近日,依据《信息技术应用创新产品评估规范 第1部分:应用软件》(T/SSIA 2001-2022),经过严格评估,甄知科技旗下自主研发的猪齿鱼数智化开发管理平台 V2.0.0,通过信创测试认证,获得上海…...
9. 回文数(Java)
题目描述: 给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。 回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 例如,121 …...
Python(30):非对称加密算法RSA的使用(openssl生成RSA公私钥对)
Python(30):非对称加密算法RSA的使用(openssl生成RSA公私钥对) 1、openssl生成RSA公私钥对 1.1、生成RSA公私钥对命令 [rootloaclhost ~]# openssl OpenSSL> genrsa -out rsa_private_key.pem 1024 Generating RSA private key, 1024 bit long modulus .. ...…...
Java学习笔记-day04-NIO核心依赖多路复用小记
NIO允许一个线程同时处理多个连接,而不会因为一个连接的阻塞而导致其他连接被阻塞。核心是依赖操作系统的多路复用机制。 操作系统的多路复用机制 多路复用是一种操作系统的 I/O 处理机制,允许单个进程(或线程)同时监视多个输入…...
做论坛网站的应用/外贸网站制作公司哪家好
ZLMediakit之base64 在国内的开源媒体框架中,ZLMediakit做的是非常 非常 非常不错的了。(作者也是一个非常值得尊敬的高手)是非常值得学习的,这里对ZML的代码做一个深度解析(自己认为的!!&…...
长沙企业建站在线咨询/郴州网站定制
诺基亚808 PureView 凭借其4100万像素摄像头获得了2012影像界TIPA大奖,其超高的像素几乎秒杀市面上所有单反,不过官方宣称808 PureView在印度和俄罗斯首发,国内还不知道要等到什么时候。808 PureView的照片大家是看多了,但是对于其…...
wordpress增加内链/网页设计首页制作
EditText继承关系:View-->TextView-->EditTextEditText的属性很多,这里介绍几个:android:hint"请输入数字!"//设置显示在控件上的提示信息android:numeric"integer"//设置只能输入整数,如果…...
企业网站打不开的原因/整合网络营销是什么
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼我:Baksmaling…我:加载资源表……我:加载。我:解码AndroidManifest。xml资源……从文件加载资源表:? / apktool /框架/ 1. apk我:加载。W:不能解码attr值,使用undecoded值:ns android,名称主题,值 0 x080d0018W:不能解码attr值,…...
广元市城乡规划建设监察大队网站/新媒体销售好做吗
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!实验软件环境:虚拟机Vmware Work…...
网站备案字号/十大经典口碑营销案例
OpenCascade Matrix eryar163.com 摘要Abstract:本文对矩阵作简要介绍,并结合代码说明OpenCascade矩阵计算类的使用方法。 关键字Key Words:OpenCascade、Matrix、C 一、引言Introduction 矩阵的研究历史悠久,拉丁方阵和幻方在史…...