3.3 柔顺控制代码实现 本文隶属于工程机械臂末端柔顺控制(Ros+Gazebo仿真实现)0 前言 之前写了一个UR5的运动学库,参考3.2 写一个UR机器人运动学库,发现该运动学库需要补充一部分内容,主要是关于雅各比矩阵的,后面能不能用到雅各比不知道,但是运动学库里面怎么能不包含雅各比矩阵呢?所以先写上去再说。于是乎添加了一个获取当前雅各比矩阵的函数,代码如下:bool Kinematics::GetJacobian(const JointsDisplacement ...
3.2 写一个UR机器人运动学库 本博文属于工程机械臂末端柔顺控制(Ros+Gazebo仿真实现)注:本文参考文献忘了,参考的是一篇中国学者发表的一篇关于和UR构型一致的6自由度机械臂求逆解规避掉第六个关节可能由于奇异构型无法求解的问题。0 引言末端柔顺控制必然牵扯到机械臂逆运动学求解。注:由于本文涉及到矩阵运算,需要事先下载好Eigen矩阵运算库,可自行搜索如何安装。1 工程目录RoboticsLib bin(存放可执行文件) include(存放头文件) Commom.h
3.1写一个简单的ROS通讯库 本文档隶属于工程机械臂末端柔顺控制(Ros+Gazebo仿真实现)0 为什么要写这玩意儿?要实现末端柔顺控制至少得先具备检测末端力数据以及发送控制指令给机器人的功能,力传感器和机器人位置控制器我们已经在如何给Gazebo中的仿真机械臂添加一个力传感器?中实现了,接下来就要写一个上位机程序来采集力传感器数据以及给机械臂发送控制指令。1 工程目录工程目录如下:RosCommunication include(存放头文件) RosCommunication.h
1 什么是末端柔顺控制? 本博文隶属于工程机械臂末端柔顺控制(Ros+Gazebo仿真实现)懒得码字了,附一篇别人写的吧,这个东西网上参考资料有很多。彻底搞懂阻抗控制、导纳控制、力位混合控制本工程采用柔顺控制算法中的导纳控制实现。...
人工势场法脱离极小值点 填个坑,之前的这篇文章基于人工势场法的UR5机械臂避障算法(Python)提到了人工势场法可能会陷入极小值,这里提一下怎么处理以及附上源码。我这里的大致思路是用RRT算法产生一个临时目标点来生成新的引力场。首先是先判断是否陷入极小值,我是通过连续两个路径点相同则陷入极小,随后跳出人工势场法。用RRT算法,随机树向之前的目标位姿进行扩展,一直运行,直到出现100个可行节点(这个数量可以自己定),对应可能有多条路径,找到距离当前陷入极小值的位姿最远的那个节...
2 如何给Gazebo中的仿真机械臂添加一个力传感器? 1. 你得有一个仿真机械臂简单地说你首先的拥有一个能够在Gazebo当中使用的机械臂的URDF文件,必须要包含visual、collision和inertial三大标签。出于个人习惯,这里直接使用UR官方提供的UR5的URDF文件,具体怎么下载,请自行百度这里建议新建一个功能包用于存放UR5的相关文件,因为官方功能包ur_description里面除了UR5的URDF文件之外,还有其它机械臂的文件,显得特别混乱。你的功能包应该包含以下文件:你...
ROS搭配Qt使用 近期自己做了个小项目,在ROS/Gazebo中根据UR的官方文档修改配置了UR5机械臂的仿真平台,并使用Qt开发了其简单的控制界面,包括实时显示机械臂的关节信息以及设置关节角度信息并发送控制命令,此外,还在仿真环境中配置了监视机械臂的摄像头,也在Qt中显示了该摄像头的图像数据。目前该项目已经完成,大致分为以下几个部分,会逐渐按顺序慢慢更新。1.UR5机械臂的Gazebo仿真配置;2.UR5机械臂及其环境模型的xacro文件创建;3.UR5机械臂的运动学;4.Qt控制界面的...
ubuntu下用cmake编译Qt5(保姆级教程) 0 废话在前近日想要同时使用Qt和Opencv来完成一个小项目,但是在Qtcreator里面配置Opencv太麻烦,而且考虑到以后也有可能加入更多的第三方库,因此干脆用cmake来进行管理。目前CSDN上的教程基本都是一大抄,并且有许多错误之处,因此干脆自己摸索着写了一版。观看本教程之前,最好有一定的cmake和Qt编程基础。1 Qt编译过程众所周知,C++编译四大步骤:预处理、编译、汇编、链接。Qt当然...