自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(184)
  • 资源 (9)
  • 论坛 (2)
  • 收藏
  • 关注

原创 cartographer跑gazebo仿真包

cartograph的输入数据为imu,odom,laser,可选(tf, tf_static)对于一个含有以上数据的包,如何改对应的参数跑起来呢?首先启动的是demo_backpack_2d.launch,在其中又启动了backpack_2d.launch1.打开仿真录一个包rosbag record -O laser.bag /imu /odom /scan /tf /tf_static2.激光数据激光数据改backpack_2d.launch文件修改这一句 是把 /echoes 的话

2021-07-27 11:52:34 16

原创 FreeRTOS 在Linux下仿真启动gdb调试

FreeRTOS 在Linux系统下启动gdb会报下面这个错误The inferior stopped because it received a signal from the operating system.Signal name :SIGUSR1Signal meaning :User defined signal 1要想能在linux下使用gdb调试,需要看官方文档https://www.freertos.org/FreeRTOS-simulator-for-Linux.html#g

2021-07-23 18:07:29 3

原创 cartographer算法流程

cartographer算法流程首先输入是激光,imu,odom数据,总体分为前端和后端前端定位和建图流程如下总的定位和建图从GlobalTrajectoryBuilder::AddHorizontalLaserFan开始运行局部定位和建图从LocalTrajectoryBuilder::AddHorizontalLaserFan开始。1.局部定位和建图主要函数是ScanMatch在ScanMatch主要流程(1)pose_prediction作为初始位姿给real_time_scm进行解算

2021-07-15 10:19:08 36

原创 mrpt-slam编译运行

环境ubuntu16.04ros-kinetic(1)下载地址https://github.com/mrpt-ros-pkg/mrpt_slam(2)下载后catkin_make有错误提示无mrpt_bridgemrpt_bridgeConfig.cmake下载地址https://github.com/mrpt-ros-pkg/mrpt_bridge下载好了放到工程目录下编译提示无marker_msgsmarker_msgsConfig.cmakehttps://github.c

2021-07-14 21:22:51 23

原创 cartographer编译运行

下载了一个详细注释版本https://github.com/xiangli0608/cartographer_detailed_comments_ws直接编译不行然后按照下面步骤安装参考https://blog.csdn.net/x_r_su/article/details/52927564(1)安装依赖sudo apt-get updatesudo apt-get install -y \ cmake \ g++ \ git \ google-mock \

2021-07-14 15:18:28 25

原创 在Linux中将文件编码转换为UTF-8

参考https://blog.csdn.net/sxf_123456/article/details/78895357转换c文件encodingc.sh#!/bin/bash### 将 values_here 替换为输入编码FROM_ENCODING="GB18030"### 输出编码 (UTF-8)TO_ENCODING="UTF-8"### 转换命令CONVERT=" iconv -f $FROM_ENCODING -t $TO_ENCODING"### 使用循环转换多个文件for

2021-05-26 18:02:12 105

原创 (六)ubuntu下用cmake新建freertos的跑马灯工程

本文实现在ubuntu下用cmake新建freertos的demo工程,并交叉编译烧录到正点原子STM32F103RCTb精英开发板上。由于对freertos不熟,所以先用stm32cubemx新建个用makefile编译的包含freertos的demo工程先在板子上跑起来。然后再把工程改写为cmake工程编译。平台:ubuntu16.04LTS芯片:STM32F103RCTb1.在stm32cubemx上新建freertos的demo工程首先demo工程实现的功能是在一个freertos线程中循

2021-04-15 18:05:58 60

原创 (五)ubuntu下一键编译烧录调试stm32程序

在ubuntu下用makefile或者cmake编译好stm32程序后,需要烧录到stm32板子上,不管只直接用jlink的驱动程序烧录还是用openocd烧录,命令都比较多,怎么方便烧录呢?用集成开发环境VSCode配置好脚本可以实现一键调试和烧录。1.ubuntu下VSCode + CMake 编译调试下面这个博客写的很清晰,强烈推荐https://blog.csdn.net/huangyifei_1111/article/details/108850986参考VSCode+stm32cub

2021-04-14 17:34:04 160 1

原创 (四)linux下用cmake交叉编译STM32跑马灯程序

