- 博客(100)
- 资源 (5)
- 收藏
- 关注
原创 cartographer_ros 代码分析1
cartographer ROS代码为两大部分:cartographer和cartographer_ros。cartographer主要负责处理来自雷达、IMU、里程计的数据并基于这些数据进行地图的构建,是cartographer理论的底层实现。cartographer_ros 则基于ros的通信机制获取传感器的数据并将它们转换成cartographer中定义的格式传递给cartographe...
2020-03-10 16:13:06 775
原创 4.Cartographer ros配置参数介绍
map_frame用于发布submaps的ROS坐标系ID,位姿的父坐标系,通常使用“map”tracking_frame由SLAM算法追踪的ROS坐标系ID,如果使用IMU,应该使用其坐标系,通常选择是 “imu_link”published_frame用于发布位姿子坐标系的ROS坐标系ID,例如“odom”坐标系,如果一个“odom”坐标系由系统的不同部分提供,在这种情况下...
2019-03-13 09:45:56 2112
原创 cartographer 代码分析
5.1激光数据处理流程1.入口文件:node_main.cc入口函数main,如下图: ::ros::init(argc, argv, "cartographer_node"); ::ros::start(); cartographer_ros::ScopedRosLogSink ros_log_sink; carto...
2019-03-13 09:43:44 818
原创 cartographer 安装编译
Ubuntu16.04 环境依赖sudo apt-get install -y \clang \g++ \git \google-mock \libboost-all-dev \libcairo2-dev \libcurl4-openssl-dev \libeigen3-dev \l...
2019-03-13 09:42:49 1164
原创 马斯克开源的grok AI大模型
Grok-1 开源仅过去了 10 个小时,该项目便获得了 超过16k 的 Star,成为众人关注的焦点所在。马斯克践行诺言,坚持开源原则,选择开源自家的 AI 大模型——Grok-1。后续继续更新,使用调试情况。
2024-03-18 16:52:34 1455
原创 vscode 远程连接报错
因为需要在底盘上自动安装一些东西,需要让底盘链接外网,再用vscode 链接即可。在ubuntu 下用vscode 远程修改机器人底盘,报错。
2023-05-16 15:09:44 495
转载 Eigen库学习
Eigen 基础部分Eigen 学习笔记(一)_逐梦者-CSDN博客_eigenEigen实现旋转矩阵、旋转向量(轴角)、四元数、欧拉角之间相互转换https://www.cnblogs.com/cc111/p/9354924.htmlEigen库中进行矩阵间的变换https://blog.csdn.net/wangxiao7474/article/details/103613334?utm_medium=distribute.pc_relevant.none-task-blog
2021-10-30 15:51:16 354
原创 c++11 新特性学习
1. lambda 表达式C++ 11 Lambda表达式 - 滴水瓦 - 博客园Lambda表达式完整的声明格式如下:[capture list] (params list) mutable exception-> return type { function body }各项具体含义如下capture list:捕获外部变量列表 params list:形参列表 mutable指示符:用来说用是否可以修改捕获的变量 exception:异常设定 return type
2021-09-26 20:29:54 651
原创 c++ 11 std::chrono 库的详解
C++11有了chrono库,可以很容易的实现定时功能。chrono: chrono库主要包含了三种类型:时间间隔Duration、时钟Clocks和时间点Time point。Duration: duration表示一段时间间隔,用来记录时间长度,可以表示几秒钟、几分钟或者几个小时的时间间隔,duration的原型是: template<class Rep, class Period = std::ratio<1>> class d...
2021-09-26 17:45:53 1268
原创 ubuntu 下使用vscode 进行cmake 编译c++ 工程
步骤一: c++ 工程含有正确的CMakeLists.txt , 使用vscode 打开工程在.vscode要建立三个json文件才能对Cmake工程进行编译和调试,分别是c_cpp_properties.json,launch.json和tasks.json步骤2: Ctrl+Shift+P,输入C/C++,选择C/C++: Edit Configurations(JSON) ,创建并修改c_cpp_properties.json文件,修改为如下:{ "configurations"
2021-09-26 14:10:57 1266
原创 ROS TF 常用接口函数
tf常见函数接口用法1.广播一个tf消息,transform旋转的组成,由欧拉角转到四元数,平移向量等。tf::TransformBroadcaster baselink_to_laserlink_broadcaster;geometry_msgs::TransformStamped bl_trans; //这个格式又是什么组成的bl_trans.header.stamp = ros::Time::now();bl_trans.header.frame_id = "base_link"
2021-09-13 09:52:04 2414
原创 gmapping源码分析2——粒子滤波
第一: 粒子定义/**所有粒子的滤波结构体数组*/typedef std::vector<Particle> ParticleVector; ParticleVector m_particles;/** 粒子滤波器中的粒子结构体 每个粒子有自己的地图、位姿、权重、轨迹* 轨迹是按照时间顺序排列的,叶子节点表示最近的节点*/ struct Particle{ //给定两个地图 一个高分辨率地图 一个低分辨率地图 Partic
2021-03-09 16:10:56 928
原创 linux cmake 编译总结
通常的CMakeLists结构是:cmake_minimum_required( VERSION 2.8 )project( projectname )find_packages( , )include_directories( )add_executable( , )target_link_libraries( , )前两行不谈,看看find_packagesfind_package写法对于OpenCV我们是这样写的:find_package( OpenCV 3.1 R
2020-12-04 14:16:20 193
原创 矩阵左乘与右乘的理解
https://blog.csdn.net/ningxuanyu5854/article/details/101905295
2020-08-29 16:12:41 7233
原创 matlab 基础学习(1)——数组,矩阵操作和绘图基础学习
一维数组(创建,赋值,取值,分割取值,四则运算等操作)创建一维数组>> A=[] %创建空的数组>> B=[1 2 3 4 5] %两种创建行向量,数组的方式>> C=[1,2,3,4,5] >> D=[1;2;3;4;5] %创建列向量,数组的方式结果:A = []B = 1 2 3 4 5C = 1 2 3 4 5D
2020-08-14 13:53:11 2104
原创 B站贝叶斯滤波和卡尔曼滤波视频学习记录(1)
视频地址https://www.bilibili.com/video/BV1tE41147ch第二讲总结1. 理解大数定律,在随机变量的独立实验中,当实验次数n 足够大时,事件A 发生的频率 约等于事件A 发生的概率,例如事件A 发生的次数为 ,则频率为 , 假设p是事件A发生的概率,则有如下定理,其中 >0 的正数。2. 独立实验 和随机过程的区分 独立实验是指在相同的实验环境下,可以重复多次的实验, 因此像气温变化,股票预测等实验,并不适合,因为环境随时间变化,...
2020-08-13 20:15:05 566
原创 ubuntu 16.04 安装编译opencv3.3
ubuntu 16.04 安装编译opencv3.3步骤一:先安装如下依赖包sudo apt-get install build-essentialsudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-devsudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-
2020-08-11 16:25:38 448
原创 概率论总结(3)——高斯分布(正太分布)
一元高斯分布(正太分布)标准高斯分布(标准正太分布)二维高斯分布多维高斯分布高斯分布的四则运算加减法运算乘除运算...
2020-08-09 12:08:34 8129
原创 slam学习(1)——卡尔曼滤波
卡尔曼滤波作用 根据机器人上个时刻的状态估计出这个时刻的机器人状态(估计值)。然后根据在这一时刻传感器的观测值,来纠正更新估计值,等到更精准的置信值前提假设1. 卡尔曼滤波算法认为当前状态与上一时刻的状态是线性关系,即由于这个式子中包含噪声,所以无法准确的求出当前状态 ,但是我们可以求出 的概率分布,然后把这个概率分布的均值作为当前状态的估计,卡尔曼滤波就是根据这个思想,它算在当前的观测数据条件下的...
2020-08-07 15:19:45 1372 1
原创 概率论总结(2)——大数定理,极大似然估计
大数定理在实际应用中,当试验次数很大时,就可以用事件的频率代替事件的概率中心极限定理数理统计抽样分布参数估计点估计最大似然估计...
2020-08-04 16:12:42 651
原创 CmakeList.txt , makefile ,linux 动态库,静态库等编译问题
CmakeList.txt 编译1. 添加编译的连接库,和 头文件//添加头文件目录include_directories(/usr/local/protobuf3/include)//添加要连接的库目录LINK_DIRECTORIES(/usr/local/protobuf3/lib)//从上面添加的库目录中寻找protobuf pthread 库,然后连接到${PROJECT_NAME} 中link_libraries(${PROJECT_NAME} protobuf pthr.
2020-08-03 10:38:01 394
原创 高数总结(1)——基础知识总结
1. 导数与函数求导导数的含义: 在函数y=f(x) 某一点求导数,得到的是在这一个点的切线的斜率,即当斜率越大,则切线越陡,表明函数在这点变化越快,变化率越大,因此导数反应的是函数在这一点变化的快慢。导数定义...
2020-08-01 10:09:11 3345
原创 概率论总结(1)——基础概念理解
1.排列与组合排列: 从n个人中选出k个人排成一列组合: 从n 个人中选出k 个人,但不用排序, 即先计算从n人中选k 个人排成一列有多少中情况,然后再计算k个人中有多少中排法,相除即可2. 条件概率3. 全概率公式4. 贝叶斯公式对贝叶斯公式的简单理解对公式3,4,5 的理解,例子如下个人理解: 即从以往数据分析得到估计值是0.95 ,即先验概率, 再进行一次测量(第一件产品是合格品),即测量值,之后再重新修正的概率...
2020-07-30 10:48:15 873
原创 c++基础(7)——类的设计
类的设计以一个复数类作为例子进行说明1. 构造函数设计默认构造函数complex () { }带参构造函数//这里是将默认构造函数和带参构造函数融合了,并且使用序列化的形式complex (double r = 0, double i = 0): re (r), im (i) { }赋值构造函数Complex& operate=(const complex& c){ this->re = c.re; this->im =
2020-07-06 15:30:05 626
原创 ubuntu 无法识别HL340 串口的解决方法
1.到沁恒官网下载相应的驱动CH341SER_LINUX.ZIPhttp://www.wch.cn/download/CH341SER_MAC_ZIP.html2. 解压,进入相应目录编译make //编译make load //加载驱动到系统 make unload //卸载驱动注意:从下载地址下载源码,在ubuntu下编译时出现“signal_pending”和“wait_queue_t”的未定义错误。/home/seanoy/CH341SER_LINUX/c...
2020-07-06 09:27:53 1585
原创 cartograhper 中IMU 消息发布需要注意的东西
const imu_data_t* imu = &info->imu_data;//这里除以100 是由协议规定的,因为芯片为了防止传输浮点型数据,先乘以100后再传输的,//因此在stm32上获取数据后,需要除以100.0 才是真是的数据float yaw = imu->yaw/100.0f; float roll = imu->roll/100.0f;float pitch = imu->pitch/100.0f;//imu 芯片数据中的坐标系是左手定则,..
2020-06-17 19:32:59 830 2
原创 robot_pose_ekf 中陀螺仪与odom 的协方差配置
https://blog.csdn.net/EAIBOT/article/details/51405152
2020-06-17 17:51:28 1785
原创 ubuntu u盘手动挂载和卸载
1.插上u盘,查看u盘盘符cat /proc/partitions2. 将u盘挂载到 /mnt/usb 上,没有usb 目录就手动创建sudo mount /dev/sdc1 /mnt/usb3. 手动卸载挂载 cd /mnt/usb ls sudo umount /dev/sdc1 sudo umount /mnt/usb...
2020-06-10 17:41:21 403
原创 c++基础(6)——c++类与对象基础
1.类的研究研究 C++编译器管理类和对象的方法 ===》避免死角 c++编译器对类对象的生命周期管理,对象创建、使用、销毁 c++面向对象模型初探 c++面向对象多态原理探究 操作符重载struct 和 class 关键字区别在用 struct 定义类时,所有成员的默认属性为 public 在用 class 定义类时,所有成员的默认属性为 private构造函数定义及调用1)C++中的类可以定义与类名相同的特殊成员函数,这种与类名相同的成员函数叫做构造函数2)没有任何返回类型
2020-05-27 11:24:36 227
原创 c++基础(5)——c++ 风格的fstream 读写文件
c++ 风格的fstream 读写文件头文件:#include <fstream>fstream提供三种类,实现C++对文件的操作ofstream:写操作,由ostream引申而来 ifstream:读操作,由istream引申而来 fstream :同时读写操作,由iostream引申而来文件的类型:文本文件 和 二进制文件ios::in 为输入(读)而打开文件; ios::out 为输出(写)而打开文件; ios::ate 初始位置:文件尾; ios::
2020-05-25 15:29:10 598
原创 c++基础(4)——linux 文件读写(open, write, read)
open() : 打开文件头文件:#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>原型:int open(const char *pathname, int flags, mode_t mode);参数pathname:要打开或创建的目标文件名flags:对文件进行多种操作也就有有多个参数,这多个参数可以进行或运算,即就是flags参数:O_RDONLY:只读打开
2020-05-25 15:17:04 4004
原创 c++基础(3)——文件读写操作(fopen,fclose,fwrit,ftell,fseek,rewind)
fopen()函数:打开文件包含头文件:#include<stdio.h>FILE * fopen(const char * path,const char * mode);参数:path:需要打开的文件路径mode:文件打开方式r 以只读方式打开文件,该文件必须存在。 r+ 以可读写方式打开文件,该文件必须存在。 rb+ 读写打开一个二进制文件,允许读数据。 rt+ 读写打开一个文本文件,允许读和写。 w 打开只写文件,若...
2020-05-25 14:53:55 2130
原创 c++基础(2)—— string 字符串类详解
string 类常用函数所以在C++标准库里,通过类string从新自定义了字符串。头文件: #include <string>string直接支持字符串连接 string直接支持字符串的大小比较 string直接支持子串查找和提取 string直接支持字符串的插入和替换 string同时具备字符串数组的灵活性,可以通过[ ]重载操作符来访问每个字符 string类常用的构造函数string str; //生成一个空字符串string str (...
2020-05-25 10:34:32 404
原创 c++基础(1)——语法基础
1. 输入,输出#include <iostream>//using namespace std;int main(){ std::cout<<"enter two numbers: "<<std::endl; int v1,v2; std::cin>>v1>>v2; std::cout << "two num sum of " <<v1<<"+"<<v
2020-05-22 18:51:07 234
原创 Linux下open函数、read函数、write函数记录
Linux下open函数、read函数、write函数记录open()#include<sys/types.h>#include<sys/stat.h>#include<fcntl.h>int open( const char * pathname, int flags);int open( const char * pathname,int flags, mode_t mode);函数说明参数pathname 指向欲打开的文件路径字符串。下.
2020-05-19 16:19:53 268
原创 ros 建图导航参数配置
目录1.平滑减速功能包 yocs_velocity_smootherGmapping 建图参数Navigation 导航避障集合Move_base 参数Amcl 蒙特卡罗定位全局路径规划: global_planner局部路径规划:base_local_planner局部路径规划: teb_local_planner局部路径规划:dwa_global_planner代价地图 costmap_2d1.平滑减速功能包 yocs_velocity_smoother.
2020-05-14 15:04:57 4309
原创 gazebo 模拟仿真(1)
1. 创建urdf 机器人描述文件 对于ros或gazebo都是通过urdf 文件来描述机器人模型的,该文件的主要功能就是描述机器人各个部分(link)与关节(joint)的属性。link 机器人零部件属性link属性 机器人各个部分,例如,车身, 轮子,其包含如下属性 visual 这表示着我们是否可以在rviz或gazebo图形界面上观察到这个link,没有的话就观察不到,主要包含geometry标签 ...
2020-05-11 15:51:53 1291
原创 github 使用总结
github 常用指令:1.配置用户名和邮箱地址git config --global user.name "chenyf"git config --global user.email "chenyf@eaibot.com"2.克隆(下载)项目工程git clone http://192.168.111.201:8080/ROBOT_FIRMWARE/LEO.git3....
2020-04-28 10:39:35 185
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人