- 博客(42)
- 收藏
- 关注
原创 机器人基础知识-2
,以创建运动轨迹。在手动模式(JOG)下,可以使用示教器控制机器人运动。,通常会自动连接到控制柜,如未连接需手动选择 IP。下,逐步执行程序,检查每个动作是否符合预期。处于释放状态(按下急停则机器人无法运动)。:确保示教器按键、屏幕、急停开关等正常工作。启动机器人 → 连接示教器 → 切换手动模式。到机器人控制器或外部 U 盘,以防丢失。:运行已示教的程序,适用于正式执行任务。:沿 X、Y、Z 方向平移或围绕轴旋转。:用于示教、调试和手动控制机器人。,确认示教器与机器人正常通信。
2025-04-01 10:29:48
417
原创 机器人基础知识-1
第一轴:第一轴是链接底盘的位置,也是承重和核心位置,它承载着整个机器人的重量和机器人左右水平的大幅度摆动。第二轴:控制机器人前后摆动、伸缩的重要一轴。第三轴:三轴也是控制机器人前后摆动的一轴,不过摆动幅度比第二轴要小很多,不过这也是六轴机器人臂展长的根据。第四轴:四轴是控制上臂部分180°自由旋转的一轴,相当于人的小臂。第五轴:第五轴很重要,当你差不多调好位置后,你得精准定位到产品上,就要用到第五轴,相当于人手腕部分。
2025-04-01 10:24:24
839
原创 软件测试的定义、目的、原则、对象、测试与调试的区别
1.软件测试定义1.软件测试定义软件测试是指有特定的目的、有方法的,并且需要提交缺陷-跟踪解决的一个过程。其在于检验软件是否满足或弄清预期结果与实际结果之间的差别。即为了发现程序中的错误而使用热工或自动化手段执行程序或测试某个系统的过程。
2024-10-12 19:08:51
315
原创 11.MySQL数据库连接讲解~超重点~精讲~小白也能看懂
内连接实际上就是利用where子句对两种表形成的笛卡儿积进行筛选,我们前面学习的查询都是内连接,也是在开发过程中使用的最多的连接查询。
2024-08-20 14:50:21
472
原创 《数据结构》顺序表+算法代码+动画演示-C语言版
顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。顺序表一般可以分为:1.。2.
2024-08-20 14:11:50
595
原创 10.MySQL数据库之复合查询,精讲,超细节,超重点,必看
我们在前面讲解的mysql的查询都是对一张表进行查询,表在实际开发中这远远不够。下面给出三张表,分别是员工表(emp)、部门表(dept)和工资等级表(salgrade)。后续所要进行的查询操作都将以这三张表作为数据源,包括基本查询和复合查询。
2024-08-19 15:11:26
1044
原创 9.内置函数
如果想要生成0到100的随机数,可以用生成的随机浮点数乘以100,然后再以某种取整方式进行取整。如果是单字节字符则算作一个字节。比如:字母,数字算作一个字节,中文表示多个字节数。interval后的数值单位可以是:year minute second day。interval后的数值单位可以是:year minute second day。(与字符集编码有关),此处中文占3个字节。在date中添加日期或时间。在date中减去日期或时间。将字符串全部转换成大写。将字符串全部转换成小写。创建一张表,记录生日。
2024-08-17 15:29:37
765
原创 8.MySQL知识巩固-牛客网练习题
查找入职员工时间排名倒数第三的员工所有信息_牛客题霸_牛客网 (nowcoder.com)注意:可能会存在同一个日期入职的员工,所以入职员工时间排名倒数第三的员工可能不止一个。找出所有员工当前薪水salary情况_牛客题霸_牛客网 (nowcoder.com)批量插入数据_牛客题霸_牛客网 (nowcoder.com)既然不止一个人那我们就选择distinct关键字进行去重。对于表actor批量插入如下数据。从 0 开始,筛选 n 条结果。如果忘记了可以参考我这一篇文章。我们可以使用子查询进行操作。
2024-08-17 10:15:49
1285
原创 7.MySQL聚合函数详解+例题精讲之看必会
group by是一个分组函数,你要筛查的数据列,都应该考虑一个情况,就是分组的时候,如果当前分组条件相同,接下来的分组依据是什么!凡是在select中出现原表中的列名称,也必须在grop中出现!~统计各个部门的平均工资。如何显示每个部门的平均工资和最高工资。子句可以对指定列进行分组查询。准备工作,创建一个雇员信息表。NULL 不会计入结果。的总分,没有结果,返回。NULL 不会计入结果。的部门和它的平均工资。统计的是去重成绩数量。
2024-08-16 23:11:30
999
原创 6.MySQL的增删改查
如果在查询数据时指定了where子句,那么在查询数据时会先根据where子句筛选出符合条件的记录,然后将符合条件的记录作为数据源来依次执行select语句。使用insert语句也可以一次向表中插入多条记录,插入的多条记录之间使用逗号隔开,并且插入记录时可以只指定某些列进行插入。在插入记录时,只有允许为空的列或自增长字段可以不指定值插入,不允许为空的列必须指定值插入,否则会报错。向表中插入记录时,如果待插入记录中的主键或唯一键已经存在,那么就会因为主键冲突或唯一键冲突导致插入失败。
2024-08-15 20:29:50
997
原创 map/set和unordered_map/unordered_set的区别及使用情况
O(1)O(logN)unordered_set无序的(VS下)unordered_map(VS下)map(VS下)(有序的C P X X)
2024-08-14 10:47:37
436
1
原创 C++继承--详讲
继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。以前我们接触的复用都是函数复用,继承是类设计层次的复用。下面我们看到Person是父类,也称作基类。Student是子类,也称作派生类。很多人说C++语法复杂,其实多继承就是一个体现。有了多继承,就存在菱形继承,有了菱 形继承就有菱形虚拟继承,底层实现就很复杂。
2024-08-12 20:23:02
1085
原创 9.list 详细讲解(近万字说明,零基础也能看懂)
list是一种可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立结点当中,在结点中通过指针指向其前一个元素和后一个元素。list与forward_list非常相似,最主要的不同在于forward_list是单链表,只能进行单方向迭代。与其他容器相比,list通常在任意位置进行插入、删除元素的执行效率更高。list和forward_list最大的缺陷是不支持在任意位置的随机访问。
2024-08-12 19:04:33
820
原创 8.1vector模拟实现
vector模拟实现迭代器定义private: iterator _start = nullptr; iterator _finish = nullptr; iterator _endofstorage = nullptr;typedef T* iterator;typedef const T* const_iterator;begin、enditerator begin(){ return _start;}iterator end(){ return _fi
2024-08-11 21:14:20
242
原创 8.vector
1. vector是表示可变大小数组的序列容器。2. 就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效。但是又不像数组,它的大小是可以动态改变的,而且它的大小会被容器自动处理。3. 本质讲,vector使用动态分配数组来存储它的元素。当新元素插入时候,这个数组需要被重新分配大小为了增加存储空间。其做法是,分配一个新的数组,然后将全部元素移到这个数组。
2024-08-11 19:23:28
845
原创 Qt信号和槽
在 Qt 中,用户和控件的每次交互过程称为⼀个事件。⽐如 "用户点击按钮" 是⼀个事件,"用户关闭窗⼝" 也是⼀个事件。每个事件都会发出⼀个信号,例如用户点击按钮会发出 "按钮被点击" 的信号,用户关闭窗⼝会发出 "窗⼝被关闭" 的信号。Qt 中的所有控件都具有接收信号的能力,⼀个控件还可以接收多个不同的信号。对于接收到的每个信号,控件都会做出相应的响应动作。例如,按钮所在的窗口接收到 "按钮被点击" 的信号后,会做出"关闭自己" 的响应动作;
2024-08-09 15:58:31
970
转载 Linux进程概念
目录基本概念描述进程-PCB查看进程通过系统调用获取进程的PID和PPID通过系统调用创建进程-fork初始fork函数创建子进程使用if进行分流Linux进程状态运行状态-R浅睡眠状态-S深度睡眠状态 -D暂停状态-T僵尸状态 -Z死亡状态-X僵尸进程孤儿进程进程优先级基本概念查看系统进程PRI and NI查看进程优先级的信息通过top命令修改进程的nice值 通过renice命令修改nice值四个重要概念课本概念:程序的一个执行实例,正在执行的程序等内核观点:担当分配系统资源(CPU时间,内存)的实体
2024-08-08 22:03:05
1145
原创 简单Qt贪吃蛇项目
贪吃蛇游戏是⼀款休闲益智类游戏。它通过控制蛇头⽅向吃⻝物,从⽽使得蛇变得越来越⻓。在本游戏中设置了上下左右四个⽅向键来控制蛇的移动⽅向。⻝物的产⽣是随机⽣成的,当蛇每吃⼀次⻝物就会增加⼀节⾝体,同时游戏积分也会相应的加⼀。在本游戏的设计中,蛇的⾝体会越吃越⻓,⾝体越⻓对应的难度就越⼤,因为⼀旦蛇头和⾝体相交游戏就会结束。界面一:游戏大厅界面当用户点击 “开始游戏” 按钮之后,就会进⼊到关卡选择界面。界面二:关卡选择界面在关卡选择界⾯上设置了三个游戏模式按钮,分别是:简单模式、正常模式、困难模式;
2024-08-08 20:57:53
1285
2
原创 5. 表的约束
真正约束字段的是数据类型,如果插入的数据超出了对应数据类型的取值范围,那么数据将会插入失败。但是数据类型的约束很单一,为了更好的保证数据的合法性,从业务逻辑角度保证数据的正确性,MySQL中出现了表的约束,目的就是为了尽可能保证数据安全,减少用户的误操作可能性。表的约束有很多,本篇博客主要介绍如下几个:null/not null、default、comment、zerofill、primary key、auto_increment、unique key、foreign key。空属性。
2024-08-08 10:58:27
585
原创 4.MySQL数据类型
说明一下:MySQL本身是不支持bool类型的,当把一个数据设置成bool类型时,数据库会自动将其转换成tinyint(1)的数据类型,其实这个就是变相的bool类型,因为tinyint(1)只有1和0两种取值,可以分别对应bool类型的true和false。无符号float类型的取值范围,实际就是把对应有符号float类型中的负数部分拿走了,因此float(4,2)的取值范围为0~99.99,实际可插入的范围是0~99.994。发生了一个很奇怪的现象,a的数据10没有出现?
2024-08-06 10:44:26
1067
原创 3.表的操作
可以看到我当前的MySQL默认使用的是InnoDB引擎,如果我建表时没有指定使用哪种存储引擎,那么就会默认使用InnoDB存储引擎。采用MyISAM存储引擎建表,会产生对应的xxx.frm(表结构)、xxx.MYD(表数据)和xxx.MYI(表索引)文件。采用InnoDB存储引擎建表,会产生对应的xxx.frm(表结构)和xxx.ibd(表数据+表索引)文件。COLLATE用于指定表所采用的校验规则,如果没有指定则以所在数据库的校验规则为准。采用不同的存储引擎,创建表时所产生的文件不一样。
2024-08-05 20:40:47
256
原创 2.MySQL库的操作
创建数据库的代码:说明:大写的表示关键字[] 是可选项CHARACTER SET: 指定数据库采用的字符集COLLATE: 指定数据库字符集的校验规则注意:如果创建数据库未指明数据库的编码格式或效验规则,则默认使用MySQL配置文件中对应的编码格式或效验规则。创建数据库案例create database db1;说明:当我们创建数据库没有指定字符集和校验规则时,系统使用默认字符集:utf8,校验规则是:utf8_ general_ ci我们可以通过charset指明数据库的编码格式,如下:注意
2024-08-03 21:06:08
1216
原创 1.数据库基础
存储数据用文件就可以了,为什么还要弄个数据库?文件保存数据有以下几个缺点:文件的安全性问题文件不利于数据查询和管理文件不利于存储海量数据文件在程序中控制不方便数据库存储介质:磁盘内存为了解决上述问题,专家们设计出更加利于管理数据的东西——数据库,它能更有效的管理数据。。客户端 VS 服务器这里我们使用的mysql命令就是MySQL的客户端,而MySQL服务器可以通过ps命令进行查看。
2024-08-02 20:56:23
568
原创 Data truncated for column ‘gender‘ at row 1
这种问题会出现在批量操作时,因为错误数据出现,导致sql执行截断,提示错误为truncated,而不是提示to long或Incorrect date value: ‘XX‘ for column ‘xx‘ at row 1 Query,这样就不太容易准确发现问题。首先看到的是否该字段为非空对象,经过认真比对后没发现问题,继续排查,发现更新的内容是通过sql批量更新,而非程序输入,那么这个时候就应该能猜到可能是字段超过长度,再次查看更新的字段内容,发现数值大于字段限定长度。原因:c、字段类型不匹配。
2024-06-18 15:02:09
426
1
原创 7.string
string();copy (2)复制从字符位置pos开始并跨越len个字符的str部分(或者直到str的结尾,如果str太短或len为string::npos复制由指针s指向的以空字符结尾的字符序列(C字符串)从指向s的字符数组中复制前n个字符fill (6)range (7)(先不看)string s0;s0 = s6;cout
2024-05-04 15:46:45
2795
原创 error: ‘for‘ loop initial declarations are only allowed in C99 mode
错误,这是因为在gcc中直接在for循环中初始化了增量。使用gcc编译代码是报出。
2024-04-22 19:26:26
639
原创 Linux编辑器-vim使用
vi/vim的区别简单点来说,它们都是多模式编辑器,不同的是vim是vi的升级版本,它不仅兼容vi的所有指令,而且 还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于xwindow。
2024-04-21 21:19:28
1293
1
原创 Linux配置腾讯云yum源(保姆级教学)
这里以 CentOS 7 为例,如果是其他版本的系统,可以将上述命令中的 `centos7` 替换为相应的版本号。
2024-04-21 13:19:20
2727
原创 Linux 软件包管理(yum)
在Linux下安装软件一个通常的办法是下载到程序的源代码并进行编译得到可执行程序但是这样太麻烦了于是有些人把一些常用的软件提前编译好做成软件包可以理解成windows上的安 装程序)放在一个服务器上通过包管理器可以很方便的获取到这个编译好的软件包直接进行安装软件包和软件包管理器,就好比"App"和应用商店这样的关系yum(Yellow dog Updater, Modified)是Linux下非常常用的一种包管理器主要应用在Centos等发行版上。
2024-04-21 13:08:34
871
原创 Linux权限
超级用户:可以再linux系统下做任何事情,不受限制普通用户:在linux下做有限的事情。超级用户的命令提示符是“#”,普通用户的命令提示符是“$”命令:su[用户名]功能:切换用户例如,要从root用户切换到普通用户user,则使用su user。要从普通用户user切换到root用户则使用su root(root可以省略),此时系统会提示输入root用户的口令。总结:普通用户到root用户需要输入密码,root用户到普通用户不需要输入密码直接进入。
2024-04-19 20:35:16
2169
1
原创 1.C++入门
定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然后接一对{}即可,{}中即为命名空间的成员。1. 正常的命名空间定义// 命名空间中可以定义变量/函数/类型int val;//// 1. 正常的命名空间定义//{// // 命名空间中可以定义变量/函数/类型// {// }// {// };//}//{//}//2. 命名空间可以嵌套int a;int b;int c;
2024-04-15 14:02:23
1090
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人