自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 资源 (4)
  • 收藏
  • 关注

原创 B-Spline曲线拟合

B-Spline曲线拟合 – Python实现1.曲线定义定义曲线为p阶样条曲线给定n+1个控制点 P0,P1,...Pn节点向量 U = {u0,u1....um},且m = n+p+1B-Spline曲线定义如下:N(i,p)为样条基函数P(i)为控制顶点参数u为参数节点,一般取0 ≤ u ≤ 1上式为样条基函数的递推公式2.De Boor 算法参考文章:https://pages.mtu.edu/~shene/COURSES/cs3621/NOTES/spli

2020-05-15 11:00:04 11016 9

原创 ubuntu 进行SD卡分区

查看当前分区,dev/sdb1 /dev/sdb2就是SD卡上的两个分区。将分区1设置为FAT32格式。重命名sdb1并格式化。重命名sdb2并格式化。生成100M的分区1。

2023-04-21 21:41:03 478

原创 ubuntu18.04安装Tensorflow2.x+CUDA 教程

一、查看硬件lspci | grep VGA01:00.0 VGA compatible controller: NVIDIA Corporation GM206 [GeForce GTX 960] (rev a1)我的电脑上是GTX960显卡 (Low~~~~)uname -aLinux 5.4.0-97-generic #110~18.04.1-Ubuntu SMP Mon Jan 17 20:50:31 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux系统

2022-02-07 14:25:07 1543

原创 CarSim2020 安装和操作001

破解过程①解压crack文件夹②将 programs文件夹 和 dll文件 复制替换 至安装根目录③右击 SSQ.exe 文件 管理员权限运行 生成 MSCLIC_SSQ.lic 文件 之后 窗口提示 All done,Enjoys!④MSCLIC_SSQ.lic 文件 进行两个替换 1)将所有的 2016.2 替换为 2020.0 2)打开根目录下CarSim2020.0_Prog\Programs中的HostID.exe文件 复制任一 Host

2022-01-13 11:07:16 3560 4

原创 Ubuntu18.04 编译 RT Kernel

Ubuntu18.04 编译 RT Kernel机器:ThinkPad T14 CPU i5-10210U系统:Ubuntu 18.04 内核:Linux-5.4.0下载内核及实时补丁http://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/http://mirrors.edge.kernel.org/pub/linux/kernel/projects/rt/5.4/older/我下载的内核版本是:linux-5.4.19解压&打补丁

2021-05-28 10:01:28 396

原创 机器人学之轴角

旋转矩阵可以表示两个坐标系之间转换关系,但是,旋转矩阵存在以下缺陷:1.参数过多,存在数据冗余2.比较抽象,观察旋转矩阵时很难在脑海中勾勒出具体的旋转过程轴角轴角由两部分构成:旋转轴和绕旋转轴旋转角度如图,r表示旋转轴,Θ表示需要旋转的角度,因此轴角由4歌变量组成:r = (rx, ry, rz), θ = Θ ,优点是:1,很直观的描述了旋转发生的过程2,数据相较于旋转矩阵有很大的精简轴角和旋转矩阵的转换设旋转矩阵为:轴角转旋转矩阵:旋转矩阵转轴角:注意到,上式中,sin

2021-02-25 16:37:17 2923

原创 机器人学之旋转矩阵

旋转矩阵一、旋转矩阵如图,绕z轴旋转,可以表示为矩阵:式中,每一个列向量都表示O‘ 坐标系的坐标轴相对于O坐标系的方向向量。同理,绕y,x轴的旋转矩阵表示为:机器人学中,使用旋转矩阵表示两个坐标系的旋转。坐标系转换方式有以下两种:1.绕固定坐标系旋转顾名思义,旋转过程始终以一个固定的坐标系为参考:此时,应按照矩阵依次左乘的方式计算旋转后的矩阵,例如依次绕x旋转x’,绕y旋转y’,绕z旋转z’,则得到转换后的矩阵为:​ R‘ = rot(z’)*rot(y’)*rot(x’)2

