0 简单的CUDA简介 1.简单教程 CUDA C ++只是使用CUDA创建大规模并行应用程序的方法之一。它允许您使用功能强大的C ++编程语言来开发由GPU上运行的数千个并行线程加速的高性能算法。许多开发人员以这种方式加速了他们的计算和带宽需求的应用程序,包括支持正在进行的人工智能革命(称为深度学习)的库和框架。 1.1.案例 C ++程序开始,该程序添加两个数组的元素,每个数组包含一百
1. 机器人的启动文件 1.1. 整体叙述 <?xml version="1.0"?> <launch> <arg name="world" default="robocup_at_work_2012"/> <arg name="init_pos_x" default="0.0"/>
1、ros-综述 1.1. ros node Node 在ROS的世界里, 最小的进程单元就是节点( node) 。 一个软件包里可以有多个可执行文件, 可执行文件在运行之后就成了一个进程(process), 这个进程在ROS中就叫做节点。 Master 由于机器人的元器件很多, 功能庞大, 因此实际运行时往往会运行众多的node。 ROS提供节点管
DWA 简介: 该包使用DWA(Dynamic Window Approach)算法实现了平面上移动机器人局部导航功能。 输入全局规划和代价地图后,局部规划器将会生成发送给移动底座的命令。该包适用于其footprint可以表示为凸多边形或者圆形的机器人,它导出配置参数为ROS参数形式,可以在启动文件进行配置,当然也可以动态配置。 这个包的ROS封装接口继承了BaseLocalPlanne
1、move_bae框架 参考:http://wiki.ros.org/move_base 1.主体介绍: move_base是ROS下关于机器人路径规划的中心枢纽。 它通过订阅激光雷达、map地图、amcl的定位等数据,然后规划出全局和局部路径,再将路径转化为机器人的速度信息,最终实现机器人导航。 首先左上角的amcl左上角的amcl模块是ROS的导航定位模
0、简介 四元数与欧拉角之间的转换 百度百科四元素 在3D图形学中,最常用的旋转表示方法便是四元数和欧拉角,比起矩阵来具有节省存储空间和方便插值的优点。 本文主要归纳了两种表达方式的转换,计算公式采用3D笛卡尔坐标系: 定义,,分别为绕Z轴、Y轴、X轴的旋转角度,如果用Tait-Bryan angle表示,分别为Yaw、Pitch、Roll。 一
1.简介: tf是一个让用户随时间跟踪多个参考系的功能包,它使用一种树型数据结构,根据时间缓冲并维护多个参考系之间的坐标变换关系,可以帮助用户在任意时间,将点、向量等数据的坐标,在两个参考系中完成坐标变换。 tf可以在分布式系统中进行操作,也就是说一个机器人系统中所有的参考系变换关系,对于所有节点组件,都是可用的,所有订阅tf消息的节点都会缓冲一份所有参考系的变换关系数据,所
一、避障概念: 避障是指移动机器人在行走过程中,通过传感器感知到在其规划路线上存在静态或动态障碍物时,按照 一定的算法实时更新路径,绕过障碍物,最后达到目标点。 实现避障与导航的必要条件是环境感知,在未知或者是部分未知的环境下避障需要通过传感器获取周围环境信息,包括障碍物的尺寸、形状和位置等信息,因此传感器技术在移动机器人避障中起着十分重要的作用。 机器人避障需使用的传
1、graphviz特点 安装: sudo apt install graphviz 文档:点击 Graphviz是开源的图形可视化软件。 图形可视化是一种将结构信息表示为抽象图形和网络图的方式。 它在网络,生物信息学,软件工程,数据库和网页设计,机器学习以及其他技术领域的可视界面中具有重要的应用。 Graphviz布局程序以简单的文本语言获取图形描述,并以有用的格式制作图表,例如
1. 基础 Ceres solver 是谷歌开发的一款用于非线性优化的库,在谷歌的开源激光雷达slam项目cartographer中被大量使用。Ceres官网上的文档非常详细地介绍了其具体使用方法。文档转入 1.1 下载 可以在github上直接下载,或者直接克隆 git clone https://ceres-solver.googlesource.com/ceres-
1.模块和头文件 模块 头文件 说明 Core #include<Eigen/Core> 包含Matrix和Array类,基础的线性代数运算和数组操作 Gemetry #include<Eigen/Geometry> 包含旋转,平移,缩放,2维和3维的各种变换 LU #include<Eig
1. 简介 ceres solver 1.1 基本概念 ceres 可以解决形式受限的鲁棒非线性最小二乘问题: 1.2 案例 一旦我们有了一种计算残差函数的方法,现在就可以使用它来构造非线性最小二乘问题,并让Ceres解决它。 struct CostFunctor { template <typename T> bool operator()(const
内容列表 1. 矩阵分解 2. QR分解 2.1 QR分解的求法 2.2 Eigen QR module 2.3.1 HouseholderQR() 2.3.2 ColPivHouseholderQR() 2.3.3 FullPivHouseholderQR() 3. 特征值分解 EVD 3.1 特征值与特征向量的基础理论 3.2 矩阵的特征分解 3.3 对特殊矩阵的特征分解
Dense matrix and array manipulation 1.The Matrix class 1.1 vectors 1.1.1 segment 1.2 The special value Dynamic 1.3 Constructors 1.3.1 默认 1.3.2 固定大小构造 1.3.3 构造函数来初始化 1.
Loam_livox https://github.com/hku-mars/loam_livox Papper Loam livox Loam livox: A fast, robust, high-precision LiDAR odometry and mapping package for LiDARs of small FoV 主要贡献: 基于Loam算法
内容列表 Aloam Summary rosbag read_write scanRegistration laserCloudHandler laserOdometry TransformToStart LidarEdgeFactor LidarPlaneFactor laserMapping callback proc
内容列表 LeGO-LOAM Introduction System Node and topics ImageProjection projectPointCloud groundRemoval cloudSegmentation featureAssociation Callback runFeatureAssociation f
内容列表 Lvi-sam 心得 依赖运行 vins visual_feature lidar_callback img_callback readImage get_depth visual_odometry imu_callback odom_callback feature_callback process main_
内容列表 总体叙述 1. ParamServer 1.1 参数定义 1.2 ParamServer 构造 1.3 other 函数 2. TransformFusion 2.1 成员变量 2.2 TransformFusion 构造 3. 激光里程计callback 3. IMUPreintegration 3.1 成员变量
内容列表 注解: 代码流程: 1、主函数: main 2.LaserOdometry类中的 setup 函数: 3、回调函数laserCloudSharpHandler 4、回调laserCloudLessSharpHandler 5、回调laserCloudFlatHandler 6、回调laserCloudLessFlatHandler 7、回调laserClo
内容列表 一、注解: 二、代码流程: 2.1 主函数:main 2.2 MultiScanRegistration类的构造 2.3 类对象multiScan调用setup函数 2.3.1 参数配置 RegistrationParams 2.3.2 子类ScanRegistration调用其函数setupROS 2.3.3 激光参数确定 三、IM
注解: 功能:优化Lidar的位姿,在此基础上完成低频的环境建图 解释:经过前两个节点的处理可以完成一个完整激光里程计,可以概略地估计出Lidar的相对运动,可以直接利用估计的Lidar位姿和对应时刻的量测值完成建图。但量测噪声是不可避免的,因此Lidar位姿估计偏差一定存在。通过与地图匹配的方式来优化激光的位姿,利用已构建地图对位姿估计结果进行修正。当前扫描的点云和地图中所有点云去配准,这个
1、cartographer整体: 主要论文: Real-Time Loop Closure in 2D LIDAR SLAM , ICRA 2016Efficient Sparse Pose Adjustment for 2D Mapping (SPA)Real-Time Correlative Scan Matching (BBS)Real-Time Loop Closure in 2
内容列表 1.相关性扫描匹配: 1.1 输入 : 1.2 步骤: 2.ceres 优化: 2.1 输入 : 2.2 步骤: 3.输入数据的坐标关系 cartographer 前端 相关性扫描匹配 和 ceres 优化两种 1.相关性扫描匹配: double RealTimeCorrelativeScanMatcher2D
内容列表 1、生成子图调用函数 2、ActiveSubmaps2D类 构造函数: 成员变量: 成员函数: 1、InsertRangeData函数 2、AddSubmap 3、CreateGrid函数 4. InsertRangeData Finish 在类Submap2D中 3、Submap2D类 构造函数: 1.由Ac
点云同步对于单帧数据无影响,对于多帧数据,延时一帧 1.点云同步处理的类 RangeDataCollator class RangeDataCollator { public: explicit RangeDataCollator( const std::vector<std::string>& expected_range_sensor_ids)
内容列表 1. ceres安装系统中 2.catkin_make 编译 官网下载 github 直接下载 安装依赖 src目录 编译+安装系统 src目录 catkin tools安装+cartographer编译 安装测试 1. ceres安装系统中 git clone https://github.com/ceres-solver/ceres
1、涉及到的类型 1. MapById<SubmapId, SubmapSpec2D> submap_data_; SubmapId int trajectory_id; int submap_index; struct SubmapSpec2D {transform::Rigid2d global_pose;}; 2.transform::Rigi
相关知识: 一、PCL—低层次视觉—点云滤波(初步处理) 1.点云滤波的概念 点云滤波是点云处理的基本步骤,也 也是进行 high level 三维图像处理之前必须要进行的预处理。其作用类似于信号处理中的滤波,但实现手段却和信号处理不一样。我认为原因有以下几个方面: 点云不是函数,对于复杂三维外形其x,y,z之间并非以某种规律或某种数值关系定义。所以点云无法建立横纵坐标之间的联系。点云在
一、添加landmark代价中涉及到的类型 void AddLandmarkCostFunctions( const std::map<std::string, LandmarkNode>& landmark_nodes, bool freeze_landmarks, const MapById<NodeId, NodeSpec2D>&
1、cartographer_ros入口文件:node_main.cc入口函数main,如下图: ::ros::init(argc, argv, "cartographer_node"); ::ros::start(); cartographer_ros::ScopedRosLogSink ros_log_sink; cartographer_ros::Run();
一、缘由 1.occupancy_grid_node_main.cc节点将子图转化为栅格地图发出去 cartographer运行过程中动态发布的nav_msgs/OccupancyGrid格式的topic可作为地图用于navigation。 occupancy_grid_node_main.cc 发布出的栅格地图 值 -1 【0-100】 的int value 实测可以直接使用,但在运
积分
粉丝
勋章
TA还没有专栏噢
第三方账号登入
看不清?点击更换
第三方账号登入
QQ 微博 微信