- 博客(17)
- 收藏
- 关注
原创 day6 哈希 字母异位词、集合交集、快乐数、两数之和
当我们遇到要快速判断元素是否出现在集合里时,优先使用哈希法牺牲空间换时间242. 有效的字母异位词 - 力扣(LeetCode)用哈希,把字母的相对位置作为key,出现次数作为value,public:i < 26;
2023-10-24 14:02:30
87
原创 day5 链表相交、环形链表
现在,slow到达入口时,fast必然已经在环内,fast slow距离为k,一圈的长度为n,(k + n)/ 2 < n,说明 slow并未绕完一周,就已经相遇。定义快指针每步走两次,慢指针每步一次,如果有环,必然会相遇,得到一个相遇点,从相遇点到入口的长度 等于 从head到入口的长度(数学推导),fast步长为2,slow步长为1 , fast相对于slow步长为1,fast一步一步逼近slow,不会跳过去。,无论是第几圈相遇,不同的是经过的圈数 k ( y + z)快指针索引到链表的结尾。
2023-10-22 22:10:46
96
1
原创 代码随想录训练营day3|203. 移除链表元素、707. 设计链表、206. 反转链表
/单链表int val;203. 移除链表元素 - 力扣(LeetCode)一、不设置虚拟头指针 AC在得到一个链表之后,通过定义一个链表类型的指针指向该链表的头指针,来进行操作链表指针的赋值实际上是重新定义指针的指向需要临时指针来命名需要删除的指针,它本身没有命名,他的名字由上一个链表元素的next定位,当next需要改变指向时,将没有指针指向这块内存,届时将无法释放它。else {二、虚拟头指针。
2023-10-15 14:53:59
399
1
原创 代码随想录训练营第2天|977.有序数组的平方、209.长度最小的子数组、59.螺旋数组Ⅱ
数组是存放在连续内存空间上的相同数据类型的集合数组元素不能删除,只能覆盖(内存空间连续).vector的底层是array。
2023-10-13 20:31:02
65
原创 代码随想录训练营第一天|704.二分查找、27.移除元素
慢指针:更新新数组的下标(只要不等于val,就更新数组下标,等于val时,slowIndex等待fastIndex去找新元素,来替代val)因为是原地修改,并且不考虑超出新长度外的元素,所以我的第一想法是:将找到的元素和最后面的非val值的元素交换位置,然后长度减一。之所以能够在一个数组中操作,是因为fast和slow重合时意味着两个数组相同,不重合时,数组大小由slow定义。,所以区间处理上,middle没必要再取了,并且right必须有效,right = size -1。:通过一个快指针和一个慢指针。
2023-10-11 15:12:04
1006
原创 ROS学习笔记之导航实现02_地图保存和读取
上一节我们已经实现通过gmapping的构建地图并在rviz中显示了地图,不过,上一节中地图数据是保存在内存中的,当节点关闭时,数据也会被一并释放,我们需要将栅格地图序列化到的磁盘以持久化存储,后期还要通过反序列化读取磁盘的地图数据再执行后续操作。在ROS中,地图数据的序列化与反序列化可以通过 map_server 功能包实现。1.map_server简介map_server功能包中提供了两个节点: map_saver 和 map_server,前者用于将栅格地图保存到磁盘,后者读取磁盘的栅格地图并
2021-12-15 01:25:50
9520
5
原创 ROS学习笔记之导航实现01_SLAM建图
准备工作请先安装相关的ROS功能包: 安装 gmapping 包(用于构建地图):sudo apt install ros-<ROS版本>-gmapping 安装地图服务包(用于保存与读取地图):sudo apt install ros-<ROS版本>-map-server 安装 navigation 包(用于定位以及路径规划):sudo apt install ros-<ROS版本>-navigation 新建功能包,并导入依赖: gm
2021-12-15 00:45:40
1215
原创 ROS学习笔记之导航(仿真)
器人是如何实现导航的呢?或换言之,机器人是如何从 A 点移动到 B 点呢?ROS 官方为了提供了一张导航功能包集的图示,该图中囊括了 ROS 导航的一些关键技术:假定我们已经以特定方式配置机器人,导航功能包集将使其可以运动。上图概述了这种配置方式。白色的部分是必须且已实现的组件,灰色的部分是可选且已实现的组件,蓝色的部分是必须为每一个机器人平台创建的组件。导航的关键技术包括以下五点:1、全局地图2、自身定位3、路径规划(全局路径规划+局部路径规划)4、运动控制5、环境感知
2021-11-30 17:53:15
3806
原创 ROS学习笔记之深度相机仿真、小结
通过 Gazebo 模拟kinect摄像头,并在 Rviz 中显示kinect摄像头数据。实现流程:kinect摄像头仿真基本流程: 已经创建完毕的机器人模型,编写一个单独的 xacro 文件,为机器人模型添加kinect摄像头配置; 将此文件集成进xacro文件; 启动 Gazebo,使用 Rviz 显示kinect摄像头信息。 1.Gazebo仿真Kinect1.1 新建 Xacro 文件,配置 kinetic传感器信息<robot name="my
2021-11-30 03:16:03
2490
2
原创 ROS学习笔记之摄像头仿真及显示
通过 Gazebo 模拟摄像头传感器,并在 Rviz 中显示摄像头数据。实现流程:摄像头仿真基本流程: 已经创建完毕的机器人模型,编写一个单独的 xacro 文件,为机器人模型添加摄像头配置; 将此文件集成进xacro文件; 启动 Gazebo,使用 Rviz 显示摄像头信息。 1.Gazebo 仿真摄像头1.1 新建 Xacro 文件,配置摄像头传感器信息有几个要自行修改的地方,基本设置和laser有相同的部分,不做赘述。<robot name="
2021-11-30 02:10:59
2042
原创 ros学习笔记之雷达信息仿真及显示
实现流程:雷达仿真基本流程: 已经创建完毕的机器人模型,编写一个单独的 xacro 文件,为机器人模型添加雷达配置; 将此文件集成进xacro文件; 启动 Gazebo,使用 Rviz 显示雷达信息。 1.Gazebo 仿真雷达1.1 新建 Xacro 文件,配置雷达传感器信息<robot name="my_sensors" xmlns:xacro="http://wiki.ros.org/xacro"> <!-- 雷达 -->
2021-11-30 01:33:50
2649
7
原创 奇怪问题汇总(持续补充)
1、截图工具设置2、rviz中,使用里程计的时候不知道点了啥出现这个黄色的渲染效果3、Ubuntu1804外放有声音,插上耳机就没有声音
2021-11-28 23:11:49
198
原创 URDF、RVIZ、GAZEBO综合应用
6.7.1 机器人运动控制以及里程计信息显示 · GitBook关于URDF(Xacro)、Rviz 和 Gazebo 三者的关系,前面已有阐述: URDF 用于创建机器人模型、Rviz 可以显示机器人感知到的环境信息,Gazebo 用于仿真,可以模拟外界环境,以及机器人的一些传感器,如何在 Gazebo 中运行这些传感器,并显示这些传感器的数据(机器人的视角)呢?本节主要介绍的重点就是将三者结合:通过 Gazebo 模拟机器人的传感器,然后在 Rviz 中显示这些传感器感知到的数据。主要内容包括:
2021-11-28 22:07:52
535
原创 git学习笔记
Git常用命令用户签名git config --global user.name L1ybgit config --global user.email 1747848577@qq.com查看设置 : C:\Users\dell.gitconfig初始化本地库 ---创建文件夹后 git init查看状态 git status添加暂存区 git add工作区--暂存区--本地区--远程库提交本地库 git commit -m"日志信息" 文件名查看日志信...
2021-11-28 18:11:14
144
原创 ros学习笔记之集成gazebo
小结:今天记录了解决gazebo闪退黑屏的问题,还有gazebo如何实现xacro文件,以及他的launch文件的编写,搭建了仿真环境,试图自己搭建环境的时候虚拟机卡死了,小车还没有动起来,溜了溜了。明天见
2021-11-28 15:01:08
1054
原创 从根源解决sudo rosdep init问题,一定行的方法
本文是个人经验总结,是自己遇到问题找到的解决方案,方便自己后续查看,相关链接会给出原创作者。我仅做可能出现问题的总结。原文链接:https://blog.csdn.net/nanianwochengshui/article/details/105702188感谢大佬!希望可以好好理解一下原作者的解决思路。简单来讲就是,本来需要在ros官网上下载的,现在手动下载。然后将文件里面访问这个网址的地方全部改成我们手动下载的地址,就可以避开网络问题,从根本上解决。下面的步骤就是:下载——查找——替换.
2021-11-15 20:58:59
1317
4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人