本文Jungle简单实现一个6自由度的工业机器人仿真控制器,用户可以通过界面上6个轴的滑条控制机器人的姿态。 1.Platform and robot model Platform——vs2008,Qt4.8.6,Coin3D3.1.3 Robot model——KUKA KR16 robot,模型文件可以在官网上下载(https://www.kuka.com/)。 2.UI设计 3.关
*转载请注明出处 @梦凝小筑 1.2 Cartographer 源码软件结构 Cartographer 的源码中,主要有两大部分: 1,Cartographer 算法核心代码,在Cartographer文件夹中, 2,Cartographer 在 ros 平台的接口,在Cartographer_ros文件夹中 * 还有一个ceres-solver goo
本文主要讲百度Apollo无人车项目中A*算法的C++实现。 Apollo中有两个地方使用了A*算法,如下。至于为啥不把两个A*算法写成一个统一而且通用的库呢,可能是不方便吧,因为里面有很多细节处理不一样。 1. 在路由规划模块 routing 中:modules\routing\strategy\a_star_strategy.cc 2. 在开放场地局部轨迹规划模块 open_spa
参考文献: https://blog.csdn.net/seujss/article/details/77368323 https://jingyan.baidu.com/article/5552ef47f727bf518ffbc901.html 首先,感谢两篇经验分享,虽然里面有些错误的地方,但大部分都是正确的,我也成功建立了matlab与solidworks的连接。 1.matlab的
矩阵变换是机器人学的基础,所以Jungle把这一节内容划分到“工业机器人”栏目。这一节Jungle用C++设计了矩阵的类Matrix,并设计了3个方法: 矩阵相加add 矩阵相乘multiply 求矩阵的逆矩阵inverse 有了这三个方法,足以进行机器人正逆运动学分析了。直接上代码: #include<iostream> #include<stdlib.h> #inc
通过实例来学习可以说是最快的了,这里开始就是实例了! 理论请看前一篇文章:Kalman滤波器的应用解释1 目录 例子1.普遍文章里温度的例子 例子2.论文中测距的例子 例子3.观测函数为y=5x 例子4:小车做匀速直线运动 1. 首先建立小车的状态转移模型 2.然后建立小车的观测模型 3.得到小车目标位置的Kalman滤波方程 4.Matlab仿真 例子5:Matlab kalman函数的使用 附
目的 首先介绍AGV调度中的基本概念和主要问题,然后分析现有调度方法的特点。 上图由Mathematica制作 1 AGV及其调度问题 1.1 AGV是什么? 国家标准[1]对AGV 的定义是:AGV(Automated Guided Vehicle 自动导引车):装备有电磁或光学等自动导引装置,由计算机控制,以轮式移动为特征,自带动力或动力转换装置,并且能够沿规定的导引路径自动行驶的运
目的 本文介绍机器人单关节轨迹规划中常用的几种方式。 1 多项式 多项式是最简单的函数了,一般用五次多项式表示一段轨迹[1] ,因为它刚好有6个系数,而我们的边界条件也是6个:起点和终点的位置s 0、s T,起点和终点的速度s˙0 、s˙T ,再加上起点和终点的加速度s¨0 、s¨T 。 通过求解这组线性方程就可以得到6个系数。 我们可以调整边界条件来观察曲线的形状,如下图。可见位置
描述 本文将简要介绍机械臂手眼标定原理及相关知识,包会 基础知识 了解手眼标定原理,就必须先了解一句话,叫做“右乘连体左乘基”。 这句话实际上是读硕士期间,机器人学课程上老师讲的,我会专门写一篇文章来介绍这个定则,这篇我们先不介绍,只用最后的结论。 公式 手眼标定原理 明确坐标系 首先明确坐标系:机械臂项目一般存在四个坐标系 基坐标系:机械臂的基座为原点的坐标系 末端关节坐标系:一般机械臂末端关
InformationPositionSubTableView::InformationPositionSubTableView(QStringList& columnNameList,QList<PositionItem>& positionItemList,QWidget *parent) : m_ColumnNameList(columnNameList),
最近在做基于Kinect的手势识别,这里介绍一下Kinect的使用 1.Kinect在Qt中的安装 下载Kinect的安装包,按照流程按照即可。 pro文件中需要填写opencv以及kinect的头文件以及库文件路径,我把它们都放在工程目录下了,如下代码所示。 #openCV路径 INCLUDEPATH += $$PWD/opencv/build/include\
文章目录 1 三维空间中的位置与姿态 1.1 位置描述 1.2 姿态描述 2 相关函数详细用法 2.1 获取旋转矩阵 rot 2.2 绘制坐标系 trplot 2.3 动画演示 tranimate 关注微信公众号`二进制人工智能`,回复`robot`获取机器人工具箱 1 三维空间中的位置与姿态 通常来说,机器人指的是至少包含有一个固定刚体和一个活动刚体的机器装置。其中,固定的
描述 使用matlab求解AX=XB的问题 可以正确求出X的值,我已经成功验证了 至于说X具体代表什么,要结合你自己推导出的公式AX=XB之中,A、X、B分别代表什么 代码 main.m 包含我做手眼标定时的14组A和B然后使用X= tsai(A,B)一句话就可以求解出手眼矩阵X clc; clear; num = 14; A=zeros(4,4,num); B=zeros(4,4,num); A
描述 C++求解AX = XB 以下的两个代码,虽然可以直接运行,但是我本人使用它们得到的手眼矩阵,旋转矩阵R值的大小看起来是合理的,但位置向量t的三个数值大概都是大于10万的,显然是错误的。 但没有时间去研究错误的原因,但是找到这些代码已属不易,因此还是贴在这里,供以后研究 代码 C++求解AX = XB 代码网上有很多,这里贴出来两个。Tsai_HandEye和Navy_HandEye Tsa
Aster(A*)算法 Aster算法是在Dijkstra算法基础上发展出来的,是在静态路径中用于求解最优路径有效的直接搜索算法,比dijkstra算法多了一个启发式的搜索函数,也就是通过一个代价函数来确定搜索方向(从起点开始向周围扩张,通过代价函数,计算得到周围每个节点的代价值,选出最小代价节点作为下一个扩展点,重复这个过程直到到达目标点。)。 算法对比: A ∗ 算法的代价函数f(n)表示为
目的 对AGV循迹过程进行分析,探讨轨道对AGV性能的要求,为设计参考轨道提供指导。 AGV被称为自动导引车,那么它是如何实现自动导引的呢?一般的AGV通过安装在车体中轴首尾两端的传感器检测地面上铺设的轨道,随后调整驱动轮的角度或者速度实现对轨道的跟随,以此实现自动导引。本文研究行驶轨道与AGV运动性能的关系。 1 正弦曲线 首先来看正弦曲线,如下图所示。其中两个箭头的起点位于AGV中
Dijkstra算法 Dijkstra算法是从一个节点到区域各节点的最短路径算法,解决的是最短路径问题。特点:以起点为中心,向外层层扩展,直到扩展到终点为止。 我们引入两个集合closelist、openlist和两个集合 闭集closelist:记录已求出最短路径的节点。 开集openlist:记录还未求出最短路径的节点。 集合1:记录源节点到各节点的距离 集合2:记录节点对应的父节点
描述 机械臂末端的位姿是p时,不想沿着基坐标系来移动,而是想沿着末端的xyz轴来移动 接口代码 核心函数 # 移动 def move_endEffector(axis, dist, x, y, z, rx, ry, rz): Rx = np.mat([[1, 0, 0], [0, math.cos(rx), -math.sin(rx)], [0, math.sin(rx), math.co
*转载请注明出处 @梦凝小筑 1.1 Cartographer 整体结构 解析: (1)数据获取(Input Sensor Data) Input Sensor Data:传感器输入,主要包含——激光雷达数据、底盘odom数据、imu数据、fixed frame pose? 激光雷达数据:2d 扫描点云原生数据 ——> 体素滤波器(Voxel Filter) ——> 自适
文章目录 A 路径规划定义 B 构型/位型空间(configuration Space) C 障碍物与构型空间 C 环境模型建立 D 欧氏距离与曼哈顿距离 A 路径规划定义 移动机器人依据某个或某些性能指标(如工作代价最小、行走路线最短、行走时间最短等),在运动空间中找到一条从起始状态到目标状态、可以避开障碍物的最优或者接近最优的路径。路径规划分为全局路径规划和局部路径规划 全局路径规划:是宏
第三方账号登入
看不清?点击更换
第三方账号登入
QQ 微博 微信