![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ROS学习笔记
文章平均质量分 66
孟德尔的猫
……
展开
-
3.3 柔顺控制代码实现
本文隶属于工程机械臂末端柔顺控制(Ros+Gazebo仿真实现)0 前言 之前写了一个UR5的运动学库,参考3.2 写一个UR机器人运动学库,发现该运动学库需要补充一部分内容,主要是关于雅各比矩阵的,后面能不能用到雅各比不知道,但是运动学库里面怎么能不包含雅各比矩阵呢?所以先写上去再说。于是乎添加了一个获取当前雅各比矩阵的函数,代码如下:bool Kinematics::GetJacobian(const JointsDisplacement ...原创 2022-05-16 14:36:51 · 4898 阅读 · 6 评论 -
3.2 写一个UR机器人运动学库
本博文属于工程机械臂末端柔顺控制(Ros+Gazebo仿真实现)注:本文参考文献忘了,参考的是一篇中国学者发表的一篇关于和UR构型一致的6自由度机械臂求逆解规避掉第六个关节可能由于奇异构型无法求解的问题。0 引言末端柔顺控制必然牵扯到机械臂逆运动学求解。注:由于本文涉及到矩阵运算,需要事先下载好Eigen矩阵运算库,可自行搜索如何安装。1 工程目录RoboticsLib bin(存放可执行文件) include(存放头文件) Commom.h原创 2022-03-20 19:58:07 · 3423 阅读 · 9 评论 -
3.1写一个简单的ROS通讯库
本文档隶属于工程机械臂末端柔顺控制(Ros+Gazebo仿真实现)0 为什么要写这玩意儿?要实现末端柔顺控制至少得先具备检测末端力数据以及发送控制指令给机器人的功能,力传感器和机器人位置控制器我们已经在如何给Gazebo中的仿真机械臂添加一个力传感器?中实现了,接下来就要写一个上位机程序来采集力传感器数据以及给机械臂发送控制指令。1 工程目录工程目录如下:RosCommunication include(存放头文件) RosCommunication.h原创 2022-03-16 19:16:41 · 3595 阅读 · 2 评论 -
1 什么是末端柔顺控制?
本博文隶属于工程机械臂末端柔顺控制(Ros+Gazebo仿真实现)懒得码字了,附一篇别人写的吧,这个东西网上参考资料有很多。彻底搞懂阻抗控制、导纳控制、力位混合控制本工程采用柔顺控制算法中的导纳控制实现。...原创 2022-03-16 17:41:49 · 1991 阅读 · 0 评论 -
人工势场法脱离极小值点
填个坑,之前的这篇文章基于人工势场法的UR5机械臂避障算法(Python)提到了人工势场法可能会陷入极小值,这里提一下怎么处理以及附上源码。我这里的大致思路是用RRT算法产生一个临时目标点来生成新的引力场。首先是先判断是否陷入极小值,我是通过连续两个路径点相同则陷入极小,随后跳出人工势场法。用RRT算法,随机树向之前的目标位姿进行扩展,一直运行,直到出现100个可行节点(这个数量可以自己定),对应可能有多条路径,找到距离当前陷入极小值的位姿最远的那个节...原创 2022-02-25 17:44:45 · 1660 阅读 · 2 评论 -
2 如何给Gazebo中的仿真机械臂添加一个力传感器?
1. 你得有一个仿真机械臂简单地说你首先的拥有一个能够在Gazebo当中使用的机械臂的URDF文件,必须要包含visual、collision和inertial三大标签。出于个人习惯,这里直接使用UR官方提供的UR5的URDF文件,具体怎么下载,请自行百度这里建议新建一个功能包用于存放UR5的相关文件,因为官方功能包ur_description里面除了UR5的URDF文件之外,还有其它机械臂的文件,显得特别混乱。你的功能包应该包含以下文件:你...原创 2022-02-20 21:00:53 · 4443 阅读 · 20 评论 -
机械臂末端柔顺控制(Ros+Gazebo仿真实现)
(1)什么是柔顺控制?(2)如何给Gazebo中的仿真机械臂添加一个力传感器?(3)柔顺控制代码教程(C++)先占坑,后期慢慢更。原创 2022-02-20 19:35:49 · 5536 阅读 · 10 评论 -
ROS搭配Qt使用
近期自己做了个小项目,在ROS/Gazebo中根据UR的官方文档修改配置了UR5机械臂的仿真平台,并使用Qt开发了其简单的控制界面,包括实时显示机械臂的关节信息以及设置关节角度信息并发送控制命令,此外,还在仿真环境中配置了监视机械臂的摄像头,也在Qt中显示了该摄像头的图像数据。目前该项目已经完成,大致分为以下几个部分,会逐渐按顺序慢慢更新。1.UR5机械臂的Gazebo仿真配置;2.UR5机械臂及其环境模型的xacro文件创建;3.UR5机械臂的运动学;4.Qt控制界面的...原创 2021-12-14 20:14:21 · 2480 阅读 · 1 评论 -
ROS入门之CmakeList.txt详讲
本文为进来学习的总结,记录了学习CmakeList.txt文档的各个步骤,适合从零开始理解CmakeList.txt,可能存在错误之处,望批评指正。0 Cmake的起源为什么有CmakeList.txt文档,这就要从C++说起了。在完成C++的代码之后想要把程序运行起来就需要把C++转换成可执行文件,具体来说,编译分为以下四个步骤:(1)预处理;(2)编译;(3)汇编;(4)链接。具体来讲,我们可以把前三部看成一个黑盒,调用相应的指令就可以帮助...原创 2021-07-18 18:12:49 · 2116 阅读 · 2 评论 -
基于人工势场法的UR5机械臂避障算法(Python)
[1]祝敬,杨马英.基于改进人工势场法的机械臂避障路径规划[J].计算机测量与控制,2018,26(10):205-210.原创 2021-05-31 22:10:03 · 5631 阅读 · 33 评论 -
双臂UR5的Gazebo配置
分别创建两个功能包,分别为dual_ur_description和dual_ur_gazebo,前者存放ur5的双臂模型文件,后者存放Gazebo的相关文件。在dual_ur_description原创 2021-06-21 14:56:43 · 1350 阅读 · 3 评论 -
UR5双臂Gazebo仿真(Python)
近来在Gazebo上搭了一个ur5双臂仿真平台。差不多就是以下这样。使用rostopic list查看一下话题,如下显然,采用/left_arm_controller/follow_joint_trajectory/goal和/right_arm_controller/follow_joint_trajectory/goal两个话题来控制双臂的运动。现在的问题是,如何保证双臂运动的一致性,即如何能保证双臂能同时接受到以上两个消息。思路一:设置/left_arm_controlle原创 2021-06-13 14:28:54 · 1721 阅读 · 9 评论 -
手写ROS程序控制ur5机械臂笛卡尔空间运动(Python)
本文不借助moveit!!!,所有运动学功能全部手写!!!一、ur5机械臂运动学csdn上诸多关于ur机械臂的正逆运动学求解思路,参考UR机械臂正逆运动学求解。由于多数开源代码基本为MATLAB所写,ur官方提供的求解算法为cpp文件,不方便python文件调用,故本文将主要要用到的运动学算法全部采用python语言重写,所有python模块已发布至https://github.com/Wujinshan/my_ur_kinematics。二、ur5的笛卡尔空间运动代码参考手..原创 2021-05-06 17:28:25 · 4542 阅读 · 4 评论 -
手写ROS程序控制ur5机械臂运动(Python)
最近想用ros来搭建ur机械臂的双臂平台,想先在gazebo中测试一下如何用自己手写的程序来控制ur机械臂运动,但网上的教程都局限在用moveit控制gazebo仿真环境下的ur运动,考虑到后期肯定会自己进行轨迹算法规划,用moveit的话想要更换算法太麻烦,于是干脆自己手写程序,不通过moveit来控制机械臂。Let's do it!!!首先,下载好ur机械臂仿真所需要的包依次运行如下命令:mkdir -p ~/你的工作空间名/srccd ~/你的工作空间名/srcgit clone原创 2021-04-28 17:10:07 · 9753 阅读 · 38 评论 -
ROS学习笔记(五)服务数据的定义与使用
与话题消息的定义与使用相似,可做对应参考。1.自定义服务数据在功能包中创建srv文件夹,在此文件夹中创建Person.srv文件,具体内容如下:string nameuint8 ageuint8 sexuint8 unknown =0uint8 male = 1uint8 female = 2---string result“---”上方为request的数据,即客户端(client)发送给服务器(service)的数据类型,下方为response数据,服务器端发送给客户端原创 2021-01-13 20:47:23 · 337 阅读 · 0 评论 -
ROS学习笔记(四)话题消息的定义与使用
代码示例资料来源:古月居《ROS入门21讲》第12讲两个节点之间发布和订阅一个名为person_info的话题1.创建功能包首先确定已经建立起工作空间catkin_ws,工作空间创建方法工作空间创建,然后进行如下操作。$ cd ~/catkin_ws/src$ catkin_create_pkg learning_topic roscpp rospy std_msgs创建名为learning_topic的功能包。2.自定义话题消息在功能包中建立msg文件夹,在该文件夹下创建名原创 2021-01-13 14:11:29 · 846 阅读 · 0 评论 -
ROS学习笔记(二):创建工作空间和功能包
1.工作空间(Workspace)是一个存放工程开发 相关文件的文件夹。包含以下四个文件夹:(1)src:代码空间(Source Space)。各种功能包均放置在此文件夹下。(2)build:编译空间(3)devel:开发空间2.创建工作空间创建工作空间:打开终端,输入以下命令$ mkdir -p ~/catkin_ws/src$ cd ~/catkin_ws/src$ catkin_init_workspace创建名为“catkin_ws”的文件夹,并创建此文件夹原创 2021-01-12 15:13:29 · 429 阅读 · 0 评论 -
ROS学习笔记(一):ROS中的核心概念
ROS中的核心概念1.通信机制2.节点与节点管理器2.1节点(Node)—— 执行单元执行具体任务的进程、独立运行的可执行文件;不同节点可使用不同的编程语言,可分布式运行在不同的主机;节点在系统中的名称必须是唯一的。2.2节点管理器 (ROS Master)—— 控制中心为节点提供命名和注册服务;跟踪和记录话题/服务通信,辅助节点相互查找、 建立连接;提供参数服务器,节点使用此服务器存储和检索 运行时的参数。为节点之间的通信建立桥梁,任何ROS程序必须先启动ROS Maste原创 2021-01-12 10:41:04 · 600 阅读 · 0 评论