自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

翻译 基于优化的自动驾驶车辆路径平滑

来源matlab工具箱OptimizationBasedPathSmoothingforAutonomousVehicles;此示例向您展示如何通过保持平滑的曲率和与停车场障碍物的安全距离来优化汽车类机器人的路径。在此示例中,您可以使用optimizePath函数和optimizePathOptions对象来优化规划路径。......

2022-07-26 15:26:30 1681

原创 A*路径搜索超详细代码

A*路径搜索matlab代码前言一、主函数main.m二、障碍物obstacle_map.m文件三、可视化visualize_map.m文件四、A* 路径搜索A_star_search.m文件五、初始化open 表六、取出open list 一个节点索引值七 扩展open list结果展示前言这里只记录代码以及代码详解,不讲解理论提示:以下是本篇文章正文内容,下面案例可供参考一、主函数main.mmain.m文件close all; clear all; clc;% 初始化起点,目标点,

2022-05-15 23:07:39 576

原创 URDF—ROS2

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档@TOC前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考编写urdf文件文件名:sam_bot_description.urdf<?xml version="1.0"?><robot name="sam_bot" xmlns:xacro="h.

2022-04-27 11:28:13 325 1

转载 路径规划算法

这是我见过最形象的A*算法动态感受。https://www.redblobgames.com/pathfinding/a-star/introduction.html

2022-04-26 22:33:53 310

翻译 【无标题】

ROS2 主题 vs 服务 vs 行动区别前言一、话题二、服务三、行动前言在设计系统时,存在三种主要的界面样式。 本文旨在为读者提供有关何时使用每种接口的指南。一、话题 - 应该用于连续数据流(传感器数据、机器人状态……)。 - 用于连续数据流。 数据可以在任何时候独立于任何发送者/接收者发布和订阅。 多对多连接。 一旦数据可用,回调就会接收数据。 发布者决定何时发送数据。二、服务应该用于快速终止的远程过程调用,例如用于查询节点的状态或进行 IK 等快速计算。它们不应该用于运行时

2022-04-25 11:37:22 45

原创 【无标题】

编写自己的ROS2库供自己使用编写库函数时,没有main()函数,只有提供接口,那么如何编写CMakeLists.txt文件?问题描述按照一般节点来编写CMake文件,将出现以下错误:aamir@aamir-WRTB-WXX9:~/Documents/UWB$ colcon build --packages-select kfStarting >>> kf --- stderr: kf /usr/bin/l

2022-04-22 22:27:26 84

翻译 ROS1迁移到ROS2基础教程

将 ROS 1 包转换为 ROS 2包例子前言一、ROS1代码1. ros1工作空区的目录布局2. 代码2.1 src/talker/package.xml2.2 src/talker/CMakeLists.txt2.3 src/talker/talker.cpp3. 构建 ROS 1 代码4. 运行 ROS 1 节点4.1 运行主节点4.2 运行tlaker节点二、迁移到 ROS 21. 修改C++文件1. 1修改头文件1.2. 更改 C++ 库调用1.3 C++完整代码2 修改package.xml2.

2022-04-09 15:43:11 5012 1

翻译 ROS 1 的迁移到ROS 2指南

ROS 1 的迁移到ROS 2指南前言一、先决条件二、迁移步骤1.Package manifests2.元功能包Metapackages3.消息、服务和操作定义4.构建系统 Build system5.编译工具 Build tool6. 纯 Python 包6.更新 CMakeLists.txt 以使用 ament_cmake总结前言有两种不同类型的包迁移:将现有软件包的源代码从 ROS 1 迁移到 ROS 2,目的是使源代码的重要部分保持相同或至少相似。 一个例子可能是 pluginlib ,其

2022-04-08 20:51:42 4525 1

原创 ROS学习之Xacro文件转成urdf文件和使用

文章目录前言前言Xacro文件转成urdf文件命令://命令行进入 xacro文件 所属目录,执行:rosrun xacro xacro xxx.xacro > xxx.urdf用launch文件直接调用xacro文件:<launch> <param name="robot_description" command="$(find xacro)/xacro $(find 包名)/xacro文件路径" /></launch>...

2022-03-19 11:05:10 2869

原创 ROS学习之URDF工具

文章目录前言1、check_urdf 语法检查2、urdf_to_graphiz 结构查看前言URDF工具及基本运用1、check_urdf 语法检查进入urdf文件所属目录,调用:check_urdf +urdf文件如果不抛出异常,说明文件合法,否则非法2、urdf_to_graphiz 结构查看进入urdf文件所属目录,调用:urdf_to_graphiz urdf文件当前目录下会生成 pdf 文件,用来显示关节之间的关系。...

