- 博客(119)
- 资源 (21)
- 收藏
- 关注

原创 机器人控制与轨迹规划
目录1.六自由度机械臂逆解仿真2. 小车(移动机器人)仿真平台3.轨迹规划4. 六自由度工业机器人DH建模与逆运动学仿真5. 机械臂轨迹规划matlab、Vrep联合仿真6. 粒子群轨迹规划7. 样条曲线轨迹规划8. 人形机器人控制仿真9. NUBUS五次非均匀B样条轨迹规划及机械臂仿真10.五次&三次多项式连续轨迹规划11. 主从机械臂||双机械臂跟随控制1.六自由度机械臂逆解仿真内容简介:六自由度机械臂逆运动学仿真,通过给定圆形轨迹,实时求
2021-01-03 09:44:12
11940
1

原创 小车(移动机器人)仿真平台
实现效果:(1)以等腰三角形表示一个小车,三角形顶点指向为小车的朝向,即前进方向。如下图所示,那么我们只要求用三角形表示,而不是图中的形状其运动学模型如下:(2)可以在窗口输入给定的线速度和角速度以驱动小车的运动,它们可以是时间序列数据,也可以是小车的位置(xc和yc)和方向(θ)的函数。(3)两个按钮,一个执行小车驱动任务并动态绘制小车的运动轨迹,一个退出仿真平台。(4)利用快捷菜单,对所得轨迹曲线进行设置;(5)界面以"小车仿真"为名,溢出默认的菜单,自定义一级菜单.
2020-07-13 19:27:21
768

原创 C++自动查询/搜索串口号
在VS平台上用C++查找串口号,采用注册表搜索串口号的方式,本程序直接将搜索到的串口号用阿拉伯数字打印到DOS屏幕上,相关代码如下:#include "stdafx.h"#include<iostream>#include<Windows.h>using namespace std;int GetComList_Reg(){ HKEY hkey; ...
2018-10-02 19:54:41
3464

原创 VS相对路径设置(VS路径配置)
在VS的工程中常常要设置头文件的包含路径,通常一般会选择使用相对路径,但是这样设置的坏处也显而易见,那就是你写的代码只能在你的电脑上使用,如果换一台电脑那么你的程序就用不了。因为在你的电脑上的路径不一定就是在别人电脑上的路径,比如配置opencv的时候你电脑的opencv可能安装在C盘下的某个文件夹而别人的可能安装在D盘的某个文件夹。所以要想使用你就必须重新配置一下你的程序。另外,有的时候头文...
2018-03-02 09:51:53
31644
6

转载 static_cast 用法
原文地址:http://blog.youkuaiyun.com/jofranks/article/details/7828331用法:static_cast ( expression ) 《C++primer 第四版》中说编译器隐式执行的任何类型转换都可以由static_cast显式完成!要注意的是,此转换没有运行时检测安全!他不能转换掉expre
2017-09-08 16:48:29
1066

原创 Matlab2016 与vs2015 混编(生成dll动态链接库)
关于混编的配置请移步下面的博客,笔者用的是Matlab2016b与Matlab2016进行混编的。 http://blog.youkuaiyun.com/wind_liang/article/details/51402224 博客里面非常详细的讲解了应该如何配置 Vs 以及利用matlab生成 dll 文件,这里不再赘述。混编期间遇到了不少的问题,下面主要将遇到的问题写
2017-08-25 15:51:11
12967
10