2021-02-25 16:09:43 10352

原创 git 用法总结

git 用法总结最近入职了新公司,使用git来进行代码管理,总结一下使用方法,以免忘记。生成身份标识git使用key来获取用户权限。配置用户名:git config --global user.name "xxx"git config --global user.email "[email protected]"生成公钥:ssh-keygen -t rsa -C "[email protected]"之后按三次回车键(默认不需要密码)会在.ssh目录下生成如下文件:id_rsa 私钥

2020-12-11 19:15:43 197

原创 Acontis Ec-Master主站编译&调试方法

1.开发包目录Bin --Linux\x64 --EcMasterDemoDc :编译好的测试程序 --libemllRTL8169.so :运行主站时需要加载的网卡驱动Doc --EC-Master_ClassA/B:主站功能介绍 --EC-Master_QuickStart_Guide:快速开始文档Examples --示例SDK:开发包 --INC:开发程序所需头文件 --LIB\Linux\x64:编译用户程序时需要链接的库 --libAtemRasS

2020-12-01 20:17:45 1848 5

原创 WINDOWS:OPEN62541服务器编程

WINDOWS:OPEN62541服务器编程创建工程编译环境 windows 10 + Visual Studio 2019 Community新建工程,将cmake编译生成的open62541.h/.c加载进入工程添加必要的库OPEN62541需要额外加载两个库:wsock32.lib ws2_32.lib,在程序开头添加:#pragma comment(lib, “wsock32.lib”)#pragma comment(lib, “ws2_32.lib”)或者在工程属性中添加相应的库

2020-09-09 11:54:16 1716

原创 WINDOWS:OPEN62541编译

WINDOWS:OPEN62541编译编译时的配置windows 10Visual Studio 2019 CommunityCMake 3.15.0source code: open62541-1.1.2CMake第一步,配置源码和编译目录选择编译选项:UA_ENABLE_AMALGAMATION=ON第二步,打开工程,编译生成open62541.c/.h完成...

2020-09-09 11:33:15 2334 2

原创 使用Xenomai创建动态链接库

使用Xenomai创建动态链接库项目中需要Xenomai创建实时周期的任务,并封装为动态链接库,这里记录下遇到的问题。按照 QT编译xenomai用户层程序 中的步骤设置,建立好动态库工程之后。编译,会发生如下错误::-1: error: /usr/xenomai/lib/xenomai/bootstrap.o: relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object;

2020-08-01 13:45:09 3683 2

原创 QT编译xenomai用户层程序

QT编译xenomai用户层程序在.pro文件中添加:XENO_DIR = /usr/xenomaiXENO_CONFIG = $$XENO_DIR/bin/xeno-configXCFLAGS = $(shell $$XENO_CONFIG --skin=alchemy --cflags)XLDFLAGS = $(shell $$XENO_CONFIG --skin=alchemy --ldflags)QMAKE_CXXFLAGS += $$XCFLAGSLIBS += $$XLDFLAG

2020-07-30 16:02:05 3195 8

原创 xenomai安装及程序编译

安装xenomai实时补丁参考网页: https://rtt-lwr.readthedocs.io/en/latest/rtpc/xenomai3.html安装后的目录在 /usr/xenomai编译用户程序参考altency.c文件,编写一个周期任务程序:demo_periodic_thread_posix.c#include <stdio.h>#include <signal.h>#include <unistd.h>#include <sy

2020-07-29 19:51:58 4524

原创 三角函数柔性加减速算法

