自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 资源 (3)
  • 收藏
  • 关注

转载 六轴机械臂控制库dawa校园版本使用指南:

一、dawa校园版本基于ubuntu操作系统,控制目标为ABB型机械臂,该版本为c++编写,主要文件有r6a.h libdawa.so校园版本系免费对外发布,适用于各类科研机构和个人研究者进行机械臂控制的辅助研究。二、库应用框架的输入输出模式:建立机械臂的派生对象r6a,并运行r6a.assist_Thread()方法以后,系统处于等待输入的指令的状态,并在一个数组thetas[]里面反映出来计算结果。 数组数据是“动态播放”的。例如,输入一条前进指令...

2021-06-19 08:45:16 1699 8

原创 dawa e1.0版本使用说明

dawa e1.0 是一个六轴机械臂控制核心系统,可以用来构建机械臂控制手柄,它通过串口UART0接收用户指令,运算后在UART1输出六轴角度(或者多组六轴角度构成的序列)。另一种是简单指示指令,比如指示末端向前移动,则可以用单个字符来区分。

2024-07-10 15:27:00 902

原创 esp32s3 nvs 存储过程中使用malloc和free函数的一点困惑

esp32厂家nvs的blob存储的例程中,有使用malloc()和free(),我参照例程写了自己的blob存储函数f,一开始是可以正常使用的,后来增加了几个键值对以后开始出现panic重启,系统重启前的提示是assert failure,free()在heap上outside the area了。而在增加键值对以前,这个f函数一直是正常使用的。nvs存储中的malloc和free需要反复使用,而我在该工程其它地方使用的malloc和free是关于链表操作的,相对来说没有想nvs那么多曲折分枝。

2024-06-05 22:19:41 210 1

原创 pico 的两个双核相关函数的延时问题

如修改为500微秒以上时,其延时似乎远远超过设定值,其反馈速度似乎被主核的交互所左右 ,而修改为200以下时,反馈出现阶越:运行这两个函数 的core1的打印速度快速增加,显示其延时更加与设定值相符。multicore_fifo_pop_timeout_us 和 multicore_fifo_push_timeout_us 的延时参数,pico高级API函数中,

2023-05-23 20:21:02 719

原创 关于g++编译器针对动态链接库与主程序存在同名变量问题的处理方式的质疑

我们会发现,ood 在库文件里面被定义,为double 在程序main里面被定义为float ,不但可以并行,还能共用同一段内存。在linux平台下,使用g++编译器编写一个动态链接库。发现编译器对于库文件和主程序中的同名变量处理有不合理的地方。笔者认为,为了防止混淆,在主程序编译阶段,编译器应该要么报同名错误,要么干脆将两个ood变量隔离使用。编译完成后,生成一个libr6.so 放置到/usr/lib 下面。这样将两个变量放在一个内存里,视其为同一个变量,是不科学的。编译通过,没有报错也没有报警。

2022-10-29 12:52:42 230 2

原创 linux下使用c++多态和虚函数的一个例子

/* * duotai.cpp * * Created on: 2021年7月18日 * Author: tom */#include <stdio.h>#include <math.h>#include <stdlib.h>#include <iostream>#include <unistd.h>using namespace std;class c1{public : virtual vo

2021-06-19 06:43:25 248

原创 c/c++vector的clear()的小秘密

笔者经过实验发现,当我们使用clear();来清空一个vector时,内存里原来存储的那些数据都在,没有被删除,如果指定位置取数,还可以输出。但是用size();来查看,发现清空后,size()变成了0;也就是说,其实系统只是把 vector的长度记录改了,当我们再push_back的时候,vector从第一个位置开始存放数据。#include <vector>#include <iostream>vector<double> xl;int main()

2021-05-11 16:09:37 843

原创 linux下生成可执行文件注意事项

