- 博客(15)
- 收藏
- 关注
原创 WSL2 linux中如何获取windows虚拟网卡的IP地址
最近win11自动更新后,发现在wsl中, /etc/resolv.conf里面nameserver变成了 10.255.255.254,不再是windows中 vEthernet (WSL (Hyper-V firewall))的 IP 地址了,这导致我在wsl内无法自动获取windows的ip,怎么办呢,想了个绕弯的解决方案。
2024-08-13 16:48:46 720
原创 ubuntu22.04安装nvidia驱动、cuda以及pytorch记录,亲测可行
ubuntu22.04安装nvidia驱动、cuda以及pytorch记录,主要是为了纠正网上很多文章的错误,避免走弯路。我是在笔记本电脑测试的,安装了win11和ubuntu22.04双系统。笔记本配置是12代i7、16G内存、3060 6G 显卡。
2024-02-27 12:48:37 2736
原创 树莓派4b csi摄像头 libcamera 驱动安装记录
虽然文档里说,可以直接apt 安装libcamera-dev 这样就只需要编译安装libcamera-app,但是我测试不行,libcamera-dev明显还没做好,编译libcamera-app时头文件缺失,库也找不到,所以还是建议老老实实先编译安装libcamera,再编译安装libcamera-app。才对,实际上这条指令还是针对老的驱动,用libcamera的时候,根本不需要考虑 vcgencmd get_camera,正常使用libcamera的时候,这条指令结果其实是。),保存后重启即可。
2023-09-27 16:03:24 4874 9
原创 【ROS2】类ROS1的rate定时器写法(c++&python例子)
在ROS2官方教程里,代码和ROS1例程有很大不同,大部分节点都使用了类的写法,并且用到了很多C++的新功能。其中,发布消息是采用了一个定时器timer,并且注册一个回调函数实现的。那么,可不可以还是采用ROS1的rate sleep写法呢,答案是可以的。
2023-03-03 11:56:57 1648
原创 基于VCP虚拟串口的Rosserial接口教程
在上篇文章中,我们介绍了如何在stm32中通过串口添加ROS的功能和接口,这篇文章接着上篇,介绍如何通过VCP虚拟串口来提升Rosserial的性能。
2022-09-30 11:50:09 892
原创 在STM32中实现ROS节点——Rosserial的用法
本文介绍如何将stm32控制板作为一个单独的ROS节点接入整个机器人ROS系统。在一个完整的机器人硬件系统中,由于众多传感器接口和实时性的需求,不可避免的需要加入嵌入式控制器,现在的机器人大多使用了分布式ROS系统,这套系统主要基于linux运行,而以stm32为例的大多数嵌入式控制器不支持linux。于是,当工控机想要与stm32进行数据交换时,只能脱离ROS体系采用自定义通讯协议。.........
2022-08-31 17:24:16 6508 17
原创 乐高颜色传感器的颜色识别算法
我们分析了颜色传感器的硬件设计,获取颜色RGB反射量的方法,这篇文章,我们将在此基础上分析如何通过简单的计算获知被测物体的表面颜色。
2022-07-27 11:18:31 2137
原创 乐高ev3 颜色传感器的原理
颜色传感器的硬件部分主要由三大部分组成,分别是红绿蓝三色发光二极管、光敏二极管以及配套的其它硬件电路,三色发光二极管有四个管脚,其中三个管脚分别对应每个颜色二极管的负极,第四个管脚是正极公共端,分别给不同的管脚和公共端接通电压,就会让不同颜色的发光二极管发光,三色是独立可控的。......
2022-07-25 18:29:54 7917 1
原创 stm32 将系统堆栈放置在外部内存的方法
stm32可以外扩很大的sram,常见外部sram的初始化函数一般是c语言写的,默认写在main函数里面。stm32初始化首先进入汇编代码startup_stm32f407xx.s,在汇编代码中Reset_Handler(复位中断服务程序)里面先调用了SystemInit,然后调用__main进行堆栈的初始化,最后才会跳转到用户main函数。调用SystemInit涉及到局部变量和函数调用,需要用到stack栈空间,如果我们简单的将系统堆栈配置到外部sram,执行SystemInit时外部sram还没有初始
2022-06-21 16:55:18 1917 2
原创 stm32管理内存分配以及CCM的使用方法
本文以stm32f407VGT6为例描述,查阅该芯片的手册,可以知道其内存一共192K,但是在MDK编译项目时,有时候发现内存总量只有128k,原因在于,192k中有64k是CCM内存,剩下的128K才是正常的内存,所谓的CCM内存是cpu直接访问的空间,读写速度比其它内存快,但是不支持DMA,所以DMA对应的内存空间不能放在CCM中。.........
2022-06-21 13:20:27 6851 1
原创 stm32采用cube生成项目后dsp库的用法
stm32中低端芯片没有浮点支持或者只包含单精度浮点库,如果用c的标准库math里面的相关函数,如sin、cos,这些函数是双精度编写的,stm32直接运行效率不高。为此,STM提供了dsp库来加速运算,这里记录一下采用cube方式生成的hal库的项目如何添加和使用dsp库。.........
2022-06-21 09:25:09 765
原创 stm32实现CANOpen主机功能,无需canfestival库
我们知道CANOpen协议比较复杂,有对象字典、sdo、pdo等一大堆概念和功能,DS301、DS401等很多协议,CANOpen专门的canfestival库也是代码量巨大,异常复杂。然而实际上,这个复杂是针对实现一个完整的CANOpen从机来说的,CANOpen主机功能较为单一,甚至不需要第三方的类库。而我们日常工作中,经常做的是利用stm32作为主机,去控制CANOpen从机,因此,事情就变得很简单了。..................
2022-06-10 18:05:10 7399 4
原创 WSL系列内容:wsl2 通过桥接网络实现被外部局域网主机直接访问(更新一键执行powershell脚本)
之所以有这个需求的主要原因是需要用WSL和外部机器人硬件调试分布部署的ROS系统,WSL2是在windows主机内部建立的虚拟局域网,其ip从外部无法访问,网上很多文章提到端口转发,但是ROS的文档里面要求用到所有的端口,采用端口转发不太实际。所以要想办法让WSL2的ip暴露出来,使得外部主机能够访问到。.....................
2022-06-10 10:40:43 30790 16
原创 wsl系列内容:WSL2编译和使用自定义内核的方法
为什么要自定义内核,因为默认内核没包含usb外部硬件的驱动,最简单的usb串口,加载到wsl2后内核是不会识别的,所以需要自己配置内核后重新编译。好在微软将wsl2的内核完全开源了。
2022-06-10 10:17:48 4456 3
原创 wsl系列内容:wsl2添加usb串口驱动后如何免root使用串口
wsl2的自定义内核添加了usb串口硬件驱动,并且用tcp-usb模块加载到linux里面后,必须用sudo才能使用,因为用户和用户组都是root,而不是常见的dialout,并且用户组没有rw权限。本文主要记录如何自动修改加载设备的用户组,实现免root使用。......
2022-06-10 09:43:47 1626 4
stm32 canopen主机 关键代码
2022-08-31
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人