自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(195)
  • 资源 (9)
  • 收藏
  • 关注

原创 ubuntu新建ap热点并分享

ubuntu wifi 热点

2024-02-26 15:22:32 450

原创 cmake中调用脚本

当使用别人的库的时候,编译的时候有时候需要调用脚本。比如第三方库通过执行脚本来编译的,然后就需要在cmake中调用这个脚本。主要使用的脚本为cmake add_custom_target和cmake add_custom_command。

2024-02-01 10:16:50 400

原创 c语言多线程队列实现

为了用c语言实现队列进行多线程通信,用于实现一个状态机。下面是实现过程。

2023-12-14 10:36:07 310

原创 ROS之交叉编译配置(树莓派)

1、环境编译平台:x86_64 ubuntu 16.04目标平台:arm ubuntu 16.04(树莓派3b)ROS版本:ROS kinetic for amd64CPU架构:编译环境64位和运行环境32位2在PC上安装arm的编译工具链https://www.cnblogs.com/sherlock-lin/p/15916143.htmlhttps://blog.csdn.net/RobotLife/article/details/105899602...

2022-03-03 20:37:45 2330 4

原创 makefile交叉编译helloworld

makefile交叉编译helloworld主要需要修改的是在本地编译helloworld基础上修改本地工具链为交叉编译工具链。1.本地使用makefile编译helloworld如图为工程目录结构.├── hello.c├── hello.h├── main.c├── Makefile├── world.c└── world.hhello.c文件#include<stdio.h>#include"hello.h"void hello(){ prin

2022-02-16 14:50:26 4723

原创 深入理解非线性二乘法求解图优化

1.求解图优化问题总体流程实际情况下求解图优化的流程如下:(1)选择你想要的图里的节点与边的类型,确定它们的参数化形式;(2)往图里加入实际的节点和边;(3)选择初值,开始迭代;(4)每一步迭代中,计算对应于当前估计值的雅可比矩阵和海塞矩阵;(5)求解稀疏线性方程????????Δ????=−????????,得到梯度方向;(6)继续用GN或LM进行迭代。如果迭代结束,返回优化值。2.图优化的目标函数2.1图优化求解slam思路SLAM的核心是根据已有的观测数据,计算机器人的运动轨迹和地

2022-01-11 18:36:17 495

原创 cartographer概率栅格地图更新过程

1.占据栅格地图理论推导对于一个点,它要么有(Occupied状态,下面用1来表示)障碍物,要么没有(Free状态,下面用0来表示)障碍物。在占据栅格地图中,对于一个点,我们用p(s=0)p(s=0)p(s=0)来表示它是Free状态的概率,用p(s=1)p(s=1)p(s=1)来表示它是Occupied状态的概率,当然两者的和为1。两个值太多了,我们引入两者的比值来作为点的状态。Odd(s)=p(s=1)p(s=0)(1)Odd(s)=\frac{p(s=1)}{p(s=0)} \tag1Odd(s

2021-12-25 11:23:31 3651 2

原创 全覆盖规划算法Coverage Path Planning开源代码ipa_coverage_planning编译

论文Indoor_Coverage_Path_Planning_Survey_Implementation_Analysis代码地址https://github.com/ipa320/ipa_coverage_planningcatkin_make#中间会有缺少ros 模块包根据编译出错安装包sudo apt-get install ros-版本-报错后面提示缺少包sudo apt-get install ros-kinetic-opengmsudo apt-get install ros-k

2021-11-26 17:08:52 6101 24

原创 足式机器人探索(3)-Mini Cheetah学习参考资料

1.论文原版论文Dynamic Locomotion in the MIT Cheetah 3 Through Convex Model-Predictive Control2.网上资料及博客https://www.zhihu.com/column/c_1090923972006240256https://zhuanlan.zhihu.com/p/190044338

2021-09-16 21:23:01 598

原创 足式机器人探索(2)-Mini Cheetah仿真运行

1.启动机器狗首先到Cheetah-Software/build/ 目录下执行./sim/sim选择mini cheetah,simulator,点击start,就会弹出一个图形界面,如下图这只小狗是睡着的,没有站起来怎么让小狗站起来呢?2.让小狗站起来(1)设置参数在中间的参数列表中,把cheater_mode设置为1,把control_mode设置为1,use_rc设置为0(2)启动控制器执行./user/MIT_Controll/mit_ctrl m s发现小狗站起来了

2021-09-15 21:29:32 793

原创 足式机器人探索(1)-开源代码Mini Cheetah编译

最近比较火的小米机器狗开卖了,搞机器人的多么希望有一条自己的机器狗啊!机器狗铁蛋,能走能遛能空翻机器狗买不到,仿真总还是能跑吧。那么就来跑跑控制机器狗跑的算法吧。听说机器狗也有开源的算法,大家都用MIT Mini Cheetah在开发,那么就来一探究竟吧。1.下载代码地址https://github.com/mit-biomimetics/Cheetah-Software#readme什么都不安装,编译mkdir buildcd buildcmake .../../scripts/mak

2021-08-24 22:13:10 1606 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 1833 3

原创 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 767

原创 cartographer算法流程

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

2021-07-15 10:19:08 1068

原创 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 412

原创 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 676 1

原创 在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 8304

原创 (六)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 850

原创 (五)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 1728 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 1559

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

正点原子跑马灯库函数版本程序各个文件的作用库函数: 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 458 2

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

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

2021-04-12 14:43:45 1779 1

原创 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 3378

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

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

2021-03-25 09:28:32 397

原创 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 2693

原创 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 1058

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

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

2021-01-08 16:58:10 1016

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

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

2020-12-29 10:37:33 1040

原创 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 891

原创 获取系统时间戳的方法(使用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 5020

原创 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 1994 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 3515 4

原创 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 537

原创 linux系统调试笔记

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

2020-10-23 10:21:03 190

原创 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 624

原创 安装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 1357

原创 用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 3029 5

原创 深度学习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 1038

原创 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 6719

原创 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 2388

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-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

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

双目标定图像数据集

打印的标定板每个格子大小为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

cmake自定义模块使用示例

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

2018-11-08

ros的urdf机器人模型

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

2018-07-20

由旋转矩阵计算欧拉角

2017-02-16

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

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

2017-01-17

空空如也

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

TA关注的人

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