自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(106)
  • 收藏
  • 关注

原创 麦克纳姆轮 Mecanum 小车运动学模型和动力学分析

参考文献移动机器人的是为了解决小车的正向运动学和逆向运动学问题,即我们需要知道小车的移动平台与其移动装置之间的关系,对于Mecanum模型,。移动机器人的动态模型可估算外力因素对移动平台运动的影响,并可计算出移动平台运动所需的。

2024-05-04 23:15:40 1394

原创 ROS1快速入门学习笔记 - 014launch启动文件的使用方法

Launch文件:通过XML文件实现多节点的配置和启动(

2024-05-02 23:00:55 1241

原创 ROS1快速入门学习笔记 - 13tf坐标系广播与监听的编程实现

创建完后如下图所示: 实现一个tf广播器代码如下所示:三、创建tf监听器代码(C++)实现一个TF监听器代码如下:四、配置tf广播器与监听器代码编译规则配置CMakeLists.txt中的编译规则五、编译并运行 运行后,后面的海龟一直跟着前面的海龟。

2024-05-02 16:04:57 128

原创 ROS1快速入门学习笔记 - 12ROS中的坐标管理系统

例如我们想要查看turtle1和turtle2两个坐标系之间的关系(第二个工具)中心点是world坐标点, 移动海龟时,相应的坐标系也会发生变化。(在这里可能会出现一段红色警告,我们通过下面指令可以消除)然后我们运行海龟,发现后面的海龟会一直跟着我们移动的海龟。还可以通过另一个指令查看两个坐标系之间的关系。还可以通过Rviz查看两个坐标系之间的关系。例如移动机器人的本体坐标系与雷达坐标系。可能会出现生成的pdf崩溃,报以下错误。修改后再重新尝试就不会报错。(89行),在这行前面添加。接下来再重新运行即可。

2024-05-01 05:00:41 617

原创 ROS1快速入门学习笔记 - 11参数的使用与编程方法

重新设置参数后可以通过发送请求 rosservice call /clear "{}"来更新显示改过的参数值。默认的文件会保存在当前目录的路径下,例如我的参数此时保存在工作空间下。在最后运行后我们可以发现,小乌龟的背景由原来的蓝色变为白色。每个节点都可以访问我们的参数(类似于全局变量的存储空间)对应的Python程序如下所示,原理与C++一致。配置CMakeLists.txt中的编译规则。修改后我们可以通过在终端重新更新我们的参数。文件的参数也可以在对应的yaml内进行修改。可以通过dump来保存参数。

2024-05-01 01:25:16 366

原创 ROS1快速入门学习笔记 - 10服务数据的定义和使用

三个横线作为一个区分,上面是request,下面是response;创建完之后如下所示。

2024-04-30 17:36:23 392

原创 ROS1快速入门学习笔记 - 09服务器Server的编程实现

配置CmakeLists.txt的编译规则。

2024-04-30 06:13:59 137

原创 ROS1快速入门学习笔记 - 08客户端Client的编程实现

创建后如下所示: 实现一个客户端创建的C++代码如下:3. 配置客户端代码编译规则配置CMakeLists.txt的编译规则相对应的需要添加的代码如下所示:添加至对应的Build下面然后在工作空间catkin_ws下可以进行catkin_make编译,我们可以在工作空间catkin_ws/devel/lib/learning_service找到我们通过第一条CMakeList指令将cpp文件生成的可执行文件运行后会出现两只海龟 代码如下

2024-04-29 14:03:32 264

原创 ROS1快速入门学习笔记 - 07话题消息的定义与使用

并且,此时如果有第三个节点想要与这两个节点进行沟通是办不到的,因为ROSMaster已经关闭了。我们在下面路径下分别添加发布者和订阅者对应的C++代码文件。然后在下面的路径可以找到编译后的C++类型的头文件。将其添加到CMakeLists.txt文件中。需要通过发布者和订阅者来实现话题的演示。文件内容为上述定义的msg文件。先catkin_make进行编译。运行步骤与上述C++的一致。将代码移动至以下目录中。

2024-04-29 00:08:59 404

原创 ROS1快速入门学习笔记 - 06订阅者Subscriber的实现

与发布者步骤类似,我们将发布者的对应代码写入功能包的src文件中。可以发现,通过键盘控制小乌龟移动,它的位置坐标也会发生改变。将其放到功能包下的CmakeLists.txt文件中。记得将py文件的属性中的操作权限改为

2024-04-27 21:00:16 181

原创 ROS1快速入门学习笔记 - 05发布者Publisher编程的实现

对于Py文件,我们需要让它具有可执行权限,右键属性将其修改(如果感觉每次运行都需要配置环境变量太过麻烦,可以把它复制到。需要将以下两句话拷贝到CMakeLists.txt里面。我们将其复制到创建的learning——topic。拉到最后一行,其中home后为自己的用户名。最后我们可以得到海龟仿真器。实现流程与C++一样。

2024-04-27 16:15:26 557

原创 ROS1快速入门学习笔记 - 04创建工作环境与功能包

工作空间(workspace)是一个存放工程开发相关文件的文件夹。src:代码空间(Source Space)build: 编辑空间(Build Space)devel:开发空间(Development Space)install:安装空间(Install Space)

2024-04-24 03:05:14 455

原创 最优控制理论笔记 - 03无约束条件下的泛函极值问题

其中式子,式子。上述推导的重要作用在转化为求解的定解问题。

2024-04-22 18:32:27 176

原创 ROS1快速入门学习笔记 - 02ROS相关介绍

ROS = 通信机制 + 开发工具 + 应用功能 + 生态系统目的:提高机器人在研发中的软件复用率。

2024-04-22 17:41:17 591

原创 安装ROS出现WARNING The following node subscriptions are unconnected: * /rosout: * /rosout

上述问题主要源于ROS系统中的rosout节点未正确启动。这将启动一个 ROS Master,以及 rosout 和 parameter server。1. 打开一个新的终端窗口,输入下面的命令来启动roscore。问题应该在这个时候就解决了。您可以通过运行下面的命令来确认。在大部分情况下,以上步骤应该能解决问题。(记着需要同时打开两个终端)

2024-04-21 22:21:44 130

原创 ROS1快速入门学习笔记 - 01Linux基础

两种语言对比:C++的更多场景是偏向于跟硬件有关,跟框架相关的一些开发,Python用的更多的场景是在机器人的应用层和算法相关的一些开发上。C++代码需要通过g++ 指令进行编译;-o表示将这个代码文件编译为什么名字的可执行文件。编写C++需要安装g++编译器;编写Pyhton需要安装Python解释器。Python没有编译的过程,直接通过解析器来解析Python的代码。终端快捷键:ctrl+alt+t。在终端中./表示运行某个文件。执行方法与上面一样。执行方法与上面一样。

2024-04-21 22:20:39 449

原创 gitee上传出现git did not exit cleanly (exit code 1)的错误

2. 在邮箱管理中将邮箱从隐藏变为公开自己的邮箱,再次push后即可不会出现错误。,然后再次进行push操作。我们在控制面板中选择。

2024-04-06 23:21:38 299

原创 最优控制理论笔记 - 02变分与泛函1

变分法:是求解泛函极值的一种经典方法。也是解决最优控制的有利工具。函数:对于变量t在某一变域中得到每一个值,x都有一个值与之相对应,那么变量x称作t的函数。记为:x = x(t), t称为函数的自变量。泛函:对于某类函数中的每一个函数x(t),变量J都有一个值与之对应,那么变量J称作依赖于函数x(t)的泛函。记为:J = J[x(t)]或简单记为J, x(t)称作泛函的宗量。注意到泛函的定义域是由函数组成,所以泛函可以理解为”函数的函数“。对于积分型性能指标: 变量t是宗量x(t),u(t)和t的变量。零阶

2024-04-06 22:11:32 304

原创 最优控制理论笔记 - 01数学准备

称为梯度或者偏导数。

2024-04-04 23:08:29 332

原创 基于Python3的数据结构与算法 - 22 贪心算法

一个小偷在某个商店发现有n个商品,第i个商品价值vi元,重wi千克。他希望拿走的价值尽量高,但他的背包最多只能容纳W千克的东西。他应该拿走哪些商品?假设商店老板需要找零n元钱,钱币的面额有:100元,50元、20元、5元和1元,(无限多张)如何找零使得所需要的钱币的数量最少?(选择0-1背包最后可能出现包装不满的情况,可能剩下好多容量)(选择最贵的直至包里不剩位置)方法一:可以通过Python中内置的。

2024-04-04 23:08:19 740

原创 基于Python3的数据结构与算法 - 20 AVL的旋转

上图中的指的是该节点左右子树的高度差。(右子树高度-左子树高度)因为AVL树满足根的左右子树都是平衡二叉树,进行查找删除的操作时大致为一半一半的情况,因此一定不会出现极偏的情况。

2024-03-24 18:58:51 587

原创 基于Python3的数据结构与算法 - 19 二叉搜索树

输出结果如下所示:我们可以发现,中序遍历的结果一定是升序的!(对于二叉搜索树来说),因为中序遍历的遍历规则为先遍历左边,再遍历根节点,再遍历右边。3. 如果要删除的节点有两个孩子:将该节点删除,并其右子树的最小节点(该节点最多有一个右孩子)替换当前节点。2. 如果要删除的节点只有一个孩子:将此节点的父亲与孩子连接,然后删除该节点。

2024-03-23 05:20:31 686

原创 基于Python3的数据结构与算法 - 18 二叉树的遍历

将二叉树的节点定义为一个对象,节点之间通过类似链表的链接方式来连接。按照上图结构,自定义一个二叉树。

2024-03-23 05:19:55 308

原创 基于Python3的数据结构与算法 - 17 树的实例:模拟文件系统

【代码】基于Python3的数据结构与算法 - 17 树的实例:模拟文件系统。

2024-03-22 03:51:43 86

原创 LeetCode01 - 01.哈希表应用

哈希表在Python中可以使用字典和集合表示。接下面我们以最热力扣100题为例子,使用哈希表来解决。

2024-03-22 03:50:27 206

原创 基于Python3的数据结构与算法 - 17 哈希表

哈希表是一个通过哈希函数来计算数据存储位置的数据结构,通常支持如下操作:当关键字的全域U比较小时,直接寻址是一种简单而有效的方法。U: 关键字可能出现的所有的集合。T:根据U建立相关的T。然后关键字在相应的T中找值。直接寻址法的缺点:直接寻址表 + 哈希函数 = 哈希直接寻址表:key为k的元素放在k位置上改进直接寻址表:哈希(Hashing)哈希表(Hash Table, 又称为散列表),是一种线性表的存储结构。哈希表由一个直接寻址表和一个哈希函数组成。哈希函数 h(k) 将元素关键字k作为自变量,返回

2024-03-21 15:28:44 910

原创 基于Python3的数据结构与算法 - 16 链表

按元素查找:都是挨个遍历,复杂度都为O(n).按下标查找:列表中直接存放地址,复杂度为O(1), 链表复杂度为O(n).在某元素后插入:列表为O(n),链表为O(1)删除某元素:列表为O(n),链表为O(1)链表在插入和删除的操作上明显快与顺序表。链表的内存分配更加灵活。

2024-03-21 14:50:50 725

原创 基于Python3的数据结构与算法 - 15 栈和队列的应用(迷宫问题)

给一个二维列表,表示迷宫(0表示通道,1表示围墙)。给出算法,求一条走出迷宫的路径。

2024-03-12 05:04:26 284

原创 基于Python3的数据结构与算法 - 14 队列

目录一、定义1. 环形队列2. 自定义队列二、队列的内置模块 1. 双向队列队列也可以使用列表来实现:但是这种情况下会出现一个问题:若我们采用pop(下标来进行出队),此时操作上时间复杂度为为O(n),而且在情况(d)下,此时如果我们还需要入栈,只能在后面的空间上,前面的空间会造成浪费,因此我们引入环形队列。 可以到最后从头到尾接起来。定义:当队尾指针front == Maxsize - 1时, 再前进一个位置就自动到0. 对满的情况少1格是为了防止与空队列的情况相同。我们可以通过自己创建一个类来实现队列的

2024-03-12 05:04:16 463

原创 基于Python3的数据结构与算法 - 12 数据结构(列表和栈)

栈是一个数据集合,可以理解为只能在一端进行插入或删除操作的列表。

2024-03-08 22:04:45 650

原创 基于Python3的数据结构与算法 - 11 基数排序

多关键字排序:假如现在有一个员工表。要求按照薪资排序,。

2024-03-08 22:03:09 231

原创 基于Python3的数据结构与算法 - 11 桶排序

在计数排序中,如果元素的范围比较大(比如在1到1亿之间),此时使用计数排序会创建一个巨大的列表,占用大量的内存空间,那么我们怎么改造算法?

2024-03-05 04:16:09 345

原创 基于Python3的数据结构与算法 - 10 计数排序

对列表进行排序,。设计时间复杂度为O(n)的算法。

2024-03-05 04:16:01 138

原创 LeetCode01 - 35.搜索插入位置

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为O(log n)的算法214。

2024-03-03 00:17:18 432

原创 基于Python3的数据结构与算法 - 09 希尔排序

希尔排序是一种排序的算法。

2024-03-01 23:25:22 591

原创 基于Python3的数据结构与算法 - 08 NB三人组小结

递归需要消耗空间,因为快速排序采用递归,因此其空间复杂度平均为logn(递归走logn层),当遇到最坏情况为n(当为倒序的情况)例如对一个列表[3,2,1,2,4]排序,排序之后第一个2还位于第二个2的前面。稳定性指的是:当两个元素的数值一样的时候,保证他们之间的相对位置不变。需要保证两个a年龄之间的距离保持不变。或者有一组字典:分别位于第1,2,3行。

2024-03-01 23:24:46 420

原创 基于Python3的数据结构与算法 - 07 归并排序

假设现在的列表分两段有序,如何将其合并成为一个有序列表。这种操作成为一次归并。

2024-02-29 19:38:32 268

原创 基于Python3的数据结构与算法 - 06 topk问题

问题:目前共有n个数,设计算法得到前k大的数。

2024-02-29 18:38:39 131

原创 基于Python3的数据结构与算法 - 05 堆排序

二叉树:度不超过2的树,即每个节点最多有两个孩子节点,且两个孩子节点被区分为左孩子节点和右孩子节点。满二叉树:一个二叉树,如果每一层的结点数都达到最大值,则这个二叉树就是满二叉树。叶节点只能出现在最下层和次下层,并且最下面一层的结点都集中在该层最左边的若干位置的二叉树。从满二叉树最后一层拿走几个节点;即相对于满二叉树,最下面一层可以不满,但必须从左到右依次排过来堆:一种特殊的完全二叉树结构。大根堆:一棵完全二叉树,满足任一节点都比其孩子节点大小根堆:一棵完全二叉树,满足任一节点都比其孩子节点小。

2024-02-28 22:09:20 762

原创 基于Python3的数据结构与算法 - 04 快速排序

此时我们需要自己写出partition(归位函数),对元素进行归位。

2024-02-23 22:06:39 388

Python的学习笔记第二节 - Numpy

基于Numpy的学习笔记

2024-02-17

空空如也

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

TA关注的人

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