- 博客(63)
- 资源 (10)
- 收藏
- 关注
原创 Python 代码打包
并修改其文件名,起始把它视为正常的 .py 文件即可,用法一致,如下。,反编译后为源代码,毫无安全性。,设置好需要编译py文件的路径。的build文件夹内,的 pycache。
2023-06-30 18:59:35 433
原创 Ubuntu的USB相关操作
编写内容:搜索所有的USB设备,遇到对应的厂商ID+产品ID,则修改权限,并且别名该设备。新建空配置文件,文件名可自定义,扩展名必须.rules。文件生效: 执行两行命令。
2023-06-25 12:34:26 1515
原创 机器人--基础知识
(1)假设基(i, j)到基(u, v)基的变换矩阵为P, 则基(u, v)下的向量x到基(i, j)下,转化计算为Px。题目:机器人T1位置(3阶矩阵)观察到目标P1(坐标),现在机器人运动到T2位置,试问目标P1在T2位置的坐标为多少。(2)同样,已知(i, j)在基(u, v)的表示,记为Q,Q就是基(i, j)下的向量x到基(i, j)下。(2)M把基(i, j)映射成了(u, v),当前向量在基(u, v)下表示的位置,记为变换结果。(1)M把A所在的空间的基进行了变换,因此A也进行了变换。
2023-04-12 13:24:24 671
原创 深度学习-损失、优化器
L1的Smooth loss可以用汉书表示为,挺好的,结合了L1、L2的优点。L2的loss可以用汉书表示为,0点可导,但远处容易梯度爆炸。优化器的最终目标是最小化Loss函数,从而优化网络本身参数。又名随机梯度下降,前期算法没有增加动量,目前是一类动量法。L1的loss可以用函数表示为,挺好的,就是0点不可导。它包含了 learning rate 和 函数两部分。优化参数的过程可以表示为如下,其中。此文仅供学习使用,禁止其他用处。Momentum-动量法。
2023-03-13 13:48:48 328
原创 数值分析及其应用
参考SVD-矩阵奇异值分解 —— 原理与几何意义矩阵奇异值分解(SVD)12.3 奇异值是什么特征值分解仅适用于提取方阵特征,但在实际应用中,大部分数据对应的矩阵都不是方阵;奇异值分解是将任意形状矩阵A用更小、更简单的 3个子矩阵乘积UξVTU\xi V^TUξVT表示,如下AUξVTA=U\xi V^TAUξVTSVD分解后子矩阵的特点ξ\xiξ中的元素会按大到小排好顺序,因此代表该维度重要性越高(值越大)。它是AATAA^TAAT的特征值的根号结果。
2023-02-24 18:33:37 650
原创 MTI运动传感器ROS配置
在刚刚工作空间下功能包xsens_ros_mti_driver的param文件夹下的xsens_mti_node.yaml内。敲回车代表接受默认安装路径:/usr/local/xsens。注意:下载最新体验版,MT软件套装Linux(x64)版本。
2022-12-23 12:04:06 399
原创 机器人之Move_Base
首先,用户指定区域之外的障碍物将从机器人的地图中清除。接下来,如果可能,机器人将执行就地旋转以清理空间。如果这也失败了,机器人将更积极地清除它的地图,移除它可以就地旋转的矩形区域之外的所有障碍物。...
2022-07-19 10:48:48 1960 4
原创 机器人之Cartographer
整体而言,LocalSLAM部分负责生成较好的子图,GlobalSLAM进行全局优化,将子图最佳match在一起。就使用cartographer需要构建至少两个文件,一个是启动的launch文件,另一个是建图时所使用的lua配置参数。..................
2022-07-16 19:28:33 1220
原创 机器人之Hector
hector_mapping是一种在没有里程计的slam方法,也可以在显示pitch/roll运动平台上使用。它利用了现代激光雷达系统的高更新率,如Hokuyo UTM-30LX,并在传感器的扫描速率下提供2D姿态估计(UTM-30LX为40Hz)。虽然该系统不提供显式闭环功能,但对于许多现实世界的场景来说,它足够准确。该系统已成功用于无人地面机器人,无人地面车辆,手持测绘设备和四旋翼无人机的记录数据。相关论文:A flexible and scalable SLAM system with full 3
2022-07-14 14:00:34 432 1
原创 机器人之Gmappinng
gmapping 是ROS开源社区中较为常用且比较成熟的SLAM算法之一,gmapping可以根据移动机器人里程计数据和激光雷达数据来绘制二维的栅格地图。运行的要求(两个TF,一个scan):odom、scan到 base_link的TF、激光雷达两个.....................
2022-07-13 19:39:36 252
原创 STM32F4的DSP库
环境配置1. CUBEMX 中勾选生成工程时添加所有库2. Keil 中宏定义:,__FPU_PRESENT=1,__TARGET_FPU_VFP,ARM_MATH_CM4,__CC_ARM3. Keil 中添加DSP库位置:../Drivers/CMSIS/DSP/Include4. 添加lib文件的lf后缀到工程的core文件夹下5. 函数使用时包含头文件:#include "arm_math.h"6. 编译工程函数使用官方介绍:地址在keil的包里面构建矩阵介绍:typedef
2022-04-13 23:48:48 2183
原创 ROS2-Foxy-配置
本文仅作为笔记使用系统安装wget http://fishros.com/install -O fishros && bash fishros安装miniconda与jupyerminicondaminconda下载地址选择Python3.8 Miniconda3 Linux 64-bit进入下载文件夹后在终端运行bash Miniconda3-py38_4.10.3-Linux-x86_64.sh 然后一路enter 和输入yesjupyer安装pip3 ins
2022-02-05 21:01:10 1456
原创 Nav2初次尝试
安装nav2sudo apt install ros-foxy-navigation2sudo apt install ros-foxy-nav2-bringupsudo apt install ros-foxy-turtlebot3*运行示例source /opt/ros/foxy/setup.bashexport TURTLEBOT3_MODEL=waffleexport GAZEBO_MODEL_PATH=$GAZEBO_MODEL_PATH:/opt/ros/foxy/share/t
2022-02-04 19:56:40 780
原创 机器人的位姿
结构#mermaid-svg-1ORd1QK5r2k6raSJ .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-1ORd1QK5r2k6raSJ .label text{fill:#333}#mermaid-svg-1ORd1QK5r2k6raSJ .node rect,#mermaid-svg-1ORd1QK
2022-01-16 19:36:02 504
原创 ROS2的多线程
条件1、多线程执行器2、回调组执行器回调时线程产生:#mermaid-svg-3zTkDXCDkmfV4980 .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-3zTkDXCDkmfV4980 .label text{fill:#333}#mermaid-svg-3zTkDXCDkmfV4980 .nod
2022-01-15 15:04:07 1810
原创 ROS2笔记
来源为了方便各种不同型号但是同一类的器件使用,诞生了接口;通信方式 != 接口类型创建一个自己的接口包源码编译配置文件包管理文件#mermaid-svg-OAlyTtIkREXOAkXP .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-OAlyTtIkREXOAkXP .label text{
2022-01-14 14:40:33 498
原创 ROS2的Python包
Package组成源码运行文件配置文件#mermaid-svg-OyBCZCVkqsao0B1I .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-OyBCZCVkqsao0B1I .label text{fill:#333}#mermaid-svg-OyBCZCVkqsao0B1I .node rec
2022-01-14 14:01:41 521
原创 ROS2的C++包
Package组成源码编译配置文件包管理文件#mermaid-svg-gv5GOR5xToDjiIC1 .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-gv5GOR5xToDjiIC1 .label text{fill:#333}#mermaid-svg-gv5GOR5xToDjiIC1 .node
2022-01-14 13:56:50 750
原创 hcgdyd
def draw_data_to_wave(img , data , start_x, start_y, w , h , color = (255,255,255)): #计算数据的长度 data_len = len(data) #获取数据限极限幅值 data_min , data_max = min(data) , max(data) #数据归一化系数 arg_data_high = h / data_max #坐标变换系数
2021-11-07 09:58:14 82
原创 2021-06-26
from math import sin as math_sinfrom math import cos as math_cosclass D3_Rotation(object): angle=0 shaft = [1 , 0 , 0] result=[0,0,0] matrix = [[0,0,0],[0,0,0],[0,0,0]] def __init__(self): print('init') def init_matrix(s
2021-06-26 13:32:23 64
原创 记录用纯四元数计算三维旋转
这是思维实现过程然后设转轴向量为( a ,b,c),旋转的点为(m,n,p)为了在程序中简单描述这个旋转,所以我们认为先计算旋转后的点,即i,j,k的系数
2021-06-20 21:54:48 199
原创 卡尔曼滤波感悟
卡尔曼滤波器最核心的公式是卡尔曼增益不需要融合的系统来讲,卡尔曼增益是系数关于方差最小的最优解,也就是每一次计算中方差最小值所对应的卡尔曼系数)需要融合的系统来讲,方差已经被协方差取代,此时应该找到关于二者方差和最小的k解,所以用真实值与预测值之间误差的协方差矩阵的迹对k求导...
2021-04-28 08:42:10 218
原创 K210扩展python模块到固件
直接将需要添加的python模块添加到:MaixPy\components\micropython\port\builtin_py在编译的的时候就会自动编译然后正常调用就行了
2021-04-24 10:22:51 1413 8
原创 ECG心电信号处理-FIR
防止边界值突变可以使用边界值重复class filter: def __init__(self,order,h): self.order=order self.h=h self.output=[] def FIR_Filter(self,vi): for i in range(len(vi)): sum=0 if i < self.order:
2021-04-10 11:46:21 1198 1
原创 micropython的波形显示
基于K210def draw_data_to_wave(img , data , start_x, start_y, w , h , color = (255,255,255),fill = True): #计算数据的长度 data_len = len(data) #获取数据限极限幅值 data_min , data_max = min(data) , max(data) #数据归一化系数 arg_data_high = h / (data_max-d
2021-03-26 22:34:55 310
原创 k210编写c模块,参数的传入和传出
先看看目录,做到步骤明确系统基于MicroPython简单示例源码编写相关的设置设置编译位置是否**==编译进固件==**编译测试系统基于MicroPython简单示例源码编写#include "stdint.h"#include "stdio.h"#include "py/obj.h"#include "py/runtime.h"//定义的modtest全局字典,之后我们添加type和function就要添加在这里STATIC const mp_rom_map_elem_t my_li
2021-03-09 23:04:35 858 2
原创 MicroPython的数字信号处理
FIR滤波class filter: def __init__(self,order,h): self.order=order#滤波阶数 self.h=h#抽头系数 self.output=[] def FIR_Filter(self,vi): for i in range(len(vi)): sum=0 if i < self.order:
2021-03-05 20:49:25 524
原创 stm32中圆形缓冲区的实现
思路圆形缓冲区的实现用处很多,比如一个屏幕的显示中可以认为是一个二维的,当屏幕需要动态的不断更新数据,并且还是动态的显示波形,但是显示的宽度却是一定的,这时候一般采用给一定宽度的数组添加一个,随即删除一个,此时就是动态的。简而言之:数组长度固定,删除最前面的数据,然后在最后面添加一个新数据思路:申请一个全局数组,但是要比需要的长度长2;其中一个用来存放起始地址,另一个用来存放结束地址起始地址方便我们进行数据的读取;结束地址方便我们进行数据存入;源码//圆形缓冲区uint16_t cir
2021-01-21 17:46:33 285
基于STM32 CUBeMx的MPU9250驱动和磁力计椭球拟合
2022-04-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人