自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(81)
  • 资源 (1)
  • 收藏
  • 关注

原创 logsim&worldsim&场景库

是由路测数据提取的场景,提供复杂多变的障碍物行为和交通状况,使场景充满不确定性。简单理解就是路测时录制log,通过平台回放log实现场景重现。。但是Logsim数据的内容通常无法根据需求进行更改。举个例子, 比如路测的时候, 有一些需要人工接管的case, 那么这些case肯定是要分析原因的,这些case记录下来了之后, 也可以用来迭代算法与模型, 因为可以拿着录下来的传感器的log来作为算法的输入, 用修正后的真值来作为结果训练模型。

2023-09-22 15:13:37 1680

原创 自动驾驶中的决策规划

定位模块主要负责解答的问题是“车现在在哪里”,是在道路上还是在路口,是在高架桥上还是在停车场里。感知模块则负责解答“车周围有什么”这个问题。预测模块,预测模块主要解答“周围的车现在想干什么”,比如前面的车要cut in,预测模块就会给出前方车辆切入本车道的意图。(所以有他车意图预测的这个任务)预测对于高级别自动驾驶的决策规划是非常关键的,就像人开车一样,通常都会通过预测周围交通参与者的行为来灵活调整当前的动作。所以预测越智能,最后自动驾驶的行为也越智能。

2023-09-21 22:22:50 917

原创 Single View Point Omnidirectional Camera Calibration from Planar Grids

实际相当于有一个xi的参数要使用, 和正常的相机内参定义不太一样, 那么在3d往相机上投的时候, 是这样的。paper里面最关键的部分为这段。

2023-09-10 22:35:19 469

原创 端到端自动驾驶综述

这样才会对世界有一个判断和预测;‒ 我理解这里的独立同分布指的就是训练的时候, 数据集中的{(s, a)} 是以相同的概率被采样的.即一个状态对应着一个action;比如训练的时候见到的都是路口停车等待的情况, 那如果测试的时候, 路口一辆车都没有, 哪怕是绿灯, 模型可能都不知道是要往前走的;举一个例子, 拿侧方停车为例, 教练就是专家, 教练会根据观测(看后视镜),产生他自己对于环境的理解(BEV), 通过他自己的经验, 做出具体的判断;但是模块化设计的时候, 不知道什么样的任务是好的,

2023-08-31 22:32:07 1207

原创 pypcd读取pcd时的坑

点云, pypcd

2023-07-08 11:29:43 663

原创 相机畸变参数k4,k5,k6,s1,s2,s3,s4

相机参数k4,k5,k6

2023-06-08 12:40:05 762

原创 python中cv2.projectPoints的用法

第五个是相机的畸变系数, 如果输入是4个时, 就是[k1, k2, p1, p2], 输入5个时就是 [k1, k2, p1, p2, k3], 也可以是更多, [k1, k2, p1, p2, k3, k4, k5, k6]实战在python里面, 我用lidar的点往图像上投影的时候是这么用的(lidar上的3d框, 即8个点.)第一个输入的点是一个, (N, 3) 维的 三维坐标系中的点, xyz。但是这样做无法把相机后面的点给排除掉, 所以可以这样改。我们先看一下c++ 中的参数解释。

2023-06-08 10:53:22 6735 3

原创 BEVFormer组件分析

而现在的refer points 是由 虚拟的grid points往图像上投影得到的. 在相机参数固定的情况下, 此时的refer points是固定的.另外, 显然这样虚拟的grid points 是不合理的, 因为有些地方可能就没有点, 但是还是能够投影到图像上的. 这里用真值的点应该会更好,问题: 给固定的这些refer points 的收益是多大?下面是 SpatialCrossAttention这个模块的forward函数的部分代码。根据上面的代码可以看出来,如果输入的是3d, 则是。

2023-06-04 19:09:29 1212 1

原创 从代码角度理解DETR

把目标检测视为一个集合预测问题. 从设计上去掉了很多的人为操作,比如anchor设定, nms 等.更关注object与image context 之间的本质, 直接去预测最终的结果集合. 而非"搜索式检测"不需要开发额外的库,比如roi-align, roi-pooling, 这些操作…很容易换一个head就可以去做分割的任务,

2023-05-27 21:09:30 785

原创 从代码层面理解Transformer

这个模块其实没有可以学习的参数.这里的这个buffer的用法可以学习一下.这里的这个实现还是挺简洁的. 一行就解决了.

2023-05-21 17:41:29 469

