08-05 关于如何使用ROS2开发板上发布的数据,在WSL2上使用rviz2查看建图 在使用RDK X5开发板时,通过SSH的x11连接显示的rviz2,非常卡,经过前辈提点,使用本机的wsl2进行rviz2显示 注:此方式只是优化rviz2界面的流畅度,数据传输还是吃网络,性能等原因,本质上就是使用WSL的ROS2来显示数据,数据来源就是你的开发板。如果认为该方法比较麻烦,也可以使 0 0 0
08-05 WSL2手动安装(wsl --install下载慢) 前言:电脑被烧坏了,导致之前的环境都得重装,记录重装环境 由于wsl是几年前装的了,都忘记怎么装的,所以我也是小白,查了很多攻略,就两种,一个wsl --install一键安装(以下称install),一个是下载离线包,因为wsl --install下载贼慢,所以我还是选择了离线安装,也是花了半小时 0 0 0
07-28 如何使用网页版foxglove建图 一、在开发板上安装和启动 Foxglove Bridge 安装并启动 ROS Foxglove Bridge 节点: sudo apt install ros-$ROS_DISTRO-foxglove-bridge ros2 launch foxglove_bridge foxglove_bridg 8 0 0
07-15 以GD32F307ZGT6为例的TPC112S1驱动 TPC112S1是一款数模转换芯片,详情参见官方数据手册。 驱动示例: typedef enum { TPC112S1_NORMAL = 0U, // 常规模式 TPC112S1_PD_1K_TO_GND = 1U, // 1k下拉 TPC112S1_PD_100K_TO_G 23 0 0
07-14 GD32F307ZGT6简易PWM封装 使用PE5,根据数据手册说明,可以重映射为TIMER8_CH0。 代码实现: #define PWM_TIMER TIMER8 #define PWM_TIMER_RCU RCU_TIMER8 #define PWM_GPIO_RC 15 0 0
02-09 深入浅出Goertzel算法 在数字信号处理(DSP)中,当需要分析信号的频谱的时候,最常用也最为大众熟悉的应该就是快速傅里叶变换(FFT)。但是在某些特定场景,我们只关心某个或某几个特定频率的时候,计算完整的FFT很划不来,尤其是在性能受限的嵌入式设备上或要求高实时性的场景中。 这时候,就该Goertzel算法登场了,它不需要 243 2 0
11-26 ghcr的华为云公益代理 封装成函数写在.bashrc里方便使用: # 自定义函数:拉取 ghcr.io 镜像并自动使用华为云代理 function dghcr() { # 获取原始镜像名 (例如: ghcr.io/pytorch/pytorch-nightly:latest) local image_nam 67 2 2
11-06 C++简易线程池实现 在使用现代化C++实现线程池的基础上优化。 class ThreadPool { private: // 任务的抽象基类 class ITask { public: virtual ~ITask() = default; virtual voi 46 0 0
07-10 精简的MCU裸机Modbus-RTU实现 基于GD32F305实现和测试,核心层已经初步抽象出来了,方便移植,从机部分已测试通过,主机部分暂未测试。记录备份一下,以后完善。 用于配置的头文件: #ifndef __MODBUS_CONFIG_H__ #define __MODBUS_CONFIG_H__ #include "modbus_ 93 0 1
06-18 深入探究C++虚函数表 以下讨论均基于Windows x64平台MSVC v14.42.34433环境。 关于虚函数表 众所周知,虚函数主要被用来实现多态机制,即通过基类指针或引用访问虚函数时,被访问的必须是该指针或引用所指对象的动态类型中该函数的最终重写版本。简而言之,运行时调用哪个函数,取决于对象的真实类型,而不是指针 90 1 0
01-15 将Keil工程移植为CMake工程 前期准备 一个Keil工程 根据主机平台和目标平台选择并安装交叉编译工具链,目标平台为ARM的直接官网下载:Arm GNU 工具链下载 – Arm Developer。如本文选择 安装CMake、Ninja(非必须,因为MinGW支持Unix m 1143 0 0
01-06 C++数组退化问题 #include <iostream> #include <type_traits> template<typename T> bool foo(T *param) { return std::is_same<T *, char *>::value; } int main() { 53 0 0