原创 构造函数的调用时机/次数
一个变量只能调用一次构造函数,那就是在定义变量的时候调用,除非变量为局部变量,否则不会重复调用,一直到程序结束也就调用那么一次。也就是说只有在定义新的变量的时候才会调用构造函数。【eg1】定义在主函数的情况#include#includeusing namespace std;class A{public:A();int a;int b;int
2017-02-08 18:02:20
1504
原创 双馈风电DFIG并网系统次转子侧变流器RSC抑制策略研究基于LADRC和重复控制的方法
图中3秒时串补电容投入运行,在控制器的作用下3.3秒后输出功率最大波动为5.7,系统趋于收敛,验证了算法的有效性和可靠性。电场经串补线路并网系统为研究对象,在深入分析双馈风电并网系统振荡机理的基础上,首先,本文研究了双馈风电场经串补线路并网系统的结构组成及工作原理,推导各。提出针对系统宽频带振荡的抑制策略。最后,本文从机组侧振荡抑制的角度出发,提出了基于改进型线性自抗扰控制。其次,本文从电网侧振荡抑制的角度出发,提出了应用模块化多电平换流器。阐释了系统次同步振荡机理,为后续振荡抑制策略的提出奠定基础。
2025-01-05 21:25:53
402
原创 ZNN零化神经网络及其在机器人上的应用
冗余机械臂重复运动规划旨在消除冗余机械臂重复执行末端封闭轨迹任务时的关节角漂移现象,具体地,希望机械臂各关节角在一个任务周期结束后,仍然回到期望起始角度。每个任务周期以同一初始关节状态运行,可避免机械臂产生非期望的关节轨迹,有助于封闭轨迹重复作业的安全运行。机械臂轨迹规划的基本做法是基于机械臂运动学模型,通过给定的期望末端笛卡尔位置求取合适的关节角度。其中,r(t)为t时刻机械臂末端执行器在笛卡尔坐标系下位置坐标,θ(t)表示对应时刻的关节角度向量,f(·)表示关节角与机械臂末端位置间的非线性映射关系。
2024-12-13 11:41:04
1062
1
原创 《机器人技术》仿真大作业
(5)仿真报告的主要内容包括: 封面(附件 2)、仿真题目、同组同学姓名、摘要、关键词、正文(仿真任务、仿真软件简介、仿真操作步骤及对应的内容、仿真的结果、仿真结果分析与讨论)、参考文献。大作业要求:构建工业机器人(各机器人结构与参数见附件 1)的仿真模型(1)机器人正运动学仿真。同组同学的参数不能相同。(3)任意设置两个点 A 和 B,给出机器人从 A 到 B 的关节空间轨迹规划的角位移、角速度和角加度的轨迹曲线。技术/代码交流邮箱/企鹅(欢迎交流、讨论、私信):3531225003@qq.com。
2024-11-06 19:23:56
446
原创 六自由度机械臂模型预测控制MPC+倒立摆+二自由度机械臂
2.六自由度MPC1.一阶倒立摆MPC1.1倒立摆状态方程1.2倒立摆状态方程线性化为了将上述方程写成的形式对上式进行整理可得:F对X求偏导可得A:F对u求偏导可得B:剩余项:注意:此时已经完成了状态方程的线性化,这是实时线性化的重要步骤,
2024-10-27 16:57:42
989
原创 基于非线性干扰观测器的六自由度机械臂控制
当存在扰动时,机械臂的动力学方程如下:对上式进行恒等变化得:设计干扰观测器:令,则:观测误差满足,取,因加速度不可测,定义辅助向量:令,得:观测器设计为:令。
2024-10-10 18:07:54
408
1
原创 六自由度机械重力补偿控制
六自由度机械臂动力学方程形式如下:进行重力补偿,就是在驱动力矩中对重力G进行补偿,从而消除重力的影响,这样就能够在进行闭环控制的时候避免重力影响带来的大超调问题,使得机器人更好的实现轨迹跟踪控制。
2024-10-07 12:00:44
1576
原创 构建VREP和MATLAB联合仿真实验平台,控制机械臂末端按照固定轨迹移动
构建VREP和MATLAB联合仿真实验平台,控制机械臂末端按照固定轨迹移动。(2)将solidworks中构建的模型导入VREP中建立机械臂的多体动力学模型;(7)编写MATLAB控制程序,控制机械臂按规划轨迹运动;(4)构建DH坐标系,建立机械臂的正运动学模型;(3)建立VREP和MATLAB之间的通信;(1)solidworks构建机械臂模型;(5)求解机械臂的逆运动学模型;(6)规划末端执行器运动轨迹;
2023-12-10 15:50:28
1648
原创 机器人连续位姿同步插值轨迹规划—对数四元数、b样条曲线、c2连续位姿同步规划
机器人连续位姿同步插值轨迹规划——对数四元数、b样条曲线、c2连续位姿同步规划。
2023-09-09 15:20:12
1337
1
原创 NURBS曲面拟合、平滑、网格控制点反算、法面误差计算一网打尽,解决曲面加工、蒙皮、逆向工程、叶片拟合问题
NURBS曲面拟合、平滑、网格控制点反算、法面误差计算一网打尽。
2022-08-07 11:33:40
2627
原创 球面上绘制圆matlab仿真
为便于公式推导,本文仅以球心在坐标原点时进行推导,需要说明的是球心不在原点时,只需把已知条件的坐标减去球心坐标,等完成求解后再加上球心坐标即可!可知,若要画圆,我们只需要知道圆的圆心,圆所在平面的x方向向量以及y方向向量。接下来,我们把工作重点放到求上述三个量上面,假定球为球心在坐标原点的单位球。,已经给出了三点画圆的代码,观察函数。...
2022-07-22 18:11:56
1403
原创 核酸检测机器人
1.设计一个至少六自由度的机器人,至少包括- -个伸缩关节,要求机器人工作空间能够满足左图工作空间的要求(自己定义机械臂安装位置要求能够满足抓取指定空间范围内操作)2.根据自己设计的机器人建立DH坐标系及齐次变换矩阵,并设置合理的关节转动极限,分析和绘制工作空间,关节必须要有合理的机构实现形式。3.求取自己设计的机器人的逆解,实现末端制定位置的定位定姿,能够实现末端按照要求的。4.使用RRT算法或其他算法实现机械臂 无碰撞端到端轨迹规划(还能出现穿透,可以留有接口输入患者口腔位姿),按顺序完成下述动作
2022-06-03 22:34:58
2029
原创 Matlab不常用命令速查
1.matlab画图时如何将坐标设置为中文宋体,英文新罗马字体ylabel('飞舞哲(fwz)','FontName','宋体 | Times New Roman');
2022-04-05 12:27:06
340
原创 公式编辑器mathType中的公式在word中显示乱码的问题
1.问题描述mathType中的公式在word中出现部分乱码的情况,如下分别为乱码和正常的公式主要表现为,公式双击后按ctrl+s后word中的公式表现为正常。由于一篇文章同类公式均会乱码,一个个修改比较麻烦且可能遗漏,为此可以进行一次性修改全部。2.解决方法2.1双击乱码的公式,在mathType中显示2.2在mathType中按ctrl+s保存,同时点击预置保存配置文件2.3点击格式化公式,在world中进行统一修改...
2022-02-22 16:39:59
10807
1
原创 机器人工具箱robotics toolbox低版本matlab 绘图plot/teach报错问题解决
1.报错细节:2.报错原因解释高版本matlab如matlab 2016b不会存在该问题,这是因为高版本matlab的gca可以直接得到图片句柄对应的结构体,而低版本matlab则获取到的gca是'CurrentAxes'的句柄,句柄和结构体的区别在于句柄是整数,而结构体是包含子属性的直接用.就可以获取。举例低版本matlab的gca: gca=106.22高版本matlab的gca:XLim: [-3600 3600] YLim: [-3600 360..
2022-01-08 22:59:43
2151
原创 Modbus从站读写数据
一、原理及工具Modbus Slaves软件的使用:传送门Modbus 协议原理:传送门Modbus poll 和 Modbus slave调试工具下载:传送门二、实验流程及相关源码(1)设置ip和端口号打开Modbus slave进行相关设置(注意这里IP和端口号可以自己进行相应设置),具体如下:(2)设置从站id初始显示地址(Address)和显示行数(Quantity)及表格行数(Rows)(3)查看报文在...
2021-11-09 17:26:51
7617
1
原创 Linux相关
1.判断远程服务器端口是否开放#include <stdio.h>#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#include <unistd.h>#include <fcntl.h>#include <unistd.h>#include<iostre
2021-08-22 18:03:17
144
原创 机械臂RRT避障
1.设计了一个七自由度机器人,包括伸缩关节;2.建立机器人DH坐标系及齐次变换矩阵;3.求取机器人逆解,实现末端指定位置的定位定姿;4.将空间站物体简化为球体,数量10个(直径50mm-100mm),抓取顺序从小到大进行;5.使用RRT算法实现机械臂无碰撞按顺序抓取物体。...
2021-06-16 16:25:27
5197
5
原创 vim 配置代码自动补齐
1.插件准备1.1下载OmniComplete:传送门1.2下载C++标准库索引文件:传送门2.解压和安装准备tar -jxvf 压缩包名称(1)此时在当前解压出两个目录,一个cpp_src,一个omnicppcomplete-0.41,然后进入cpp_src执行ctags -R --sort=1 --c++-kinds=+p --fields=+iaS --extra=+q --language-force=C++ -f 【生成的tags文件名】,若不写-f执行,则默认生成tags.执行的
2021-06-11 11:39:34
1805
1
原创 【1】跑通源码
Linux Web服务器搭建1.源码地址github地址:https://github.com/qinguoyi/TinyWebServer/tree/raw_version有道云笔记:http://note.youdao.com/noteshare?id=6113f882e345c50302500df7d5d3c3b4&sub=7BFE9970B41D4D8789251CDAA228536A2.使用方法2.1安装mysqlhttps://www.cnblogs.com/bo
2021-05-05 20:36:03
354
1
原创 装入时动态链接替换GetProcAddress逐个注册函数
1.LoadLibrary注册DLL文件在程序中,我们使用LoadLibrary可以加载所需的DLL文件并通过GetProcAddress函数可以注册所需要调用的DLL中的函数,这种方法在实际使用时加载DLL功能,能加快程序的装入过程并节省大量的内存空间,但存在一定的弊端,比如我们需要的函数非常多的时候,需要调用GetProcAddress进行逐一注册,这样显然不太方便。如下面的程序,需要注册的函数多达十几个: HINSTANCE vrepDll; vrepDll = LoadLi...
2021-04-08 19:50:18
308
转载 【STL3】类型萃取Traits
类型萃取Traits1.总述定义:traits中文意思是特性,它通过提取不同类的共性,使得可以统一处理技术实现:traits运用显式模板特殊化(模板偏特化,全特化)将代码中因为类型不同而发生变化的片段提取出来,用统一的接口来包装,并通过traits模板类公开的接口间接访问相应的类。STL Iterator必须提供的五种associated types:迭代器萃取器iterator_traits能够兼容迭代器和一般指针,获取其5个关联类型:iterator_category、value_...
2021-04-07 17:00:32
208
转载 【STL2】空间配置器allocator
目录标准模板库1.空间配置器allocator总述2.空间配置器标准接口3.二级空间配置器标准模板库1.空间配置器allocator总述标准模板库中利用空间配置器来在幕后管理内存空间。之所以叫空间配置器,是因为可能在某种情况下,可以在内存以外的介质比如硬盘上进行分配。不过一般来讲是内存,有下面两种空间配置器。一种是标准的空间配置器,std:allocator //包含在xmemory头文件,对::operator new和::operator delete的简单封装 一种是
2021-04-06 22:31:23
352
转载 位图和布隆过滤器
位图基础:https://blog.youkuaiyun.com/lucky52529/article/details/90172264布隆过滤器基础:https://blog.youkuaiyun.com/lucky52529/article/details/90341779布隆过滤器公式推导:https://blog.youkuaiyun.com/qq_32834005/article/details/105540066//大数据中找出现过一次的数据 class BitMap { public: BitMap.
2021-03-20 10:56:47
559
转载 拷贝构造函数和赋值构造函数
目录拷贝构造函数和赋值构造函数能否进行值传递拷贝构造函数(不能进行值传递)赋值构造函数(可进行值传递)拷贝构造函数和赋值构造函数能否进行值传递 C++ 中拷贝赋值函数的形参能否进行值传递?我知道一般来说,拷贝构造函数的形参必须是自身类型的引用;但是拷贝赋值函数的形参通常也是自身类型的引用,实际上拷贝赋值函数能进行值传递。拷贝构造函数(不能进行值传递)拷贝构造函数具有如下两种形式:// 拷贝构造函数原型Person(Person&); // method 1..
2021-03-07 15:34:07
443
转载 C++内存对象布局
前言《c++虚函数表解析》没涉及到:有成员变量的情况、有重复继承的情况、有虚拟继承的情况、有钻石型虚拟继承的情况,这篇文章将会是《C++虚函数表解析》的一个续篇,也是一篇高级进阶的文章。对象的影响因素简而言之,我们一个类可能会有如下的影响因素:成员变量、虚函数(产生虚函数表)、单一继承(只继承于一个类)、多重继承(继承多个类)、重复继承(继承的多个父类中其父类有相同的超类)、虚拟继承(使用virtual方式继承,为了保证继承后父类的内存布局只会存在一份)上述的东西通常是C++这门语言在语义方
2021-03-05 08:49:31
155
1
转载 C++虚函数表解析
C++虚函数表解析前言C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。虚函数表对C++ 了解的人都应该知道虚函数(Virtual Function)是通过一张虚函数表(Virtual.
2021-03-04 17:26:32
191
1
原创 【STL1】容器分类及测试
// ConsoleApplication2.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。//#pragma warning(disable:4996)#include<array>#include<ctime>#include<cstdlib>#include<iostream>#define ASIZE 100000using std::cout;using std::cin;using std::st
2021-03-01 09:58:28
156
1
转载 Qt子窗口传值到父窗口
不同窗口间的数值传递主要有三种方法:1)使用Qt中的Signal&Slot机制进行传值2) 使用public形式的函数接口进行传值3) 使用全局变量进行传值dialog.cpp和dialog.h 是主对话框的代码;dlg2.cpp和dlg2.h 是子对话框的代码。#ifndef DIALOG_H#define DIALOG_H #include "dlg2.h"#include <QDialog>#include <QPushButton>#incl
2021-01-15 14:27:00
2671
原创 3.程序员的自我修养 - 完结
第七章 动态链接静态链接的不足:每个程序内部除了公用库函数还有相当数量的其它库函数和它们所需的辅助数据结构,浪费内存和磁盘空间(尤其是多进程情况下)、模块更新困难等,此外其对程序的更新、部署和发布带来麻烦。动态链接:把程序的模块相互分割开,不对那些组成程序的目标文件进行链接,等到程序要运行时才进行链接。如当某程序加载时发现还依赖其它目标文件系统会接着将所需依赖文件(内存中有副本的不需重新加载)全部加载至内存,等所有依赖目标文件加载完毕,系统开始进行链接工作。链接原理与静态链接类似,包括符号解析、地址
2021-01-02 19:37:35
592
原型模式(c++,Qt实现).zip
2020-08-28
工厂方法模式.zip
2020-08-28
策略模式(设计模式)
2020-08-25
简单工厂模式.zip
2020-08-24
通过在VS中编程实现父子进程的管道通信.zip
2020-07-27
matlab实现对坐标变换的仿真
2020-02-23
单目标遗传算法解决Anytown管网的模型校核问题
2019-12-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人