2022-03-19 10:58:17 502

转载 ROS学习与记录

学习目标:提示:这里可以添加学习目标例如: 一周掌握 Java 入门知识学习内容:提示:这里可以添加要学的内容例如:搭建 Java 开发环境掌握 Java 基本语法掌握条件语句掌握循环语句学习时间:提示:这里可以添加计划学习的时间例如:周一至周五晚上 7 点—晚上9点周六上午 9 点-上午 11 点周日下午 3 点-下午 6 点学习产出:提示:这里统计学习计划的总量例如: 技术笔记 2 遍 CSDN 技术博客 3 篇 习的 vlog 视频 1

2022-03-19 10:45:17 138

原创 ROS发布与订阅处理顺序以及多线程使用

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档ROS发布与订阅处理顺序以及多线程使用一、前言二、发布者三、订阅者四、测试结果1、单线程2、多线程3、单独为某个话题开辟线程五、总结一、前言记录ROS发布与订阅处理顺序以及多线程使用,由于情况很多,所以不一一细讲,有需要的可以自己尝试。这里简单讲解两个话题以及两个订阅者的情况。二、发布者发布方发布两个话题:talker发布两个话题,然后每个话题都各自开辟自己的队列(有一些人说之开辟一个队列,个人觉得不严谨,只是因为话题处理.

2022-03-16 16:33:21 3990

原创 ROS 发布和接收信息同步

项目场景:问题描述提示:这里描述项目中遇到的问题:发布信息时,添加该代码,即可达到发布和监听同步 while (0 == message_a_pub.getNumSubscribers() || 0 == message_b_pub.getNumSubscribers()) { ROS_INFO("Waiting for subscribers to connect"); ros::Duration(0.1).sleep(); }原因分析:提示:这里填写问题的分析:

2022-03-16 10:47:17 817

原创 Ros tf2_ros::Buffer.lookupTransform 运行报错lookupTransform base2laser error

项目场景:tf2_ros::buffer.lookupTransform()用法及注意事项问题描述在tf树已经查到坐标之间的关系,但是在监听其中两个坐标之间关系时,却显示:运行报错,提示运行报错 lookupTransform base2laser error,“base_footprint” passed to lookupTransform argument target_frame does not exist.原因分析:// 参考tf2源码: https://docs.ros.org/en

2022-03-14 22:06:02 3950 1

翻译 Golang 函数创建

文章目录前言一、main 函数二、自定义函数三、返回多个值四、更改函数参数值(指针)总结前言在 Go 中,函数允许你将一组可以从应用程序的其他部分调用的语句组合在一起。 你可以使用函数来组织代码并使其更易于阅读,而不是创建包含许多语句的程序。 更具可读性的代码也更易于维护。到目前为止,我们一直在调用 fmt.println() 函数,并且在 main() 函数中编写代码。 在本节中,我们将探讨如何创建自定义函数。 我们还将介绍一些可用于 Go 函数的其他技巧。一、main 函数与之交互的函数.

2021-10-12 11:34:17 351

翻译 了解Golang基本数据类型

文章目录前言一、整数数字二、浮点数字请注意,与前面的代码一样,Go 会从使用的值推断其数据类型三、布尔型四、字符串五、常见转义字符五、 默认值六、类型转换总结前言Go 是一种强类型语言。 这意味着你声明的每个变量都绑定到特定的数据类型,并且只接受与此类型匹配的值。Go 有四类数据类型:基本类型:数字、字符串和布尔值聚合类型:数组和结构引用类型:指针、切片、映射、函数和通道接口类型:接口在此模块中,我们仅介绍基本类型。 如果你不知道其他类型是什么,请不要担心。 我们将在后续模块中进行介.

2021-10-12 10:32:18 624

翻译 声明和使用变量

文章目录前言学习目标一、声明和使用变量1 声明变量2 初始化变量3 通过多种方式初始化变量4 声明常量如果声明了变量但未使用,Go 会抛出错误请记住,对于在 Go 中声明的每个变量,你必须将其用于某处。总结前言在上一个模块中,你配置了一个 Go 环境,用于创建和运行 Go 中所编写的程序。 此外,你还了解到 Go 程序的编码结构基本知识,以及如何编译和运行应用程序。在此模块中,你将逐步学习中 Go 提供的基本数据类型,并使用函数组织在 .go 文件中编写的代码。 你还将了解如何在同一包下的不同文件.

2021-10-12 09:52:20 525

翻译 Golang入门第一节

文章目录前言一、什么是 Go?二、Go 原则三、Go 语言用例四、代码分析总结前言接下来,主要是跟着微软入门课程来学习。提示:以下是本篇文章正文内容,下面案例可供参考一、什么是 Go?Go 是 Google 开发的一种编程语言。 它于 2009 年由 Robert Griesemer、Rob Pike 和 Ken Thompson 作为开源项目发布。 从那时起,Go 语言就被用于开发其他众所周知的技术,如 Docker、Kubernetes 和 Terraform。 尽管 Go 语言在服务器端.

2021-10-11 20:44:04 72

转载 C++中指针和引用的区别

1、两者定义和性质不同指针是一个变量,存储的是一个地址,指向内存的一个内存单元引用是源变量的一个别名,跟原来的变量实质上是同一个东西int a = 123;int *p = &a; // p是指针, &在此是求地址运算int &r = a; // r是引用, &在此起标识作用2、指针可以有多级,引用只能是一级int **p; // 指针的指针,p是存储指针的地址int &&r; // 不合法3、指针可以在定义的时候不初始化,引用必须在

2021-09-19 15:05:45 4103

原创 KMP算法

文章目录KMP算法简介KMP算法实现与代码1 、 以力扣28. 实现 strStr()为例2、算法实现2、1 next表建立2、2 寻找字串位置KMP算法简介在计算机科学中,Knuth-Morris-Pratt字符串查找算法(简称为KMP算法)可在一个字符串S内查找一个词W的出现位置。一个词在不匹配时本身就包含足够的信息来确定下一个匹配可能的开始位置,此算法利用这一特性以避免重新检查先前匹配的字符。(参考维基百科)KMP算法实现与代码1 、 以力扣28. 实现 strStr()为例给你两个字.

2021-09-14 15:22:56 74

原创 18.四数之和

文章目录问题描述1、算法以及代码1、1 基本思路1、2 重点1、3 代码1、3 复杂度问题描述给你一个由 n 个整数组成的数组 nums ,和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] :0 <= a, b, c, d < na、b、c 和 d 互不相同nums[a] + nums[b] + nums[c] + nums[d] == target你可以按 任意顺序 返回答案 .

