- 博客(177)
- 收藏
- 关注
原创 ILGPU的核心功能使用详解
ILGPU 是一种用于高性能 GPU 程序的新型 JIT(即时)编译器 (也称为 kernels)编写的 .基于 Net 的语言。ILGPU 完全 用 C# 编写,没有任何原生依赖项,允许您编写 GPU 真正可移植的程序。
2025-04-16 21:52:12
476
原创 25/4/10 2025AAMAS经济挑战赛的代码包2
今天主要梳理剩余的TaxAI智能体的代码可以看见这是一个基于 的多智能体经济仿真系统,结合强化学习框架研究财政政策与异质性家庭行为的动态博弈。Bewley-Aiyagari 模型是宏观经济学中研究异质性主体行为与不完全市场动态的核心框架,其核心思想是通过引入个体层面的未保险风险(如劳动收入冲击)和借贷约束,分析其对总体经济变量(如储蓄、利率、财富分布)的影响。agent:智能体----家庭决策网络学习消费-储蓄策略,政府网络优化税收政策。
2025-04-10 13:31:52
591
原创 25/4/9 算法笔记 分析2025AAMAS经济挑战赛的代码包1
观察代码目录,我们可以得到,代码包的大概信息。agent:智能体策略实现docs:技术文档库env:经济模拟环境模块--定义经济环境状态空间/动作空间logs:运行日志TaxAI:核心经济模型模块--可能包含税收政策,经济规则等核心算法实现utils:工具函数库--包含数据转换/经济指标计算等通用工具.gitgnore:版本控制模块LICENSE:法律文件main:主控制系统run.log:运行监控系统。
2025-04-09 23:01:37
643
原创 25/4/9 算法笔记 DBGAN+强化学习+迁移学习实现青光眼图像去模糊1
青光眼的主要特征有:视盘形态与杯盘比CDR:青光眼患者主要表现为视杯扩大,盘沿变窄。视网膜神经纤维RNFL:RNFL的厚度与完整性也是一个特征,青光眼患者可见局部或弥漫性变薄透光性增加。OCT影像可量化RNFL厚度,正常值与年龄相关,青光眼患者常出现RNFL厚度低于年龄匹配标准值(如<5%分位为黄色预警,<1%为红色)OCTA影像可显示盘周微血管密度降低,与RNFL变薄区域相关。
2025-04-09 15:03:59
562
1
原创 25/4/6 算法笔记<仿真O2DES>基础知识学习
此文章就来整理一下我学习到的O2DES仿真框架的一些核心知识核心概念: 模拟器(Simulator):模拟器是O2DES框架的核心组件,用来管理模拟时钟,事件调度和执行。可以通过Simulator类创建模拟环境,并在其中调度和执行事件。 事件(Event):和事件是模拟中发生的关键电子或变化。事件可以是任何需要在特定事件点执行的操作,可以通过继承Event类来创建自定义事件,并在事件中定义其执行逻辑。 资源(Resource):资源是模拟中有限的实体,例
2025-04-06 15:26:26
357
原创 25/2/18 <算法笔记> ByteTrack
ByteTrack(发表在 2021 年)是一种高效且精确的 **多目标跟踪(Multi-Object Tracking, MOT)**算法。它属于目标跟踪领域中基于检测的类别(tracking by detection),核心思想是利用目标检测器的高置信度和低置信度检测结果,通过简单的后处理策略实现高效和准确的目标跟踪。多目标跟踪 (MOT) 的主要目的是对视频或帧序列中的多个对象进行检测和跟踪。
2025-02-18 15:47:31
946
原创 25/2/16 <算法笔记> DirectPose
的方法,包括平移和平面旋转。相比于传统的位姿估计方法,DirectPose 试图简化复杂的处理流程,采用端到端的方式直接从图像中输出位姿参数。多阶段处理意味着更多时间成本,而 DirectPose 作为端到端方法,能够显著压缩推理时间。DirectPose 是一种端到端的神经网络方法,旨在直接从输入图像获取目标对象的。,比如检测物体位置、预测物体的三维平移和旋转,所有步骤都是自动化的“端到端”处理。实现端到端的目标检测和位姿估计(即 DirectPose),核心在于。是一种直接从图像中预测物体的。
2025-02-16 22:28:13
1172
原创 25/2/8 <机器人基础> 阻抗控制
阻抗控制旨在通过调节机器人与环境的相互作用,控制其动态行为。阻抗可以理解为一个力和位移之间的关系,涉及力、速度和位置的协同控制。我们可以将机械臂视为一个简单的质量-弹簧-阻尼器系统,其运动方程为:x是位置Fext 是外部施加的力。
2025-02-08 22:57:37
779
原创 25/2/7 <机器人基础> 牛顿-欧拉递推公式,开闭环
开环控制:机器人按照预先设定的命令执行任务,但不会对执行过程中的状态进行反馈和调整。其输入不依赖于输出,即系统的输出对控制作用没有任何影响。闭环控制:机器人通过传感器或其他检测设备获取执行任务过程中的状态信息,将这些信息反馈给控制系统,从而实现对机器人执行任务过程中的实时控制和调整。其输出会反馈给输入端从而影响输入。
2025-02-08 10:50:23
1054
原创 25/2/7 <机器人基础>雅可比矩阵计算 雅可比伪逆
假设我们有一个简单的两个关节的平面机器人臂,其末端执行器的位置可以表示为:L1 和 L2 是机器人臂的长度。θ1 和 θ2是关节的角度。力雅可比矩阵通常表示为 JfJf,用于将末端执行器的力(或力矩)映射到关节力(或关节力矩):F 是末端执行器施加的力向量。τ 是关节施加的力向量(常称为关节扭矩)。Jf是力雅可比矩阵。假设末端执行器的状态由位置 (x,y,θ) 表示,其中 (x,y)是末端执行器的位置,θ 是其朝向角。
2025-02-07 11:42:06
1779
原创 25/2/6 <机器人基础> 运动学中各连杆的变换矩阵求法
变换矩阵能够将复杂的运动分解为旋转和平移的组合。通过矩阵乘法,可以将多个连续的运动操作合并为一个单一的变换矩阵,从而简化运动学分析。例如,在机器人正运动学中,通过连乘各个关节的变换矩阵,可以得到末端执行器的总变换矩阵。在机器人学中,各连杆的变换矩阵用于描述相邻连杆坐标系之间的位置和姿态关系。总变换矩阵在机器人学、计算机图形学和控制系统中具有重要作用,主要用于描述机器人末端执行器(或任何目标点)相对于基坐标系的位置和姿态。在多机器人系统中,总变换矩阵可以描述不同机器人之间的相对位置和姿态,从而实现协作任务。
2025-02-06 22:44:34
1428
原创 先启动slam_toolbox再启动rviz2发现没map数据
我是这样解决的,但是我查了GPT他说是应该先slam_toolbox再rviz2,但是我加载不出。我们只需先运行rviz2,再连接slam_toolbox就ok了。打开rqt发现TF树也会完整。当我们检查了gazebo,rviz2,slam_toolbox的日志发现都没问题的时候。我们在运行slam连接地图的时候发现rviz2里面的map没有。大伙看着解决吧,我只是提供一个建议。就是下面会报黄色感叹号。
2025-01-25 10:49:29
400
原创 ROS2使用gazebo报错site:fishros.org.cn [Err] [RTShaderSystem.cc:480] Unable to find shader lib. Shader ge
面对这个错误我们只需要将的设置添加到你的~/.bashrc文件中。
2025-01-24 18:40:05
372
原创 25/1/22 算法笔记<ROS2> TF变换
是 ROS(Robot Operating System)中的一个核心功能,用于管理和发布坐标系之间的变换关系。TF 的主要作用是描述机器人系统中各个部分(如传感器、执行器、底盘等)之间的位置和姿态关系,从而实现数据的统一和模块化。是 ROS(Robot Operating System)中用于描述两个坐标系之间固定不变的变换关系的一种机制。静态 TF 适用于那些在机器人系统中不会随时间变化的坐标系关系,例如传感器相对于机器人底盘的位置和姿态。以下是使用 C++ 编写的发布静态 TF 变换的完整代码。
2025-01-22 20:30:38
674
原创 25/1/21 算法笔记<ROS2> 服务通信,参数
我们构建了一个完整的项目来讲解ROS2中的服务,通信和参数服务通信:通过服务控制海龟的运动。参数通信:动态修改海龟的背景颜色。Launch 文件:启动多个节点并传递参数。
2025-01-21 22:39:12
1020
原创 25/1/21 算法笔记<ROS2> 话题通信接口
在 ROS 2 中,是节点之间进行数据交换的核心机制。ROS 2 提供了多种通信接口,包括。每种接口适用于不同的场景,具体选择取决于你的应用需求。这次我们先讲服务话题是 ROS 2 中最常用的通信机制,用于节点之间的。一个节点可以发布(Publish)消息到话题,另一个节点可以订阅(Subscribe)该话题以接收消息。
2025-01-21 14:28:35
856
原创 25/1/21 算法笔记<ROS2> 编译ROS2 c++节点文档步骤
private:// 发布者// 定时器:自定义的 ROS 2 节点类,继承自。publisher_:用于发布消息的发布者。timer_:定时器,用于定期触发回调函数。编写节点代码。
2025-01-21 11:22:08
613
原创 Viscode中ros2运行#include “rclcpp/rclcpp.hpp“报错问题
首先把鼠标放在include上会出现小灯泡,点击小灯泡到c++配置界面,点击蓝色的c_cpp_properties.json文件,跳到文件界面。注意include/后面要有两个*号。
2025-01-20 14:22:07
664
原创 25/1/19 Linux系统指令及cmake
首先看一下linux中基础的指令pwd:打印当前终端所在的目录ls:列出当前工作目录下的所有文件/文件夹的名称ls+[路径]:列出指定路径下的所有文件/文件夹ls./表示当前目录下,ls../上一级目录下ls+[选项]:ls-lah/homecd:切换当前的工作目录cd~/cd:到家目录mkdir:创建文件夹,在当前路径下创建文件夹a,mkdiramkdir-p:一次性创建多层不存在目录:mkdir-p~/a/b/cmkdirabc:一次性创建多个目录。
2025-01-20 10:54:01
555
原创 25/1/16 嵌入式笔记 STM32F103
输入捕获通过两次捕获的计数器值之差,结合定时器的时钟频率,可以计算出信号的频率或周期。完整代码编码器接口。
2025-01-16 23:10:07
1116
原创 25/1/15 嵌入式笔记 初学STM32F103C8
STM32的GPIO引脚不仅可以作为普通的数字输入或输出,还可以配置为其他外设功能(如USART、SPI、I2C、定时器等)的引脚。// 将GPIOA的引脚0设置为高电平。
2025-01-16 10:07:54
2391
2
原创 25/1/14 算法笔记<强化学习> CBR加强化学习
CBR,基于案例的推理,它是一种基于过去的实际经验或经历的推理,他可以根据过往的案例找到与当前案例最相关的案例,然后对该案例做改动来解决当前的问题。
2025-01-14 19:22:11
1121
原创 25/1/14 嵌入式笔记 学习ESP32
蜂鸣器实验蜂鸣器根据乐谱发声4*4矩阵键盘薄膜按键原理按键检测原理为什么行引脚设置为输入,列设置为输出。
2025-01-14 18:41:55
397
原创 25/1/14 嵌入式笔记 学习ESP32
继电器是一种电气控制设备,用于在低电路中控制高电压电路的开关,它是由一个线圈,一组可触机械部件组成,当线圈通电时,机械部件会移动,使可触点连接或断开高电压电路。脉宽决定了舵机的转动角度,舵机的控制信号是一个周期为20ms的PWM信号的最小脉宽和最大脉宽。不同品牌或型号的舵机可能对脉宽范围的要求不同。设置脉宽范围可以限制舵机的转动范围,避免舵机转动到极限位置时产生过大的机械应力。(如 2500 µs):对应舵机的最大角度(通常为 180°)。(如 500 µs):对应舵机的最小角度(通常为 0°)。
2025-01-14 15:35:59
489
原创 25/1/13 嵌入式笔记 继续学习Esp32
ESP32 的 LEDC 模块提供了多个独立的 PWM 通道,可以用来生成 PWM 信号,控制设备如 LED 亮度、舵机角度等。ESP32通过定时器可以完成各种预设好的任务,ESP32定时器达到指定时间后也会产生中断,然后在回调函数内执行所需功能。设计理念是:信号线尽量少并且速率要尽量高,信号线少,可以减少引脚占用,这对早期的芯片(引脚很少)的很重要。简单来说,只需要2根线,就可以对多台设备传输大量数据,减少单片机上IO口的占用。简单来说delay是一个阻塞函数,他会暂停代码的执行,会中断积压。
2025-01-13 23:05:30
967
原创 25/1/12 算法笔记 剖析Yolov8底层逻辑
YOLOv8 是一种基于深度学习的目标检测和图像分割模型,属于 YOLO(You Only Look Once)系列的最新版本。YOLO 系列模型以其高效的实时目标检测能力而闻名,YOLOv8 在此基础上进行了一些优化和改进。
2025-01-12 23:31:20
1844
原创 25/1/12 嵌入式笔记 学习esp32
对于共阴极数码管,设置a = HIGH,b=HIGH.c = HIGH,其他位LOW。如果要显示第2位,设置D2 = LOW或D2 = HIGH,其他位选线设置位相反电平。数码管的每一段(如a,b,c,d,e,f,g,dp)对应一个段选线。将某一段的段选线设置为高电平HIHG,该段点亮,设置位LOW,熄灭。假设有4位数码管,位选线分别位D1,D2,D3,D4.作用:用于选择数码管的某一位,例如4位数码管的第1位,第2位)意思就是位选线是切换数码管的位,段就是一位数码管的那一小段。
2025-01-12 22:57:03
657
原创 25/1/11 算法笔记 Yolov8物体识别
这里我之前遇到一个麻烦,就是我已经开始是用多边形标注的,结果yolov8训练出来一坨,我查了查yolov8好像在目标识别这块不能用多边形。labels包,装了标注好的labels的txt文件,一开始标注好是json文件,要经过脚本转化,变成yolov能识别的txt文件。训练完了之后权值会在run/../weight文件里面,选里面最好的best,吧它的地址换进,infer_image文件里面。device = “0”就代表我用的GPU训练,记得要装pytorch的GPU版本。这是我的文件包的对象树。
2025-01-11 23:37:59
872
原创 25/1/11 嵌入式笔记<esp32> 初入esp32
函数是 ESP32 或其他 Arduino 兼容开发板的主程序循环,用于实现持续的逻辑控制和任务处理。函数是 Arduino 编程中的一个核心函数,它在程序开始时。,用于初始化硬件、配置参数和执行其他只需要运行一次的任务。digitalRead:用于读取指定数字引脚的电平状态。是 Arduino 编程中的一个核心函数,它会在。用Arduino平台,学习了点亮led灯。pinMode:用于配置指定引脚的工作模式。digitalWrite:设置高低电平。
2025-01-11 20:40:41
317
原创 25/1/9 算法笔记<强化学习> 模仿迁移强化学习
单单的强化学习肯定是不行的,应该是很多模型结合这个思想来训练,因为我前面说的强化学习它是一个思想,一个训练方式,它优化到极致也只是一个训练的思想,应该是结合比如说模仿学习,迁移学习,等等,而且强化学习只是占了一小部分,只是一个辅助思想,不会是大部分。环境模型我选的是Pendulum-v1,我下面实现了一个模仿迁移强化学习,用三个相同的环境,分别用于源任务,目标任务,专家系统,没选不同的是因为,动作空间不相同的化可能会有点麻烦,所以找了相同的。目标任务的初始奖励高,说明,源任务的参数迁移到目标中是有效的。
2025-01-09 15:03:39
749
原创 25/1/8 算法笔记<强化学习> GYM环境
前几天花了好多时间在装各个仿真环境上,有V-rep,Pybullet,unity的Ml-agent,很多一大堆,好多好多问题差点逼疯我,可能就pybullet能玩一点,到之后学了机器人我再来玩它,最后的最后,我发现还得是我的gym,最方便的玩强化学习的平台。Q-learning可能在简单环境中表现较好,但在复杂环境中可能不如DQN。q-learning一般用于简单的环境比较好,增长一开始快,之后就趋于平缓,DQN适用于复杂环境,可以看见它增长更为稳定和持续。环境都是CartPole-v1,就是那个摆子。
2025-01-08 22:59:35
528
原创 25/1/7 算法笔记<强化学习> sac_learn代码拆解
昨天我们看了V-REP中一个github项目的环境代码,今天我们来分析下他的强化学习代码。git链接:首先导入了库设置多进程启动方式在使用模块时,启动子进程的方式非常重要,尤其是在使用 CUDA 时。默认的启动方式('fork')可能会导致问题,因为 CUDA 对进程分叉(fork)的处理方式不太友好。根据条件选择GPU还是CPU,并打印出当前设备使用python的argparse模块解析命令行,让用户可以通过命令行指定是进行训练(--train)还是测试(--test)。
2025-01-07 14:13:48
1161
原创 25/1/7 算法笔记<强化学习> 多进程方法
定义一个工作函数worker,该函数将在每个子进程中执行,工作函数通常包含与环境交互,数据采样和模型更新的逻辑。# 模拟数据采样data = np.random.randn(10) # 假设采样 10 维数据replay_buffer.push(data) # 将数据存入回放缓冲区process_id:进程的ID,用于区分不同的进程shared_data:共享的数据other_args:其他参数。
2025-01-07 14:07:04
459
空空如也
viscode,中环境添加模块的问题
2024-09-08
TA创建的收藏夹 TA关注的收藏夹
TA关注的人