note of Tactile Sensor Papers
Soft Bubble硬件
深度相机:尺寸小,帧率高,支持USB等
气囊外壳:顺应性强,摩擦力大,便于抓取
应用案例物体分类使用深度神经网络ResNet作为对象分拣器。
输入
传感器受压时的深度图像
输出
施压物体属于某类别的概率
具体种类
Cube
Robot
Frustum
Triangular prism
Bridge
Hemisphere
none
算法
lost function: cross-entropy loss(交叉熵损失?还没学到)
optimizer: stochastic gradient descent(随机梯度下降?也还没学到)
纹理识别在前一个实验的基础上添加三种具有不同表面纹理但具有同大小规格的立方体进行分类
结论
分辨成功率与图像分辨率正相关,但会有一些波动。
姿态估计与跟踪
输入信息
算法:Iterative Closest Point (ICP) algorithm
将两组曲线、两组曲面或两组点云进行配准
基本思想
输入为两组点和变换的初始估计,输出为两组点之间的最优变换。
(自己概括的,可能不全面)通过迭代的方式寻找初 ...
Hello,FreeRTOS!
Hello,FreeRTOS!官网链接
FreeRTOS - Market leading RTOS (Real Time Operating System) for embedded systems with Internet of Things extensions
正点原子教程手册
https://semitia.top/upload_flies/STM32F1_FreeRTOS_V1.1.pdf
DEMO1: Blink_LED移植按照教程移植的时候,编译出来会有报错
..\OBJ\LED.axf: Error: L6200E: Symbol PendSV_Handler multiply defined (by port.o and stm32f10x_it.o).
..\OBJ\LED.axf: Error: L6200E: Symbol SVC_Handler multiply defined (by port.o and stm32f10x_it.o).
报错信息显示 PendSV_Handler和SVC_Handler在port和stm32f10x_it里面重 ...
Hello,esp32!
Hello, esp32! 今天终于在windows上配置好了esp32的开发环境,感谢这个up主提供的方式。
乐鑫ESP32官方开发环境 Espressif IDE 一键安装教程-无需插件和手动配置_哔哩哔哩_bilibili
我之前也试过其他的开发方式,platformIO开发呢局限性比较大,VScode上的ESpressif IDF呢一直下载失败,最后也没折腾出来。在这里总结一下这个配置方式,结合自己遇到的一些小问题。
IDE安装可以在乐鑫官方的Github下载,也可以在视频里的百度网盘下载。安装过程非常惬意,但还是有一点注意事项。
espressif/idf-installer: ESP IDF Windows Installer (github.com)
连接 & 烧录 我这个板子直接用microUSB连接至电脑。但是数据线也要用稍微靠谱的,我一开始用的俩数据线不太行,插上去板子能取电,但是电脑识别不到串口。如果不是驱动的问题,估计就是线的问题。换了个线之后就好了。我这里是 com9
烧录的时候有一个小问题,就是connec ...
Matlab logs
MATLAB各功能使用的简单记录。
lsqcurvefit参数拟合
PID波形绘制及积分优化
MATLAB串口绘制波形 对于MATLAB我也是久仰大名,最近安装了一个,感觉功能很丰富,也比较有意思。当然本人也是刚安装MABLAB不久,对其理解还是分浅薄,暂时也只是一些简单的使用。
函数说明plot( ) 二维绘图二维线图 - MATLAB plot - MathWorks 中国
axis( ) 显示范围(15条消息) Matlab axis函数_Geek猫的博客-CSDN博客_matlab axis
grid 栅格Display or hide axes grid lines - MATLAB grid (mathworks.com)
代码实现新建函数文件——Serial.m
1234567891011121314151617181920212223function Serial() %创建函数delete(instrfindall); %先关闭串口,否则可能导致出错global x %全局变量,供串口中断函数使用global t; %全局变量,这里根据需要绘制图形的个人需要而设global m;global i;t = [0]; ...
D-H参数法与机械臂正逆解
D-H参数法(14条消息) 一文带你完全掌握机器人DH参数建模(详细步骤+实例+代码)_Marc Pony的博客-CSDN博客_dh建模
坐标变换矩阵(14条消息) 详解坐标变换矩阵_Akinaze的博客-CSDN博客_坐标变换矩阵
D-H参数 一般来说,想要得到两个坐标系之间的变换矩阵,需要知道六个量。但是在使用D-H参数法时,需要按照特定方式建立坐标系,依托于这些“前提约束”,我们只需要4个参数便可以得出两坐标系之间的变换矩阵。
先要理解坐标系的建立规定
z轴的方向垂直于旋转面,即为转轴;
x[i]方向的确定:同时垂直于z[i]与z[i-1];
依据这样的规定,可以发现:
z[i-1]同时垂直于x[i-1]与x[i];
x[i]同时垂直于z[i-1]与z[i];
由此,z[i-1]和x[i]便成了连接坐标系[i-1]和坐标系[i]的重要参考。再看四个参数的定义
d[i]:坐标轴x[i-1]与坐标轴x[i]沿着z[i-1]的有向距离;
θ[i]:坐标轴x[i-1]与坐标轴x[i]以z[i-1]为转轴的旋转角(逆时针,xi在前为正,或者说从x0转到 ...
DIY平衡小车(上位机)
LattePanda前言与Ubuntu18.04安装 原本用的是树莓派3B,官方的desktop版本只有22.04版的,装上之后奇卡无比,浏览器都会闪退。但是这样也能用,之后装上了ROS2,惨痛的发现在终端编译都会闪退,所以尝试换成18.04(感觉对性能要求会低一些),正好18.04也与厂家代码更适配,所以尝试装了server版本,因为没有图形化界面,需要自己联网,安装图形化界面,过程比较曲折。可以参考这一篇博客
树莓派4B安装Ubuntu18.04+ROS Melodic终极教程 - 知乎 (zhihu.com)
安装ROS的话我发现了一个神仙博主提供的一键安装命令,非常方便。
(15条消息) 如何一行代码安装ROS|2022最新版|一行代码安装ROS2|一行代码解决rosdep|一行代码配置多ROS环境_鱼香ROS的博客-CSDN博客_ros安装脚本
可是安装完了之后我悲惨的发现,就是树莓派性能不够,图形化界面装完了之后直接显示花屏。
所以我干脆一鼓作气买了个LattePanda2,性能据说约等于两个树莓派4B,八个树莓派3B。是X86架构的,自带Win10, ...
DIY平衡小车
前期基本方案预期效果基本目标
根据指令实现精准的速度控制
自身坐标和姿态的解算
与上位机传输数据
更有意思的目标
双轮平衡车
控制雷达平稳
电机驱动 电机使用12V供电,可以直接由电源模块供电。使用TB6612驱动模块可以满足两个电机的驱动需求。
位姿测量 使用MPU6050可以获取角速度和加速度值(但是之前试用的时候发现其自带的库位姿解算会有不少时间的初始化延迟)。
MPU6050使用IIC通信,在获得了新的测量之后会在INT脚输出高电平,为了保证数据的即时性,将一个GPIO配置为外部中断,在中断函数里更新数据。
轮速获取 将两个定时器配置为编码器接口模式,分别接收两个电机对应的编码器数据。我们使用的是AB双相输入的编码器,参考手册:
如果计数器只在TI2的边沿计数,则置TIMx_SMCR寄存器中的SMS=001;如果只在TI1边沿计数,则置SMS=010;如果计数器同时在TI1和TI2边沿计数,则置SMS=011。
对寄存器的配置已经被封装在库函数TIM_EncoderInterfaceConfig( )里了,只需要选择配置模式3即可, ...
卡尔曼滤波学习笔记
卡尔曼滤波前言 最近在学习卡尔曼滤波算法,这其中用到了一些数学和现代控制理论的知识。由于我在学习之前没有啥知识储备,在网上看了很多博客、花了很多时间之后依然是一种似懂非懂的感觉。终于找到了一些很棒的教程,感觉算是稍微理解了一些,整理了一些学习笔记,梳理思路,也方便日后查阅。
教程链接
【卡尔曼滤波器】1_递归算法_Recursive Processing_哔哩哔哩_bilibili
从放弃到精通!卡尔曼滤波从理论到实践~_哔哩哔哩_bilibili
https://blog.csdn.net/Yemiekai/article/details/116372288
数学基础协方差矩阵
将方差、协方差在一个矩阵中表现出来,体现变量间的联动关系
假设有X,Y,Z三组数据,每组数据有n个
方差:\sigma_x^2 = \frac{1}{n}\sum(x_i - \bar{x})^2方差越大,数据波动越大
协方差:\sigma_x\sigma_y = \sigma_y\sigma_x = \frac{1}{n}\sum(x_i - \bar{}x)(y_i - \bar{y})协 ...
IIC & PCA9685
前言 有些时候需要同时驱动多个舵机,需要为每一个舵机调制出对应的PWM脉冲信号;如果舵机很多的话,会占用主控的很多资源。幸运的是有这样一款模块,只需要两个GPIO口,便可以通过I^2^C通信协议控制16路舵机(事实上可以串联多个模块,控制更多舵机)。在这里记录一下其使用方法和代码实现方法。
I^2^C通讯协议一篇介绍的很详细的文章:一文看懂I2C协议 - 知乎 (zhihu.com)
这里附上较为权威的文件链接
https://semitia.top/upload_flies/TI_I2C_slva704.pdf
https://semitia.top/upload_flies/NXP_I2C_UM10204.pdf
https://semitia.top/upload_flies/ZLG_I2C.pdf
此篇笔记则是结合《TI_I2C_slva704》和代码简单记录一些基本功能。
概述 IIC使用两个接口(SCL和SDA)进行半双工通信。分为主机(Master)和从机(Slave device),每个设备有自己特定的地址,一个设备有一个或多个寄存器储存数据,主机 ...