原创 Mac外接键盘ikbc win键无法使用问题

之前win键是可以用的,今天发现不能用了,查了一下,原来是无意中按错被锁住了,按右下边的Fn+右上 PrtSc 即可解锁,又可以愉快地使用win键敲代码了。ikbc的型号, 是c87, 青轴的.

2023-04-27 09:59:35 2302 1

原创 SECOND: Sparsely Embedded Convolutional Detection

感知, 3d目标检测,

2022-06-21 08:53:27 504 1

原创 IoU-aware Single-stage Object Detector for Accurate Localization

iou aware, 目标检测

2022-06-20 23:16:16 724

原创 python3下pypcd的使用

参考 https://roboticslab-uc3m.github.io/installation-guides/install-pypcd.html进行安装即可,主要就几步cd mkdir -p reposcd reposgit clone https://github.com/dimatura/pypcd.gitcd pypcdsudo python3 setup.py install即可使用python3下的pypcd不过要是from pypcd import pypcd

2021-10-30 14:06:31 2987 2

原创 将lidar点云转化成为图片1

将lidar转化成为图片有很多种方法, 最近在思考如何根据自己设定的相机的角度来查看点云.大致的想法是,输入lidar点云,以及从lidar到相机的pose, 这个pose,即沿着三个轴的旋转以及平移,可以是任意的,是人为指定的. 然后输出的是相机在这个pose下所拍摄到的相机的图片.如果这个想法能够实现,就能够从不同的角度看点云形成的图片,比如第一人称视角,或者俯视图等.以kitti为例kitti raw的数据采集车是这样的.因为只有点云的话,不太好看第一人称的点云是怎么样的, 这里以相机俯

2021-10-29 22:37:40 1753 2

原创 loam学习1.

代码 https://github.com/Mitchell-Lee-93/kitti-A-LOAM从cmake.txt里面看到接下来就按照顺序看这几个主要的代码ScanRegististration.cpp从main函数看起,主要是下面的几个函数大致是接收bag文件中的点云信息,然后做了处理,处理完了就再发布出去,供后面的算法使用.laserCloudHandler通篇所用的 PointType 指的是但是从 laserCloudHandler 中可以看出来而是用 PointXY

2021-10-17 23:08:38 170

原创 A-loam跑通记录

代码地址:https://github.com/Mitchell-Lee-93/kitti-A-LOAM我使用的环境是 ubuntu18 + ros melodic安装 依赖的环境sudo apt-get install -y libgoogle-glog-devsudo apt-get install -y libatlas-base-devwget -O ~/Downloads/ceres.zip https://github.com/ceres-solver/ceres-solver/a

2021-10-17 21:40:22 749 1

原创 kitti2bag探索

在很多的slam算法中都 有将kitti的数据转成为bag的,这次就探索一下这里面的细节,以便于将其他的数据生成bag文件进行测试slam算法.kitti2bag的代码结构大致如下IMU data先读取时间戳。然后把里面的数据,读出来,然后 放置到bag文件里,然后这里会发现,在最后的地方,不仅仅保存的 imu_raw,还有 imu_correct, 代码里面的注释说是为了lio-sam的gps使用。查了一下,在这里有使用然后 还要注意,对于kitti,的imudata,作者用的是 extr

2021-10-14 23:24:03 723

原创 lio-sam中点云地图保存

在 src/save_map.srv 中有如下的定义float32 resolution string destination---bool success注意 --- 下面指的是feedback,接下来看save

2021-10-12 10:28:45 2885 2

原创 lio-sam结果在kitti上的关键桢对齐

在跑lio-sam 这个算法时,生成的结果实际上只是基于关键桢的, 生成的 transformation.pcd里面就存了 pose信息, 它的fields包括x y z intensity roll pitch yaw time如果想要将点云和图像进行结合的话,那就需要知道 关键桢具体是哪些,这样才能够找到对应的图像.在看 kitti2bag.py 这个代码的时候,会发现点云的时间戳存的其实就是读的kitti的时间戳. 只不过进行了一下转化. 因此如果想要对齐的话只需要将kitti中的时间进

2021-10-10 21:31:13 995 2

原创 lio-sam算法整理<3>

