Udacity机器人软件工程师课程笔记(六)-样本搜索和找回-基于漫游者号模拟器-优化和样本找回 is a project mainly written in , based on the .10.优化和样本找回 (1)优化概述 在之前的一篇笔记中,我们已经实现了基本的漫游者号的自主驾驶功能。但是因为我们的感知子函数和决策子函数都过于简单,使漫游者号不能很好的自动驾驶和样本找回。 这篇笔记的主要内容就是涉及如何对我们的自主驾驶模型进行优化,如何使漫游者号遍历整个地图,并将岩石样本进行找回并使漫游者号返回起始位置。所以...
Udacity机器人软件工程师课程笔记(八)-ROS Turtlesim 包的相关命令 is a project mainly written in , based on the .Turtlesim 包的相关命令 这个部分包含五个子主题,分别是 列出所有活动节点列出所有主题获取有关主题的信息显示消息信息实时回应消息 1.列出所有的活动节点 为了获取所用的活动且向ROS Master注册的节点,我们使用命令 rosnode list 运行如下 我们可以看到有三个活动且注册的节点显示在ROS界面上,...
Udacity机器人软件工程师课程笔记(十)-ROS-Catkin-包(package)和gazebo is a project mainly written in , based on the .包和gazebo仿真 1.添加包 (1)克隆simple_arm包 克隆现有的包并将其添加到我们新创建的工作区。 首先导航到src目录,然后从其github仓库克隆本课程 simple_arm 的包。 $ cd ~/catkin_ws/src $ git clone https://github.com/udacity/si...
Udacity机器人软件工程师课程笔记(九)-ROS-Catkin包、工作空间和目录结构 is a project mainly written in , based on the .Catkin包和工作空间 1.Carkin包简介 Catkin是ROS的官方构建系统,也是原始ROS构建系统rosbuild的继承者。catkin结合了CMake宏和Python脚本,在CMake的正常工作流程之上提供了一些功能。 被设计为比更传统的rosbuild,允许更好的分发包、更好的交叉编译的支持,以及更好的便携性。cat...
Udacity机器人软件工程师课程笔记(十一)-ROS-编写ROS节点 is a project mainly written in , based on the .编写ROS节点 1.ROS节点概述 simple_mover 只发布关节角度命令 simple_arm 。 在了解用Python编写的ROS节点的一般结构之后,现在要编写另一个名为 arm_mover 的节点。 arm_mover 提供一种叫做 safe_move 的服务,它允许机械臂移动到其工作区内被认为是“安全”的任何位置。...
Udacity机器人软件工程师课程笔记(十二)-ROS-编写更复杂的ROS节点(arm_mover节点 和 look_away 节点) is a project mainly written in , based on the .更复杂的ROS节点 1. Arm_mover节点 为了打好更好的基础,这是在Arm_mover节点还需要学习的内容 自定义消息生成服务参数启动文件 为了理解上述内容,我们将编写另一个名为arm_mover的节点。 (1)Arm Mover的描述 在很多方面, arm_mover 都非常相似simple_mover。就像 s...
Udacity机器人软件工程师课程笔记(十三)-运动学-机械手介绍及分类 is a project mainly written in , based on the .运动学 在研究控制机械臂之前,有必要学习一些运动学知识,比如学习反向运动学内容,解决命令任意串行操纵器沿预先计划的轨迹朝向目标的问题等等。 下面是一个大纲,介绍了“运动学-机械手介绍及分类”这个主题下的一些主要的内容。 自由度(DoF)参考框架广义坐标联合类型主要类型的串行机械手串行机械手应用 1. 自由度 “自由度”(Do...
Udacity机器人软件工程师课程笔记(十四)-运动学-正向运动学和反向运动学(其一) is a project mainly written in , based on the .正向运动学和反向运动学 目录 2D中的旋转矩阵sympy包旋转的合成旋转矩阵中的欧拉角平移齐次变换及其逆变换齐次变换的合成Denavit-Hartenberg 参数DH参数分配算法正向运动学反向运动学反向运动学举例 1.2D中的旋转矩阵 在正向运动学之前,我们需要知道如何在不同的坐标系中表示向量。这时候就需要用到旋转矩阵的定义...
Udacity机器人软件工程师课程笔记(十五)-运动学-正向运动学和反向运动学(其二)-DH参数等 is a project mainly written in , based on the .正向运动学和反向运动学 目录 2D中的旋转矩阵sympy包旋转的合成旋转矩阵中的欧拉角平移齐次变换及其逆变换齐次变换的合成Denavit-Hartenberg 参数DH参数分配算法正向运动学反向运动学反向运动学举例 7.齐次变换的合成 齐次变换的合成与旋转的合成遵循着相同的逻辑。 假设从坐标系C到坐标系B的变换是已知的,从坐...
Udacity机器人软件工程师课程笔记(十六)-机械臂仿真控制实例(其一)-Gazebo、RViz和Moveit! is a project mainly written in , based on the .机械臂仿真控制实例 目录 环境设置项目工具介绍Gazebo (1)Gazebo组件 (2)Gazebo界面统一机器人描述格式(URDF)RVizMoveit! 1.环境设置 对于此项目,使用的是 robo-nd 虚拟机映像,或者在本地安装了 Ubuntu + ROS 。 关于安装虚拟机映像问题,可以参考之前的文章。 对于此设...
Udacity机器人软件工程师课程笔记(十九) - 3D感知介绍 - 主动/被动式传感器、RGB-D相机、点云 is a project mainly written in , based on the .3D感知介绍 目录 传感器RGB-D相机点云 1.传感器 主动式传感器是指向目标发射电磁波,然后收集从目标反射回来的电磁波信息的传感器,如合成孔径雷达等。 被动式传感器指只能收集地而目标反时来自太阳光的能量或目标自身辐射的电进波能量的传感器,如摄影相机和多光谐扫描仪等。探测器指接收地物电磁辐射的物理元件,是传感器中最重要的部...
Udacity机器人软件工程师课程笔记(二十) - 感知 - 校准,过滤, 分段, RANSAC is a project mainly written in , based on the .校准,过滤, 分段, RANSAC 首先,我们将讨论传感器校准,也就是说,从几何形状,失真和噪声方面校准相机如何看待周围的世界。了解相机的校准对于了解测量数据如何代表实际物理环境至关重要。 之后,我们将讨论过滤数据。 对于3D点云,大多数数据实际上对应于不需要的背景对象或其他必须过滤掉的对象,然后才能执行对象检测或识别。 最后...
Udacity机器人软件工程师课程笔记(二十一) - 对点云进行集群可视化 - 聚类的分割 - K-means|K均值聚类, DBSCAN算法 is a project mainly written in , based on the .聚类的分割 1.K-均值聚类 (1)K-均值聚类介绍 k均值聚类算法(k-means clustering algorithm)是一种迭代求解的聚类分析算法,其步骤是随机选取K个对象作为初始的聚类中心,然后计算每个对象与各个种子聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心。 聚类中心以及分配给它们的对象就代表一个聚...
Udacity机器人软件工程师课程笔记(二十二) - 物体识别 - 色彩直方图,支持向量机SVM is a project mainly written in , based on the .物体识别 1.HSV色彩空间 如果要进行颜色检测,HSV颜色空间是当前最常用的。 HSV(Hue, Saturation, Value)是根据颜色的直观特性由A. R. Smith在1978年创建的一种颜色空间, 也称六角锥体模型(Hexcone Model)。这个模型中颜色的参数分别是:色调(H),饱和度(S),亮度(V)。...
Udacity机器人软件工程师课程笔记(二十三) - 控制(其一)- PID控制及其python实现 is a project mainly written in , based on the .控制(Controls) 1.PID控制简介 在工程实际中,应用最为广泛的调节器控制规律为比例、积分、微分控制,简称PID控制,又称PID调节。PID控制器问世至今已有近70年历史,它 以其结构简单、稳定性好、工作可靠、调整方便而成为工业控制的主要技术之一。当被控对象的结构和参数不能完全掌握,或得不到精确的数学模型时,控制理论的...
Udacity机器人软件工程师课程笔记(二十四) - 控制(其二) - PID优化,梯度下降算法,带噪声的PID控制 is a project mainly written in , based on the .7.非理想情况 (1)积分饱和 到目前为止,我们一直使用的“理想”形式的PID控制器很少用于工业中。“时间常数”形式更为常见。 当前说明了理想形式的一些重大缺陷。 在一个经过良好调整的系统中,积分项能够通过使控制作用力与累积误差成比例来消除稳态误差。然而,这种操作模式会带来危险。设想,如果设定值突然大幅度改变但系统动力学相应缓...
Udacity机器人软件工程师课程笔记(二十五) - 使用PID控制四轴飞行器 - 四轴飞行器(四旋翼)模拟器 is a project mainly written in , based on the .1.四轴飞行器运动学和动力学模型 在讨论四轴飞行器时,明确定义两个参考坐标系会很有帮助:一个固定的世界坐标系W{W}W和一个牢固地附着到四轴飞行器的质心(CoM)的运动坐标系B{B}B。 假设运动坐标系B{B}B{B}B的x轴指向电动机编号1,y轴指向电动机编号2,并且当四轴飞行器电机静止在水平表面上时,z轴指向“上”。 FiF...
Udacity机器人软件工程师课程笔记(二十七) - 卷积神经网络(CNN) is a project mainly written in , based on the .1.卷积神经网络介绍 **卷积神经网络(Convolutional Neural Network,CNN)**是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。 虽然上图中显示的全连接神经网络结构和卷积神经网络的结构直观上差异比较大,但他们的整体架构是非常相似的。从上图可以看出,卷积神...
Udacity机器人软件工程师课程笔记(二十八) - 卷积神经网络实例 - Fashion-MNIST数据集 is a project mainly written in , based on the .1.Fashion-MNIST数据集 Fashion-MNIST数据集包括一个包含60,000个示例的训练集和一个包含10,000个示例的测试集。每个示例是一个28x28灰度图像,与来自以下10个类的标签相关联: T恤/上衣裤子套衫连衣裙外套凉鞋衬衫运动鞋包短靴 Source: https://github.com/zaland...
Udacity机器人软件工程师课程笔记(二十九) - 全卷积网络(FCN) is a project mainly written in , based on the .全卷积网络(FCN) 1.全卷积神经网络介绍 FCN对图像进行像素级的分类,从而解决了语义级别的图像分割(semantic segmentation)问题。与经典的CNN在卷积层之后使用全连接层得到固定长度的特征向量进行分类(全联接层+softmax输出)不同,FCN可以接受任意尺寸的输入图像,采用反卷积层对最后一个卷积层的fea...