摘要:
前言 看了一些关于Linux多线程编程的书籍和网络资料,发现关于对实时线程调度和抢占的主题的代码和文章比较少(也可能是我还没找到)。而对于一些系统,例如机器人控制系统,对于任务的实时性要求是比较高的,所以需要了解一下实时线程的编程方法。 Linux虽然是一个非实时操作系统,但是其线程也有实时和分时之 阅读全文
摘要:
错误处 近来的主要工作是设计工业机器人控制系统,需要设计一系列的用户编程指令,在查阅国家标准的时候,发现一处错误。 封面 2ddf5ede-26bd-4ee4-b29b-c40cca405cf6 阅读全文
摘要:
导致进程创建的原因: (1)新的批处理作业; (2)交互登陆; (3)操作系统因为提供一项服务而创建; (4)由现有的进程派生。 导致进程终止的原因: (1)正常完成; (2)超过时限; (3)无可用内存; (4)越界; (5)保护错误; (6)算术错误; (7)时间超出; (8)IO失败; (9) 阅读全文
摘要:
在Linux中,文件总共被分为了7种,它们分别如下: (1)普通文件(regular):存在于外部存储器中,用于存储普通数据; (2)目录文件(directory):用于存放目录项,是文件系统管理的重要文件类型; (3)管道文件(pipe):一种用于进程间通信的特殊文件,也称为命名管道FIFO; ( 阅读全文
摘要:
C++语言的一个重要特征是可以进行面向对象的设计(OOP),而OOP的核心思想之一便是使用继承,可以定义相似的类型并对其相似关系进行建模。通过继承联系在一起的类构成一种层次关系,层次关系的根部有一个基类(base class),其它类则直接或间接地从基类继承而来,这些继承得到的类称为派生类(deri 阅读全文
摘要:
在学习KDL源码的时候,发现在“frames.hpp”中使用了大量的内联函数,涉及这些基础的类,向量(vector),旋转(rotation),坐标系(frame),力旋量(wrench),速度旋量(twist)等等。这也说明基础的类的包含的成员函数并不是十分复杂,符合内联函数的特点(规模较小、流程 阅读全文
摘要:
在过去的好几个月的时间,因为工作需要,把《现代机器人学》这本书认真地学习了一下,个人感觉这本书的阅读价值极高,可显著提高机器人学算法,数学能力。 这本教材是提供了所讲算法的官方的matlab代码(链接),另外也有人写了C++(链接)、python及其它版本。 出于学习机器人学算法和C++编程的目的, 阅读全文
摘要:
机器人运动学中,绕坐标轴旋转算子是常用的工具,具体结果形式是一个3*3的矩阵,可表示机器人的姿态。最近在学Eigen库,简单写一个绕Z轴旋转的算子,Rotz(theta)。如下所示: #include <Eigen/Dense> #include <iostream> using namespace 阅读全文
摘要:
在重构机器人算法时,Eigen库应该是使用率最多的库了,因为机器人的算法涉及到大量的矩阵运算。 首先说一下创建3×3的矩阵的方法,作为初学者我比较关心的是声明和赋值,用以下三种方式说明: #include <iostream> #include <Eigen/Dense> using namespa 阅读全文