上次有一些函数没有查细节,这次接着查看第一个函数就是 deskewPointthisPoint = deskewPoint(&thisPoint, laserCloudIn->points[i].time);这里面传入了当前的点以及时间戳.做的事情如下 PointType deskewPoint(PointType *point, double relTime) { if (deskewFlag == -1 || cloudInfo.imuAv

2021-09-27 22:54:23 411

原创 lio-sam算法整理<2>

msg/cloud_info.msgcloud_info.msg可以看到,这里面定夜猫子点云,imu的初始化,以及ringindex的相关msg.在对应的CMake里面也加入这个相当于是自定义的了,因此也需要有 msg_generation相关.在package.xml也要有对应的src/imageProjection.cpp这个代码开始定义了自定义的 结构体VelodynePointXYZIRT因为正常的pointcloud2里面没有这个类型的,因此这里进行了自定义. (后面

2021-09-27 20:51:02 816

原创 lio-sam算法整理<1>

配置环境https://github.com/TixiaoShan/LIO-SAM目前 使用的是ros1的,按照上面的github教程即可安装成功。运行lio-samsource devel/setup.zsh 之后,运行roslaunch lio_sam run.launch如果报错libmetis.so cannot open shared .....可以 sudo cp /usr/local/lib/libmetis.so /usr/lib/ 进行解决。如果报错cannot la

2021-09-27 16:05:54 433

原创 ros学习之topic实例5

接上次的实例4,这次就用类来实现,接收,处理,并重新发布先创建包 catkin_create_pkg pcl_process_class roscpp std_msgs在对应的src下面写入 pcl_process_class.cpp 代码如下>>#include <ros/ros.h>>>#include <pcl/point_types.h>>>#include <pcl_conversions/pcl_conversi

2021-09-27 11:20:08 87

原创 ros学习之topic实例4

之前都是发布点云,这次的示例是发布之后并处理一下,将点云的颜色改变之后再重新发布出云,实际在slam中使用时这种方式非常多,比如lio-sam里面就有.代码如下>>#include <pcl_conversions/pcl_conversions.h>>>#include <sensor_msgs/PointCloud2.h> >>ros::Subscriber subCloud; //用于接收点云>>ros::P

2021-09-27 11:06:22 147

原创 ros学习之topic实例3

这次直接上代码了,仍然是发布点云的,但是这次用的是点云的指针,熟悉了一下其用法>>#include <iostream>

2021-09-25 16:51:22 128

原创 点云去噪示例

点云去噪是点云预处理的重要步骤,本blog将给出点云去噪的一份示例代码#include <iostream> #include <pcl/common/common_headers.h> #include <pcl/io/pcd_io.h> #include <pcl/console/parse.h> #include <pcl/filters/statistical_outlier_removal.h> using nam

2021-09-25 14:49:03 840

原创 由点云生成bev的图像

从点云生成图像个人理解有很多种方式,可以虚拟相机的位置,然后就可以生成图像了,但是经常使用的可能就是看一下BEV的图,我这里写了一个简单的函数,用于从pcd点云文件生成bev的图def pcl2bev(pcl_path, ratio=10, width=80, height=120): """ pcl点云中的一般都是m的坐标, ratio: 1m代表几个像素的意思. 比如width5m ,height,10m的一个范围 """ im

2021-09-24 15:18:49 2187 3

原创 一个非常好用的bbox标注工具

有时候做demo或者是自己想手动标注一下bbox的时候,可以尝试使用一下这个工具,非常简单,安装也很方便github地址: https://github.com/tzutalin/labelImg使用mac安装过程如下brew install qtbrew install libxml2上面两个也可以使用pip安装pip3 install pyqt5 lxml然后make qt5py3运行python3 labelImg.py 即可运行时界面如下先选择对应的图片或

2021-09-24 10:19:07 701

原创 相机变换要注意的事项

往往在使用公开数据集的时候,会有多个传感器,比如kitti,和nuscenes都是有多个传感器的,每个传感器都有相对于某坐标系的pose信息,比如对于kitti,有T_cam_velo, T_imu_velo等.对于nuscenes,也有 lidar2ego, camera2ego等,在这些信息都有时候,在计算复合pose的时候,就要注意了.下面以 nuscenes为例,kitti的也是类似.假设我们拿到了, ego2w, lidar2ego以及 camfront2ego 的pose信息了,

2021-09-23 12:35:39 425

原创 ros学习之topic实例2

ros学习之topic实例2之前使用ros发布了自定义的一个简单的gps.msg.这次尝试发布并接收一下点云的信息创建工作packagecatkin_create_pkg pcl_pub roscpp std_msgs写代码 src/pcl_pub.cpp 内容如下#include <iostream>

2021-09-21 15:19:34 320

原创 ros学习之topic实例1

参考自https://sychaichangkun.gitbooks.io/ros-tutorial-icourse163/content/chapter6/6.2.html这里写一个demo:,一个talker,发布gps的信息,一个listener来接收信息,并算出到原点的距离.创建工作空间makdir -p ~/catkin_ws/srccd ~/catkin_ws/src# 创建一个包叫topic_democatkin_create_pkg topic_demo roscpp rosp

2021-09-20 22:59:58 176 1

原创 根据激光雷达点云中点的坐标计算ring的值

目前velodyne系列的激光雷达已经会提供ring的值,所谓ring的值,就是每个点是几束光发出来的。参考这个图那如果没有提供的话,就需要自己来算 ring的值了.下面是一段参考代码. # read binary data scan = (np.fromfile(velo_filename, dtype=np.float32)).reshape(-1, 4) # get ring channel depth = np.linal

2021-09-20 19:25:12 3742

原创 c++读取自定义点云pcd文件

之前查读取pcd的文件,大多数是用python的open3d来进行读取,但是这样读取到的信息,好像只能够得到 pcd.points,和pcd.colors, 但是如果想要把pcd中的信息都拿到呢,比如我保存的时候,pcd中的点云的类型是下面这样的struct PointXYZIRPYT{ PCL_ADD_POINT4D PCL_ADD_INTENSITY; // preferred way of adding a XYZ+padding flo

2021-09-20 18:54:18 2544 2

原创 pykitti的使用

最近在用kitti的 kitti_raw的数据集,一直在和pykitti打交道, pykitti这个包里面整理了经常使用的一些接口.比如 pose,信息,比如把点云信息根据每个时刻的pose,就能够得到一个大的点云地图.而且比较稠密,因为用的是原始的.下面就以 点云拼接为例,来熟悉pykitti中的接口.创建kitti的数据集的对象import pykitti# dataset = pykitti.raw(basedir, date, drive, frames=list(range(0, 2

2021-09-20 18:37:38 1429 1

原创 深刻理解相机的pose

之前从未仔细想过到底相机的pose 意味着什么,或者准确地来说,两个物体之间的pose意味着什么,以及在实际计算的时候,该注意什么.从kitti数据集谈起看 kitti_raw的论文时会发现各种传感器的位置如图比如在用pykitii这个工具包时,会发现在raw.py 里面关于坐标变换是这么算的.以3号相机为例.假设我要得到从 velo到cam3的 pose信息.代码里面经过了这样操作 T_cam0unrect_velo = self._load_calib_rigid(velo_to_cam_

2021-09-16 13:15:52 1659

原创 opendrive格式完全解析

opendrive格式完全解析在carla仿真环境中提供了很多的示例的xodr文件,如图所示在目录: carla-0.9.12/CarlaUE4/Content/Carla/Maps/OpenDrive下面有如下的xodr文件OpenDriveMap.xodr Town01.xodr Town02.xodr Town03.xodr Town04.xodr Town05.xodr Town06.xodr Town07.xodr

2021-09-15 16:00:33 4213

原创 解决使用zsh中no matches found: *的问题

使用zsh很久了,之前使用带*的命令时,比如 ls ,时,就会报上面的这个错,并没有细查,今天才知道其实是有解决办法的,方法就是在~/.zshrc 中加上一句话setopt no_nomatch然后 source ~/.zshrc 一下就可以了....

2021-09-10 23:09:02 9705 1

原创 No module named derived_object_msgs.msg

环境 :ubuntu18.04ros-melodiccarla-0.9.12在安装 ros1 bridge时遇到的bug.解决办法sudo apt-get install ros-melodic-astuff-sensor-msgs刚开始在网上查,说的都是用sudo apt-get install ros-kinetic-derived-object-sensor-msgs或者sudo apt-get install ros-melodic-derived-object-sens

2021-09-10 23:03:14 1610 1

原创 Eigen/core no such file or directory的解决办法

环境: ubuntu18.04报错如下fatal error: Eigen/Core: No such file or directorycompilation terminated.要先检查 eigen库是否安装sudo updatedb如果出现updatedb command not found请先安装sudo apt install mlocate再运行locate eigen3如果出现了eigen库的文件,要检测CMakeLists里面是否有include_directo

2021-09-08 22:54:49 2477

Analysis II (Terence Tao) .

这是Terence Tao的实分析二,觉得很不错,上传与大家分xiang一下。

2015-03-23

空空如也

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

TA关注的人

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