在有些版本的默认设置中,gcc/g++参数记得加上-no-pie。否则生成的文件是鼠标无法打开的,查看属性显示“共享库 (application/x-sharedlib)”这时可以用命令行打开程序,但不能在窗口模式下用鼠标点击打开。...

2021-03-09 18:12:57 786 2

原创 c++ 多维vector内存占用问题分析

当我们需要长度不定的容器时,vector是一个不错的选择,它可以存储单维度的不定个数的数据,也可以叠加维度,实现不定长的二维甚至多维数组的功能。比如使用vector<vector<double>>就可以定义二维的vector容器。vector容器的特性是在被定义的时候,它就会自动预留16个存储空间,在二维的情况下,如果让他存储double数据,它最少的内存空间需求就是81616=2592 Byte(一个double是8个Byte)如果是3维的vectorvector<v

2020-11-17 17:00:24 2936 2

原创 字符串处理,转自新浪,

转自http://m.blog.sina.com.cn/s/blog_6fd98c43010147on.html#page=1不想写原创,但平板编辑只能选原创,只好奉上链接并向原作者致敬。C++ 和 MFC 中去掉字符串最后一个字符2012-04-05 09:28:29A-A+CString 类中有两个成员函数:.GetLength()得到字符串的长度。.Left(int nCount) 从左边截取字符串,nCount是截取的字符长度。故你要删除最后一个g;只要从左边截取该字符串的长度-1

2020-10-03 19:54:11 111

原创 c/c++读写txt文件一例

近期在使用c/c++读写机械臂设置信息时,发现网上找到的例程大部分都使用fscanf()fopen()函数而不是用的fscanf_s()fopen_s()VS2019编译器因此有安全有错误提示,于是我进行了修改测试,下面是源码,实测可用:#include<stdio.h>#include<iostream>// By Tom Gong using namespace std;void readfile(void){ FILE* stream;

2020-07-18 13:37:31 219

原创 RAA升级至1.03a版

此次升级,进行如下改动:去掉了心跳包机制,也就是说客户端程序不再需要过滤服务器发来的98号包。客户端断开后,RAA可以接受立即重联。不再有10秒等待时间。

2020-07-05 07:06:33 229

原创 使用vrep仿真所需要的库

RAA 用户在使用例程2 进行vrep仿真时,需要安装一个vrep的库,这个库用pip不能下载的,可以 给我发邮件索取,发送至 gongal@163.com不是RAA用户也可以找我索取,没问题。收到文件后,解压,放置到 类似下面路径的位置:E:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\Lib,也可以放到其它位置,在编译器里指定好,让程序能找到即可。...

2020-06-26 20:37:43 341

原创 使用c++ 遇到的一个小坑

当我使用vs2019编译器 做c++代码时,搭建好环境后,从网上下载了一个程序,运行无误,但当我想在程序里加上socket模块时,出现奇怪的波浪线报错:c++包含引起的错误 头停止点不能位于链接块中,我按照网上的办法先如下操作:工具–选项–文本编辑器–C/C++–高级–禁用IntelliSence–True仍然不能解决问题。后来根据提示仔细查找winsock2.h这个文件,发现其第101行,莫名其妙多了一个"{",我果断删除了它,居然就都ok了。为何标准头文件里会有多一个半边大括弧的问题?费解。

2020-06-25 13:58:19 386

原创 RAA1.00a多轴机械臂算法机软件发布

RAA1.00a多轴机械臂算法机软件发布多轴机械臂正逆解是一个复杂程度固定,所需数学知识面较为固定的有一定难度的数学题。业界已经有一些系统能帮人们算出正逆解了,只是在使用方便程度上有所差异,在路径规划的方便性和奇异解等问题的解决上还有可以提高的空间。另外,软件作者对机器人运动学和动力学的应用侧重方面有自己的一些见解,本软件也是作者“更多的依赖运动学,更少的借助动力学”理念的一种表达,作者将机械...

2020-05-06 14:47:04 475

