摘要:
递归,是我们编程时会用到的解决方法,他能让我们的程序变得简洁,并且能够实现我们想要的效果,相对比迭代来说,递归会更加的直接,而我们所说的迭代就是我们说的循环,他能实现我们用递归做的事情,递归,通俗的来说就是自己调用自己,一直调用自己的方法,去实现我们想要的效果,下面用程序说明一下 程序如下: 1 # 阅读全文
摘要:
字符串输入 字符串输入时,一般我们可以 cin >> 字符数组; 以空白字符作为输入结束标记。 例如:cin >> str; 输入hello ,终端会显示hello 当你输入hello world,终端也只显示hello,因为遇到空白字符时结束了输入。 如果我们要输入一行字符串,并且带有空白字符时, 阅读全文
摘要:
前面我们安装好了机械臂,接下来我们需要校准工作台坐标,这个步骤非常重要。 图像坐标系到工作台坐标系 AprilTag坐标系 每个AprilTag都有自己的一套坐标系。 遵守右手法则, x轴指向正前方, 向右旋转90度就是y轴, z轴垂直于平面朝上。 AprilTag在平面中, 位姿只有一个旋转角度。 阅读全文
摘要:
最近做了一个基于视觉的五轴机械臂分拣的项目,功能基本完成,现在抽点时间出来做一个总结,算是自己做机械臂的一个记录,在做这个项目之前,你需要先学习一下机械臂的基础知识(运动学),以及摄像头方面的知识和坐标之间的一个变换的使用。 首先说一下我项目用到的材料:openmv摄像头,SD卡,五轴机械臂,舵机驱 阅读全文
摘要:
前面我们讲了顺序查找,但是我们能够真切的感受到查找速度比较慢,然后接下来我们来看一看折半查找,对于折半查找,他要求数据是排好序的,这样折半查找的速率就非常快,而顺序查找的话,数据可以是无序的,所以在进行折半查找之前,需要对数据进行排序,这样就能大大加快我们查找的速度,前面我们讲的排序就可以用上了,对 阅读全文
摘要:
顺序查找,通过扫描数据并与想要查找的数据进行查找,顺序查找是从第一个数依次进行查找的,查找的速率比较慢,但是原理比较简单。 直接用程序理解一下,如下例 1 #include<iostream> 2 3 using namespace std; 4 5 int Search(int *a, const 阅读全文
摘要:
出现错误如下: ERROR: cannot launch node of type [ar_track_alvar/individualMarkersNoKinect]: Cannot locate node of type [individualMarkersNoKinect] in packag 阅读全文
摘要:
我是以三自由度的机械臂来进行求解的,其他自由度的机械臂求解基本相似。解释一下正运动学原理 首先分析一下3自由度机械臂的DH模型 机械臂的基坐标系是Joint0 Joint1,Joint2,Joint3都是旋转关节,Joint4是腕关节。 我们使用表示从关节Jointn-1到Jointn的变换。 关节 阅读全文
摘要:
前面我们讲了一下冒泡排序,原理比较简单,但是我们发现他的排序比较慢,需要不断的进行数据的交换。然后我们来讲一讲选择排序,他不用一直进行数据的交换,他会找到最小的那个数,放在最左边,跟冒泡排序的不同之处,冒泡是两个数之间的比较,大的那个数放到右边。 选择排序 选择排序的原理也比较好理解,比如我们有n个 阅读全文
摘要:
在c语言里面算法和数据结构是非常重要的,同样在C++中也是不可缺少的一部分,算法的思想有很大的相似之处,如果你对C语言的数据结构与算法非常熟悉的话,那么对于C++的数据结构也是非常好理解的。首先我们来讲一讲最基本的排序方式--冒泡排序法 冒泡排序 对于冒泡排序法,大家学过C语言的应该都不会陌生,他的 阅读全文