笛卡尔空间力反馈的关节速度控制之机器人运动学库KDL安装及使用
机器人运动学库KDL安装及使用
- 引言
- 原理
- 安装
- PyKDL
- pykdl_utils
- 使用
- 实验
引言
首先得到的工具坐标系净接触力向量,然后乘以工具坐标系到末端坐标系的旋转矩阵,得到末端的净接触力向量。然后将末端的力乘以阻尼矩阵(假设解耦),得到末端的速度向量。因为得到的速度向量还是在末端坐标系下的(这里可以考虑先转到基坐标系下再得到速度向量?),因此为了达到控制关节速度的目的,需要首先将末端的速度转换到基坐标系下,然后利用雅克比矩阵的逆,得到关节速度指令。这里的转换矩阵,也就是齐次变换矩阵就是这里想要求得的。
原理
1、雅克比矩阵可以通过moveit中的命令获取,这里不知道为什么ur自带的指令总是和matlab(目前已知应该是正确)有点出入,在正负号方面。因此首先进行相关符号的转换(不会是坑吧,算了,先挖再说。)
2、通过辨识的旋转信息,将工具坐标系下的力转为末端坐标系;然后使用阻尼矩阵(相当于阻尼控制,将末端力转为末端速度),得到在末端坐标系下的速度信息。再经过旋转矩阵和雅克避矩阵的转化,从而得到基坐标系下的笛卡尔空间速度值。如引言部分所示
安装
由于雅克比矩阵可以通过moveit获得,但是将末端坐标系下的速度转为基坐标系下的工作需要用到机械臂的正向运动学。一种方法是直接通过手算正向运动学,另一种方法是通过linux下的KDL库
(机器人运动学相关)直接获取。这里我们选择使用KDL进行正运动学求解。因此关于在linux下正确安装使用KDL库,是本文所介绍的。
安装主要是参见这篇文章链接。
这里我们选择用py版本的KDL
PyKDL
首先安装PyKDL。
安装过程中会遇到问题,我是通过下载低版本的包解决的。
pykdl_utils
在文中提到了将.so文件拷贝可以解决存在的问题,但是试了以后发现不行,最终的办法是必须通过添加路径的方法。就是在下面“使用”一节的链接中提到的。
类似于这两种
sys.path.insert(0, "/home/file/catkin_ws/src/Basic_math/hrl-kdl-indigo-devel/hrl_geom/src")
sys.path.insert(0, "/home/wangxu/catkin_ws/src/Basic_math/hrl-kdl-indigo-devel/pykdl_utils/src")
但是必须要到build文件夹,就像:
```python
sys.path.insert(0, "/home/xsm/pydk/src/hrl-kdl-indigo-devel (2)/hrl_geom/src")
sys.path.insert(0, "/home/xsm/orocos_kinematics_dynamics-1.3.1/python_orocos_kdl/build")
使用
参见博客链接。当然这里也是有问题,就是对于变换矩阵的顺序,可能需要再调整一下。
当遇到存在解释解释包,但是不在此解释器下的情况时,可以在pycharm中通过为解释器添加包的方式添加。
实验
最终初步实现了末端力反馈的关节速度控制,视频以后放。
希望我们可以不忘初心,May the force be with you!
笛卡尔空间力反馈的关节速度控制之机器人运动学库KDL安装及使用相关推荐
- 驱动器空间、关节空间与笛卡尔空间
驱动器空间.关节空间与笛卡尔空间 一般来说,操作臂的位置和姿态描述有三种表示方法,分别为驱动器空间描述.关节空间描述和笛卡尔空间描述.三者之间有如下的映射关系: 在进行机械臂运动学分析时,我们必须弄清 ...
- 【机器人关节空间与笛卡尔空间示教】
机器人关节空间与笛卡尔空间示教演示 在RobtSim机器人快速仿真软件中,对关节空间和笛卡尔空间进行示教演示.关节空间中机器人运动对末端无法有效控制,笛卡尔空间对末端可有效控制,但是对关节空间无法有效 ...
- 机器人在笛卡尔空间和关节空间的多项式轨迹规划以及matlab代码(三次、五次、七次)
三次多项式轨迹规划: 三次多项式轨迹规划就是s(t)相对于时间t的变化满足三次多项式变化,其表达式如下: 如前文所述:t的取值范围是[0,T],s(t)的取值范围是[0,1], 又因为初始速度和末速度 ...
- 「 运动控制 」“关节空间与笛卡尔空间进行轨迹规划”研究
1.什么是轨迹规划? 轨迹规划是指根据作业任务的要求,确定轨迹参数并实时计算和生成运动轨迹. 2.轨迹规划目的 它是机器人研究领域中的一个很重要的内容,是工业机器人控制的依据,所有控制的目的都是要围绕 ...
- (学习用1)调用用RRT算法进行笛卡尔空间轨迹规划和关节空间轨迹规划
在MoveIt中,可以通过调用computeCartesianPath()函数来使用RRT算法进行笛卡尔空间轨迹规划,可以通过调用computeJointSpacePath()函数来使用RRT算法进行 ...
- 机器人笛卡尔空间与关节空间轨迹规划算法
本实例为如何生成和模拟插值关节轨迹,从一个初始运动到一个理想的末端执行器姿态. 轨迹的定时是基于手臂工具(EOAT)的一个近似的期望末端速度. 加载KINOVA Gen3刚体树(RBT)机器人模型 r ...
- 机器人轨迹规划:简单的笛卡尔空间/关节空间轨迹规划方案
文章目录 知乎:[OpenRobotSL](https://www.zhihu.com/people/OpenRobotSL) 写在前面 1.关节空间同步运动 2.如何处理运动过程中的平滑性问题 3. ...
- 笛卡尔空间轨迹规划(直线、圆弧)
目录 毕设(5)-笛卡尔空间轨迹规划(直线.圆弧) 直线轨迹规划 圆弧轨迹规划 Matlab代码验证 毕设中用到了很多代码,其中一部分我通过看书和看论文学习并实现的代码,会通过Gitee仓库分享出来, ...
- MoveIt编程实现笛卡尔空间机械臂运动
前两篇文章是关于在关节空间中进行机械臂的运动控制: MoveIt简单编程实现关节空间机械臂运动(逆运动学) MoveIt简单编程实现关节空间机械臂运动(正运动学) 通过对关节空间下的机器人6个轴进行控 ...
- 笛卡尔空间直线轨迹规划——S型曲线加减速插补算法(含MATLAB仿真验证代码)
写这个算法,是因为博主正在做一个机械臂和全向小车的项目,里面涉及需要笛卡尔空间做直线轨迹的规划.通常的算法有梯型加减速,这个算法只是速度连续,加速度并不连续.所以实际冲击较大,无法实现柔性控制.况且网 ...
最新文章
- AtCoder ARC 090 E / AtCoder 3883: Avoiding Collision
- 手机格斗网游该如何避免延迟?
- Red hat下使用automake自动配置wxWidgets的makefile
- 一文教你掌握 ZooKeeper 核心知识
- [LeetCode] NO. 8 String to Integer (atoi)
- 沉浸文化获星瀚资本百万元级种子轮投资,星瀚资本投资
- LVS——DR模式下的健康检查
- MyEclipse8.5默认工作区间修改
- C语言程序设计实验报告——实验一
- 泰勒·斯威夫特(Taylor Swift)最好听歌曲专辑,喜欢的可以下载保存
- 面试:Spring Boot的优缺点
- 皮卡丘是如何发电的?
- 使用cocoapods导入第三方后 报错_OBJC_CLASS_$_XXX
- 服务器跑项目,如何使用远程服务器跑项目
- HWOD机试真题(JavaScript)
- html 字体模糊,css – Chrome字体显示模糊
- 字体文件检查工具Webfont Generator
- 数模学校道路整修_如何在您的浴室或厨房重新整修区域
- 宏碁4750 Ubuntu16.04下安装NVIDIA 390显卡
- “喜茶Go”微信小程序新零售商业实战案例经验分享-概述