- 博客(159)
- 资源 (9)
- 收藏
- 关注
原创 RISC-V 开发板 MUSE Pi Pro V2D图像加速器测试,踩坑介绍
找到github上的仓库,https://github.com/opirg-k1/v2d-test,gittee上面也有 https://gitee.com/bianbu-linux/v2d-test。今天测试下V2D,这是K1特有的硬件级别的2D图像加速器,参考如下文档,但文档中描述的部分有不少问题,后面会讲下。频率调节,204800000 HZ,307200000 HZ,409600000 HZ,文档里写错了,就三种挡位。发现没有/usr/share/v2d,看看apt里面有没有,安装完还是没有。
2025-05-18 23:06:09
295
原创 MUSE Pi Pro 开发板 Imagination GPU 利用 OpenCL 测试
一般嵌入式中gpu都和host共享内存,下面用一段代码测试下OpenCL程序,先安装opencl-headers ocl-icd-opencl-dev。继续玩MUSE Pi Pro,今天看下比较关注的gpu这块,从opencl看起,安装clinfo指令。随便跑一个测试,optimalizeTest,修改下CMakeLists.txt,注释掉如下红框。可以看到调用正常,后面可以做一个性能对比,看下这颗GPU的性能怎么样,比如和Mali的对比。然后用之前写的OpenCL测试程序,如下仓库。
2025-05-18 00:04:02
280
原创 MUSE Pi Pro 使用TiTanTools烧录镜像
扫描可以看到usb设备,选择刷机文件,zip会解压大概几分钟左右。烧录开始,同时可以在串口看到fastboot将文件传输过去。按住FDL键,同时插上 typeC 数据线。烧录完成后,也会统计总共花费的时间。下载windows下的烧录工具。下载镜像文件,zip后缀的即可。
2025-05-15 21:49:28
192
原创 MUSE Pi Pro 更换kernel内核及module模块
复制linux-image-6.6.63+_6.6.63-01455-gecbc859a2d08-5_riscv64.deb到开发板上,使用。输入 uname -a 可以看到如下信息,未修改的内核时间在 Apr 3 06:53:27。使用如下打包指令,将kernel、modules、header之类的打包成deb安装包。打包过程需要的两个依赖,这个也补充在了env-prepare.sh中。替换了boot下的内核、intird等文件,也更新了grub配置。
2025-05-14 23:24:10
329
原创 MUSE Pi Pro 编译kernel内核及创建自动化脚本进行环境配置
linux-6.6 仓库地址 https://gitee.com/bianbu-linux/linux-6.6/tree/k1-bl-v2.2.y/RISC-V编译工具链 https://archive.spacemit.com/toolchain/今天分享的主题为创建自动化脚本编译MUSE Pi Pro的kernel内核,脚本已经上传到中。,有需要可以自行clone,下面介绍下官方给的工具及配置方式。在编译时需要指定编译器及ARCH架构。编译完成,内核版本为6.6.63。默认defconfig为。
2025-05-13 23:08:29
238
原创 MuJoCo 解析 qfrc 三种力!带你测试鼠标拖拽物理交互效果
位置拖拽(Position Drag):双击接触点或物体,按住Ctrl键,然后鼠标右键点击并拖动模型时,MuJoCo 会在接触点(或选中的物体)上施加一个位置约束,使物体跟随鼠标移动,等效于在接触点上施加一个弹簧阻尼力。2. mjData.qfrc_passive:由被动力学元件产生,像关节的弹簧力、阻尼力、摩擦力、接触力,比如 xml 中定义的关节的 ,接触,摩擦。3. mjData.qfrc_applied:外部施加的,比如手动给模型中的某个点施加力或力矩。弹簧、阻尼、接触、摩擦等。
2025-05-12 23:21:24
298
原创 复刻低成本机械臂 SO-ARM100 从lerobot中剥离Feetech舵机控制代码
feetech sdk的python package为Adam-Software/Feetech-Servo-SDK: Feetech Servo Python SDK. Copy official repository.仓库。上期《复刻低成本机械臂 SO-ARM100 单关节控制(附代码)》中,使用lerobot进行了SO-ARM100关节的控制测试,对于在lerobot场景下是可以满足使用,但需要安装lerobot的较多依赖。其中有sdk和examples。
2025-05-11 22:14:35
326
原创 MuJoCo 机械臂关节空间阻抗控制Impedance实现(附代码)
阻抗控制通过调整关节的刚度和阻尼,让机器人在接触时产生顺应性,减少冲击力,其核心目标是在接触外部载荷时能够自适应调整输出力矩,实现力与位置的协同控制。阻抗控制可以很快的到达设定位置,在此基础上,使用mujoco交互中的施加外力操作,可以看到当外力松开后,机械臂也可以很快的回弹回设定位置。其中self.Kp和self.Kd为固定刚度和阻尼系数,通过修改刚度和阻尼参数,可以变得更柔顺来应对各种场景。注释掉该行后,直接simulate仿真可以看到机械臂控制位置震荡等情况,接下来引入关节空间阻抗控制的代码。
2025-05-11 00:51:14
415
原创 复刻低成本机械臂 SO-ARM100 单关节控制(附代码)
翻了lerobot的代码,可以看到对于feetech舵机的控制等封装已经挺完善,本质就是通过串口和舵机进行协议通信,这个在 lerobot/lerobot/common/robot_devices/motors/feetech.py 中可以看下相应的寄存器定义。接下来我们就针对lerobot这部分代码进行测试,测试单个关节的运动,首先是创建一个FeetechMotor的类,传入port和id就就可以方便的调试某个电机。
2025-05-08 23:43:52
332
原创 复刻低成本机械臂 SO-ARM100 上位机控制调试
这里应该是增量式的控制,注意上电控制前的位置要和这个页面中的保持一致,拖动joint的控制即可。可以在windows或其他有浏览器访问的地方均可,只需要调用串口设备,在启动的时候选择对应串口就可以连接。
2025-05-07 23:05:31
394
原创 3D打印机改造,百分表手动调平上大分!
更换后确实比之前的牢靠多了,但还是出现了打印断层的问题,用A4纸手动调平发现还是有首层不平的问题,后面看了其他款打印机,都有大佬用百分表做手动调平,但天鹰座这个型号没有人做过,而且一般百分表离挤出头越近越好(错觉?最近因为打印so-arm100机械臂,2021年入手的4年前的闪铸天鹰座3d打印机总是出现问题,不是飞了就是断层了,调了又调,总是不间断出现问题,更换了挤出机(之前是塑料的,正好手上有一套金属的,换上去)以为就没问题,结果还是小问题不断。几十块得百分表足够用了,后面也能用来作别的,用处大大。
2025-05-06 21:51:22
176
原创 Pinocchio导入URDF关节为continuous的问题及详细解释
URDF的continuous joint:本质也是一种无旋转角度限制的旋转关节(unbounded revolute joint),理论上应使用单个角度参数θ描述其状态就够了,但是为什么需要用两个,这就要反过来思考了,首先1个配置空间的维度能不能用来描述continuous类型关节对应物理位置,肯定是够了,但会出现一种情况,如关节在θ时和θ+2Π实际上物理位置一致,有无数个数值对应同样的物理位置,对于优化、求解问题来说时冗余的。1.一个数值对对应了一个物理状态,避免求解的冗余问题。3.180和多转一圈。
2025-05-05 23:21:42
507
原创 复刻低成本机械臂 SO-ARM100 标定篇
最后标定完之后,会将标定数据保存在.cache/calibration/so100/main_follower.json。直接运行一般会报错,因为configs.py中配置的串口是2和3,需要改成机器中的,比如ttyACM0。组装完机械臂后,要进行初始标定,参考github的markdown。然后参考控制台输出的内容,按照图示将这些位置依次摆好,然后回车。只有从臂,所以arms里面只填follower即可。
2025-05-04 23:06:46
387
原创 复刻低成本机械臂 SO-ARM100 舵机配置篇(WSL)
Windows下会有usb serial的设备,因为我用的WSL,所以需要把这个usb attach给WSL中。组装之前需要配置舵机的ID,如下的网址为舵机的资料,实际上用不到,但可以mark在这里。如果出现找不到cudnn.so.9,需要安装如下,对应你的环境。执行加权指令,为了给python运行时的访问,不然有权限问题。控制板资料如下,默认就是USB的方式,跳线帽在B位置。使用 ls /dev 看到出现了 ttyAMC0。如下图,插上舵机线,注意通道的顺序,通上电源后。一个一个配置,总共6个舵机。
2025-05-02 20:29:14
613
原创 MUSE Pi Pro 开箱啦!8核RISC-V,UEFI有点意思~
RISC-V,8核,UEFI,2 TOPS算力,这些内容在之前玩过的RISC-V中也是不多的,刚好搞过Jetson的edk2的uefi固件,对于嵌入式设备来说,有uefi的还是少数,大部分都是uboot或更前的bl31等引导组合,无疑uefi加上grub给嵌入式设备增加了更多的可玩性。4路3.0 USB,1路千兆口,MIPI的摄像头及屏幕接口,还有标准的HDMI口,MINI PCIE和m.2的ssd口,板载WIFI6和BT模组,耳机3.5口,还有40Pin的GPIO,SD卡槽。废话不讲了,开始开箱。
2025-05-01 21:58:20
300
原创 复刻低成本机械臂 SO-ARM100 材料齐活篇
打印件基本ok,总共12个,尴尬的是github又更新了so-101,不过看了下还好只是优化了走线和几个结构键,影响不大,大不了后面再重新打印(有3d打印机,哈哈哈)舵机买的飞特的12V的版本,因为手上有12V的电源,不想在整个5V的电源,所以买了12V,比7.4V贵10 rmb差不多。复刻低成本机械臂 SO-ARM100 材料齐活篇。舵机控制板就是微雪家的。
2025-04-30 23:22:05
302
原创 MuJoCo 相机图片怎么拿?视角调整获取物体图片及实时显示(附代码)
在Mujoco的仿真中,对于识别抓取场景来说,如何获得添加的body等物体的实时图像很重要,今天就分享下如何添加相机视角及可视化小方块(举例)的实时图片。复制一个scene.xml为scene_withcamera.xml,在xml中添加camera和小方块如下。设置xml文件中添加的相机body id。需要创建一个离屏渲染器。
2025-04-30 00:56:19
592
原创 MuJoCo 机械臂 PID 控制器输出力矩控制到达指定位置(附代码)
又有评论区提到有想看Mujoco里面如何获取力矩信息,实际上是很简单的,就是data.ctrl这个对象,今天结合这个内容,通过PID控制器输出力矩对位置进行闭环的实验,力矩控制机械臂会比较丝滑,尤其是动力学方面。仿真循环中计算位置误差,pid计算力矩,记录数据,当误差小于一定值,画出力矩、位置变化。初始化PID参数及指定位置和声明位置和力矩输出的记录。有点超调,随便调一下PID参数,P项减小点。首先写一个最基本的PID的控制类。距离较短的情况,I项增大。可以看到没有出现过冲。
2025-04-27 23:10:14
568
原创 MuJoCo 关节角速度记录与可视化,监控机械臂运动状态
1. 手动计算关节速度,其中timestep为仿真步长。2. 使用data.qvel直接取得关节速度。
2025-04-26 23:49:16
278
原创 PPO 强化学习机械臂 IK 训练过程可视化利器 Tensorboard
PPO 强化学习过程中,设置了verbose会显示数据,但还是不够直观,这里上一个可视化利器,Tensorboard,实际上stable baselines3中已经有了这部分的集成,但这个工具实际上在其他的框架上也可以使用,基于web的显示,简便好看。介绍下环境,ubuntu22.04 wsl,python3.10,无conda环境,安装tensorboard。使用非常简单,只需要在PPO增加 `tensorboard_log="./tensorboard/"` 即可。打开浏览器,可以看到训练过程的图表。
2025-04-25 22:08:40
240
原创 MuJoCo 机械臂 PPO 强化学习逆向运动学(IK)
输入层 -> 隐藏层1 (256个神经元, ReLU激活) -> 隐藏层2 (128个神经元, ReLU激活) -> 输出层(动作概率分布)输入层 -> 隐藏层1 (256个神经元, ReLU激活) -> 隐藏层2 (128个神经元, ReLU激活) -> 输出层(状态价值估计)step函数,增加碰撞的惩罚和末端位姿的惩罚,同时mujoco viewer渲染显示。创建动作空间和观测空间以及目标位置。最后在接近的位置疯狂抽搐收敛。过程中显示运动,很疯狂。过程中会输出每轮的训练信息。网络设计和模型超参设置。
2025-04-24 21:54:10
1365
原创 Stable Baselines3 结合 gym 训练 CartPole 倒立摆
OpenAI Gym 用于提供一系列标准化的环境,这些环境主要的接口方法包括 reset() 用于重置环境状态,step(action) 用于执行一个动作并返回新的状态、奖励、是否终止等信息。stable_baselines3 是一个用于深度强化学习的开源 Python 库,基于 PyTorch 构建,内置了像PPO、DDPG 等算法。今天介绍下stable_baselines3和gym,可以方便实现DL的实现,应用在机械臂catch、reach等场景。
2025-04-23 23:09:38
341
原创 复刻低成本机械臂 SO-ARM100 3D 打印篇
清理了下许久不用的3D打印机,挤出机也裂了,更换了喷嘴和挤出机夹具,终于恢复了正常工作的状态,接下来还是要用起来,不然吃灰生锈了,于是乎想起了之前仿真中的SO-ARM100这个机械臂,打算做一套玩玩。SO-ARM100 机械臂有 6 个自由度,支持 3D 打印,性价比超高,是 Lerobot 开源机器人解决方案的一部分。git clone后3d打印文件这里我用这两个stl文件,另外几个太大,我这个型号一盘放不下。以前买的天鹰座,现在不知道出多少代了,好像最近比较火的是拓竹,以后再看要不要更新。
2025-04-22 21:58:10
415
原创 MuJoCo 动捕接口 Mocap 直接操控机械臂(附代码)
动作捕捉(Motion Capture,简称 Mocap)是一种记录并处理人或物体动作的技术,在影视、游戏、机器人等领域应用广泛。通过上下左右以及alt_l,alt_r可以控制hand这个hody跟着mocap进行同步,这里将quat固定为Z朝下。首先在 scene.xml 中修改添加 mocap 和 equality。下面介绍如何配置 Mocap 以及使用按键进行末端控制。控制核心代码,通过按键控制mocap的pos和quat。
2025-04-21 22:33:57
181
原创 Jetson Orin Nano GPIO 实战,用 devmem 玩转 Pinmux 引脚复用配置
devmem 是一个直接读写寄存器的工具,通过 mmap 将 /dev/mem 中的物理地址区域映射到用户空间进程地址空间,从而实现直接读写,正常情况下在 /dev 下可以看到 mem。可以看到对应 bit5 bit6 分别为 1,对应配置为 E_IO_HV 为 ENABLE 以及 E_INPUT 为 ENABLE。需要 TRM 手册查看相关寄存器,以及安装 busybox,busybox 内置了 devmem。根据 TRM 手册,找到 I2C_SDA 的 pinmux 地址偏移是 0x18。
2025-04-20 22:56:46
725
原创 从 LabelImg 到 Label Studio!AI 数据标注神器升级,Web 版真香
Label Studio 支持图像、文本、音频、视频、时间序列等多类型数据标注,覆盖计算机视觉(目标检测、语义分割)、自然语言处理(情感分析、实体识别)、语音识别(音频转录)等场景,基于web的界面,看起来高级多了,支持多种安装方式,docker、虚拟环境等,而labelimg基本不维护了。我们使用condas安装的形式。点击label,在图中标框即可。比labelimg方便多了。测试下目标检测BBOX。
2025-04-20 00:11:17
333
原创 MuJoCo 提高机械臂笛卡尔空间IK+路径规划+轨迹优化的成功率及效率
在《MuJoCo 机械臂关节路径规划+轨迹优化+末端轨迹可视化》这期里面我们讲到了在关节空间下的路径规划及轨迹优化,但笛卡尔空间下的目标点移动更为常见。代码仓库:https://github.com/LitchiCheng/mujoco-learning。1.笛卡尔空间IK转关节空间,然后进行路径规划及轨迹优化的衔接部分。其中用于避免碰撞和关节限位的零空间分量参数需要调整至如下。rrt的参数修改如下,仅使用rrt_star搜索方法。2.优化IK及路径规划的成功率及效率。
2025-04-19 00:24:07
525
原创 Qwen2.5-VL视觉大语言模型复现过程,没碰到什么坑
运行demo,有四个版本3B,7B,32B,72B,3B的比较小,但比较傻,下载比较快。创建conda环境,实测22.04,python3.10没什么依赖或者冲突的问题出现。Qwen2.5-VL视觉大语言模型复现过程,没碰到什么坑。实际运行起来,通过gradio起了一个Web。第一次加载会先下载model,大概7个多G。今天复现下Qwen2.5-VL玩玩。下载源码,安装相关依赖。
2025-04-17 22:12:23
608
原创 MuJoCo 内置 USD 导出功能,让强化学习模型从小场景走进 Isaac Sim大世界
mujoc内置usd导出的方式,https://mujoco.readthedocs.io/en/latest/python.html#usd-exporter。两者相结合的话,比如可以在mujoco中训练强化学习等,然后放到isaac sim更大的场景。MuJoCo 内置 USD 导出功能,让强化学习模型从小场景走进 Isaac Sim大世界。mjcf集成mujoco的物理引擎,好处就是开箱即用,但场景没有usd这种世界场景的玩的大。导出的文件为纹理和usd模型。转换代码,以panda为例。
2025-04-17 00:27:27
275
原创 MuJoCo 画出机械臂末端轨迹进行可视化(附代码)
上期视频我们使用matplotlib画出了路径规划及轨迹优化后的末端轨迹,有小伙伴留言说能不能在MuJoCo画出这个轨迹,粗看了下,官方文档中提供了这个方法,我们在上期视频基础上来添加这个功能。关键代码如下,将提取出来的末端tf赋值给pos,姿态的话就不显示,意义不大。可以使用initGeom或者conector的方式。这个示例画了一堆球,颜色不一样,我们需要改一下。
2025-04-15 23:56:20
304
原创 MuJoCo 机械臂关节路径规划+轨迹优化+末端轨迹可视化(附代码)
今天的实验测试目标就是随机给定两个关节空间位置,使用pyroboplan进行路径规划和轨迹优化,使用mujoco viewer进行仿真的完整代码。生成start和goal的随机关节空间位置。末端轨迹可以用matplotlib画一下。使用三次多项式轨迹优化器进行优化。使用RRT规划器进行路径规划。
2025-04-14 22:32:11
405
原创 PyRoboPlan 库,给 panda 机械臂微分 IK 上大分,关节限位、碰撞全不怕
参考仓库中的 https://github.com/sea-bass/pyroboplan/blob/main/examples/differential_ik.py。今天分享PyRoboPlan库,比之前的方式优点在于,这个库考虑了机械臂的关节限位和碰撞,也就是生成出来的关节位置不会存在碰撞问题。代码仓库:https://github.com/LitchiCheng/mujoco-learning。官方仓库:https://github.com/sea-bass/pyroboplan。
2025-04-13 18:59:35
634
原创 Pinocchio中data、model接口介绍
data 用于存储机器人在仿真过程中的动态信息,如关节位姿、雅可比矩阵、惯性矩阵等。model.jointPlacements 每个关节相对于其父关节的初始位置和姿态。model.inertias 每个刚体的惯性参数,如质量、质心位置和惯性张量。upperPositionLimit 上限,用于限制关节的运动范围。model 用于存储机器人模型的静态信息,如关节结构、惯性参数等。model.names 包含所有关节名称的列表。model.nv 速度向量的维度。model.nq 关节数量。
2025-04-13 00:54:30
269
原创 PyKDL 运动学动力学库-安装(源码编译方式)
参考https://github.com/orocos/orocos_kinematics_dynamics/blob/master/orocos_kdl/INSTALL.md。PyKDL 运动学动力学库-安装(源码编译方式)pip3 install PyKDL的方式会失败。添加ldd路径到bashrc。
2025-04-12 01:14:23
943
原创 MuJoCo + OMPL 进行Panda机械臂关节空间的RRT路径规划
使用RRTConnect快速随机扩展树算法(Rapidly-exploring Random Tree),设置步长0.01,设置规划时间10s。通过self.model.jnt_range[i, 0]和self.model.jnt_range[i, 1]得到关节运动范围的上下限。通过将计算的位置通过mujoco step,查询是否发生碰撞,也就是ncon是否大于0,判断规划是不会发生自身碰撞。首先在xml文件中可以看到关节限位,也就是规划的关节空间的路径是不能超限的。
2025-04-11 00:56:02
477
1
原创 安装 OMPL Python 库运行崩溃?擦肩而过,还不收藏
包含了多种经典的运动规划算法,如快速探索随机树(RRT)及其变体,如 RRT*、EST 等,还有概率路线图(PRM)算法。如上下载过程中,尽量有科学上网或者保证github流畅,或者修改sh脚本,人工下载然后编译安装。手动修改,或者拉取github最新代码,在重新编译一下。最终安装到/usr/lib/python3中。哈哈哈哈,也就做这个视频界面,刚被修复。
2025-04-09 23:45:12
272
原创 MuJoCo 仿真 + TOPPRA 最优时间轨迹规划!机械臂运动效率拉满(附代码)
参考https://github.com/hungpham2511/toppra/blob/develop/examples/plot_straight_line.py中,使用toppra读取urdf的速度限制,以及指定加速度,指定起始和结束的速度均为0,重新生成满足如上的轨迹点。路径规划的目标是在机器人的工作空间里,找出一条从起始点到目标点的无碰撞路径。轨迹规划是在路径规划得出的路径基础上,为机械臂各关节分配随时间变化的运动参数,让机械臂按特定速度、加速度和时间完成运动。机械臂运动效率拉满(附代码)
2025-04-09 00:04:52
597
原创 YOLOv12 训练结果如何评估?实测best.pt
另外也可以查看训练的各种维度的曲线图,bounding box,分类,还有平均精度等等,只要接近收敛到比较小,以及train和val差别不是很离谱,都算正常。Recall曲线,召回率,TP/TP+FN,实际为P样本中T的比例(为什么是TP+FN,因为不是判断对了就是判断错了,也可以是TN/TN+FP)有两个手的,虽然识别正确,但置信度就差了很多,并且左侧有识别错误的bbox和类别,因为样本中都是单个手。Precision曲线,置信度越高,精确率越高,TP/TP+FP,表示预测的精确率。
2025-04-07 23:16:10
189
原创 YOLOv12 训练实战,train.py 常用参数介绍
前几期的视频介绍了数据标注、数据集准备以及yolov12的环境准备,今天开始训练。指定使用哪个gpu,也可以同时用多个,比如'0,1,2',就是用三块gpu。指定data.yaml文件路径,前面视频创建的yaml文件。YOLOv12 训练实战,train.py 常用参数介绍。出现训练中断,如果想要继续,将resume改成True。首先创建训练脚本,完整代码如下。如果内存炸了,就把这个降低。
2025-04-06 23:35:33
318
acado_manual.pdf
2020-09-15
FreeRTOS-STM32F103-Demo.zip
2020-09-15
DMX512解码芯片原理使用说明
2018-09-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人