- 博客(24)
- 资源 (1)
- 收藏
- 关注
原创 记录vscode连接不上wsl子系统下ubuntu18.04问题解决方法
记录vscode连接不上wsl子系统下ubuntu18.04问题解决方法,解决缺少glibc-2.28问题报错
2025-04-09 11:02:36
499
原创 C++学习笔记——多态与虚函数
虚函数作用:通过基类指针只能访问派生类的成员变量,但是不能访问派生类的成员函数。为了让基类指针能够访问派生类的成员函数,C++ 增加了虚函数(Virtual Function)。使用虚函数非常简单,只需要在函数声明前面增加 virtual 关键字。虚函数的使用要点:只需要在虚函数的声明处加上 virtual 关键字,函数定义处可以加也可以不加。为了方便,你可以只将基类中的函数声明为虚函数...
2020-11-24 16:21:20
450
原创 C++学习笔记——继承与派生
继承与派生定义C++ 中的继承是类与类之间的关系:继承(Inheritance)可以理解为一个类从另一个类获取成员变量和成员函数的过程。派生(Derive)和继承是一个概念,只是站的角度不同,可以理解为被另一个类获取成员变量和成员函数;派生类除了拥有基类的成员,还可以定义自己的新成员,以增强类的功能。例如: Quaternion类继承了QuadWord类,当创建一个Quaternion类型的对...
2019-10-15 15:20:26
420
原创 C++学习笔记——类和对象
类和对象类是创建对象的模板,一个类可以创建多个对象,每个对象都是类类型的一个变量;创建对象的过程也叫类的实例化。每个对象都是类的一个具体实例(Instance),拥有类的成员变量和成员函数。与结构体一样,类只是一种复杂数据类型的声明,不占用内存空间。而对象是类这种数据类型的一个变量,或者说是通过类这种数据类型创建出来的一份实实在在的数据,所以占用内存空间;所以在定义类时不能对成员变量进行初始化...
2019-09-20 19:27:25
388
原创 VS Code 配置、编译、运行C/C++程序基本操作
1.下载安装VS codehttps://code.visualstudio.com/Download2.安装C/C++编译环境(MinGW-w64)https://sourceforge.net/projects/mingw-w64/点击下载,并安装。注意:MinGW和MinGW-w64是两个不同的项目,我们安装的是后者!注意与红色框内选择一致即可,点击Next继续安装。点击...
2019-01-18 22:33:36
6114
1
原创 C语言学习笔记——指针、数组作为函数参数传递的方式
指针作为函数参数传递一维数组C 语言中声明了一个数组TYPE array[n],则数组名称array 就有了两重含义:第一,它代表整个数组,它的类型是TYPE[n];第二,它是一个常量指针,该指针的类型是TYPE*,该指针指向的类型是TYPE。因此,指针作为函数参数传递一维数组有4种形式:#include <stdio.h>#define N 3float average...
2019-01-03 20:08:58
13030
1
原创 MATLAB机器人工具箱6轴机械臂DH建模仿真
1、SDH建模仿真:L1 = Link('d', 0, 'a', 0, 'alpha', pi/2);L2 = Link('d', 0, 'a', 0.5, 'alpha', 0,'offset',pi/2);L3 = Link('d', 0, 'a', 0, 'alpha', pi/2,'offset',pi/4);L4 = Link('d', 1, 'a', 0, 'alpha', -...
2018-12-25 22:09:06
26003
8
原创 标准DH建模与改进DH建模
standard_DH 根据DH表示法确定一个一般步骤为每个关节指定参考坐标系,然后确定如何实现任意两个相邻坐标系之间的变换,最后写出机器人的总变换矩阵。如图所示表示了三个顺序关节和两个连杆,每个关节都是可以转动和平移的。第一个关节指定为关节i-1,第二个关节指定为关节i,第三个关节指定为关节i+1。在这些关节前后可能还有其他关节,连杆也是如此表示,连杆i位于关节i与关节i+1之间。(1)...
2018-12-23 19:17:47
32638
13
原创 姿态的三种描述方式——欧拉角、轴角、四元数
欧拉角 旋转矩阵对于坐标系的描述是冗余的。旋转矩阵用了9个元素来描述姿态,而事实上,由正交性条件带来6个约束,这9个元素之间不是独立的,而是相关的。这就意味着,只要三个参数就能描述一个刚体在空间中的姿态。(1)X-Y-Z固定角坐标系 先将{B}绕{A}的X轴旋转γ\gammaγ,然后绕{A}的Y轴旋转β\betaβ,最后绕{A}的Z轴旋转α\alphaα,每个旋转都是绕着固定参考坐标系{...
2018-12-20 22:25:06
21644
1
原创 机器人坐标系——工具坐标、用户坐标系标定
坐标系变换方程 如果有n个未知变换和n个变换方程,这个变换可由变换方程解出。例如:图1中变换TBT{^B_T}TTBT描述了操作臂指向的坐标系{T},它是相对于操作臂基座的坐标系{B}的,又已知工作台相对于操作臂基座的空间位置SBT{^B_S}TSBT,并且已知工作台上螺栓的坐标系相对于工作台坐标系的位置,即GST{^S_G}TGST,计算螺栓相对于操作手的位置,GTT{^T_G}TG...
2018-12-20 18:24:52
29740
原创 位置、姿态与坐标系
位置描述:一旦建立了坐标系,就可以用一个3×1的位置矢量对世界坐标系中的任何点进行定位。因为在世界坐标系中还有其他坐标系,因此必须在位置矢量上附加信息,表明是在哪个坐标被定义的。位置矢量用一个前置的上标来表明其参考坐标系。例如:AP。表明AP的数值是在坐标系{A}中的表示。矢量中的各个元素用下标x,y,z来表明:...
2018-12-19 20:40:47
5778
原创 C语言学习笔记——链表
链表是一种常见的重要的数据结构。它是动态地进行存储分配的一种结构。它可以根据需要开辟内存单元。链表有一个“头指针”变量,以head表示,它存放一个地址。该地址指向一个元素。链表中每一个元素称为“结点”,每个结点都应包括两个部分:一为用户需要用的实际数据,二为下一个结点的地址。因此,head指向第一个元素:第一个元素又指向第二个元素;……,直到最...
2018-12-13 20:42:11
320
原创 C语言学习笔记——字符串
一、字符串1、字符串常量:字符串:是一个或多个字符的序列;一个字符在内存中只占一字节,而字符串本质上是多个字符组成的字符数组。C语言规定,在每一个字符串常量的结尾,系统都会自动加一个字符’\0’作为该字符串的“结束标志符”,系统据此判断字符串是否结束。在 C 语言中,字符串不属于数据类型;字符串有两种存储方式,一种是通过字符数组存储,另一种是通过字符指针存储。如:"How are you"中,...
2018-12-11 21:57:27
642
原创 C语言学习笔记——static用法
在C语言中static的作用如下:1、修饰局部变量:1)位置:静态局部变量被编译器放在全局存储区静态存储区,所以它虽然是局部的,但是在程序的整个生命周期中存在。2)访问权限:静态局部变量只能被其作用域内的变量或函数访问。也就是说虽然它会在程序的整个生命周期中存在,由于它是static的,它不能被其他的函数和源文件访问。3)值:static局部变量初次定义时就要初始化,且只能初始化一次。如果...
2018-12-08 14:16:02
588
原创 C语言学习笔记——typede用法
typedef 关键字:自定义数据类型名称,来替代系统默认的基本类型名称、数组类型名称、指针类型名称与用户自定义的结构型名称、共用型名称、枚举型名称等。(1)为基本数据类型定义新的类型名也就是说,系统默认的所有基本类型都可以利用 typedef 关键字来重新定义类型名,示例代码如下所示:typedef unsigned int COUNT;而且,我们还可以使用这种方法来定义与平台无关的类型...
2018-12-08 11:54:14
1817
原创 C语言学习笔记——结构体
一、结构体1、结构体定义:结构体是将不同类型的数据按照一定的功能需求进行整体封装,封装的数据类型与大小均可以由用户指定。2、结构体声明:声明一个结构体类型的一般形式为:struct 结构体名{ 成员列表};例如:struct BOOK { char title[20]; char author[20]; float value;}...
2018-12-08 11:53:56
796
原创 算法基本原理
一、时间复杂度:(1)常数时间的操作: 一个操作如果和数据量没有关系, 每次都是固定时间内完成的操作, 叫做常数操作。(2)时间复杂度为一个算法流程中, 常数操作数量的指标。 常用O(读作big O) 来表示。 具体来说, 在常数操作数量的表达式中,只要高阶项, 不要低阶项, 也不要高阶项的系数, 剩下的部分如果记为f(N), 那么时间复杂度为O(f(N))。(3)评价一个算法流程的好坏, ...
2018-12-06 21:15:16
5198
原创 C语言学习笔记——指针:动态内存分配
C程序的内存映像C程序的变量内存分配有三种:(1)从静态存储区分配:程序的全局变量和静态变量都在静态存储区上分配,且在程序编译时就已经分配好了,在程序运行期间都是存在的。只有在程序终止前,才被操作系统收回。(2)在栈上分配:在执行函数调用时,函数内的局部变量及形参都是在栈上分配的,该函数执行结束时,这些内存被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是容量有限。(3)从堆上分...
2018-11-27 22:50:02
1419
原创 C语言学习笔记——指针:const指针
当定义一个指针变量时,它的本身的值以及该指针变量所指向的数据都可以被声明为const。const在变量语句中所处的位置不同表示的含义也不同。下面分别讨论。(1)const放在类型关键字前面例如:int a,b;const int *p=&a;说明,*p是一个常量,即只读的,而p不是,我们从右至左来理解这条语句,即p是一个指针变量,可以指向一个整型常量。这时不可以修改*p。但是p...
2018-11-26 20:44:41
534
原创 C语言学习笔记——指针:指针函数与函数指针
指针函数:本质是一个函数,函数返回类型是某一类型的指针。声明格式: 类型标识符 *函数名(参数表)例如:int *fun(int x,int y);这和普通的函数声明唯一的区别就是在函数名前面多了一个*号,而这个函数就是一个指针函数。其返回值是一个 int 类型的指针,是一个地址。函数指针:如果在程序中定义了一个函数,那么在编译时系统就会为这个函数代码分配一段存储空间,这段存储...
2018-11-26 19:59:32
418
原创 C语言学习笔记——指针:指针数组与数组指针
指针数组:是一个数组,数组元素为指针数组指针:是一个指针,指向数组的指针例如:int *p1[5];int (*p2)[5];对于语句int*p1[5],因为“[]”的优先级要比*要高,所以 p1 先与“[]”结合,构成一个数组的定义,数组名为 p1,而“int*”修饰的是数组的内容,即数组的每个元素。也就是说,该数组包含 5 个指向 int 类型数据的指针,如图 1 所示,因此,它是...
2018-11-24 19:36:24
7807
4
原创 C语言学习笔记——指针:指针与二维数组
在C语言中可将一个二维数组看成是由若干一维数组构成的。如:int a[3][4];首先,可将二维数组a看成是由a[0],a[1],a[2]三个元素组成的一维数组,a是该一维数组的数组名,代表该一维数组的首地址,即第一个元素a[0]的地址(&a[0])。所以*(a+i)即为a[i],注意这里所谓的元素a[0],a[1],a[2]事实上仍然是个地址。其次,可以将a[0],a[1],a...
2018-11-24 16:58:07
1412
3
原创 C语言学习笔记——指针:指针与一维数组
数组名代表数组的首地址,例如:int a[10];int *p=NULL;p=a;       其中,数组名a代表数组的首地址(即&a[0]),那么表达式a+i代表数组中下标为i元素a[i]的地址,即&a[i]。       还可以
2018-11-23 21:11:20
2321
原创 C语言学习笔记——指针:多级指针
C语言学习笔记——指针:多级指针指针的指针: 如果一个指针变量存放的是另一个指针变量的地址,则称这个指针变量为指向指针的指针变量。假如定义了一个二级指针:int **q;       对于上述例子的二级指针,我们可以把int **q拆分成两部分看:,即int*和 (*q),后面 (*q)中的 * 表示 q 是一个指针变量,前面的int*表示指针变量...
2018-11-22 21:55:16
344
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人