FunnyWii

FunnyWii

Myself

可变参数模板和折叠表达式的工程示例

多传感器融合算法往往都需要一个时间同步算法,时间同步算法的输入一般是多个带时间戳的传感器数据。 使用 C++ 不久的人,往往会给这多个传感器的类分别创建实例,在处理的时候再根据传感器数量进行遍历。这样写没有问题,就是不够优雅。 学习可变参数模板和折叠表达式需要先对 C++ 中的 Template 有

Ubuntu开发板多用户开发权限配置指南

本文主要是为了解决多用户在同一台开发板上开发时,导致的 GitHub 等 SSH key 混乱的问题。 Linux 系统多用户 # 切换到管理员权限 sudo su # 创建用户 wfy(会自动创建 home 目录) adduser wfy # 系统会提示设置密码,输入 1(注意:Ubuntu

Kalman Filter原理及公式推导

卡尔曼滤波是一种高效的递归(自回归)滤波器。能够从一系列的不完全及包含噪声的测量中,估计动态系统的状态。卡尔曼滤波会根据各测量值在不同时间下的值,考虑各时间下的联合分布,再产生对未知变量的估计,因此会比只以单一测量值为基础的估计方式要准^{[1]}。 几个值 先说明一下卡尔曼滤波中涉及到的各个值:

IMU的数据

我一个做感知的威森莫要用 IMU... 昨天想获取 Unitree GO2 的 IMU 数据,跑官方 SDK 的时候,忘记修改底层代码,导致发送了一些控制命令,狗突然就动了起来,差点把狗搞坏,险些让我“曾经有一份工作”,至今心有余悸。 GITHUB 上似乎没有现成的获取 GO2 IMU 数据的代码,

C++模板

C++ 是一门强类型语言,编写一个通用函数,能把任意类型的变量传进去处理,通过把通用逻辑设计为模板来摆脱类型限制。 C++ 中的模板语法,实际上是在为 C++ 提供泛型(Generic Programming)的机制。 最常见的泛型应用在 STL 的容器中。 类模板 Class Templates

C++11及其之后的新特性(简单介绍)

C++11 自动类型推导 auto 需要注意的是: 必须在定义时初始化 auto 类型的变量 auto 类型不能定义数组 一旦初始化,就不可更改类型 auto x = 5; auto y = 3.14; auto a; // 错误 auto array[10]; //错误 auto a = 1

ROS1的launch文件

之前一直是 rosrun 方式启动ros节点的, 一是因为懒, 二是因为我只负责一个节点, 用不到 launch 方式. 这次遇到了不能保存 ROS 日志的 bug, 换成 launch 方式启动就能成功保存日志了... Launch文件 ROS中 .launch 文件可以同时启动多个 node,

Livox格式的rosbag转为PointCloud2格式

参考文章前两篇是 CSDN 的,又一次让我见识到 CSDN 的文章质量之低了。 写这篇文章的目的,是 Livox LiDAR 发布的格式是 CustomMsg,没有办法用 rviz 直接可视化,必须重新发布为 PointCloud2 格式或者使用 C++ 通过驱动直接解析。 安装 先编译并安装 Li

ROS1的bag录制

bag录制 录制所有话题,这里没有指定 bag 名,会在当前路径生成一个当前时间戳命名的 bag rosbag record -a 录制指定话题 rosbag record <topic_name1> <topic_name2> ... 录制指定话题,并指定 bag 名称,arg为大写的英文字母O

多传感器融合——后融合

多传感器融合的方案可以分成前融合(Early Fusion)方案和后融合(Late Fusion)方案。 前融合也叫特征级融合,不同传感器的数据会在特征级别进行合并,也就是说,不同模态的数据经过处理和合并后会得到一个特征集合。一般来说,每个模态数据的特征会被分别提取,然后被提取到的特征会被合并为一个