2021-09-04 14:31:23 71

原创 递归算法时间复杂度和空间复杂度分析与举例

文章目录前言1、递归算法性能分析公式1.1 时间复杂度计算公式1.2 空间复杂度计算公式1.3 例子1.3.1 暴力算法1.3.2 递归算法1.3.3 优化递归算法总结前言根据代码随想录博主整理的主要是为了记录递归算法如何分析其性能,并如何根据其性能来优化递归算法。1、递归算法性能分析公式1.1 时间复杂度计算公式递归算法的时间复杂度 = 递归的次数 * 每次递归的时间复杂度。1.2 空间复杂度计算公式递归算法的空间复杂度 = 递归的深度 * 每次递归的空间复杂度。1.3 例子计算.

2021-08-24 11:42:46 9788 4

原创 213. 打家劫舍 II

文章目录1、问题描述1、1 示例2、算法描述和代码2、1 算法描述2、2 代码2、3 复杂度分析1、问题描述你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都 围成一圈 ,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警 。给定一个代表每个房屋存放金额的非负整数数组,计算你 在不触动警报装置的情况下 ,今晚能够偷窃到的最高金额。1、1 示例示例 1:输入:nums =.

2021-08-20 10:18:30 48

原创 17. 电话号码的字母组合

文章目录1、问题描述示例:2、算法思路与代码代码如下1、问题描述给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:示例 1:输入:digits = “23”输出:[“ad”,“ae”,“af”,“bd”,“be”,“bf”,“cd”,“ce”,“cf”]示例 2:输入:digits = “”输出:[]示例 3:输入:digits = “2”输出:[“a”,“b.

2021-08-18 14:41:35 70

原创 力扣 47 全排列 II

文章目录1、力扣 47 全排列 II1.1 问题描述1.2 示例2、回溯算法2.1 回溯算法百度定义2.2 算法思路2.3 代码1、力扣 47 全排列 II1.1 问题描述给定一个可包含重复数字的序列 nums ,按任意顺序返回所有不重复的全排列。1.2 示例示例 1:输入:nums = [1,1,2]输出:[[1,1,2],[1,2,1],[2,1,1]]示例 2:输入:nums = [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,.

2021-08-17 16:41:20 86

原创 图像渲染算法--C++

文章目录1、问题描述1.1 题目要求1.2 示例2、深度优先搜索算法DFS2.1 问题分析2.2 代码2.3 复杂度1、问题描述1.1 题目要求有一幅以二维整数数组表示的图画,每一个整数表示该图画的像素值大小,数值在 0 到 65535 之间。给你一个坐标 (sr, sc) 表示图像渲染开始的像素值(行 ,列)和一个新的颜色值 newColor,让你重新上色这幅图像。为了完成上色工作,从初始坐标开始,记录初始坐标的上下左右四个方向上像素值与初始坐标相同的相连像素点,接着再记录这四个方向上符合条件的

2021-07-28 23:07:23 780

原创 无重复字符的最长字串算法

文章目录1、问题描述1. 问题2. 例子2、暴力算法1. 代码如下2. 复杂度:3、容器--哈希表法1. unordered_map容器介绍[参考来源](http://c.biancheng.net/view/7231.html)2. 代码如下3. 复杂度:总结1、问题描述1. 问题给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。2. 例子示例 1:输入: s = “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例

2021-07-26 15:42:57 151

原创 链表的中间结点算法

文章目录1、问题描述2、单指针法3、快慢指针法总结1、问题描述给定一个头结点为 head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。示例 1:输入:[1,2,3,4,5]输出:此列表中的结点 3 (序列化形式:[3,4,5])返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4,5])。注意,我们返回了一个 ListNode 类型的对象 ans,这样:ans.val = 3, ans.next.val = 4, ans.next.next.v

2021-07-25 10:27:18 186

原创 字符串反转

文章目录一、问题一描述1、要求:2、例子:二、算法分析与代码1、题目分析2、复杂度分析三、问题二描述四、算法分析和代码五、总结一、问题一描述编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。1、要求:不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1)O(1)O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。2、例子:示例 1:输入:[“h”,“e”,“l”,“l”,“o”]

