自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 资源 (10)
  • 收藏
  • 关注

原创 V-REP笔记:MATLAB联合仿真

STEP1:配置环境将CoppeliaSim_Edu_V4_0_0_Win\programming\remoteApiBindings\lib\lib\Windows下的remoteApi.dll和CoppeliaSim_Edu_V4_0_0_Win\programming\remoteApiBindings\matlab\matlab下的remApi.m、remoteApiProto.m拷贝到项目目录下STEP2:配置V-REP端V-REP是server端,在机器人后面添加控制脚本的接口ST

2020-08-28 11:51:18 3354

原创 关于RPY角的旋转顺序问题

转动的时候,XYZ分别都是绕着原来的固定坐标系旋转的,所以旋转矩阵是左乘的,即:Rxyz(α,β,γ)=RZ(γ)RY(β)RX(α)R_{xyz}(\alpha,\beta,\gamma)=R_Z(\gamma)R_Y(\beta)R_X(\alpha)Rxyz​(α,β,γ)=RZ​(γ)RY​(β)RX​(α)式中,先绕原来的坐标系X轴旋转α\alphaα,再绕原来坐标系Y轴旋转β\betaβ,最后绕原来坐标系Z轴旋转γ\gammaγ绕z轴旋转pitch:绕y轴旋转yaw:绕x轴.

2020-08-28 11:50:13 5582 5

原创 关于伪逆的问题

结论:对于矩阵J的左逆:J−=(JTJ)−1JTJ^- = (J^TJ)^{-1}J^TJ−=(JTJ)−1JT对于矩阵J的右逆J+=JT(JJT)−1J^+ = J^T(JJ^T)^{-1}J+=JT(JJT)−1零空间向量Av=0,其中v是A的零空间向量Av=0,其中v是A的零空间向量Av=0,其中v是A的零空间向量参考:MIT—线性代数笔记33 左右逆和伪逆验证:A = [1 8 15 67; 7 14 16 3]% A的零空间向量Z = null(A)Z =

2020-08-28 11:49:08 371

原创 四元数笔记(2)—— 四元数的应用

1. 旋转2. 四元数的差3. 四元数的幂运算4. 利用四元数的插值(1)Slerp插值法(2)SQUAD插值法(3)使用四元数插值的优缺点优点:缺点:(4)例程(5)四元数插值与均值(姿态平滑)5. 四元数与旋转矩阵间的转换6. 四元数的取反特性

2020-08-28 00:58:46 1819

原创 四元数笔记(1)—— 四元数及其运算

0. 四元数的前世今生1. 四元数的一般形式2. 四元数的加减3. 四元数的乘积4. 实四元数与纯四元数5. 单位四元数6. 四元数的二元形式7. 四元数的共轭8. 四元数的范数9. 四元数的规范化10. 四元数的逆11. 四元数的点积

2020-08-28 00:58:00 2270 2

原创 static对变量及函数的影响

文章目录1. static修饰的变量2. static修饰的类成员变量3. static修饰的函数4. static修饰的类成员函数Summary在C/C++中,局部变量按照存储形式可以分为以下三种:auto、static、register。默认是auto,auto类型(普通)局部变量分配于栈上,属于动态存储类型,函数调用完成之后会存储空间自动释放。而static局部变量分配于静态存储区(初始化分配于data区,未初始化分配于BSS区),函数调用完成之后不释放。static修饰全局变量或函数时,

2020-08-20 21:35:54 889 1

原创 ROS学习笔记19 —— launch文件的关键字

描述了roslaunch运行的节点,选项包括pkg、type和name。这里的中的name表示参数的名称,default表示参数默认的值。如果需要设置别的值,可以在roslaunch命令中加入节点名。中pkg、type、name字段含义如下:pkg 功能包名称。type 实际运行的节点的名称(节点名)。name 与上述type对应的节点被运行时,起的名称(运行名)。一般情况下使用与type相同的名称,但可以根据需要,在运行时更改名称。..

2020-08-20 21:34:43 915

原创 运动规划中C空间的理解

先上结论: 在构型空间(也就是C空间中),不管机器人的构型如何,有几个自由度,它在构型空间中都只是一个点!!!

2020-08-20 21:31:19 4455 1

原创 机械臂的零空间(nullspace)及零空间阻抗等相关控制的实现概论

