自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 基于ROS的激光雷达点云物体检测

ROS melodic (ubuntu 18.04安装ROS melodic可以参看我这篇文章ubuntu 18.04安装ROS系统)ubuntu 18.04、ROS melodic 、CUDA 10.0、cudnn 7.6.5安装在此就不赘述。将下载下来源码里面的Makefile.config复制到caffe文件夹下。进入caffe/python/目录下,执行下面的命令,下载依赖的软件。cmake 3.18.0(不能低于3.12.2)下载caffe开源软件项目(修改完后就可以在项目文件夹。

2024-09-28 11:35:20 600

原创 2条件欧几里得聚类

随着聚类的增长,它将评估聚类内已有的点与附近的候选点之间的用户定义条件。太小的群集将变为红色,太大的群集将变为蓝色,实际感兴趣的群集/对象将在黄色和青色之间随机着色。这是一个非常大的室外环境数据集,我们的目标是将单独的对象聚集在一起,并且还希望将建筑物与地平面分开,即使它是以欧几里得意义连接的。这将允许提取太小或太大的集群。随着集群的增长,它将评估集群内已有的点与附近的候选点之间的用户定义条件。太小或太大的集群不会传递到主输出,而是可以在单独的数据容器中检索,但前提是类是使用 TRUE 初始化的。

2024-09-28 11:34:36 756

原创 1欧几里得聚类提取

在这里,我们将创建一个 PointIndices 的向量,其中包含 vector<int> 中的实际索引信息。检测到的每个 cluster 保存在此处 - 请注意 cluster_indices 是一个 vector 包含每个检测到的集群的一个 PointIndices 实例。在这里,我们将创建一个具有点类型的 EuclideanClusterExtraction 对象 PointXYZ 的 URL,因为我们的点云是 PointXYZ 类型。,为 每个条目,并将当前集群的所有点写入 PointCloud。

2024-09-28 11:33:20 832

原创 激光雷达的地面-非地面分割和pcl_ros实践

这个节点的功能是订阅来自/velodyne_points话题的点云数据,使用PCL内置的Voxel Grid Filter对原始的点云进行降采样,将降采样的结果发布到/filtered_points话题上。我们重点看回调函数PclTestCore::point_cb,在该回调函数中,我们首先定义了两个点云指针,在PCL库中,pcl::PointCloud是最基本的一种数据结构,它表示一块点云数据(点的集合),我们可以指定点的数据结构,在上述实例中,采用了pcl::PointXYZI这种类型的点。

2024-09-28 11:32:16 417

原创 使用半径滤波对PointCloud进行下采样-3

(1)设置点云邻域搜索的邻域半径;取点云一定半径内的邻域点。源文件RadiusOutlierRemoval.cpp。(2)设置点云邻域搜索之后,如果某点邻域点的个数。

2024-09-06 10:30:32 281

原创 使用统计滤波对PointCloud进行下采样-2

1、需要滤波的情况-

2024-09-06 10:07:28 321

原创 使用 StatisticalOutlierRemoval 过滤器删除离群值

将以下行添加到您的 CMakeLists.txt 文件中。创建可执行文件后,您可以运行它。并将其保存到磁盘的某个位置。

2024-09-06 09:04:36 274

原创 直通滤波-使用 PassThrough 过滤器过滤 PointCloud

然后,我们创建 PassThrough 过滤器对象,并设置其参数。这 筛选条件字段名称设置为 Z 坐标,并且接受的间隔值 设置为 (0.0;请注意,坐标轴表示为红色 (x)、绿色 (y) 和蓝色 (z). 这五个点用绿色表示,作为 filtering 和 red 作为过滤器已删除的点。在以下几行中,我们定义 Point Clouds 结构,填写 input cloud,并将其内容显示到屏幕。创建可执行文件后,您可以运行它。最后,我们显示筛选后的云的内容。现在,让我们逐个分解代码。

2024-09-06 08:56:41 338

原创 使用体素滤波对PointCloud进行下采样-1

过滤器,即输入 数据,输出被计算并存储在。然后,创建一个叶子大小为 1cm 的。创建可执行文件后,您可以运行它。最后,数据将写入磁盘以供以后检查。以下代码行将从磁盘读取点云数据。并将其保存到磁盘的某个位置。现在,让我们逐个分解代码。

2024-09-05 22:05:44 326

原创 ROS 加载KITTI数据集并在rviz中显示

进入kitti_tutorial功能包目录,添加 scripts 目录,并编辑 python 文件。进入 ros 功能包目录,编辑功能包下的。进入 ros 功能包目录,编辑功能包下的。进入工作空间目录,重新编译工作空间。

2024-08-01 10:04:43 383

原创 基于ROS的动态障碍物检测实验——(二)发布图片

2011_09_26_drive_0005_sync文件夹下,有四个存放图像数据的文件夹,分别为image_00(左侧灰度)、image_01(右侧灰度)、image_02(左侧彩色)、image_03(右侧彩色),其中的图片都是以每秒拍10张来记录的。

2024-07-30 12:10:58 310

原创 基于ROS的动态障碍物检测实验——(一)Kitti资料介绍和可视化

文件:/home/xu/kitti/RawData。

2024-07-30 09:35:31 299

原创 ros学习之路径规划

存在动态障碍物时实时进行路径规划。

2024-05-23 20:22:21 1514

原创 从三维建模软件(solidworks)中创建urdf文件

Link Name设置为wheel_lf_link,Joint Name设置为wheel_lf_joint,Reference Coordinate System选择为刚才给左前轮创建的坐标系,Reference Axis选择为“基准轴1”,Joint Type选择为continuous, Link Components选择为左前轮,左前轮变成蓝色。依次点击“装配体—参考几何体—基准轴”,为车轮创建旋转轴,左右前轮共用一个基准轴“基准轴1”,左右后轮共用一个基准轴“基准轴2”,基准轴要与车轮转轴重合。

2024-05-21 19:39:15 1022

原创 三、Gazebo中实现机器人仿真(小白上手)+ubuntu18.04

解决办法:机器人实际参数和导航时给定参数存在差异,在文件夹catkin_ws/src/robot_navigation/param/NanoCar中打开以下文:下costmap_common_params.yaml修改参数:机器人尺寸的参数或者地图的碰撞参数加大。关闭终端:roslaunch robot_navigation gmapping.launch simulation:=true。2、\从Solidworks中创建URDF模型。\先采用Nanocar尝试导航。

2024-05-20 20:17:41 511

原创 二、Gazebo中实现机器人仿真(小白直接上手)+ubuntu18.04

1、\使用Gazebo仿真环境进行SLAN建图和导航实验。控制键盘运动完成建图。

2024-05-20 20:12:56 375

原创 一、Gazebo中实现机器人仿真(小白上手)+ubuntu18.04

【70分钟快速入门Gazebo机器人仿真】 https://www.bilibili.com/video/BV143411C75B/?u-- 向左前方前进 i-- 直行前进 o-- 向右前方前进 j-- 逆时针旋转 k-- 停止 l-- 顺时针旋转 m-- 向左后方后退 ,-- 后退。1、\安装 bingda_tutorials包:git clone https://gitee.com/bingda-robot/bingda_tutorials。控制键盘建来控制小车运动。

2024-05-20 20:10:35 957

原创 ROS学习历程——(二)

python3 sub_odom.py 终止,没有发布chatter这个话题。查看消息类型:rostopic type /tianbot_mini/ odom。开源代码:tianbot git-------tianbot_mini。运行sub_odom.py文件:python3 sub_odom.py。下载tianbot_mini_gazebo在文件夹src下。终端执行 python3 sub_odom.py。下载tianbot_mini在文件夹src下。修改sub_odom.py文件。

2024-05-08 09:40:24 295

原创 ROS学习历程——(一)

3、(base) xu@xu-RedmiBook-16:~/tutorial_ws/src/ros_code下创建文件夹:scripts用来放python文件。rostopic pub -r 10 /turtle1/cmd_vel tab 发布内容。rostopic type /turtle1/cmd_vel 打印消息类型。rostopic echo /turtle1/cmd_vel 打印话题内容。3、在scripts文件夹下运行终端。4、对文件夹内容的修改。

2024-04-24 21:39:52 221

原创 ROS中的局部导航算法

本地的实时规划是利用base_local_planner包实现的。(global planner):根据给定的目标位置进行总体路径的规划,在ROS的导航中,首先会通过全局路径规划,计算出机器人到目标位置的全局路线。navfn通过Dijkstra或A*等最优路径的算法,计算costmap上的最小花费路径,作为机器人的全局路线。teb_local_planner则是2D导航堆栈的base_local_planner的插件。绿色的线是全局规划的路线,蓝色的短线表示局部规划的路线。:根据已经有的地图进行定位。

2024-04-22 11:08:22 1313 1

原创 路径规划——轨迹生成

1、

2024-04-22 10:34:28 323

原创 各类路径规划算法对比(二)

反向搜索配合增量式搜索使得D* lite算法在动态障碍图中,可以利用先前迭代中产生的节点距离信息,不断更新当前点到目标点的最优路径。而在正向搜索中,增量式算法只能提供当前点到起始点的距离信息和到目标点的启发估计信息,并不能保证未搜索区域的可通行性。启发式搜索是利用启发函数来对搜索进行指导,从而实现高效的搜索,启发式搜索是一种“智能”搜索,典型的算法例如A *算法、遗传算法等。增量搜索是对以前的搜索结果信息进行再利用来实现高效搜索,大大减少搜索范围和时间,典型的例如LPA *、D * Lite算法等。

2024-04-22 10:16:19 564

原创 各类路径规划算法python 代码

【代码】各类路径规划算法python 代码。

2024-04-20 19:01:47 1777

原创 各类路径规划算法大全(一)

目前路径规划存在的问题主要为,此外传统的路径规划算法需要在建立全局地图的基础上进行路径规划,,这种算法导致了感知和决策分离,难以应用到位置环境中,因此后来相关研究者将兴趣放到了智能算法的研究上。一、全局路径规划算法分类——传统算法。

2024-04-20 19:01:32 7266

原创 RRT算法和RRT*算法

【代码】RRT算法和RRT*算法。

2024-04-20 17:52:10 254 1

原创 A*算法优化对公式整体进行改进,总结常见的改进方式如下:

我们不可能只考虑搜索速度而不考虑规划的路径,也就是不可能一直让w=2,此时就考虑使用动态加权的方式,以原本的启发函数h(n)为判断依据,我们把它声明为d,当d>18时,w=3.0,此时算法搜索速度更快;在h(n)前增加一个权重系数w(n),即weight(n),g(n)与h(n)原本是1:1的权重分配,假如w(n)=2,权重分配变为1:2,这样对规划效果带来的影响是相比实际代价g(n)会更偏向用估计代价h(n)g(n)是已知的,所以在这里主要是 h(n) 体现了搜索的启发信息。3、将代码应用在A星算法上。

2024-04-17 21:11:09 2757

原创 五、Hybrid A * 算法总结

若不是,则进一步判断其是否在open_set中,若不是,则计算该节点的总代价值(从起点到该节点已花费的实际代价+从该节点到目标点预估启发代价),并将其添加到open_set集合中,若其已经在open_set集合中,则判断从起点到该末端节点的代价值是否小于从起点到该栅格中存储的之前的末端节点的代价值,若是,则对该栅格中存储的末端节点及代价值进行更新,否则,不更新。对所有方向执行完以上操作后,当前拓展点的拓展就完成了,同时本轮循环也完成了,跳转到第①步,继续进行下一轮循环。若不为空,则执行下一步。

2024-04-10 21:39:20 1354 1

原创 四、Hybrid_astar.py文件中Hybrid A * 算法程序的详细介绍

C定义了一个名为C的参数配置类,用于存储路径规划中使用的各种参数。这些参数会在路径规划的不同阶段用于计算代价、转向角、碰撞检测等,以实现车辆的路径规划和运动控制。Node用于表示路径规划中的节点,这个Node类用于在路径规划过程中存储节点的信息,以便计算路径代价、生成路径、进行碰撞检测等操作。每个节点都包含了一系列与路径规划相关的属性,用于描述车辆在路径中的状态和轨迹。Para用于封装路径规划所需的各种参数和计算结果,以便在算法的不同阶段方便地获取和传递这些数据。PathPath。

2024-04-10 21:32:09 1494 1

原创 三、可视化绘图所需的draw.py

【代码】三、可视化绘图所需的draw.py。

2024-04-10 14:59:24 462 1

原创 二、reeds_sheep运动规划算法Python源码分析

这个类表示一个路径对象,其中包含了描述路径的各种信息。类的构造函数__init__用于初始化类的实例对象。该PATH类有七个属性:(1)lengths: 这是一个包含了路径各部分长度的列表。列表中的每个元素都是一个浮点数,表示路径的每个部分的长度。列表中的正数表示路径向前延伸,负数表示路径向后延伸。例如,如果路径由一段长为2米的向前部分和一段长为1.5米的向后部分组成,那么lengths列表可能是[2.0, -1.5]。(2)ctypes: 这是一个包含了路径各部分类型的列表。

2024-04-09 20:58:33 1112 1

原创 一、MotionPlanning运动规划库中A*算法源码详细解读

这个类用于表示图中的节点,包含了节点的位置、节点的累计代价值和父节点的索引值信息。这个类用于存储路径规划过程中所需的参数,如环境地图的范围、网格分辨率和运动集合。通过这些参数,Para类能够完整地描述问题的环境范围、网格分辨率、扩展方向等信息,从而在路径规划过程中进行合适的搜索。

2024-04-09 14:37:37 730 1

原创 ubuntu 18.04+Faster RCNN+pytorch

在训练之前需要根据自己的环境将trainval_net.py和test_net.py中的save_dir和load_dir参数进行更改。“CUDA_VISIBLE_DEVICES”指代了gpu的id,这得看你实验室服务器哪块gpu是闲置的。“–nw”指的是worker number,取决于你的Gpu能力,我用的是1050ti,所以选择4。训好的model会存到models文件夹底下,此处暂时使用默认的训练参数。其他的学习模型也可以用类似的方法下载,或者可以参看下面的下载网址。编译CUDA依赖环境。

2024-03-20 20:47:58 711 1

原创 Ubuntu18.04安装CUDA11.1+cudnn8.0.5

我因为装过驱动了,所以驱动那个选项不选,其他全选了,然后就是选install,进行安装,一会就安装好了。选择,然后输入accept,进入安装选项 installer;代表选择,按enter键取消。

2024-01-24 19:01:43 1003 1

原创 安装Compiling Cartographer ROS(unubtu18.04-melodic)

操作系统:ubuntu18.04;ros版本:Melodic.

2023-09-27 10:07:58 299

原创 ROS下播放点云地图和bag的数据并可视化(1)

(2)Display下的Fixed Frame选成第4步得到的frame_id,例如我的是top_ouster。如果点击小三角没反应选不了可直接输入。(1)点击左下角的Add,选中PointCloud2并点击ok;(3)PointCloud2下的topic选择第3步得到的。

2023-08-28 19:59:20 1522

原创 从零开始搭建自动驾驶汽车(四)

关闭所有终端,同样在(二)中创建的功能包里进行编译和source,使用下面命令打开IMU 模拟。同样在(二)中创建的功能包里进行编译和source,使用下面命令打开GPS 模拟。下面参数为imu箭头保留时间,设置长一些便于观察,此处设置为100。然后再gazebo里面拖动方盒,在rviz就能看到如下现象。(四)GPS与IMU模拟。启动rviz并进行配置。

2023-06-07 21:16:58 192 1

原创 从零开始搭建自动驾驶汽车(三)

1.在(二)中创建的功能包下,使用catkin_make编译并sourse一下。同样此命令不会主动打开rviz(不打开rviz也可以使用下面命令直接查看图像)在gazebo里面随意建几个障碍物,查看rviz中的显示。3.关闭所有终端,并使用下面命令启动立体摄像头。2.使用下面命令启动单目摄像头模拟。下面我们使用rviz进行查看。同样也可以下面代码直接查看窗口。(三)单目与立体摄像头模拟。

2023-06-07 19:10:42 234 1

原创 从零开始搭建自动驾驶汽车(二)

1.首先先去下面的网址下载一个名为chapter_10_codes中的一个名为sensor_sim_gazebo的代码包。2.如前面(一)中步骤一样创建一个功能包,在这我创建了一个catkin_ws1的功能包,再对进行编译。3.除此我们还需要下载一个功能包(包含几个传感器插件,可用于自动驾驶汽车模型)此时我们发现rviz没有显示任何东西,下面我们配置一下。现在在rviz就能显示出效果了。现在gazebo中创建障碍物。(二)激光扫描仪模拟。

2023-06-07 18:36:26 414 1

原创 从零开始搭建自动驾驶汽车(一)

有的人可能会出现激光雷达还没工作的状态。下面我们配置一下rviz。1.在ROS Melodic上安装Velodyne。5.然后再catkin_ws下对功能包进行编译。8.下面在gazebo里面添加一些障碍物。4.将功能包复制到工作空间的src目录下。然后会弹出gazebo和rviz界面。在rviz就会有相应的点云图。2.下载源代码到主文件夹下。6.启动lunch文件。3.创建一个工作空间。

2023-06-07 18:21:06 298 1

空空如也

空空如也

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

TA关注的人

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