自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 资源 (2)
  • 收藏
  • 关注

原创 机器人关节角qq评估关节角速度qv---高增益观测器

机器人关节角qq评估关节角速度qv---高增益观测器算法Python代码在机器人控制过程中,我们经常会用到关节角速度qv,甚至用到关节角加速度qa,但是机械臂往往只能采集关节角度,所以需要一种评估方法,能获得角速度和角加速度,采用差分是最简单的一种方法,但是关节角含有噪声,往往会使评估速度发散,本文采用介绍一种高增益观测器来评估角速度。算法1 高增益观测器方程2 高增益观测器改进方程,为消除固有尖峰现象,做如下改进3 采用双曲线性变换,获取离散方程Python代码毕业后上传!...

2020-06-29 16:59:25 1355 2

转载 卡尔曼滤波的原理(Python实现)

我们假设有一辆运动的汽车,要跟踪汽车的位置 p 和速度 v,这两个变量称为状态变量,我们使用状态变量矩阵  来表示小车在 t 时刻的状态,那么在经过 Δt 的时间之后,当前时刻的位置和速度分别为:                                      &nbs

2020-06-29 16:38:55 8457 5

原创 PyKDL---正运动学和逆运动学

PyKDL---正运动学和逆运动学正运动学串联机械臂运用过程中常用到正逆运动学,正运动学指的是已知关节空间变量关节角或角速度,求取操作空间的位置或速度;逆运动学是指已知操作空间的位姿或速度,求取关节空间的关节角或关节速度。正运动学...

2020-06-24 10:47:07 4200 1

原创 KDL简介---KDL、PyKDL、pykdl_utils之间关系

KDL简介---KDL、PyKDL、pykdl_utils之间关系KDLKDL库安装PyKDLPyKDL安装pykdl_utilspykdl_utils安装KDL是最常用的运动学和动力学库,但其有多个版本,C++的版KDL、Python版本有PyKDL和pykdl_utils,如何选择合适的版本需要我们对其有相关的了解,本文将介绍对应版本的关系。KDL先上官网链接https://www.orocos.org/kdl,官网原文介绍如下Skeleton of a serial robot arm wit

2020-06-24 10:29:49 3441

转载 ROS Package中的Python使用规范

参考: 1. https://answers.ros.org/question/192723/cant-find-python-scripts-after-sourcing/ 2. http://wiki.ros.org/PyStyleGuide最近需要在ROS下实现几个使用TensorFlow的Publisher和Server node,出现了搜索不到module或者ros找不到我的node的情况,所以在网上搜了下怎么管理用Python写的ros package,把问题解决了。这篇博客的前半部分都.

2020-06-23 09:28:36 537

原创 PyKDL---运动段、运动链和运动树

PyKDL---运动链和运动树机器人描述最小单元:Segment建立坐标:Frame关节描述:Joint连杆动力学参数:RigidBodyInertia串联机器人链:Chain建立树:tree如何描述机器人,这是一个很重要的问题,方法得当,可以大大简化问题,KDL采用段、链、树三个层级来描述机器人,可以方便地运用于串联和并联机器人。机器人描述最小单元:Segment首先,我们思考一个问题,描述机器人最小结构需要那些参数:关节、坐标、连杆质量、连杆惯性张量。在KDL中采用三个结构体来描述,关节、坐标,

2020-06-22 21:59:43 1836

原创 PyKDL---常用变量vector、Rotation、Frame等详解

PyKDL---变量详解三维向量:vector()旋转矩阵:Rotation()创建旋转矩阵旋转矩阵与其他姿态表示法的转换坐标系:Frame创建坐标系Frame使用Frame力螺旋:Wrench速度螺旋PyKDL库是KDL的python版本,可以在python中开发机器人的运动学和动力学,本文主要介绍PyKDL的一些常用变量。三维向量:vector()机器人领域,经常会用到三维向量表示点,例如坐标系的原定(0,0,0)等都需要用到三维向量表示,创建三维向量如下。# create a vectorv

2020-06-22 19:30:18 2929

原创 Python中---os模块详解

Python中---os模块详解os模块作用路径相关的函数文件相关函数系统相关函数判断相关函数os模块作用os模块提供了多数操作系统的功能接口函数在python编程时,该模块提供了大量操作文件路径的函数。路径相关的函数os.path.join(path,name):连接目录与文件名或目录os.getcwd:得到当前工作目录,即当前python脚本工作的目录路径。os.path.split():返回一个路径的目录名和文件名os.path.abspath(name):获得绝对路径os.path.