文章目录1. 什么时候会出现零空间2. 零空间控制的基本原理3. 应用4. 说明5. 零空间阻抗控制6. 任务优先级控制7. 无反作用零空间先来三幅经典的案例图:1. 什么时候会出现零空间当末端保持不动,而其他关节可转动时,这些所有能转动的位形即构成零空间。对于冗余机器人,由于机器人自由度大于空间自由度,因此在任何时候都能出现;对于非冗余的情况,当机器人自由度大于要控制的空间自由度时,也会出现(如只控制末端位置而不管姿态的情况下);即:∃q˙,Jq˙=0\exists \dot q

2020-08-20 21:30:48 9649 3

原创 Markdown超链接本地文件

[test](test.txt)[test2](test2.md)[test3](aaa/test3.md)

2020-08-20 21:29:26 19055 5

原创 ubuntu添加第三方python库路径

python的第三方库的 安装方式:1. pip工具管理2. 下载源码包后使用`setup.py`安装3. 如果不想安装在python的默认库目录,临时添加可在程序中使用:`sys.path.append("/路径")`或者`sys.path.insert(0, "/路径")`,其中`0`表示最大优先级,定义所有路径的优先顺序

2020-08-20 21:27:41 5765

原创 Linux配置动态库路径的方法

解决方案:使用LD_LIBRARY_PATH环境变量来配置,具体操作见案例。LD_LIBRARY_PATH是Linux环境变量名,该环境变量主要用于指定查找共享库(动态链接库)时除了默认路径之外的其他路径。设置完成后,动态链接器会优先在该变量设置的路径中查找,若未找到则在标准库路径/lib和/usr/lib中继续查找。案例: 调用/mylib下的test.sogedit ~/.bashrc# 键入:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/m

2020-08-20 21:26:43 1223

原创 MathType与Word对应的字体关系

初号44pt小初36pt一号26pt小一24pt二号22pt小二18pt三号16pt小三15pt四号14pt小四12pt五号10.5pt小五9pt六号7.5pt小六6.5pt七号5.5pt八号5pthttps://www.mathtype.cn/jiqiao/mtahtype-ziti.html

2020-08-11 19:52:08 7064

原创 一阶RC低通滤波算法原理与实现

一阶滤波,又叫一阶惯性滤波,或一阶低通滤波,软件实现RC低通滤波器的功能。 - 滤波系数越小,滤波结果越平稳,灵敏度越低- 滤波系数越大,灵敏度越高,但滤波结果越不稳定一阶滤波无法完美地兼顾灵敏度和平稳度。有时,我们只能寻找一个平衡,在可接受的灵敏度范围内取得尽可能好的平稳度。而在一些场合,我们希望拥有这样一种接近理想状态的滤波算法。即:当数据快速变化时,滤

2020-08-09 12:46:14 29527 7

原创 连续PID的离散化及代码实现

1. 公式比例项可以让系统尽快达到一个小的误差范围,积分项对比例项作用产生的误差进行积分,也就是放大产生的误差,让其更快达到目标,但这时会导致系统过冲量较大,微分项的引入会抑制过冲。作用:P:加快调节速度I:减小误差,从而消除静差D:改善系统的动态性能进行离散化处理假设系统采样时间为△t△t△t,e(t)e(t)e(t)将序列化为:将输出u(t)u(t)u(t)序列化得到:比例项:积分项:微分项:因此,连续PID式变为:上式即为位置式PID。实.

2020-08-09 10:30:06 4764 1

原创 实现周期控制的两种方案

sleep方案思路:循环中执行任务,执行完任务后,计算该周期剩余的时间,通过sleep休眠该时间例如,ros中的Rate就是实现的这种方案,文章末尾附上Rate的源码ros::Rate r(10);//10HZwhile(ros::ok()){ // 其他任务 r.sleep(); //使用Rate对象调整休眠时间,考虑循环中其他任务占用的时间,确保让整个循环的频率是 10hz }定时器方案思路:定义一个定时器,使其到达下一周期时自动触发要执行的任务Note:无论哪.

2020-08-09 10:29:28 1941

原创 伺服电机的几种常用模式及控制模式的设置(DS402)

文章目录1. 常用模式2. 控制模式的设置(EtherCAT通讯DS402协议)(1)查看控制器支持的控制模式(2)设置控制器模式(3)查看当前控制模式1. 常用模式回零模式 (Homing Mode):顾名思义,用于寻零轮廓位置模式(Profile Position Mode):上位机给定目标绝对/相对位置、速度、加减速参数,伺服内部的轨迹发生器根据以上参数生成目标位置曲线指令,经由驱动器内部实现三环控制轮廓速度模式(Profile Velocity Mode):上位机给定目标速度

