cmake实现多文件编译
Cmake文件结构123456789101112131415161718192021root@LAPTOP-49LFJ4NT:/root/cmake# tree.├── build└── src ├── CMakeLists.txt ├── Queue │ ├── CMakeLists.txt │ └── src │ ├── QUE.cpp │ ├── QUE.h │ └── main.cpp └── canalyst_test ├── CMakeLists.txt ├── lib │ └── libcontrolcan.so └── src ├── Tongyi_Driver.cpp ├── Tongyi_Driver.h ├── controlcan.cpp ├── controlcan.h └── main.cpp
sh ...
wsl使用串口
参考网址:Win10的Linux子系统Ubuntu使用串口_晨之清风-CSDN博客
WSL | 上的 USB 到串行适配器科学计算|科学视讯 (scivision.dev)
由于本人技术原因usb转串行没成功
Linux下串口收发通信_颜言研的博客-CSDN博客_linux串口通信
minicom使用安装配置12345678# 安装minicomsudo apt-get install minicom# 设置串口,主要该串口号ttyS1,以及将硬件流改为nosudo minicom -s# 保存Save setup as df1# 运行sudo minicom
命令12345Ctrl+A E:回显Ctrl+A W:当显示的内容超过一行之后自动换行Ctrl+A C:清屏Ctrl+A O:打开配置选项Ctrl+A X:退出minicom
c语言123456789101112131415161718192021222324252627// usart.h#ifndef _USART_H#define _USART_H //串口相关的头文件 #include<stdio.h ...
查看程序使用情况
参考网址Linux下查看某个进程所占用的资源_mayue_web的博客-CSDN博客_查看进程占用资源
shell例程12345678910111213141516#!/bin/bash# 更改这里的./Tungray运行程序,用于查看pidps -aux | grep ./Tungray > pid# 读取第一行,并解析pidpid=`awk 'NR==1{print $2}' pid`cat /proc/$pid/status > pid# 读取第一行,并解析pidstate=`awk 'NR==2{print $2}' pid`echo "state:"$state`awk 'NR==2{print $3}' pid`VmSize=`awk 'NR==12{print $2}' pid`echo "VmSize:"$VmSize`awk 'NR==12{ ...
easy_logger
参考网址:一款超轻量级(ROM<1.6K, RAM<0.3k)、高性能的 C/C++ 日志库
移植到linuxpeitianyu/easy_log (github.com)
注意修改log文件保存路径,在easy_log/include/elog_file_cfg.h中
一款更加轻量化的log工具,可以自行更改函数,实现功能
peitianyu/light_log (github.com)
1234567891011121314151617181920212223242526272829303132333435363738394041424344#include <fstream>#include <stdarg.h>class Logger{public: struct Options { std::string file_name = "log.txt"; };public: Logger(const Options &options): m_op ...
Mk60+shell_letter
参考网址:letter-shell | 一个功能强大的嵌入式shell_Mculover666的博客(嵌入式)-CSDN博客_letter shell
实例12345678910111213141516171819202122232425262728293031323334353637383940414243//shell_port.c/** * @brief shell移植到STM32L431时的接口实现 * @author mculover666 * @date 2020/03/27 */#include "shell.h"#include "uart.h"#include "shell_port.h"/* 1. 创建shell对象,开辟shell缓冲区 */Shell shell;char shell_buffer[512];/* 2. 自己实现shell写函数 *///shell写函数原型:typedef void (*shellWrite)(const char);/** * @brief 用户shell写 * * ...
amcl原理分析
参考网址:slam 学习之 AMCL 概念与原理分析_学之知之的博客-CSDN博客_amcl定位原理
机器人定位技术:AMCL的参数你真的会调了吗?(一) - 知乎 (zhihu.com)
改写amcl
ROS导航包源码学习2 — 定位 - 知乎 (zhihu.com)
概念算法
运动模型(里程计模型)
测量模型(波束模型与似然域模型)
采样算法(KLD采样)
蒙特卡洛算法
自适应蒙特卡洛算法
运动模型关于速度模型与里程计模型 ,主要采取采样模型
概率机器人
这里主要使用里程计模型
测量模型波束模型主要调整六个参数: , , , , ( 的方差)和λ(动态障碍物的影响力度)
似然域模型主要调整两个参数 。
KLD采样目的:将估计的概率分布转化为真实的概率分布。
amcl理解与拓展
amcl简单使用
参考网址:AMCL介绍及参数说明_走过_冬天的博客-CSDN博客_amcl参数配置
深入AMCL(三):AMCL手动初始化后如何自动定位_yuanguobin01的博客-CSDN博客
配置amcl_demo.launch
1234567891011121314151617181920212223242526<launch> <!-- r2000驱动 --> <include file="$(find pepperl_fuchs_r2000)/launch/gui_example.launch"/> <!-- Map server --> <!-- 发布map.yaml,其中包含了pgm文件位置--> <arg name="map_file" default="$(find run)/map/mymap.yaml"/> <node name="map_server" pkg="map_ ...
boost安装与测试
参考网址:Ubuntu下安装boost库_上善若水-CSDN博客
在Ubuntu上安装boost库_一点一滴-CSDN博客
Ubuntu20.04安装boost库_vanyongqi-CSDN博客_ubuntu 安装boost
安装apt安装1sudo apt-get install libboost-dev
build安装
下载boost库:Boost C++ Libraries
解压: tar -xzvf boost_1_xx_xx.tar.gz
进入解压目录,执行脚本,sudo ./bootstrap.sh
安装, sudo ./b2 install
测试环境变量
123456sudo gedit /etc/profile #在文件末尾添加export CPLUS_INCLUDE_PATH=/usr/local/include/boost:$CPLUS_INCLUDE_PATHexport LIBRARY_PATH=/usr/local/lib:$LIBRARY_PATHexport LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PAT ...
boost_thread
参考网址:了解boost
C++ Boost库分类总结(个人收藏) - 知乎 (zhihu.com)
boost教程
Highscore - Boost C++ 库 - 多线程
boost多线程同步简单使用12345678910111213141516171819202122232425262728#include <boost/thread.hpp> #include <iostream> void wait(int seconds) { boost::this_thread::sleep(boost::posix_time::seconds(seconds)); } boost::mutex mutex; void thread() { for (int i = 0; i < 5; ++i) { wait(1); mutex.lock(); std::cout << "Thread " << boost::this_thread::g ...
strcpy重写
参考网址:什么?面试官让我写strcpy()函数_m0_57304511的博客-CSDN博客
strpy1234567891011121314151617181920212223#include<stdio.h>#include<assert.h>char * my_strcpy(char* dest, const char* src)//const可以防止源字符串被改变{ // 使用断言避免传入空指针 assert( dest && src ); char* ret = dest; // 按地址复制,直到为空 while(*dest++ = *src++) { ; } return ret;}int main(){ char arr1[20] = { 0 }; char arr2[] = "hello"; printf("%s\n", my_strcpy(arr1, arr2)); return 0;}
me ...