- 博客(13)
- 资源 (1)
- 收藏
- 关注
原创 通俗介绍哈希表核心思想
我们知道他最核心的特点就是快,访问的时间复杂度基本上可以说是O(1),和数组一致,所以我这里主要解释这两点: 1,如何实现O(1)访问的。2,和数组有啥区别。我看网上各种讲解很多,有的长篇大论,其实核心就一点——将数据要存储的地址和数据本身通过一个函数关联起来,函数就像一个传送门一样,你输入要查找的数据,将你传送到数据所在地。数组也是O(1),也是一种数据结构,那他和哈希表本质区别是啥?其实还是那句话,哈希表是直接将数据内容和地址关联起来了,而数组虽然访问某个位置的是O(1),它查找某个数据是O(n)。
2023-07-24 11:51:31 131
原创 最小二乘法思想
“二乘”即平方,因此也即最小平方法。网上讲解很多,在此不赘述,只想在此基础上进一步抽象出最底层的思想。1,用一种含参的表达式来表达变量之间的关系2,定义一种评价函数,比如与真值的误差平方和(最小二乘即是这种)3,问题就转化成了求参的问题,对于最小二乘法,就是求得参数为何值时,误差平方和最小。...
2021-08-02 13:12:53 1264
原创 A*算法与dijkstra算法对比及原理分析
参考博客:https://blog.csdn.net/dujuancao11/article/details/109749219共同点: A*的dijkstra算法都是源于数据结构的广度优先搜索,它俩都有一个明确的起点,然后从这个起点开始向四周扩散并更新节点或者栅格的代价。 两者在扩散的过程中,都将节点划分为已确定父节点的点和待确定父节点的点。 步骤可以简略为:1,将带确定父节点的点中最小代价的点更新为确定点。 2,由于有新节点父节点的确定,更新此节...
2021-07-12 09:29:58 4492
原创 ROS_MASTER_URI 主从机通机一篇搞定
因为我是做实物的,这个在玩ROS中的比例并不高。中间有个很重要的环节就是电脑端和下位机例如树莓派之类的进行通信。总的来说分为两部,也可以说两个文件一,/etc/hosts这个文件是为了让两个主机tcp/ip连接。也就是通信底层的连接。让两个主机能够互相找到对方。分别在两个主机的此文件中添加对方ip地址,格式如下192.168. **. *** 主机名***注意是主机名不是用户名,也就是你打开一个终端,@到:之间的那部分ip地址可以使用 ifconfig查看 inet后面.
2021-04-30 16:56:26 949 1
原创 robot_pose_ekf功能包使用说明
手写不易,转载请注明出处。一,ros wiki 链接:http://wiki.ros.org/robot_pose_ekfwiki 官方介绍翻译: 这个功能包是用来估计机器人的3D姿态的,基于从不同传感器测量得到的部分位姿信息。它使用带有六个维度(三轴位置,三轴角度)的拓展卡尔曼滤波去融合来自编码器(里程计),陀螺仪及视觉里程计的数据。它主要的目的是针对不同的传感器提供一种松耦合的融合算法。二,怎么使用这个功能包一个默认的EKF启动文件可以在功能包目录下面找到。 这个launch文件包括..
2021-04-17 16:01:50 2375
原创 rosdep install robot_pose_ekf 出错
用rosdep下载ekf失败ERROR: Rosdep cannot find all required resources to answer your queryMissing resource robot_pose_ekfROS path [0]=/opt/ros/melodic/share/rosROS path [1]=/home/geek_wu/catkin_ws/srcROS path [2]=/opt/ros/melodic/share解决办法 改为sudo apt-g.
2021-04-15 22:45:55 456
原创 欧拉角之万向锁
1,我们知道对于刚体的三维旋转通常有三种方式,旋转矩阵,欧拉角和四元数。其中我觉得欧拉角知道的人应该最多,也就说我们常说的桶滚roll,俯仰pitch,偏航yaw。 2,但对于欧拉角表示刚体旋转有个非常严重且著名的问题也就是万向锁,这个东西真的是折腾了我很久才弄明白,在学习四元数时很多文章或者视频都基本会提到这是欧拉角表示旋转的缺陷,但是大多都说的很模糊,有的干脆就不解释。 3,在看了很多文章,视频以及大量的自我琢磨后感觉基本弄清楚了这个问题,想在这谈一谈,一是让更多人看见,二是...
2021-04-12 21:59:09 273
原创 高数总体思想
1,等效:将未知的等效成已知的,从而简化问题,如等价无穷小2,分情况:将一个复杂的问题通过分类简化,如绝对值分区间,分情况,把一个积分分开积3,问题转化:通过分解,变换将未知问题转换为已知问题的组合4,回到根本:其实很多问题得回到问题的本质来解决5,升维度看问题:比如图形典型找积分区间,图形就是站在了高纬看问题,因为变量从-无穷到正无穷的情况都在纸上,从某种意义上没有变量,傅里叶变换,6,封装:将局部复杂度包起来简化问题,如变量代换。高数的一点个人理解:极限思想我觉得可能是高数的
2020-09-27 22:22:50 634
原创 高数-5 微分方程
今天是我准备考验的第五天,看到微分方程解微分方程的基本思想就是分类,然后根据不同的类别采取不同的方式,没有一个通用的方式大的分类是按阶数分类,一阶,二阶,高阶一,一阶微分方程一阶又分为线性和非线性1,一阶非线性非线性没有一般方法,都是一些特殊技巧一是分离变量,二是化为齐次方程,三是化为齐次方程的方程,四就是伯努力方程特点是有y的n次方,方法是转换为线性微分2,一阶线性微分线性的思想源于齐次分离变量然后积分,非齐次就是把常系数C换成关于x的变系数,得到C(x)与q(x)p(
2020-09-24 22:30:18 1186
原创 ROS思想基础浅谈(转载请注明出处)
从现在开始,我要记录自己学习ROS学习中的一些心得体会,发在csdn上,有兴趣的小伙伴一起交流。1,ROS,机器人操作系统,我觉得这个名字非常好,虽然说ros不是我们以往认知的那种操作系统,但是广义上我觉得确实可以将ros看作是一个操作系统,因为它完成了硬件抽象,底层设备控制,常用函数实现,进程管理,包管理。而本质上ros是在Linux系统上根据机器人开发专门做的进一步的封装,建立了一个适用于开发的框架,以及开发所需的数据处理分析工具,实现机器人基本功能的功能包,和庞大的开源社区。...
2020-08-09 12:51:05 425 1
原创 基于操作系统编程与裸机编程的区别
因为学的是控制,刚开始的时候玩的单片机比较多,单片机进行开发的一个重要的特点就是裸机编程。也就是说内核跑的完完全全是你的代码。但是在操作系统上编程就完全不一样,因为你的程序大部分都在调用操作系统的接口函数,从而间接的管理硬件。操作系统搭好了框架,实现硬件抽象,文件存储管理,进程管理,因此当我开始接触ROS开发时产生了极大的不适应...
2020-07-11 17:58:27 4480 2
原创 ubuntu 挂载无法挂载U盘解决办法
在使用ubuntu16.04时插入U盘提示无法挂载,原因是ubuntu本身并不支持U盘挂载,需要下载exfat磁盘格式工具。终端下输入命令 sudo apt-get install exfat-utils安装之后重新插上U盘就ok了...
2019-10-06 14:36:29 2848
原创 sudo apt-get update 无法获得锁
问题: 更新资源sudo apt-get update时遇到资源暂时不可用或者解决办法:参考原文:https://www.cnblogs.com/userrain/p/5926025.html (1)sudo rm /var/lib/apt/lists/lock (2) ps aux #列出当前进程列表 找到 apt-get ...
2019-09-06 12:02:17 2225
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人