2020-08-09 10:29:01 22891 3

原创 Shell脚本执行sudo命令及密码隐藏方案

执行sudo方案:echo "yourPasswd" | sudo -S chmod 777 /dev/ttyUSB*密码隐藏方案:将密码存到一个隐藏文件.pass.txt中,将这个隐藏文件放到一个文件夹中(以/root为例),设置该文件权限修改为不允许修改不允许删除解除权限chattr -i /root/.pass.txt实际使用的时候:password='</root/.pass.txt'实际,没啥用,该看到还是能看到……...

2020-08-08 19:01:41 2549

原创 Ubuntu开机自启动脚本/命令的几种方案

文章目录1. /etc/init.d方法2. gnome-terminal方法间接启动法:直接启动法:3. rc.local方法update-rc.d的详细参数测试脚本:#!/bin/bash# test.shcd /home/Desktop/lsecho "OK!"exit 01. /etc/init.d方法sudo mv test.sh /etc/init.d/sudo chmod 777 test.shsudo update-rc.d test.sh defaults

2020-08-08 19:01:20 25802 3

原创 Linux虚拟串口程序(python版)

#! /usr/bin/env python#coding=utf-8import ptyimport osimport selectdef mkpty(): # 打开伪终端 master1, slave = pty.openpty() slaveName1 = os.ttyname(slave) master2, slave = pty.openpty() slaveName2 = os.ttyname(slave) print '\nslav

2020-08-08 19:00:15 985

原创 Linux下图形化的串口调试助手

sudo apt install cutecom

2020-08-08 18:56:23 1291

原创 python3 多线程的实现

1. _thread方法_thread 提供了低级别的、原始的线程以及一个简单的锁import _threadimport time# 定义线程函数1def print_test1(): while 1: print("我是子线程1") time.sleep(1) def print_test2(argsValue): while 1: print(argsValue) time.sleep(1)

2020-08-08 18:55:09 398

原创 ROS学习笔记18 —— 时间及定时器的使用

1. Time和Durationroscpp库中给出了两种时间表示方法:ros::Time:Time指的是某一时刻ros::Duration:Duration指某一时段,可为负数二者共同成员:int32 secint32 nsec使用案例:#include <ros/time.h>#include <ros/duration.h>int main(){ //获取当前时间 ros::Time begin=ros::Time::now();

2020-08-08 18:54:26 3344

原创 python面向对象编程

文章目录1. 类的定义及使用2. 类继承3. 对象销毁4. 方法重写5. 重载6. 私有属性及方法1. 类的定义及使用在类的内部,使用 def 关键字可以为类定义一个方法,与一般函数定义不同,类方法必须包含参数 self,且为第一个参数Python2:#!/usr/bin/python# -*- coding: UTF-8 -*- class Employee: '所有员工的基类' empCount = 0 def __init__(self, name, salar

2020-08-08 18:53:56 237

原创 python中命名空间和作用域

1. 命名空间Python 的查找顺序为:局部的命名空间去 -> 全局命名空间 -> 内置命名空间命名空间的生命周期取决于对象的作用域,如果对象执行完成,则该命名空间的生命周期就结束。因此,我们无法从外部命名空间访问内部命名空间的对象!# var1 是全局名称var1 = 5def some_func(): # var2 是局部名称 var2 = 6 def some_inner_func(): # var3 是内嵌的局部名称

2020-08-08 18:52:54 218

原创 python中__init__.py的使用

1. __init__.py__init__.py 文件的作用是将文件夹变为一个Python模块,Python 中的每个模块的包中,都有__init__.py 文件.我们在导入一个包时,实际上是导入了它的__init__.py文件。这样我们可以在__init__.py文件中批量导入我们所需要的模块,而不再需要一个一个的导入。.└── mypackage ├── __init__.py ├── subpackage_1 │ ├── test11.py │ └──

2020-08-08 18:52:22 1073

原创 ROS中Python的使用:rospy