首先参考的是这篇文章使用CMake和VSCode开发STM32在环境都安装好以后,在github 上下载cmake工程模板,下载命令为git clone https://github.com/rxdu/stm32_cmake.git由于我的开发板和github工程不一样,需要修改相应的文件。平台如下平台:ubuntu16.04LTS芯片:STM32F103RCTb由于hal第三方库是通用的,不需要修改。主要需要修改的是平台相关的文件。平台相关文件有(1)startup_stm32f103xe

2021-04-14 11:40:58 150

原创 正点原子跑马灯库函数版本程序各个文件的作用

正点原子跑马灯库函数版本程序各个文件的作用库函数: startup_stm32f10x_hd.s core_cm3.c  FWLIB:misc.c、stm32f10x_gpio.c、stm32f10x_rcc.c(该文件涉及时钟)这三个文件属于不可缺少文件  HARDWARE:led.c(led初始化相关代码)  关于 startup_stm32f10x_hd.s 这个文件说明主要功能如下:初始化堆栈指针 SP初始化程序计数器指针 PC设置堆、栈的大小设置中断向量表的入口地址配置外部

2021-04-13 10:24:36 100 2

原创 (三)ubuntu16下用makefile交叉编译STM32跑马灯led程序并烧录

stm32开发通常在windows下用keil进行开发。但是在keil中编译一个简单的点亮led的程序,新建工程的过程感觉都比较复杂。集成开发环境只需要告诉芯片类型就能自动指定交叉编译工具,而且不需要写makefile...

2021-04-12 14:43:45 145

原创 gitlab服务器ubuntu16环境下搭建

1.ubuntu16安装gitlab首先参考在ubuntu16上搭建gitlab(实测可用)2.管理员账号初始化完成后想登录http://127.0.0.1/ 需要账号和密码登录,注册一个后登录报Your account is pending approval from your GitLab administrator and hence blocked错误,需要管理员账号初始化.账号初始化参考下面博客https://www.bbsmax.com/A/amd0eM9kzg/初始化好后输入

2021-03-26 20:39:47 1002

原创 (二)stm32不同系统如何调试

在单片机上开发代码可以选择操作系统和不选择操作系统。不选择操作系统一般只能通过将循环切片,就是定义这个循环运行多少ms来实现看起来像多线程的东西,逻辑上看起来是分开执行的。选择实时操作系统一般有rtthread和freertos。选择在硬件资源宽裕的情况下用RT-Thread开发应用是比较方便的。https://blog.csdn.net/u013184273/article/details/1038057331.rtthread下如何调试打印信息一般使用rtthread的rk_kprintf

2021-03-25 09:28:32 88

原创 cube-slam详解

问题:使用深度学习的目标检测得到个框,怎么将这些框用上并集成到slam中做物体级别的slam?卡耐基梅隆大学的Shichao Yang, Sebastian Scherer,在论文CubeSLAM: Monocular 3D Object SLAM中给出了答案。并且结合orbslam的代码已经开源。地址:https://github.com/shichaoy/cube slam1.总体贡献及思路(1)由图像平面的框得到3d世界里的立方体。(2)建立物体级别的整套观测误差函数,并放入ORBSLAM2

2021-01-19 15:30:19 515

原创 c/c++/linux精确定时器

https://blog.csdn.net/qq_18059143/article/details/90182304?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_baidulandingword-3&spm=1001.2101.3001.4242https://www.cnblogs.com/wanglijun/p/8556011.htmllinux c定时器https://www.cnblogs.com/elesos/p/

2021-01-13 21:08:30 530

原创 slam结合深度学习相关进展汇总笔记

各种汇总https://github.com/Ewenwan/MVisionorb简单结合检测https://github.com/Supersharker/ORBSLAM2_With_YOLOV3

2021-01-08 16:58:10 372

原创 orbslam2中获取扩展树和本质图

orbslam2中使用扩展树和本质图的目的之一是减小优化函数的计算量。首先要理解共视图和扩展树和本质图的定义1.共视图如果两个关键帧的共视地图点超过15个点,就增加一条边,视为共视。所有的这些边连接在一起形成了共视图。如图12.扩展树对于所有的关键帧,每个关键帧都能够得到和当前关键帧共视程度最大的关键帧。将当前关键帧和共视程度最大的关键帧连接起来组成了扩展树。如图3.本质图本质图的定义为:1.扩展树的连接关系2.共视关系好的(>100)连接关系3. 形成闭环的连接关系,闭环后地

