Chapter 3 Matrices
1. 矩阵基础 1.1 将矩阵视为数字的数组 矩阵(Matrix)是数组的矩形数组,形式为 A=[a11a12⋯a1na21a22⋯a2n⋮⋮⋱⋮am1am2⋯amn] \bm{A}= \begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1} & a_{m2} & \cdots & a_{mn} \end{bmatrix}A=a11a21⋮am1a12a22⋮am2⋯⋯⋱⋯a1na2n⋮amn 这个矩阵有mmm行(rows)nnn列(columns),若是元素为实数,我们可以说A∈Rm,n\bm{A} \in \mathbb{R}^{m,n}A∈Rm,n;若是元素为复数,我们可以说A∈Cm,n\bm{A} \in \mathbb{C}^{m,n}A∈...
从rosbag中提取数据
1. 提取数据为csv或txt格式 在命令行中输入 rostopic echo -b xxx.bag -p /topic > xxx.csv(或.txt)
Chapter 2 Vectors and functions
1. 向量基础 1.1 向量 向量可以被视为数字的集合(collection),通常写为列排列 xix_ixi被称为向量x\mathbf{x}x的第iii个元素(element)/条目(entry)/分量(component),元素的数量为x\mathbf{x}x的维度 向量中的元素为实数(real)时,i.e. xi∈Rx_i \in \mathbb{R}xi∈R,向量为实数向量,i.e. x∈Rn\mathbf{x} \in \mathbb{R}^nx∈Rn;若向量中的元素为复数(complex)时,i.e. xi∈Cx_i \in \mathbb{C}xi∈C,向量为复数向量,i.e. x∈Cn\mathbf{x} \in \mathbb{C}^nx∈Cn 当我们不在乎向量是行向量(row)还是列向量(column)时,可以直接使用x=(x1,x2⋯ ,xn)\mathbf{x}=(x_1,x_2 \cdots, x_n)x=(x1,x2⋯,xn)来表示向量 1.2 向量空间 向量可以被视为空间中的点 向量空间(vector space),X\mathcal{X...
搭建LaTeX环境
所用的环境: 操作系统版本:Ubuntu 编辑器:VScode 1. 编译器的下载与安装 1.1 文件下载 在清华源中下载镜像文件 对镜像文件挂载 sudo mount texlive.iso /mnt 1.2 图形界面安装 先安装图形化界面 sudo apt-get install perl-tk 启动图形界面安装(我通过X11进行图形转发,故需要加-E) sudo -E ./install-tl -gui 按照安装提示进行安装(建议将安装位置设为个人目录),安装完成后卸载镜像文件 sudo umount /mnt 1.3 非图形界面安装 自定义安装位置 perl ./install-tl --no-interaction --texdir=/home/extend/texlive/2025 安装完成后卸载镜像文件 sudo umount /mnt 1.4 设置环境变量 打开.zshrc # >>> LaTeX >>> export PATH=export PATH=/home/extend/texlive/2025/bin/x86_64-linux:$PATH expor...
凸优化中的数学符号
数学符号 含义 备注 ⪰0\succeq 0⪰0 半正定 \succeq ≻0\succ 0≻0 正定 \succ S+nS^n_{+}S+n n*n空间中对称半正定矩阵集合 S++nS^n_{++}S++n n*n的空间中对称正定矩阵集合 R+R_{+}R+ 非负实数集合 R++R_{++}R++ 正实数集合 A⊤A^\topA⊤ or A⊺A^\intercalA⊺ 矩阵转置(前者更常用) ^\top ^\intercal Rn\mathbb{R}^nRn 维度为nnn的所有向量组成的空间 \mathbb{R}^n
Hexo博客的恢复
1. 安装Nodejs 从官网下载安装包 curl -fsSL https://deb.nodesource.com/setup_22.x | sudo bash - sudo apt-get install -y nodejs 2. 安装Hexo sudo npm install hexo-cli -g sudo npm install hexo -g 3. 克隆项目 将github项目下载到本地并拉取子模块 git clone git@github.com:WbLv66/hexo.git cd hexo git submodule update --init 4. 恢复博客 npm install npm install hexo-deployer-git 参考 Hexo博客的备份与恢复
AEDE调试笔记
在fast_lio项目中的laserMapping.cpp的"camera_init"改为"map","body"改为"sensor" 设置AEDE项目中的loam_interface/launch/loam_interface.launch文件stateEstimationTopic =/Odometry, registeredScanTopic = /cloud_registered, flipStateEstimation = false, flipRegisteredScan = false 设置AEDE项目中的local_planner/launch/local_planner.launch文件maxSpeed改为0.5 far_planner配置文件中将is_static_env设为false以清除动态障碍物
WiFI和有线连接优先级
目的:为了实现同时连接WiFi和有线网络时,优先使用WiFi连接互联网 1. 查看当前路由信息 sudo ip route 数字越大的,优先级越低 2. 查看当前连接名称 nmcli connection show 找到有线连接和无线连接对应的连接名称 3. 设置无线优先 sudo nmcli connection modify "无线名称" ipv4.route-metric 10 sudo nmcli connection modify "无线名称" ipv6.route-metric 10 4. 设置有线备用 sudo nmcli connection modify "有线名称" ipv4.route-metric 100 sudo nmcli connection modify "有线名称" ipv6.route-metric 100 5. 应用更改 sudo nmcli connection up "无线名称" sudo nmcli connection up "有线名称" 6. 验证 ip route show default 参考文章 解决Linux系统WiF...
ROS笔记
1. 将Subscriber类作为类中成员变量 在类中使用ros::Subscribe需要参考以下格式:kNH->subscribe("话题", 1, &类::回调函数, this) 2. 节点句柄 2.1 放于main()函数中 如果将节点句柄的构造放于main()函数中,那么需要通过构造函数的参数接口传入类中,过于冗余 2.2 作为类的成员变量 在构造函数中,如果需要通过调用节点句柄param方法获取参数并传入基类的构造函数时,会出现问题。因为基类的构造函数是先于子类成员的初始化的,所以在进行基类构造的时候节点句柄还未初始化,无法获取正确的参数 2.3 作为全局变量 如果将节点句柄的构造作为全局变量,会导致节点句柄的构造先于节点初始化,出现报错 2.4 作为全局智能指针 将节点句柄的构造作为全局智能指针,并初始化为空指针,在main()函数中节点初始后为智能指针赋值,实现延迟加载 3. 回调函数 回调函数中不要设置阻塞(如循环判断),因为所有的回调函数共享同一个线程,一个回调函数阻塞,其他回调函数也无法进行
C++踩坑记录
1. 数组智能指针 在创建指向数组的智能指针时需要注意传入模板的类型需要加中括号,例如创建八个元素的整数数组指针std::unique_ptr<int[]> ptr = std::make_unique<int[]>(8) 2. 移位操作 移位运算符即按二进制形式把所有数字向左移动相应的位数,高位舍弃,空位补0。因此移位后返回的字符宽度与需要移位的数字字符宽度保持一致 注意移动的位数不得超过变量的字符宽度,不然会导致未定义行为 此时便出现了易错点:移位操作时存在整数提升现象,即小于或等于int的整数类型在运算时会被自动提升为int或unsigned int(当int不够存储原类型数据),这样是不安全的,因此需要在移位前先显示进行类型转换 参考文章C++ 整数提升与移位陷阱 参考文章C++移位运算符详解