2020-06-20 19:12:17 295

转载 UR机械臂正逆运动学求解

最近有个任务:求解UR机械臂正逆运动学,在网上参考了一下大家的求解办法,众说纷纭,其中有些朋友求解过程非常常规,但是最后求解的8组解,只有4组可用。在这里我介绍一个可以求解8组解析解的方法,供大家参考。       以UR5机械臂结构和尺寸参数为例进行正逆运动学求解,下图分别是UR5结构图和标准DH系参数: 1. 正运动学求解正运动学是已知关节六个角度求变换矩阵T其中:整理得:带入DH参数,求解:    &nbs

2020-06-17 16:12:11 7869 3

转载 python多线程详解(超详细)

python中的多线程是一个非常重要的知识点,今天为大家对多线程进行详细的说明,代码中的注释有多线程的知识点还有测试用的实例。码字不易,阅读或复制完了,点个赞!import threadingfrom threading import Lock,Threadimport time,os''' python多线程详解 什么是线程? 线程也叫轻量级进程,是操作系统能够进行运算调度的最小单位,它被包涵

2020-06-14 10:54:21 1579

原创 Python写六维力传感器TCP通讯

Python写六维力传感器TCP通讯六维力传感器介绍基于TCP的internet通讯在控制领域经常被使用,如何方便快捷的使用该通讯?本文将介绍六维力传感器的TCP通讯基于Python的实现方法,该方法方便快捷,且代码量极少。六维力传感器介绍本文使用的是南宁宇立仪器有限公司的M3705C传感器,...

2020-06-13 10:15:32 1942 2

原创 Python字符串string处理详解

Python字符串处理技巧简单字符串处理建立字符串字符处理字符串是是编程中必不可少的部分,如何用python处理字符串一直是我的弱点,下文将介绍字符串处理方法。简单字符串处理建立字符串1 直接建立字符串>>> str1 = "My first string">>> print type(str1)<type 'str'>2 转换字符串>>> list_ = [1, 2, 3, 4]>>> str

2020-06-09 22:38:15 598

原创 gazebo连杆参数设置

gazebo连杆参数设置连杆参数表参照官网连杆参数表

2020-06-09 19:38:34 314

转载 gazebo .world文件中导入dae模型的问题

gazebo .world文件中导入dae模型的问题gazebo环境提供了很多可以直接导入的模型,如果想往环境中导入自己的静态模型,需将自己的模型转化为dae格式,并编写相应的.world文件。准备好dae文件Solidwork等建模软件无法导出dae格式的文件,可以用blender转成dae文件,导出时要选好单位,不然在gazebo中打开时模型的比例会有问题(按键盘N,在跳出来的栏目里找到dimension,看一下尺寸的单位对不对)。创建xxx.world文件<?xml ve.

2020-06-09 08:34:46 2212 1

原创 EtherCAT通信DS402协议----PDO映射

EtherCAT通信DS402协议----PDO映射PDO 映射PDO 分配PDO 映射的步骤EtherCAT 从站的过程数据由同步管理器通道对象组成,每个同步管理器通道对象描述了 EtherCAT 过程数据的一致性区域,并且包含多个过程数据对象。具备应用控制功能的EtherCAT 从站应该支持 PDO 映射和 SM-PDO-Assign 对象的读取。关于PDO的介绍可以参照我写的CanOpen通信----PDO与SDOPDO 映射PDO 映射涉及对象字典到 PDOs 的应用对象(实时过程数据)映射关

2020-06-08 10:12:04 7505 1

原创 CanOpen通信----PDO与SDO

CanOpen通信----PDO与SDO

2020-06-07 21:51:25 26052 5

原创 EtherCAT通讯DS402协议----控制模式

EtherCAT通讯DS402协议----控制模式控制模式查看和设定查看控制器支持的控制模式:6502h设置控制器的模式:6060h查看当前控制模式:6061h控制模式详解轮廓位置模式Profiled Position驱动器控制电机有多种模式,如轮廓位置模式、同步位置模式、同步速度模式等,不同的控制模式具有不同的特性,如何选择这些控制模式实现最优的性能是机器人开发中的一个重要课题。控制模式查看和设定当我们一款控制器时,可以通过6502h查看控制器支持的控制模式,然后通过6060h设置需要的控制模式,最

2020-06-07 16:26:32 13567 2

原创 关节伺服控制模式----轮廓位置模式Profile Position

关节伺服控制模式----轮廓位置模式Profile Position轮廓位置模式简介运动到一个点:set-point目标点变更无缓存目标点变更:single set-point有缓存目标点变更:set of set-point关节伺服控制,轮廓位置模式是最常用的模式,用于从一个点运动到另一个点(point to point),其也是控制模式中比较复杂的模式。该模式包含了两个部分,轨迹规划器和控制器,规划器一般采用梯形规划,控制器采用PI或PID控制器。轮廓位置模式简介轮廓位置模式,实际输入的是目标位置

2020-06-07 16:25:22 7281 2

原创 EtherCAT通讯DS402协议----Controlword和Statusword

EtherCAT通讯DS402协议----Controlword和Statusword控制字和状态字作用控制字:controlword控制字和状态字作用主站通过控制字(controlword)对驱动器控制,通过读取驱动器的状态字(statusword)获取驱动器的状态。驱动器的8种状态转换参照EtherCAT状态机详解控制字:controlword...

2020-06-07 10:18:09 15909 2

转载 python之struct详解

用处按照指定格式将Python数据转换为字符串,该字符串为字节流,如网络传输时,不能传输int,此时先将int转化为字节流,然后再发送;按照指定格式将字节流转换为Python指定的数据类型;处理二进制数据,如果用struct来处理文件的话,需要用’wb’,’rb’以二进制(字节流)写,读的方式来处理文件;处理c语言中的结构体;struct模块中的函数函数returnexplainpack(fmt,v1,v2…)string按照给定的格式(fmt),把数据转换成字符串(字节流),并将该字符串返回.pack_i

2020-06-06 16:49:43 1515

转载 UR机器人返回信息格式解析

1 概述UR机器人提供了多种端口,用于控制和读取机器人信息,本人整理了相关信息,见文章《UR机器人通信端口和协议》。本人使用了30003端口来向机器人发送URScript脚本控制命令,并通过该端口接收实时返回数据。2 UR返回信息协议解析2.1 返回数据包频率和长度由于30003端口返回的信息是最全的,包含了30001、30002端口的返回信息,因此,这里以30003端口信息解析。30003端口返回数据频率一般是125Hz,即每8ms即返回一个数据包,最高频率能达到500Hz。个人实测,返回数

2020-06-05 17:11:53 1879

转载 UR机器人通信端口和协议

1 概述UR机器人作为目前使用广泛的协作机器人,其开放了基于TCP/IP的远程控制功能,提供了多个多类型的端口,用于工业总线控制,或者用户自行编程控制,以下记录整理此方面的信息。2 UR机器人通信2.1 UR通信协议UR机器人可通过TCP/IP通信,向机器人发送控制命令,以及从机器人获取状态信息。2.2 UR通信端口UR机器人通信时提供了以下接口,我们可以根据自己需要,使用其中的一种或多种。表1 机器人作为服务器的通信端口端口端口描述502Modbus TCP协议,机器人

2020-06-05 17:05:39 4013

转载 Ubuntu16+ROS驱动UR机器人(仿真+实体)

首先已经完成了Ubuntu16.04的安装,可以参考https://www.cnblogs.com/masbay/p/10844857.html一、安装ROS1.1安装源sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'1.2设置keysudo apt-key adv --keyserver '

2020-06-05 15:31:14 2105

原创 EtherCAT基于SOEM建立主站程序

simple_test.c解读基于SOEM创建主站步骤主要函数介绍ecx_init函数ecx_config_init函数ecx_config_map_group函数simple_test.c文件基于SOEM创建主站步骤主要函数介绍ecx_init函数功能:初始化SOEM,将socket绑定到ifnameecx_init函数定义在ethercatmain.h文件,其有两种参数形式,由于大部分函数都是这两种格式,所以后文将不做区分处理。int ec_init(const char * ifname)

2020-06-05 14:55:57 7026 6

原创 EtherCAT及SOEM主站技术术语

EtherCAT及SOEM主站名词解释EtherCAT常用名词EtherCAT常用名词SII: Slave Information Interface,从站信息接口ESI: EtherCAT Slave Interface,从站站信息ENI: EtherCAT Network Information,网络信息文件,XML格式,描述了从站的拓扑结构和初始化指令。...

2020-06-05 08:42:09 1600

转载 EtherCAT主站SOEM源码解析----同步管理器SM配置

本文介绍SOEM(Simple Open Source Master)如何配置从站的SM(SyncManager)寄存器。基于SOEM-1.3.1。 1、SM寄存器SM配置寄存器从0x800开始,每个通道使用8个字节,如下图所示: 其中,物理起始地址和控制寄存器使用从站EEPROM中的值,长度根据PDO中映射的数据长度计算。2、寄存器初始化初始化过程中,SOEM会通过SII接口读取从站EEPROM中SM信息(分类信息类型为41),并赋给相应的结构体,具体代码在/soem/Etherc

2020-06-04 22:03:20 3430

转载 EtherCAT主站SOEM源码解析----EEPROM访问

SOEM(Simple Open EtherCAT Master)是一个开源的EtherCAT主站。本文介绍其中读取从站EEPROM信息的步骤。1、ESC EEPROM访问控制寄存器从站控制芯片ESC EEPROM控制寄存器如下: 2、读EEPROM步骤 读的一般步骤为: (1) 读取EEPROM控制/状态寄存器0x0502:0x0503的内容,确认EEPROM没有处于Busy状态 (2) 向0x0502:0x0503写入读控制命令,写入的值为0x0100,向0x0504:0x050

2020-06-04 21:47:04 1710

转载 EtherCAT主站SOEM源码解析----ecx_siiPDO()

1、从站EEPROM的PDO信息从站EEPROM存储的PDO信息如下如所示: TxPDO的类型名为50(0x0032),RxPDO的类型名为51(0x0033). 每个PDO占用的EEPROM字节数为8+8*er(er位Entry个数)。2、读取PDOx信息SOEM中函数ecx_siiPDO()读取EEPROM中PDO信息并: (1) 统计每个SM所对应的bit length (2) 返回bit length的总和。int ecx_siiPDO(ecx_contextt *contex

2020-06-04 21:30:36 1245

转载 EtherCAT主站SOEM源码解析----Raw Socket

SOEM使用Raw Socket收发EtherCAT帧,通过系统调用bind、send和recv实现EtherCAT通信。1、创建Socket初始化函数ec_init(ifname)最终会调用/oshw/linux/nicdrv.c下的以下这个函数完成绑定网卡和创建1个Raw Socket。int ecx_setupnic(ecx_portt *port, const char *ifname, int secondary)Line179:/* we use RAW packet socket,

2020-06-04 20:27:42 1408

转载 EtherCAT主站SOEM源码解析----IOmap

SOEM通过函数ec_config_map(&IOmap)完成逻辑地址和物理地址的映射,应用程序需要定义一个数组IOmap,例如: char IOmap[4096]; 完成映射后,应用程序就可以通过读写数组IOmap[]来完成与从站的数据交换。1、映射关系SOEM首先将所有从站的输出映射到IOmap[]的开始位置,然后是输入,如下图所示: 2、具体实现函数ec_config_map(&IOmap)最终会调用/soem/EthercatConfig.c中的以下函数

2020-06-04 20:17:45 1985

原创 EtherCAT数据帧及SOEM报文数据结构介绍

EtherCAT数据帧及SOEM报文数据结构介绍EtherCAT数据帧结构介绍总报文子报文EtherCAT数据帧结构介绍总报文参照电子科技大学,蒲婉玲的学位论文“EtherCAT 主站与从站设计与实现”,Ether CAT 通信帧结构采用标准以外网帧结构,是通过对传统协议进行修改形成,在标准协议里插入专用帧类型的 Ether CAT 数据帧,也就是说,标准协议的数据内容就是 Ether CAT 的数据帧。专用帧类型用 0x88A4 进行标记。也因为如此,Ether CAT 通信可被标准的以太网通信完全

2020-06-04 19:50:26 5589 1

原创 EtherCAT状态机详解

EtherCAT状态机详解canopen over ethercat参考模型网络状态机 EtherCAT State Machinecanopen over ethercat参考模型从下图中可以看出,运行模型可以分为如下几层1 商家软件运用层2 基于CANopen DS402运用层3 数据链路层4 物理连接层网络状态机 EtherCAT State Machine网络状态机如下图所示对应功能介绍:...

2020-06-04 16:33:59 8693

原创 SOEM主站软件包及函数头文件介绍

SOEM主站软件包介绍下载软件包地址主要函数介绍下载软件包地址在github上直接下载代码包下载地址:https://github.com/OpenEtherCATsociety/SOEM或者在开源社区获取:地址:https://openethercatsociety.github.io/下载解压后,有如下文件主要函数介绍引用sucre的介绍,主要函数功能如下...

2020-06-03 17:11:51 1884 2

原创 gazebo添加末端六维力传感器

gazebo添加末端六维力传感器建立六维力矩传感器模型将传感器拼接到机器人模型配置传感器gazebo参数常用的机器人只支持位置控制,但实际运用中,却对末端力控制有迫切的需求,其中一种常用的方法是基于位置的阻抗控制(也称为导纳控制)实现对末端的力控。该方法只需要增加一个末端六维力传感器,就能实现机械臂的力柔顺控制,在现实中很容易实现,但是在gazebo中没有提供专用的末端六维力传感器模块,这个问题困扰了我很久。为了解决这个问题,我让实验室的师弟专门研究了一段时间,结果他直接采用关节传感器(ros_cont

2020-06-03 11:34:31 2541 3

转载 机器人URDF文件和xacro文件介绍

1. 关于URDF的一些杂谈URDF(Unified Robot Description Format), 是一种特殊的xml文件格式, 作为机器人的一种描述文件, 在ROS里面大量使用. 接触ROS比较久的同学, 应该会经常见到一种类似命名的包(package) – xxx_description. 这个包里面就是包含某个机器人的描述文件. 比如pr2_decription, baxter_descrition, 以及ur_description等. 上述举例的机器人描述包都是可以通过apt-get的方

2020-06-02 20:07:54 8529 2

原创 ROS中gazebo配置教程详解

ROS中gazebo配置教程详解机器人模型文件获取原始URDF模型文件采用xacro格式改写文件增加gazebo插件描述增加传动transmission最后将上面三个文件合成一个文件环境XX.world文件配置文件××.yaml每次配置机械臂到gazebo中都要浪费很多时间,网上教程多而杂乱,如何快速合理配置是机械臂参数,启动gazebo是一个困扰我很久的问题,本文将详细写每个配置过程。将机器人模型导入gazebo并可以实现控制和数据采集所需步骤:1.安装gazebo,最好是比较新的版本2.机器人

2020-06-02 18:07:29 5592 2

转载 Solidworks模型转换到URDF格式并配置Moveit的详细教程

URDF(Universal Robot Description Format)——通用机器人描述格式,它是ROS里边使用的一种机器人的描述文件,包含的内容有:连杆、关节,运动学和动力学参数、可视化模型、碰撞检测模型等。到目前为止,本文的主要内容有两个:(1)将solidworks里绘制的三连杆机械臂的三维模型转化为URDF文件,并在rviz中打开;(2)在rviz中测试该模型的逆运动学。一, 将Solidworks模型转化为URDF文件下载sw_urdf_exporter插件:下载ROS提供的s

2020-06-01 22:00:15 8627 6

原创 ROS中rviz使用教程

ROS中rviz使用教程rviz安装启动rviz命令行启动rviz通过launch文件启动rviz plugin 二次开发界面在机器人控制过程中需要显示机器人的各种状态,例如机械臂的运动状态、受力状态等,ROS称为机器人的操作系统,其强大的功能覆盖各个方面,ROS提供的rivz可以实现各种数据的显示,同时其也提供二次开发的插件,可以打造个性化的机器人的控制界面。rviz安装安装ROS完整版时,rviz会自动安装,如果没有安装,可以通过下面命令安装sudo apt-get install ros-ki

2020-06-01 21:44:19 30898 1

转载 ROS中启动文件launch文件详解

ROS中xxx.launch文件详解.launch文件是ROS中用于同时启动多个节点的重要文件,在大型的ROS项目中使用频繁,所以掌握其主要元素与属性对ROS系统的应用至关重要:launch标签(元素)说明launch拓展说明parameter说明1. 标签(元素)说明- 以launch标签开头以表明是launch文件.- group标签定义命名空间.<group ns="turtlesim1"> <node pkg="turtlesim" name=".

2020-06-01 17:11:21 3493

转载 ROS中CMakeLists.txt文件详解

这篇文章是有关ROS中catkin CMakeLists.txt使用的内容。CMakeList.txt文件是CMake编译系统编译软件包过程的输入文件。任何CMake兼容包都包含一个或多个CMakeLists.txt文件,这些文件描述了如何编译代码以及将其安装到哪里。将CMakeLists.txt文件应用于一个catkin项目时,它就作为一个标准的附带一些限制条件的vanilla CMakeLists.txt文件。使用CMake编译程序时,cmake指令依据CMakeLists.txt 文件生成makef

2020-06-01 15:08:18 3462

EtherCAT技术.zip

内容:一篇EtherCAT论文,EtherCAT使用手册,DS301和DS401协议手册,一篇EtherCAT技术介绍,一篇i3系列驱动器技术手册

2020-06-04

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除