文章目录1. 发布者和订阅者2. CompressedImage类型的订阅者和发布者3. 服务端和客户端4. action服务端和客户端5. TF树的使用广播变换监听变换增加参考系广播移动的参考系6. 其他(1)使用参数(2)使用日志(3)节点的初始化及关闭(4)名称和节点信息(5)时间(6)异常风格:所有Python代码必需放在一个模块的命名空间ROS导出源码到依赖所在的路径,因此不能跟其他人的导入冲突推荐使用模块名作为包名# 不带msg/srvs的情况下:packagename |

2020-08-08 18:51:51 11395 1

原创 Linux高精度定时器的实现

linux使用select实现精确定时器详解Linux下实现定时器Timer的几种方法总结LINUX内核定时器(高精度&低精度)实现循环定时Linux时间子系统之六:高精度定时器(HRTIMER)的原理和实现linux下jiffies定时器和hrtimer高精度定时器...

2020-08-05 20:32:46 1464

转载 C/C++中的计时器

文章目录1. time()函数2. clock()函数3. gettimeofday()函数 —— Linux4. RDTSC指令计时 —— Linux5. timeGetTime()函数 —— Windows6. QueryPerformanceCounter()函数和QueryPerformanceFrequency()函数 —— Windows7. GetTickCount()函数 —— Windows8. RDTSC指令 —— Windows9. GetSystemTime / GetLocalTi

2020-08-05 16:47:03 3911

转载 Qt/C/C++ 计算时间差的几种方法

Qt计算时间的两种方法:QTime elapsed(): msQTime currentTime():msC++计算时间的五种方法:clock():msGetTickCount():msgettimeofday(time_val*, NULL):usQueryPerformanceFrequency(LARGE_INTEGER*) & QueryPerformanceCounter(LARGE_INTEGER*):ustime(NULL):s#include <QTh

2020-08-05 15:58:31 3778

原创 伺服系统三环的控制频率

伺服系统一般由三环控制,即电流环、速度环和位置环,其中电流环为最内环,位置环为最外环。三环的控制频率由它们坐在环中的位置决定,位置越靠内,频率越要高才行。基于力矩控制时,驱动器只需要工作在电流环下即可;基于速度控制时,驱动器需要由电流环和速度环实现;基于位置控制时,驱动器需要三环控制;由此可知,位置环频率决定速度环频率,速度环频率决定电流环频率。当需要更高的运动精度时,位置环频率就需要越高,因此位置环频率是由系统决定的。理论上来讲,3环的频率越高越好,但高频率受硬件计算力的影响,频率越高就

2020-08-05 09:50:39 4061 3

原创 伺服系统设计中几个概念理解及三环优化

几个概念:伺服采样周期:即两次采样的时间间隔。对速度环、位置环而言,是对编码器采样,对电流环而言,是对霍尔元件或者电流互感器采样伺服采样周期、伺服循环周期和响应时间为衡量伺服运动控制性能的重要指标伺服循环周期:指PID计算循环时间,也是伺服设定值循环时间。此处伺服设定值指伺服通过采样,经过PID计算后给出的设定值,而不是指上位机发给伺服的设定值,通常上位机设定值周期大于伺服PID计算设定值周期。这实际上很容易理解,因为给定一个设定值,系统需要响应,上位机设定值必须大于这个响应周期才可以

2020-08-05 09:28:35 4740

原创 关于深度强化学习的一点记录

深度强化学习(Deep Reinforcement Learning): 简称DRL,是将深度学习的感知能力和强化学习的决策能力相结合的一种更接近人类思维方式的AI方法。深度学习(Deep Learning):建立模拟人脑进行分析学习的神经网络,通过模拟人脑机制来解释图像、声音、文本等数据。在计算机视觉、语音识别及自然语言处理等领域得到广泛应用。强化学习(Reinforcement Learning):智能体以试错的方式进行学习,通过与环境进行交互获得的奖赏来指导行为。由于外部环境提供的信息很少,所以

2020-08-03 10:06:56 308

ROMANSY 22 – 机器人设计、动力学和控制 第 22 届 CISM IFToMM 研讨会论文集

ROMANSY 22 – 机器人设计、动力学和控制 第 22 届 CISM IFToMM 研讨会论文集,2018 年 6 月 25 日至 28 日,法国雷恩 会议论文集 2019 本论文集包含经过审查后选出的论文,将在 ROMANSY 2018(第 22 届 CISM-IFToMM 机器人和机械手理论与实践研讨会)上进行口头报告。这些论文涵盖了机器人领域在机器人和机械手理论与实践方面的多个方面的进展。 ROMANSY 2018 是 1973 年开始的系列活动的第 22 届,是世界上首批机器人会议活动之一。第一届活动于 1973 年 9 月 5 日至 8 日在意大利乌迪内的 CISM(国际机械科学中心)举行。这也是 IFToMM(国际机械科学促进联合会)的第一次主题会议,不仅针对 IFToMM 社区。