原创 numpy,math库耗时计算

经过测试,发现math里的三角函数要比numpy里的三角函数快20%左右。在进行矩阵和数组运算时,只有numpy库支持,但矩阵相乘还不如直接用称号速度快。求逆时,用numpy的linalg.inv()速度要比直接用.I快50%...

2020-02-29 11:22:34 500

原创 数组切片插接处理笔记

以下记录数组切片中的几个常用办法point_orientation1=np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]])point_orientation2=np.array([[1,5,8,4],[5,3,7,8],[9,18,11,12],[13,14,15,16]])ltpart1=point_orientation1...

2019-11-27 09:24:52 210

原创 克服奇异解的演示视频

通过算法调整细化,六轴机械臂的奇异解可以被平滑的路过。因而机械臂路径规划者可以不用再被被奇异点问题所困扰,并刻意规避奇异点。我们都知道,UR机械臂在5轴为0的时候,是奇异点位,路过这样的点位,机械臂关节容易出现剧烈抖动。下面的链接,以UR5机械臂为模型进行仿真视频,让其末端路过一条由奇异点构成的圆形路径,并平滑通过:https://v.youku.com/v_show/id_XNDQ0NTU...

2019-11-23 13:48:57 557 6

原创 UR机械臂的“运动性奇异”

In order to avoid the conventional singular points of some spherical wrist manipulators, the UR's mechanical arms do have fewer conventional singular positions by having a peculiar body construct. But the price is not very low, It is that when these poses

2019-10-31 08:32:49 5571 4

原创 机械臂实时控制仿真演示

在下面的视频链接中,展示了在v-rep仿真软件平台上使用api接口,用python程序中通过键盘按键对仿真对象进行控制的过程:先是上下左右前后运动,再就是各方向上的扭转运动。https://v.youku.com/v_show/id_XNDQxODQ5NjA5Ng==.html?spm=a2hzp.8244740.0.0...

2019-10-30 11:16:12 1679

原创 两块arduino板子的iic通信代码

两块arduino板子的iic通信代码,不是我的原创,我测试过比较好用。

2019-10-05 08:43:08 1420

原创 计算速度对比:python vs. c语言程序

完成机械臂算法从python到c的移植以后,我把python和c代码的运算速度做了一个大致比较,结果如下:python加载10000次正逆运算,需要11秒左右,如果只做逆运算10000次,9秒左右。c语言代码就快多了,加载10000次正逆运算,需要一秒左右。作为上位机,其实两者算力都够用了。因为即便python完成一次逆运算,只需要0.1ms,这已经相当不错了。...

2019-10-02 18:28:59 2097 1

原创 空间路径规划初探(画空间内任意平面上的圆)

如下程序,通过修改前面的向量描述、圆心坐标和半径值,可以做出空间内任何圆的插值点。#Authered by Tom Gong gongal@163.com import numpy as np import math # 所在平面的任意两个正交向量描述 nx=1 ny=0 nz=0 ox=0 oy=0 oz=1 ...

2019-09-12 13:11:17 1260

原创 Strength and precision---An imaginery of a new type of Robot-Arm

Huge power and great precision is a paradox in a Robot, just like different kinds of weighing instruments, those to weigh jeweleries and those used to weigh a vehicle definitely have the same order of...

2019-09-03 11:34:01 298

原创 针对一款六轴机器臂的DH建模求解

有幸拿到一款喷涂机器人的部分数据资料,着手写它的运动学算法。第一步:DH建模根据图纸资料,建立dh参数表格如下:

2019-08-26 06:53:54 5926 7

原创 征集难于处理的机械臂奇异点位

目前,经过折腾机械臂正逆算法几个月,恍恍惚惚觉得有一些解决逆运动学算法的心得了,想挑战一下奇异点算法。只使用矩阵推导的办法,确实有无解的点,但是如果我们结合空间几何呢? 手上有奇异点的网友,希望我们一起研究,共同进步。...

