自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(71)
  • 资源 (3)
  • 收藏
  • 关注

原创 STM32的芯片无法在线调试的情况分析

在stm32的开发过程中,有时会遇到"STM No Target connected"的错误提示,这说明MDK开发环境无法与目标设备进行通信,导致无法烧录程序或进行调试, 也就是Jlink无法找到芯片。

2024-03-27 16:32:08 225

原创 使用英伟达的芯片输出三路pwm波形

要注意部分英伟达的驱动比较老, 没法驱动, 特别是python相关的驱动。

2023-08-03 14:43:01 292

原创 软件I2C通信的设计要点

软件I2C通信的设计要点。

2023-06-16 17:41:09 371

原创 低功耗晶振电路设计

本文主要参考st的晶振设计指导手册:oscillator-design-guide-for-stm8af-al-s-stm32-mcus-and-mpus-stmicroelectronics.pdf以下是经典的皮尔斯晶振电路:关于晶振负载电容的计算公式:比如说:晶振的负载电容CL为15pf, 杂散电容 Cs为5pf,那么晶振的外部负载电容如下计算:选择支持fundamental mode的晶振, 而不是支持overtone modes。确定芯片支持的晶振跨导或者芯片的最大临界跨导。计算晶振的

2023-06-15 19:26:28 1546

原创 在Nvidia ORIN进行Pytorch,TorchVision,MMtracking的部署

在Orin上进行Pytorch以及Torchvision的部署, 不能够直接通过命令进行部署安装,该命令默认是使用X86的安装版本, 我们需要使用nvidia的cuda架构, 并且orin是arm架构的芯片, 所以, 应当通过英伟达官方发布的版本进行安装, 当然也可以使用源码进行pytorch编译。

2023-03-24 23:01:49 911 1

原创 如何利用image transport进行视频压缩传输

在ros下,利用image_transport进行视频压缩传输。

2022-09-30 10:18:54 1690

原创 机器人在进行激光建图,会出现激光与地图不重合的情况

激光进行栅格地图构建的时候, 激光数据与真实环境产生了错位。

2022-09-21 15:05:41 878 2

原创 在ROS平台使用扩展卡尔曼融合里程计与IMU传感器

在ros中融合机器人的里程计数据以及imu数据, 提高机器人在环境中定位的准确度。

2022-09-09 13:50:49 2066 2

原创 关于ROS中的spin和spinOnce的理解、

ros中回调函数队列

2022-08-22 22:11:36 301

原创 模板函数少见的调用方式

模板调用

2022-08-22 21:08:59 179

原创 关于c++的一些可能有用的东西

c++ 引用与delete属性

2022-07-18 15:43:00 326

原创 Linux下路由表的转发流程

路由转发

2022-06-29 11:44:45 1122

原创 在gazebo下进行机器人cartographer算法仿真,出现的异常情况

问题描述-1在gazebo下仿真cartographer建图算法的时候,出现以下TF变换异常报错:[ERROR] [1584194344.911065094]: Ignoring transform for child_frame_id “left_wheel_link” from authority “unknown_publisher”分析之后可以发现该问题主要是由于robot_state_publisher和gazebo中都发布了关于轮子的坐标变换,导致cartograoppher工作异常。

2021-12-09 10:38:59 1791 1

原创 STM32 MCU的启动过程与分散加载分析

预备知识ARM Cortex系列的MCU在复位、开机的时候, 都会从 0x00000000的内存地址上去获取向量表,用户软件也可以通过写入VTOR寄存器来修改向量表存储地址, 这个值是相当对于Flash_Base地址的偏移量, 这样就可以让程序从不同的存储位置去获取向量表, VTOR寄存器存储 向量表的基地址相对于0x000000地址偏移值。完整的向量表形式类似下图:首先0x00的地址存储的是栈指针,即MCU内核用于设置MSP寄存器的初始值, 而0x04的地址存储的是所有异常向量值的起始地址, 也

2021-11-03 22:07:39 2436

原创 Windows强制关机之后,自动修复失败,无法开机的问题解决

前言最近家人,朋友的电脑因为卡顿之后,强制关机了, 导致整台机器无法开机, 开机之后一直显示疑难解答之类的现象。 这应该是windows的通病, Linux从来没碰见过, 写下这篇文章, 帮助需要解决的朋友。解决开机之后进入疑难解答—>高级选项。选择启动设置选择带命令符的安全模式, 在命令行窗口输入bcdboot C:\Windows /l zh-cn, 之后显示引导启动创建成功。再次开机之后,会显示下述的报错,也就是某个文件在启动时候出错了。此时,按F8继续进入启动设置,