公式推导 三段速度公式为 {v(t)=(vs+vm)/2−(vm−vs)cost′/2t′=(t/t1)π(1)v(t)=vmv(t)=(ve+vm)/2−(ve−vm)cost′/2t′=(t/t2)πt1为加速时间,t2为减速时间\begin{cases}v(t)=(v_s+v_m)/2-(v_m-v_s)cost{'}/2 \quad t^{'}=(t/t_1)\pi \quad (1)\\v(t)=v_m \\ v(t)=(v_e+v_m)/2-(v_e-v

2020-07-22 18:59:08 6872 10

原创 点到指定Bezier曲线的最短距离

点到指定Bezier曲线的最短距离 Bezier曲线本质上是一个多项式。 三次曲线Q:Q(u)=(1−u)3P0+3(1−u)2uP1+3(1−u)u2P2+u3P3=nu3+ru2+su+v\begin{aligned}Q(u) &= (1-u)^3P_0+3(1-u)^2uP_1+3(1-u)u^2P_2+u^3P_3\\&=nu^3+ru^2+su+v\end{aligned}Q(u)​=(1−u)3P0​+3(1−u)2uP1​+3(1−u)u

2020-07-17 19:20:08 11116 1

原创 B-spline反求控制顶点

B-spline反求控制顶点 B样条曲线拟合时(https://blog.csdn.net/hanmingjunv5/article/details/106137002),曲线是不通过数据点的,这样对于曲线的插补来说,是不合理的。因此,需要根据给定的数据点来求解控制顶点,使拟合的曲线通过全部数据点。 推导曲线定义:C(u)=∑i=0nNi,p(u)Pi(1)C(u)=\sum^n_{i=0}N_{i,p}(u)P_i \quad \quad \quad (1)C(u)=i

2020-07-13 17:00:02 7239 2

原创 Bezier曲线反求控制点

Bezier曲线反求控制点做曲线拟合的时候,往往希望拟合的曲线通过数据点,这个推导一下Bezier曲线控制点的计算过程.曲线公式曲线:C(u)=∑i=0nBn,i(u)Pi基函数:Bn,i=n!i!(n−i)!ui(1−u)n−i曲线:C(u) = \sum^n_{i=0}B_{n,i}(u)P_i\\基函数:B_{n,i}=\frac{n!}{i!(n-i)!}u^i(1-u)^{n-i}曲线:C(u)=i=0∑n​Bn,i​(u)Pi​基函数:Bn,i​=i!(n−i)!n!​ui(1−u)

2020-07-10 14:35:28 10543 15

原创 Bezier曲线构造

Bezier曲线构造曲线公式曲线:C(u)=∑i=0nBn,i(u)Pi基函数:Bn,i=n!i!(n−i)!ui(1−u)n−i曲线:C(u) = \sum^n_{i=0}B_{n,i}(u)P_i\\基函数:B_{n,i}=\frac{n!}{i!(n-i)!}u^i(1-u)^{n-i}曲线:C(u)=i=0∑n​Bn,i​(u)Pi​基函数:Bn,i​=i!(n−i)!n!​ui(1−u)n−i曲线性质1.Bezir曲线的阶数由控制点个数决定,n+1个控制点,则对应阶数为n. 例如3次

2020-07-10 12:44:19 3317

原创 MingW编译lua 5.3.5动态库

MingW编译lua 5.3.5动态库安装好qt 5.12后,编译器使用MingW-64 bit. 原来的lua动态库使用的是vs编译器编译的,已经不适用,这里使用MingW编译相应版本.打开命令行:set path=%path%;G:\Qt\Qt5.12.1\Tools\mingw730_64\binset include=%include%;G:\Qt\Qt5.12.1\Tools\mingw730_64\includeset lib=%lib%;G:\Qt\Qt5.12.1\Tools\m

2020-06-29 16:16:30 3916

原创 样条曲线(参数曲线)曲率

曲率计算公式设参数曲线C(u):C(u)=(x(u),y(y),z(u))C(u) = (x(u),y(y),z(u))C(u)=(x(u),y(y),z(u))曲线曲率表达为:k(u)=∣C′(u)×C′′(u)∣∣C′(u)∣3(1)k(u)=\frac{|C^{'}(u)\times C^{''}(u)|}{|C^{'}(u)|^3}\quad (1)k(u)=∣C′(u)∣3∣C′(u)×C′′(u)∣​(1)其中:C′(u)为一阶导数C′′(u)为二阶导数C′(u)×C′′(u

2020-06-29 10:57:13 8836 1

原创 B-Spline曲线的导数

样条曲线定义:C(u)=∑i=0nNi,p(u)Pi C(u)=\sum^n_{i=0}N_{i,p}(u)P_iC(u)=i=0∑n​Ni,p​(u)Pi​基函数的导数为:dNi,p(u)du=Ni,p′(u)=pNi,p−1(u)ui+p−ui−pNi+1,p−1(u)ui+p+1−ui+1\frac{dN_{i,p}(u)}{du}=N^{'}_{i,p}(u)=\frac{pN_{i,p-1}(u)}{u_{i+p}-u_i}-\frac{pN_{i+1,p-1}(u)}{u_{i+p+

2020-06-18 16:14:43 7709 1

原创 Python读取文件(txt,csv,xls)

分析数据的时候,使用Python十分方便,这里总结一下具体实现方式,以免总是上网查询  open函数想用python读取文件(如txt、csv等),第一步要用open函数打开文件。open()是python的内置函数,它会返回一个文件对象,这个文件对象拥有read、readline、readlines、write、close等方法。open函数原型:open(file, mode='r', buffering=None, encoding=None, errors=None

2020-06-15 19:01:22 5064

原创 PUMA 560 机器人构型总结

PUMA 560 机器人构型PUMA560 六轴机器人构型的判定一般定义机器人三种构型:face:朝向前后eblow:肘部上下wrist:腕部翻转.三个变量共 2 *2 *2=8 种姿态.face:朝向前后影响因素:一关节所处区间手腕部x坐标值所处区间例如:θ1=0,Xwrist>=0,则face=1θ1=0,Xwrist<0,则face=0.反之亦然\theta_1=0,X_{wrist} >=0,则face=1\\\theta_1=0,X_{wrist}

2020-06-10 22:08:46 7669

原创 求解PUMA560 六轴机械臂运动学

最近需要解算六轴机器人的解析解,算法已完成,这里记录一下.一、机器人模型PUMA560:全称:Programmable Universal Manipulation Arm1978年由Unimation 机器人公司的Victor Scheinman研发.本文使用的模型:D-H矩阵:二、机器人正运动学机器人正运动学就是给定机器人各关节位置,计算机器人连杆上任意点的位姿.位姿矩阵机器人位置和姿态可以由一个方阵描述:P={nxoxaxpxnyoyaypynzozazpz0001}P

2020-06-04 18:30:16 8005 8

原创 arm-cortex A9调用lua 解释器

1.编译lua-3.3.5下载lua源文件:curl -R -O http://www.lua.org/ftp/lua-5.3.5.tar.gz修改 src/MakefilePLAT= none改为:PLAT= linuxCC= gcc -std=gnu99改为:CC= /opt/Xilinx/SDK/2018.3/gnu/aarch32/lin/gcc-arm-linux-gnueabi/bin/arm-linux-gnueabihf-gcc (根据实际交叉编译器位置,作相.

2020-05-30 21:30:01 5827

原创 非线性方程求解:弦截法和抛物线法

非线性方程求解:弦截法和抛物线法牛顿迭代法虽然具有收敛速度快的优点,但每迭代一次都要计算函数导数,而有些函数的导数计算十分麻烦。弦截法和抛物线法便是为了避免上述不便而提出的方法.一、弦截法:牛顿迭代公式:xk+1=xk−f(xk)f′(xk)牛顿迭代公式:\\x_{k+1}=x_k-\frac{f(x_k)}{f^{'}(x_k)}\\牛顿迭代公式:xk+1​=xk​−f′(xk​)f(xk​)​替换牛顿公式中的f’(x),便得到迭代公式:xk+1=xk−f(xk)(xk−xk−1)f(

2020-05-27 15:48:39 9618

原创 非线性方程求解 :二分迭代法和牛顿迭代法

在机器人算法开发中,经常会遇到求解非线性方程。非线性方程的求解十分空难,这里介绍两种方法: 1. 二分法 2.牛顿迭代法定义:非线性方程,就是因变量与自变量之间的关系不是线性的关系,这类方程很多,例如平方关系、对数关系、指数关系、三角函数关系等等.求解此类方程往往很难得到精确解,经常需要求近似解问题.二分法:二分法又称二分区间法,是求解非线性方程的近似根的一种常用的简单方法.二分法的基本思想是: 首先确定有根区间,将区间二等分, 通过判断f(x)的符号,逐步将有根区间缩小, 直至有根区间

2020-05-27 12:51:32 17634

原创 最小二乘法进行曲线拟合

工作需求,这里记录一下数值插值和数值分析方面的算法,希望和大家一起进步。曲线拟合的最小二乘定义求一条曲线,使数据点均在离此曲线的上方或下方不远处,所求的曲线称为拟合曲线,它既能反映数据的总体分布,又不至于出现局部较大的波动,更能反映被逼近函数的特性,使求得的逼近函数与已知函数从总体上来说其偏差按某种方法度量达到最小,这就是最小二乘法.与函数插值不同,曲线拟合不要求曲线通过所有已知点,而是要求得到的近似函数能反映数据的基本关系,在某种意义上,曲线拟合更有实用价值.已知离散观测数据点f(x):(x0

2020-05-26 14:52:08 19890

原创 S形曲线加减速算法流程--7段式

7段S形加减速的算法流程.7段S形加减速相对于5段,增加了匀加速过程,计算流程更加复杂一些,需要进行多次分类讨论。加减速规划的流程:曲线加减速规划是否存在匀速段取决于速度达到给定的指令速度口时,加速段和减速段位移之和s'是否小于待插补位移s.加速及减速过程中是否存在匀加速段或匀减速段则由vs,ve,v,a,j决定。规划后的S曲线可能出现下图中8中情况:1.匀加速段存在的条件若:v−vs>am2/jmv-v_s > a^2_m/j_mv−vs​>am2​/jm​

2020-05-24 15:26:54 13420 7

原创 Ubuntu 生成lua 动态链接库

说明:lua官方只提供静态链接库,需要自己生成需要的动态链接库,步骤如下:操作如下:下载lua源码,我目前使用的是lua 5.3.5版本修改源码src目录下的Makefile文件:在顶层目录下修改Makefile文件:打开终端输入:make linuxmake install即生成.so库文件...

2020-05-24 09:19:54 3982

原创 Lua调用C函数 -- Qt实现

Lua调用C函数 – Qt实现第一种方式:C函数作为应用程序的一部分,使用lua来调用流程:1.应用程序加载Lua脚本2.Lua脚本中调用C函数中程序:luaCallC.pro#-------------------------------------------------## Project created by QtCreator 2019-12-18T14:24:19##-------------------------------------------------QT

2020-05-23 20:48:33 8916

原创 使用visual studio2010生成lua动态链接库

编辑windows批处理脚本 vslua.bat@echo offmd binmd libmd includecd srccl /c /nologo /W3 /O2 /Ob1 /Oi /Gs /MD /D_CRT_SECURE_NO_DEPRECATE l*.cren lua.obj lua.oren luac.obj luac.olib /OUT:lua53.lib *.objcopy lua53.lib ..\lib\lua53.libdel *.o *.obj *.exp *

2020-05-23 20:43:51 4028

原创 S形曲线加减速--7段

S加减速–7段接前文5段S形速度规划,这里推导一下7段S形曲线的计算公式1. S加减速曲线定义:上图中,令t1-t7为各个位置的绝对时间节点,T1-T7为每一段的增量时间节点。这里的定义和图中有些出入,线下面的计算全部按照此定义为准.计算公式:加加速度j(t)={J0≤t≤t10t1≤t≤t2−Jt2≤t≤t30t3≤t≤t4Jt4≤t≤t50t5≤t≤t6−Jt6≤t≤t7j(t)=\begin{cases} J & 0\leq t \leq t_1\\0 &

2020-05-22 19:14:26 5689 2

原创 windows安装Ubuntu16双系统教程

工具U盘启动制作工具:1.UltraISO2.rufus计算机信息查询电脑启动方式:legacy方式 utfi方式使用 win+R,输入msinfo32,可以查看bios启动类型。在win7上并没有看到bios类型选项,暂且默认是 legacy方式磁盘分区类型:MBR、GPT我的电脑-》管理-》磁盘管理,磁盘0-》属性-》卷,可以查看到磁盘分区形式制作U盘启动这里我使用rufus制作,原因:磁盘分区是MBR,一开始我用的UltraISO软件来制作U盘启动盘的,我在这个软件中没有

2020-05-22 18:49:13 5687

原创 S形曲线速度规划--5段式

S加减速–5段为了减小机器人加速过程的冲击,这里梳理一下S形加减速相关知识。1. S加减速曲线计算公式:加加速度j(t)={J0≤t≤t1−Jt1≤t≤t20t2≤t≤t3−Jt3≤t≤t4Jt4≤t≤t5j(t)=\begin{cases} J & 0\leq t \leq t_1\\-J & t_1\leq t \leq t_2\\0 & t_2\leq t \leq t_3\\-J & t_3\leq t \leq t_4\\J &

2020-05-15 13:32:09 8943 14

原创 xyz-AC 五轴正反解推导过程

xyz-AC 五轴正反解推导过程1.前提条件C:固结在C轴上的坐标系A:固结在A轴上的坐标系R:基坐标系t:刀具末端坐标系*A、C原点重合,原点在A\C轴轴线交点*R在转台上,初始时与A\C同向,原点与AC原点有个z向偏移*刀具坐标系和R同向 2.运动链C-A-Rt-R第一步:求 RTc = RTa * aTc第二步:求 cTR,利用位姿矩阵求逆公式第三步:求 cTt = cTR * RTt3.推导过程4.代码void CNC::MulMATRI

2020-05-14 19:15:56 4274 1

原创 QT连接MySQL数据库

QT连接MySql数据库 – MySQL8.0--开发机使用Qt5.5 + msvc2010(32bit)编译器debug连接MySQL8.0在 https://dev.mysql.com/downloads/mysql/ 下载Wundows,ZIP Archive(此处下载的是64位库)在开发包中找到libmysql.lib,libmysql.dll,拷贝到Qt安装目录下的编译器位置:例如:C:\Qt\Qt5.5.1\5.5\msvc2010\bin在QT .pro文件里加上 QT

2020-05-14 19:02:37 537

原创 Mysql数据库安装

Mysql数据库安装一、官网下载安装程序二、配置:对于8.0版本,需要设置密码格式:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'mysql的密码';FLUSH PRIVILEGES;三、问题解决局域网内连接数据库服务器不成功mysql> use mysql;mysql> select user, host from user;如果没有 user=root ,host =

2020-05-14 18:59:23 206

sqlite-tools-win32-x86-3320300.zip

sqlite工具:sqldiff、sqlite3、sqlite3_analyzer

2020-07-30

Navicat Premium 12.zip

Navicat Premium 12:可视化数据库管理软件,免安装版

2020-06-06

基于NURBS的复杂曲线曲面高速高精度加工技术研究.pdf

基于NURBS的复杂曲线曲面高速高精度加工技术研究,描述NURBS曲线构造即插补流程,值得借鉴.

2020-05-29

cjson测试例程,基于qt

qt程序************************************************ 使用cjson读取json文件并解析

2020-05-15

空空如也

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

TA关注的人

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