2024-08-10

openrave自动安装脚本(已做加速处理)

openrave自动安装脚本,已做加速处理,极大的提高安装效率,使用说明参见README.md文档,脚本支持如下版本系统: - Ubuntu 14.04 - Ubuntu 16.04 - Ubuntu 18.04 - Ubuntu 20.04

2024-06-04

Aitken加速牛顿法收敛的案例

基于7次多项式的求根问题,分别给出牛顿迭代、使用Aitken加速牛顿迭代的对比,测试发现前者耗时是后者的4倍,即耗时缩短为原来的25%

2024-04-25

Soft Robotics for the Hydraulic Atlas Arms带碰撞检测和扰动补偿的关节阻抗控制论文及仿真

Soft Robotics for the Hydraulic Atlas Arms: Joint Impedance Control with Collision Detection and Disturbance Compensation一文的论文及配套仿真文件。

2024-04-08

UR/优遨机器人RTDE(实时数据交换)教程、手册及SDK

资源包含:官方参考文档、SDK及三方教程例程等 实时数据交换(RTDE)SDK提供了一种通过标准TCP/IP连接将外部应用程序与UR控制器同步的方法,而不会破坏UR控制器的任何实时属性。该功能在与现场总线驱动程序(如以太网/IP)交互、操纵机器人I/O和绘制机器人状态(如机器人轨迹)等方面非常有用。在UR控制器运行时,RTDE接口默认可用。

2022-01-19

UR/优遨机器人RTDE(实时数据交换)SDK

实时数据交换(RTDE)SDK提供了一种通过标准TCP/IP连接将外部应用程序与UR控制器同步的方法,而不会破坏UR控制器的任何实时属性。该功能在与现场总线驱动程序(如以太网/IP)交互、操纵机器人I/O和绘制机器人状态(如机器人轨迹)等方面非常有用。在UR控制器运行时,RTDE接口默认可用。

2022-01-19

UR机器人/优遨机器人实时数据交换手册

实时数据交换(RTDE)接口提供了一种通过标准TCP/IP连接将外部应用程序与UR控制器同步的方法,而不会破坏UR控制器的任何实时属性。该功能在与现场总线驱动程序(如以太网/IP)交互、操纵机器人I/O和绘制机器人状态(如机器人轨迹)等方面非常有用。 • Introduction • Key features • Field names and associated types o Robot controller inputs o Robot controller outputs • Data types • Protocol o Header o RTDE_REQUEST_PROTOCOL_VERSION Return o RTDE_GET_URCONTROL_VERSION Return o RTDE_TEXT_MESSAGE (protocol v. 1) o RTDE_TEXT_MESSAGE (protocol v. 2) o RTDE_DATA_PACKAGE o RTDE_CONTROL_PACKAGE_SETUP_OUTPUT

2022-01-19

Power PMAC伺服自定义算法PID.zip

Power PMAC伺服自定义算法PID.zip

2021-01-26

symoro使用方法

介绍了symoro的一些参数介绍和实现程序的公式,指出了一些symoro中与平时常见符号表示不同的地方。

2020-05-07

force_control-master.zip

机械臂力控代码,利用位置内环和腕式FT传感器实现了6D笛卡尔空间力-速度混合控制。这是一个ROS包。将此repo复制到catkin工作空间源文件夹中,然后编译。

2020-04-18

N2能力考试计算方法.xlsx

N2能力考的分数计算方法,包括每个模块的分数及正确率,最终判断是否符合能力考要求,具体需要根据真题的题量来进行微调

2019-11-25

TestTcpClient1.zip

基于libmodbus库的Modbus TCP 的Client端的Demo,测试可以使用

2019-07-15

floatToShortMain.cpp

该段代码的内容是:把float类型数据在不丢失精度的前提下拆分成两个short型数据,验证结果的正确性后,再将两个short型数据合成float数来显示。 作用:主要用于数据传输,尤其是控制领域,需要将float数分成几部分传输的情况

2019-06-19

空空如也

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

TA关注的人

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