2021-09-17 23:15:28 6622 6

原创 解决ros功能包仓库出现签名验证错误的问题(An error occurred during the signature verification)

是什么问题?当我们进行ros相关的功能包的安装的时候或者在有安装ros的linux系统上进行sudo apt-get update的操作的时候, 就会出现以下报错:Get:1 http://packages.ros.org/ros/ubuntu focal InRelease [4,676 B]Hit:2 http://ports.ubuntu.com/ubuntu-ports focal InReleaseHit:3 http://ports.ubuntu.com/ubuntu-ports fo

2021-08-24 22:05:38 3481

原创 机器人基于ROS的move_base导航功能的部署(路径规划)

预备知识move_base的基本框架ROS中用于导航避障的功能包为move_base,代码链接为 https://github.com/ros-planning/navigation.git。关于导航与避障的总体配置可以参考: http://wiki.ros.org/navigation/Tutorials/RobotSetupmove_base的核心代码为 nav_core,代码链接为 https://wiki.ros.org/nav_core, 利用nav_core::BaseGlobalPl

2021-06-25 17:20:58 3559 1

原创 机器人基于ROS的move_base导航功能的部署(代价地图)

预备知识move_base的基本框架ROS中用于导航避障的功能包为move_base,代码链接为 https://github.com/ros-planning/navigation.git。关于导航与避障的总体配置可以参考: http://wiki.ros.org/navigation/Tutorials/RobotSetupmove_base的核心代码为 nav_core,代码链接为 https://wiki.ros.org/nav_core, 利用nav_core::BaseGlo

2021-06-23 22:11:31 3186 5

原创 urdf模型文件在gazebo无法显示,但是rviz显示正常

问题点很多ros gazebo仿真的初学者都会碰到一个问题, 就是编写好的urdf文件在gazebo无法显示出来, 但是在rviz中显示很正常。ps: 看到有很多人问, 就写一下,以免大家浪费时间。解决此时要注意,很有可能是你的urdf描述不详细, 比如惯性矩阵等, 在gazebo中仿真需要借助这些信息, rviz不需要,rviz只需要最最基本的外观和坐标系描述即可正常显示。...

2021-06-17 17:33:02 2770 18

原创 基于树莓派4的硬件部署cartographer建图算法

前言cartographer因为加了回环检测,以及图优化等思路, 在室内建图方面相比hector,gmapping等算法有着较好的建图效果, hector如果雷达频率高的话,也是完全可以胜任建图,但是在低特征的场合下,仍然还是要gmapping去融合里程计的效果会更为优秀一些。我最早接触cartographer是在2017年, 当时谷歌一开源,我便第一时间下载学习,当时需要的算力硬件比较苛刻,现在经过优化之后, 已经完全可以在树莓派的硬件上流畅的运行, 如今如何突发奇想, 写一下学习总结。部署需要条件

2021-06-17 17:18:35 1497

原创 rplidar激光雷达在roslaunch加载多节点的时候,传感器容易工作异常