2021-07-24 19:52:19 409

原创 两数之和算法 -- 输入有序数组

问题描述:给定一个已按照 升序排列 的整数数组 numbers ,请你从数组中找出两个数满足相加之和等于目标数 target 。注1:函数应该以长度为 2 的整数数组的形式返回这两个数的下标值。numbers 的下标 从 1 开始计数 ,所以答案数组应当满足 1<=answer[0]<answer[1]<=numbers.length1 <= answer[0] < answer[1] <= numbers.length1<=answer[0]<answ

2021-07-24 09:11:17 155

原创 移动零算法--双指针

文章目录问题描述一、算法分析与代码问题描述给定一个数组 numsnumsnums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]一、算法分析与代码在一个数组numsnumsnums中,将所有零元素移至数组尾部,并且保持原数组非零元素相对位置。要想移动零元素,那么必须要找到数组中的零元素nums[left]nums[left]nums[left],这需要一个判断语句来判别,并且需要一个指针leftl

2021-07-22 17:41:59 104

原创 旋转数组算法

问题描述:给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。进阶:尽可能想出更多的解决方案,至少有三种不同的方法可以解决这个问题。你可以使用空间复杂度为 O(1) 的 原地 算法解决这个问题吗?例子:输入: nums = [1,2,3,4,5,6,7], k = 3输出: [5,6,7,1,2,3,4]输入:nums = [-1,-100,3,99], k = 2输出:[3,99,-1,-100]算法分析与实现:题目分析:将数组nums[n]nums[n

2021-07-21 22:02:04 102

翻译 有序数组平方排序

有序数组平方排序主要用来练习排序算法。问题描述:给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。示例:输入:nums = [-4,-1,0,3,10]输出:[0,1,9,16,100]解释:平方后,数组变为 [16,1,0,9,100]排序后,数组变为 [0,1,9,16,100]算法分析:方案一:直接平方后,再进行排序class Solution{public: vector<int> sort

2021-07-08 17:41:04 508

原创 二分查找算法

二分查找:问题描述:给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。@Override public void run() { bytes = mmInStream.read(buffer); mHandler.obtainMessage(READ_DATA, bytes, -1, buffer).sendToTar

2021-07-03 11:27:16 61

翻译 力扣题目——剪绳子

力扣题目——剪绳子前言一、分析二、算法流程1.Java代码2.C++代码总结前言给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]…k[m-1] 。请问 k[0]k[1]…*k[m-1] 可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。一、分析长度为n的绳子分成k段,每段长度为n1n_1n1​,n2n_2n2​,…,nkn_knk​;

2021-07-03 09:34:53 441

空空如也

空空如也

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

TA关注的人

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