2020-12-29 10:37:33 337

原创 bundle adjustment(光速平差法)残差和雅克比详细推导

​ba残差和雅克比推导设输入位姿为世界坐标系在当前cam坐标系下的位姿,表示为TwcT^c_wTwc​。输入的点为当前点在世界坐标系下的位置,表示为PwP^wPw,点在cam坐标系下表示为PcP^cPc得到点在cam坐标系下的位姿Pc=Rwc∗Pw+twc (1)P^c=R^c_w*P^w+t^c_w \quad (1)Pc=Rwc​∗Pw+twc​ (1)ba的残差雅克比求导需要对于位置求导,链式法则中这一项求导是关键设ba的残差为e=u−1sKexp(ς)Pwe = u-\frac{1

2020-12-25 10:49:27 274

原创 获取系统时间戳的方法(使用c,c++,ros)

使用c++的system_clock::now()获取时间戳#include <chrono>inline uint64_t now_in_us_canbus() { return std::chrono::duration_cast<std::chrono::microseconds> (std::chrono::system_clock::now().time_since_epoch()).count();}设

2020-12-23 16:42:52 1743

原创 emplace_back 导致的段错误

主要遇到的问题是,ubuntu16自带的编译器编译运行没有问题, vector<cv::Point2f> cur_un_pts; cur_un_pts.emplace_back(cv::Point2f(b.x() / b.z(), b.y() / b.z()));换种交叉编译工具联使用以上这种方式插入会出现段错误如果用push_back函数就没有问题cur_un_pts.push_back(cv::Point2f(b.x() / b.z(), b.y() / b.z()));原因

2020-11-19 19:16:14 270 1

原创 eigen交叉编译段错误例子及解决

https://github.com/rubengooj/pl-slam/commit/2a62192a5fc0e2071f6976379c474b7ebfc90e33https://blog.csdn.net/HUAJUN998/article/details/54311561#commentBoxhttps://www.cnblogs.com/flyinggod/archive/2004/01/13/13433452.htmlhttps://blog.csdn.net/wojiushixiangs

2020-11-17 20:27:55 994 2

原创 win10下安装python和画图工具并读取excel文件画图

1.首先在win10下安装python进入官网https://www.python.org/downloads/release/python-373/下载对应版本的python,名字为Windows x86-64 executable installer下载好后双击运行点把环境变量加入到路径中的勾勾。安装就能成功(1)找到命令提示符双击进入,输入python --version查看python版本出现如下图说明正确2.安装python画图需要依赖的库安装pip在cmd中输入python -

2020-10-25 21:47:15 202

原创 linux系统调试笔记

1.根目录满了解决方法(1)查看系统内存占用du -sh /*发送有异常的东西如log删除掉(2)查看程序实际占用的内存先top或ps 查看进程pid然后用grep VmRSS /proc/[pidnum]/status查看实际占用

2020-10-23 10:21:03 85

原创 mnn移植tf代码

参考https://www.yuque.com/mnn/cn/usageMNN当前支持Tensorflow(Lite)、Caffe和ONNX的模型转换问题:不是用Tensorflow(Lite),只用Tensorflow的模型能行不思路1.将tf模型转为mnn的模型2.交叉编译mnn3.调用代码用mnn

2020-08-05 19:57:52 304

原创 安装tensorflow的c++接口(手动编译tensorflow)

参考https://blog.csdn.net/seniusen/article/details/82972335https://www.cnblogs.com/seniusen/p/9756481.html安装tensorflow的c++接口需要从源码重新编译tensorflow,最重要的参考来自于官方文档。https://blog.csdn.net/q199502092010/article/details/90289998源码安装tf的时候,会用到Bazel,版本不对应,后面会引起好多麻烦。

2020-07-22 08:42:56 799

原创 用c++加载tensorflow 模型

参考https://blog.csdn.net/seniusen/article/details/82972335https://www.cnblogs.com/seniusen/p/9756481.html安装tensorflow的c++接口需要从源码重新编译tensorflow,最重要的参考来自于官方文档。https://blog.csdn.net/q199502092010/article/details/90289998...

2020-07-21 15:57:02 1402 4

原创 深度学习hf-net环境配置

深度学习hf-net环境配置如下1.Python 3.6,推荐用虚拟环境2.TensorFlow 1.123.PyTorch 0.4.1 用于跑SuperPoint1.安装pipsudo apt-get install aptitudesudo apt install python-pippip install --upgrade pip首先更改pip源永久修改:linux:修改 ~/.pip/pip.conf (没有就创建一个), 内容如下:[global]index-url =

2020-07-17 13:50:22 434

原创 mqtt发送cjson数据并解析

本文实现mqtt发送端发送cjson数据,接受端接收数据并使用cjson解析。主要功能是发送端发送位姿,接收端接收位姿话题并解析使用1.发送端程序CMakeLists.txtcmake_minimum_required(VERSION 2.8)project(mqttdemopub)add_executable(${PROJECT_NAME} main.cpp cJSON.c cJSON.h)target_link_libraries(${PROJECT_NAME} mosquitto)

2020-07-07 11:44:23 2559

原创 cjson转char*(解析位姿)

本文实现c类型->cjson姿态 cjson->c类型,功能为解析位姿//#include <stdio.h>//#include <stdlib.h>//#include "cJSON.h"//int main (int argc, const char * argv[]) {// //create a data// cJSON *root,*pose;// root=cJSON_CreateObject();// //pose

2020-07-07 10:20:49 751

原创 kalibr编译

1.先下载代码mkdir -p ~/kalibr_workspace/src cd ~/kalibr_workspace git clone https://github.com/ros/catkin.git2.要安装catkin工具 sudo apt-get install python-catkin-tools3.安装python-numpysudo apt-get install --reinstall python-numpy4.开始编译catkin build -DCMAK

2020-05-23 14:14:40 825

原创 刚体运动位姿变换推导

下面公式中上标表示为基于某系,下标表示当前系。设k为第k时刻,R为旋转3*3,P为平移3*1,T表示旋转和平移。设k时刻刚体在世界坐标系下的位姿(包括旋转和平移)表示为TkwT^w_{k}Tkw​,刚体运动后k+1时刻位姿态表示为$T^w_{k+1} $如图位姿变换推导Tk+1w=Tkw∗Tk+1kT^w_{k+1} = T^w_{k}*T^{k}_{k+1} \\Tk+1w​=Tkw...

2020-04-26 16:42:21 464

原创 convert bitset descriptor -> cv::Mat

bitset转opencv cv::Mat 注意(1)Mat 的列为32列,类型为uchar(2)BRIEF::bitset 的长度为256(3)每8个构成一个ucharvector<BRIEF::bitset> temp_brief_descriptors;extractor(image, keypoints, temp_brief_descriptors);brief...

2020-03-05 13:58:54 390 1

原创 CNN对slam的一些改进

参考https://blog.csdn.net/wishchin/article/details/100634779cnn对slam的改进1.视觉检测和描述中的CNN方法主要是提升显著点/关键点的检测性能、以及提升关键点的局部描述子性能。为了更好的进行图像匹配。(1)提升显著点/关键点的检测性能主要论文SuperPoint(2)提升关键点的局部描述子性能论文LIFT特征是一种使用C...

2020-03-02 17:10:24 1085

原创 视觉重定位相关论文阅读(一)

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...

2020-02-08 09:30:09 953

原创 摄像头视场角计算

视场角计算方法方法1:拍物体参考https://wenku.baidu.com/view/411a838aaa00b52acec7ca27.html被测物体长为A宽为B,图像刚好覆盖被测量物体。水平视场角度θh=2atan(B/2l)\theta_h=2atan(B/2l)θh​=2atan(B/2l)垂直视场角度θv=2atan(A/2l)\theta_v=2atan(A/2l)...

2019-12-20 14:58:51 7073 1

原创 视觉标记定位aruco使用

本文的目的是实现生成一张marker broad图片,告诉标记检测程序tag在真实世界中的实际大小。检测成功后得到marker的id,四个角点坐标,marker到相机的平移和旋转。1.下载安装参考安装参考https://blog.csdn.net/weixin_43053387/article/details/84952557aruco下载地址2.生成单个marker图片目的是生成一张...

2019-10-26 11:05:51 4547 4

原创 gazebo的bumper使用

本文解决gazebo的bumper碰撞的时候传感器数据为空的问题。注意:只有把contact中的collision名字取对了才能有碰撞数据!使用步骤:(1)在.urdf.xacro文件中加入link和joint,并且加上碰撞,如给collision命名base_collision<link name="bumper_link"> <inertial> ...

2019-10-09 09:53:37 1174 1

原创 对极几何获取两幅图像旋转的方法(单应矩阵,本质矩阵)

#include<time.h>#include<iostream>#include <opencv2/opencv.hpp>using namespace cv;using namespace std;void generate3DPointCloud(std::vector<cv::Point3f>& points){ ...

2019-09-05 14:02:01 745

原创 获得世界坐标系中3d点在图像上的投影坐标并显示

1.世界坐标系转换为摄像头坐标系无旋转和平移(初始的时候摄像头坐标系和世界坐标系重合)如果初始的时候摄像头坐标系和世界坐标系重合,要获得世界坐标中3d点在任意位姿拍到的图像上的投影坐标并显示,只有考虑位姿变换。如下程序所示:#include <ros/ros.h>#include <visualization_msgs/Marker.h>#include<t...

2019-08-27 10:36:53 879

原创 opencv SolvePnPRansac使用

参考https://blog.csdn.net/xuelangwin/article/details/80847337下面代码验证将坐标点转到归一化平面使用SolvePnPRansac解出来的位置是否正确。#include<time.h> #include <unistd.h>#include<iostream>#include<eigen3/...

2019-08-21 16:22:01 2671

ros的urdf机器人模型

ros机器人小车,加载urdf示例程序 在机器人操作系统(ROS)中,经常需要模拟机器人运动,那么首先需要新建一个机器人。 创建简单的机器人模型的步骤如下: (1)创建硬件描述包 (2)建立urdf文件 (3)建立launch命令文件 (4)效果演示

2018-07-20

cmake自定义模块使用示例

cmake中经常使用find_package寻找模块,使用起来非常方便.find_package的原理是什么呢?如何自己写个模块提供给别人使用?如果别人希望用find_package的形式使用你的模块中的库,我该如何用cmake写这个库呢? 这个例子能够弄清楚以上的问题. 示例中的myapp程序通过find_package调用mylib中的库

2018-11-08

双目标定图像数据集

打印的标定板每个格子大小为4cm*4cm. 数据集数量为40张. 标定后的T如下 T: !!opencv-matrix rows: 3 cols: 1 dt: d data: [ -6.0660435539064854e-02, -1.2209630833796844e-04, 9.8321891780593206e-04 ] ``` 两个虚拟相机的基线b=normal(T) 标定出来的基线距离为b=6.06mm 实际量出来的6.1mm 误差在1mm之内

2018-11-15

libtensorflow-cpu-linux-x86_64-2.3.0-rc2.tar.gz

libtensorflow是tensorflow编译成的c语言库,源地址wget https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow-cpu-linux-x86_64-2.3.0-rc2.tar.gz 下载太慢,方便大家下载

2020-07-22

计算机正念冥想对情绪的调节作用_理论与神经机制_陈语

正念冥想对情绪的调节作用(个人收藏)

2017-01-17

cubemxrtosled.tar.gz

linux下用cmake交叉编译基于FreeRTOS的STM32跑马灯程序 详细请参考博客https://lightsail.blog.csdn.net/article/details/115689820 https://editor.csdn.net/md/?articleId=115725414

2021-04-16

ledmakefiletest.tar.gz

ubuntu16下交叉编译STM32跑马灯led程序并烧录的demo程序 https://lightsail.blog.csdn.net/article/details/115621592 包括vscode一键烧录脚本参考博客 https://lightsail.blog.csdn.net/article/details/115703002

2021-04-13

libtensorflow-gpu-linux-x86_64-1.12.0.tar.gz

libtensorflow是tensorflow编译成的c语言库,源地址 https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow-gpu-linux-x86_64-1.12.0.tar.gz下载太慢,方便大家下载

2020-07-22

由旋转矩阵计算欧拉角

2017-02-16

沧海飞帆的留言板

发表于 2020-01-02 最后回复 2020-01-02

sprintf()函数问题

发表于 2017-05-31 最后回复 2017-06-01

空空如也

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

TA关注的人 TA的粉丝

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