背景rplidar激光雷达在单个节点运行时正常, 但是一旦多个节点同时作用的时候, 便会报出以下异常log[ERROR] [1623831163.990037925]: Error, operation time out. RESULT_OPERATION_TIMEOUT! [rplidarNode-2] process has died [pid 2736, exit code 255, cmd /home/ubuntu/catkin_ws/install_isolated/lib/rplidar_

2021-06-16 17:46:33 1288

原创 机器人在gazebo中使用四轮差速仿真模型时,转向不明显?

在gazebo中仿真四轮差速模型首先,直接查看以下的xacro四轮机器人描述文件。<?xml version="1.0"?><robot name="robot_walleva" xmlns:xacro="http://www.ros.org/wiki/xacro"> <material name="black"> <color rgba="0 0 0 1" /> </material> <material name="ye

2021-06-16 16:10:46 3919 1

原创 如何选择 catkin_make和catkin_make_isolated

问题在编译cartographer的代码包的时候,会被建议使用catkin_make_isolated,为何不使用catkin_make呢?原因catkin_make was the first script around to build catkin workspace and is therefore used in many tutorials. It has several down sides (requiring non-standard logic in packages to dec

2021-06-10 15:52:52 6332 4

原创 嵌入式串口发送数据,首字节容易出现乱码

问题在进行嵌入式串口发送的时候, 偶尔会出现首字节乱码的情况。解决 LL_USART_TransmitData8(PRINTF_USART, (uint8_t) c); while (!LL_USART_IsActiveFlag_TC(PRINTF_USART)){}在每次发送完数据之后, 检查串口是否发送完成,而不是检查串口数据寄存器是否为空, 特别是在循环发送的时候, 检查数据寄存器是否为空的话,很容易出现影子寄存器被覆盖的现象, 而造成乱码。...

2021-06-03 22:58:07 1059 1

原创 使用git的记录总结

前言git在分布式代码开发上,简直太方便了,特别是对于linux平台上, 随时都可以看代码, 写代码, 推送代码。记录如何将本地代码推送保存到github服务器:先确保本地端能和与github加密通信, ssh_keygen -t rsa在本地生成秘钥和公钥信息。用该命令生成秘钥以及公钥, 其将会保存在~/.ssh/下, 注意不设置保存秘钥的文件名的时候, 命令默认以id_rsa为文件名保存公钥和私钥。, 如果在生成秘钥的时候指定了文件名, 那么就需要在/etc/ssh/ssh_config的配

2021-05-26 16:25:04 60

原创 基于树莓派4安装ubuntu18.04系统

预备准备读卡器,SD卡在windows上安装ubuntu官网提供的烧写工具进行镜像烧写。链接:https://pan.baidu.com/s/1gd4XHwGDCP1E4e5F-lTl9w提取码:4rhm下载ubuntu18.04的镜像, ubuntu官方没有提供相应的镜像, 以下镜像是github上找到的。链接:https://pan.baidu.com/s/1akK3LBqQsHs7PCPCGB8mUg提取码:m5tn其实,也可以尝试自己安装ubuntu server的版本

2021-05-24 10:03:27 480

原创 基于LL库开发L0系列芯片的低功耗应用

预备stm32L0系列的低功耗有Low-power run,Sleep,Low-power sleep, Stop, Standby等5种模式, 其中standby模式最省电, 但是注意该模式会使芯片掉内存的数据, 而stop模式,只是将CPU,时钟等停止(不包括LSE,LSI时钟), ram的数据依然能被保存。低功耗模式中除了低功耗运行模式之外 Low-power modes (except for Low-power run mode) 都通过执行WFI(Wait For Interrupt)或

2021-05-21 15:59:49 1350

原创 基于MapToolbox绘制autoware的矢量图

前言Autoware根据交通矢量图进行行走,路径规划。借助游戏引擎unity以及插件https://download.csdn.net/download/walleva96/18835679, 我们可以快速实现矢量图的制作。在autoware中要想让机器动起来, 最基本的元素Lane,Roadedge不可忽略, 其中Lane实现汽车的行走路线, Roadedge限制道路的边缘。最新的矢量地图绘制标准基于Lanelet2, 该工具也已同步更新 https://github.com/autocore-a

2021-05-18 15:37:40 1778 12

原创 模拟IIC协议驱动备忘

前言由于iic协议的通信频率不是特别高, 通过软件模拟的话, 在使用开发上, 整体会更加自由与方便。更多详情,请直接参考飞利浦的iic协议手册。代码范例/** ****************************************************************************** * @file led configure * @author wallea hu * @brief *************************

2021-05-05 23:46:06 159

原创 基于ll库,使用stm32L0系列的内部基准电压来进行ad测量

前言ADC转换器需要一个供电电压Vdda以及需要接入一个稳定的参考电压(Vref), 该电压作为adc转换器的上限量程, 必须稳定才能保证测得到的数字量是比较准确的。在L0系列的14引脚的mcu中, Vdda的引脚会与Vdd连接到一起。在64引脚以下的mcu中, Vdda与Vref将会链接到一起。在64引脚及以上的mcu中, Vdda以及Vref才会独立分开。在stm32中L0系列的芯片,内置了稳压调节器( ADC voltage regulator),在使能ADCAL校准以及ADC模块的时候

2021-04-28 14:21:00 2665

原创 通过LL库初始化STM32的硬件IIC

前言talk is cheap, show me the code, 直接砍初始化代码, 以及读写函数吧。void Configure_I2Cx_Master(I2C_TypeDef *I2Cx){ /* (1) Enables GPIO clock and configures the I2C3 pins **********************/ /* (SCL on PC.0, SDA on PC.1) *****************

2021-04-20 22:48:18 3406 6

原创 在linux下对桌面图形界面进行管理

前言关于linux相关的知识其实比较好的学习网站,更多的就是linux官网。1. arch的wiki网站: https://wiki.archlinux.org/index.php/Xinit_(简体中文)2. ubuntu的wiki网站: https://wiki.ubuntu.com/CustomXSession?_ga=2.35195881.998869739.1618487423-1134072113.16178487903. 介绍xorg很好的一篇文章:https://wiki.arc

2021-04-15 21:48:42 739

原创 在中断中使用printf函数导致中断异常

Q: 中断中使用printf函数导致中断异常A: printf函数是不可重入函数,包含了全局变量的使用以及大量循环的使用, 而嵌入式中的触发中断执行的优先级很高, 会随时触发和打断现有代码运行顺序, 那么加载不可重入函数,会导致中断函数异常,Q:如何在stm32中使用printf函数打印串口信息A:重新编写arm库中的fputs函数(该函数会被printf调用。),使其能够通过串口输出,...

2021-04-12 10:23:07 3162

原创 Boost库使用记录

问题Q: 通过cmake使用boost库的时候,报了错误如下: CMake Warning (dev) at /usr/local/lib/cmake/Boost-1.74.0/BoostConfig.cmake:240 (if): Policy CMP0057 is not set: Support new IN_LIST if() operator. Run "cmake --help-policy CMP0057" for policy details. Use the cmak

2021-04-08 16:28:58 599 2

原创 AltiumDesigner的常用设计总结

基础概念常见快捷键常用设计技巧

2021-04-05 23:34:16 3187

原创 同时安装SolidWorks与altium,导致altium无法正确打开工程

Q: 在台式机中,同时安装了SolidWorks与alitum软件, 导致altium无法正确打开pcb工程, 转而变成通过SolidWorks打开。A: 最根本的解决方法就是去注册表里面修改,出现问题都是因为注册表里的\HKEY_CLASSES_ROOT\AltiumPCBProject\shell\Open\command下会多个“command"的数据,把这一栏删掉就可以了, 即可解决软件跳转问题。Altium PCB Library,Altium PCB Document,Altium Proje

2021-03-25 10:03:46 2659 5

原创 STM32之通过isp串口烧写的原理过程

预备stm32通过boot方式的修改,可以支持三种启动方式, 其他两种比较容易理解, 本文说说通过设置boot引脚来实现串口烧写的基本过程。过程通过boot引脚选择从系统存储器启动,这种模式启动的程序功能是由厂家设置的。一般来说,这种启动方式用的比较少。系统存储器是芯片内部一块特定的区域,STM32在出厂时,在这个区域内部预置了一段BootLoader,也就是我们常说的ISP程序,这是一块ROM,出厂后无法修改。一般来说,我们选用这种启动模式时,是为了从串口下载程序。厂家提供的BootLoade

2021-03-23 13:55:03 5824

原创 vim配置之cscope与ctag

预备cscope 是 ctag的增强版插件。安装通过apt-get install cscope进行安装,或者在~/vim的文件夹下创建plugin文件夹放置cscope_maps.vim配置在.vimrc中的常用配置。"通过cscope -Rbq产生代码的数据库文件, 通过该选项指定。cs add cscope.out "设置cscope显示的时候,清除缓存内容。set cscopequickfix=s-,c-,d-,i-,t-,e- ""使用ctag插件中的快捷键,比如 ctrl+

2021-03-22 11:28:25 480

原创 netstat命令使用详解

预备知识:什么是UNIX域套接字Unix域协议并不是一个实际的协议族,而是在单个主机上执行客户/服务通信的一种方式,是进程间通信(IPC)的一种方式。IP协议栈通过IP地址和端口号来标识客户服务器,UNIX域的协议栈则通过文件系统中的文件路径名来标识客户机和服务器的协议地址, 它提供了两类套接字:字节流套接字(STREAM, 类似TCP)和数据报套接字(DGRAM,类似UDP),UNIX域数据报服务是可靠的,不会丢失消息,也不会传递出错。比如,syslog中的消息服务器则通过**/dev/log文件名*

2021-03-03 11:32:12 5607

原创 CMAKE MEMO

cmake 易错点在funciton中定义的变量, 比如通过set 的变量是局部作用域。cmake_parse_argument 命令的基本使用形式cmake_parse_arguments(<prefix> <options> <one_value_keywords> <multi_value_keywords> <args>...)prefix 的值将会成为最终变量名的前缀, 如下代码将会得到PROJECT_INCLUDE_DIR

2021-02-21 23:49:24 241

MapToolbox-master.zip

autoware在unity下的矢量图制作工具。

2021-05-18

keil软硬件仿真

Keil MDK Version 5 is the latest release of our complete software development environment for a wide range of ARM, Cortex-M, and Cortex-R based microcontroller devices. MDK includes the uVision IDE/Debugger, ARM C/C++ Compiler, and essential middleware components. It's easy to learn and use.

2014-07-25

空空如也

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

TA关注的人

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