2019-08-24 10:06:44 1670

转载 逆解常用公式(转自itfanr)

2019-07-29 06:21:42 332

原创 一个矩阵代数分析的辅助程序

人们在处理机械臂关节矩阵时,需要大量的手工相乘代数运算。 由于是推导公式,而不是进行数值计算,计算机不能直接参与协助。由于推导过程中,有大量的多项式代数相乘,手工抄写极易出错。笔者于是想通过python程序来协助完成部分任务。于是完成了如下程序,改程序能实现两个代数4*4矩阵的乘法。本程序有参考网络上defias的程序语法,在此对defias表示感谢。import xlrdimport...

2019-07-28 18:28:39 360

原创 庆祝完成ur机器臂的八组逆解

经过一段时间的努力和纠错,终于把ur机器臂正逆运动学求解代码全部拿下。没有借助ros和任何机器人库。完全原创。中间有一个第五轴角度负值不能求逆解的问题,成为最大的一个bug,最后自己拿pvc管子制作了一个模型,才发现其中原理,补足第六角的玉值,一切都ok了。非常有成就感。...

2019-07-23 14:44:04 2623 20

原创 一次艰苦的串口通信尝试--pc端的python vs. arduino

上位机的pc与下位机arduino进行数据通信,如下为我写的代码,实测可用:硬件:win7上位机,arduino uno,arduino usb连接线。上位机代码:# 作者 Tom13a gongal@163.comimport serialimport structimport timeimport numpy as npser = serial.Serial('com7'...

2019-06-29 16:48:09 1399

原创 实测发现python的numpy.round()函数有bug,只好自写函数代替它

代码如下,仅用于4*4矩阵:#define round function for matrix ,author‘s mailbox: gongal@163.com :import numpy as npfrom numpy import *;import mathdef roundt(A,a): B=array(A) for i in range(0,4): for...

2019-06-12 11:44:16 1671

原创 Python如何从矩阵中读写单个元素的值

为了给矩阵某一个元素的值进行提取,我从网上找过一些办法,但都不是很全面,经过学习试验发现如下规律:1.一个矩阵如果用numpy.eye(),或者列举的方法赋值,那么可以用如下方法进行取值和赋值:from numpy import *k1=eye(7)j=k1[1][2]j0.02.也可以反向赋值,给矩阵里的元素赋值:>>> from numpy imp...

2019-06-10 12:39:40 17096

原创 DH坐标系的建立笔记

https://www.cnblogs.com/mightycode/p/9095059.html如上这篇文章用于学习DH坐标系建立,非常不错,推荐初学者阅读。在此建立笔记如下:1.坐标系的建立隐含原则:文章右上方的草图,即为各伺服电机的初始位置,也就是 theta=0的位置。 我经过反复调测,得到这个结论。2.实际调试中,应该会对伺服电机的正负转向予以定义,用于适应开始建立的这个模型。...

2019-06-09 09:18:39 1852

原创 关于VS+openCV环境下debug和release切换的问题

我的vs版本是2019,opencv版本是4.1.0新手使用vs+openCV,在设置编程环境时,网上有大把的debug模式,一步一步跟着那些文档走,我们可以设置好一个debug方式的“本地windows调试器”,然而,如果你想把生成的可执行文件交给其它电脑运行时,可能需要你做出release版本的可执行文件集。根据我的亲测,需要把属性管理器中release|64下新建一个属性项目表,然后右键...

2019-06-02 12:06:45 1786

dawa1.1ab.zip

6轴通用型机械臂算法控制库

2021-07-04

iic两块板子通信.zip

两个arduino板子之间的iic通信代码,是网上程序员的作品,非我原创,但现在找不到出处了。

2019-10-05

test1.xlsx

程序中用到的exel文件,关节代数矩阵。

2019-07-28

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

TA关注的人

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