- 博客(168)
- 资源 (9)
- 收藏
- 关注
原创 Python UV 环境下的 PyKDL 运动学库安装
结合《PyKDL 运动学动力学库-安装(源码编译方式)》中的安装方式,最后我们在python-orocos-kdl的build目录下编译生成得到了PyKDL.cpython-310-x86_64-linux-gnu.so这个动态库,但是在uv环境中直接python3进行import PyKDL还是会报错,这里是因为环境本身是隔离的,需要将这个动态库导入到uv当前的这个环境中。mujoco-learning这个仓库,改成uv管理环境依赖后,原来的一些包有些缺失,比如之前安装的PyKDL,于是把这部分补进来~
2025-06-01 23:14:23
273
原创 RISC-V 开发板 MUSE Pi Pro 搭建 Spacengine AI模型部署环境
Spacengine 是由 进迭时空 研发的一套 AI 算法模型部署工具,可以方便的帮助用户部署自己的模型在端侧,为了隔离本机环境,这里使用docker容器的方式,首先pull下sdk的镜像。可以看到paddle模型转换成了onnx,到这里基本的环境就ok了。使用spine查看版本,首次使用spine是会下载一些依赖的包。使用如下指令运行容器,spacemit-ai-test。可以看到,当前最新的版本为。参考官方文档进行快速测试。
2025-05-28 23:06:47
346
原创 RISC-V 开发板 MUSE Pi Pro cpufp测试算力
按照官方文档,使用cpufp进行测试算力,可以在github上看到riscv64是支持K1的。算力部分,Vector、Scalar按照RISCV标准,扩展了Matrix部分。RISC-V 开发板 MUSE Pi Pro cpufp测试算力。测试0-7核心,直接就崩溃了。可以看到cpu核心0占满。还是崩溃,提issue了。
2025-05-26 23:33:36
260
原创 RISC-V 开发板 MUSE Pi Pro RTSP 串流 CSI ov5647 摄像头
RTSP(Real-Time Streaming Protocol,实时流传输协议) 是一种基于文本的应用层协议,用于在 IP 网络中控制多媒体流的传输,常用于视频监控、视频会议、在线直播等实时流媒体场景。RISC-V 开发板 MUSE Pi Pro RTSP 串流 CSI ov5647 摄像头。首先clone官方推荐的仓库,分支为1.18。cd到out目录下的example下。可以看到串流过来的csi摄像头数据。在VLC播放器中输入。
2025-05-26 23:28:28
448
原创 RISC-V 开发板 MUSE Pi Pro OpenCV结合Gstreamer实时显示CSI摄像头
RISC-V 开发板 MUSE Pi Pro OpenCV结合Gstreamer实时显示CSI摄像头。测试使用的CSI摄像头为ov5647,官方示例如下,其中json包括csi型号不同需要修改下。非桌面段的话,会起一个Remote X窗口用来显示,虽然有点卡。安装opencv相关库。
2025-05-23 22:08:35
399
原创 RISC-V 开发板 MUSE Pi Pro Gstreamer 编码UVC及MIPI CSI摄像头视频流
Gstreamer 在视频编码、解码、保存等场景下非常常用,其基于插件化的架构,可以玩的很花,进迭时空的Spacemit GStreamer 支持 spacemitdec 专有插件,参考官方文档https://bianbu-linux.spacemit.com/media/gstreamer_user_guide。接下来测试UVC,先插上UVC摄像头,使用如下指令可以实时保存视频。600帧,640x480的图像,30fps。接上MIPI CSI摄像头,使用如下指令。保存的视频流文件为test.h264。
2025-05-22 23:04:25
363
原创 RISC-V 开发板 MUSE Pi Pro CSI测试,一把点亮ov5647摄像头
可以看到识别到CSI摄像头为ov5647,json配置文件保存到了/usr/share/camera_json/csi3_camera_auto.json,以及sensor分辨率为2592x1944,isp输出1920x1080。可以看到测试正常,生成了 /tmp/cpp0_output_1920x1080_s1920.nv12,/tmp/raw_output0_2592x1944.raw。这个连接器对应是CSI3,所以json文件我们选择csi3_camera_detect.json。
2025-05-21 22:02:15
590
原创 RISC-V 开发板 MUSE Pi Pro USB 测试(3.0 U盘,2.0 UVC摄像头)
可以看到有3个USB控制器,2个是USB2.0,1个是USB3.0 ,其中2.0的UVC摄像头关在了BUS 002上,因为默认001是OTG口,002才是host,测试下写性能。总共开发板有4个USB的A口,1个USB的TypeC口,我们插上两个USB3.0的U盘和一个USB2.0的UVC摄像头来进行测试。可以看到速率只能跑到20MB/s左右,应该跟这个U盘本身的性能有关。测试下2.0的摄像头,安装fswebcam。可以看到UVC摄像头是20,21。读可以跑到120MB/s。
2025-05-20 23:06:26
413
原创 RISC-V 开发板 MUSE Pi Pro PCIE 测试以及 fio 崩溃问题解决
板子上有一个m.2的pcie插槽,k1有三个pcie控制器,pcie0和usb3复用一个phy,所以实际开发板就两个,测试的话,上一个nvme硬盘,跑跑看。插上nvme硬盘后,lspci -vvv看下,可以看到硬盘挂载 0001 这个pcie bus上面。可以看到编译后的fio是3.39版本,执行命令也成功了,读可以跑到700MB/s左右。尝试重新编译fio看看还会有问题吗,fio官方仓库如下。写测试,速率我这个盘只能到200MB/s。fio -h可以看到版本是3.36。结果core dump?
2025-05-19 22:22:30
453
原创 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
610
原创 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
341
原创 MUSE Pi Pro 使用TiTanTools烧录镜像
扫描可以看到usb设备,选择刷机文件,zip会解压大概几分钟左右。烧录开始,同时可以在串口看到fastboot将文件传输过去。按住FDL键,同时插上 typeC 数据线。烧录完成后,也会统计总共花费的时间。下载windows下的烧录工具。下载镜像文件,zip后缀的即可。
2025-05-15 21:49:28
205
原创 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
347
原创 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
262
原创 MuJoCo 解析 qfrc 三种力!带你测试鼠标拖拽物理交互效果
位置拖拽(Position Drag):双击接触点或物体,按住Ctrl键,然后鼠标右键点击并拖动模型时,MuJoCo 会在接触点(或选中的物体)上施加一个位置约束,使物体跟随鼠标移动,等效于在接触点上施加一个弹簧阻尼力。2. mjData.qfrc_passive:由被动力学元件产生,像关节的弹簧力、阻尼力、摩擦力、接触力,比如 xml 中定义的关节的 ,接触,摩擦。3. mjData.qfrc_applied:外部施加的,比如手动给模型中的某个点施加力或力矩。弹簧、阻尼、接触、摩擦等。
2025-05-12 23:21:24
365
原创 复刻低成本机械臂 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
388
原创 MuJoCo 机械臂关节空间阻抗控制Impedance实现(附代码)
阻抗控制通过调整关节的刚度和阻尼,让机器人在接触时产生顺应性,减少冲击力,其核心目标是在接触外部载荷时能够自适应调整输出力矩,实现力与位置的协同控制。阻抗控制可以很快的到达设定位置,在此基础上,使用mujoco交互中的施加外力操作,可以看到当外力松开后,机械臂也可以很快的回弹回设定位置。其中self.Kp和self.Kd为固定刚度和阻尼系数,通过修改刚度和阻尼参数,可以变得更柔顺来应对各种场景。注释掉该行后,直接simulate仿真可以看到机械臂控制位置震荡等情况,接下来引入关节空间阻抗控制的代码。
2025-05-11 00:51:14
469
原创 复刻低成本机械臂 SO-ARM100 单关节控制(附代码)
翻了lerobot的代码,可以看到对于feetech舵机的控制等封装已经挺完善,本质就是通过串口和舵机进行协议通信,这个在 lerobot/lerobot/common/robot_devices/motors/feetech.py 中可以看下相应的寄存器定义。接下来我们就针对lerobot这部分代码进行测试,测试单个关节的运动,首先是创建一个FeetechMotor的类,传入port和id就就可以方便的调试某个电机。
2025-05-08 23:43:52
385
原创 复刻低成本机械臂 SO-ARM100 上位机控制调试
这里应该是增量式的控制,注意上电控制前的位置要和这个页面中的保持一致,拖动joint的控制即可。可以在windows或其他有浏览器访问的地方均可,只需要调用串口设备,在启动的时候选择对应串口就可以连接。
2025-05-07 23:05:31
426
原创 3D打印机改造,百分表手动调平上大分!
更换后确实比之前的牢靠多了,但还是出现了打印断层的问题,用A4纸手动调平发现还是有首层不平的问题,后面看了其他款打印机,都有大佬用百分表做手动调平,但天鹰座这个型号没有人做过,而且一般百分表离挤出头越近越好(错觉?最近因为打印so-arm100机械臂,2021年入手的4年前的闪铸天鹰座3d打印机总是出现问题,不是飞了就是断层了,调了又调,总是不间断出现问题,更换了挤出机(之前是塑料的,正好手上有一套金属的,换上去)以为就没问题,结果还是小问题不断。几十块得百分表足够用了,后面也能用来作别的,用处大大。
2025-05-06 21:51:22
190
原创 Pinocchio导入URDF关节为continuous的问题及详细解释
URDF的continuous joint:本质也是一种无旋转角度限制的旋转关节(unbounded revolute joint),理论上应使用单个角度参数θ描述其状态就够了,但是为什么需要用两个,这就要反过来思考了,首先1个配置空间的维度能不能用来描述continuous类型关节对应物理位置,肯定是够了,但会出现一种情况,如关节在θ时和θ+2Π实际上物理位置一致,有无数个数值对应同样的物理位置,对于优化、求解问题来说时冗余的。1.一个数值对对应了一个物理状态,避免求解的冗余问题。3.180和多转一圈。
2025-05-05 23:21:42
539
原创 复刻低成本机械臂 SO-ARM100 标定篇
最后标定完之后,会将标定数据保存在.cache/calibration/so100/main_follower.json。直接运行一般会报错,因为configs.py中配置的串口是2和3,需要改成机器中的,比如ttyACM0。组装完机械臂后,要进行初始标定,参考github的markdown。然后参考控制台输出的内容,按照图示将这些位置依次摆好,然后回车。只有从臂,所以arms里面只填follower即可。
2025-05-04 23:06:46
420
原创 复刻低成本机械臂 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
650
原创 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
597
原创 复刻低成本机械臂 SO-ARM100 材料齐活篇
打印件基本ok,总共12个,尴尬的是github又更新了so-101,不过看了下还好只是优化了走线和几个结构键,影响不大,大不了后面再重新打印(有3d打印机,哈哈哈)舵机买的飞特的12V的版本,因为手上有12V的电源,不想在整个5V的电源,所以买了12V,比7.4V贵10 rmb差不多。复刻低成本机械臂 SO-ARM100 材料齐活篇。舵机控制板就是微雪家的。
2025-04-30 23:22:05
329
原创 MuJoCo 相机图片怎么拿?视角调整获取物体图片及实时显示(附代码)
在Mujoco的仿真中,对于识别抓取场景来说,如何获得添加的body等物体的实时图像很重要,今天就分享下如何添加相机视角及可视化小方块(举例)的实时图片。复制一个scene.xml为scene_withcamera.xml,在xml中添加camera和小方块如下。设置xml文件中添加的相机body id。需要创建一个离屏渲染器。
2025-04-30 00:56:19
670
原创 MuJoCo 机械臂 PID 控制器输出力矩控制到达指定位置(附代码)
又有评论区提到有想看Mujoco里面如何获取力矩信息,实际上是很简单的,就是data.ctrl这个对象,今天结合这个内容,通过PID控制器输出力矩对位置进行闭环的实验,力矩控制机械臂会比较丝滑,尤其是动力学方面。仿真循环中计算位置误差,pid计算力矩,记录数据,当误差小于一定值,画出力矩、位置变化。初始化PID参数及指定位置和声明位置和力矩输出的记录。有点超调,随便调一下PID参数,P项减小点。首先写一个最基本的PID的控制类。距离较短的情况,I项增大。可以看到没有出现过冲。
2025-04-27 23:10:14
618
原创 MuJoCo 关节角速度记录与可视化,监控机械臂运动状态
1. 手动计算关节速度,其中timestep为仿真步长。2. 使用data.qvel直接取得关节速度。
2025-04-26 23:49:16
315
原创 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
267
原创 MuJoCo 机械臂 PPO 强化学习逆向运动学(IK)
输入层 -> 隐藏层1 (256个神经元, ReLU激活) -> 隐藏层2 (128个神经元, ReLU激活) -> 输出层(动作概率分布)输入层 -> 隐藏层1 (256个神经元, ReLU激活) -> 隐藏层2 (128个神经元, ReLU激活) -> 输出层(状态价值估计)step函数,增加碰撞的惩罚和末端位姿的惩罚,同时mujoco viewer渲染显示。创建动作空间和观测空间以及目标位置。最后在接近的位置疯狂抽搐收敛。过程中显示运动,很疯狂。过程中会输出每轮的训练信息。网络设计和模型超参设置。
2025-04-24 21:54:10
1566
原创 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
364
原创 复刻低成本机械臂 SO-ARM100 3D 打印篇
清理了下许久不用的3D打印机,挤出机也裂了,更换了喷嘴和挤出机夹具,终于恢复了正常工作的状态,接下来还是要用起来,不然吃灰生锈了,于是乎想起了之前仿真中的SO-ARM100这个机械臂,打算做一套玩玩。SO-ARM100 机械臂有 6 个自由度,支持 3D 打印,性价比超高,是 Lerobot 开源机器人解决方案的一部分。git clone后3d打印文件这里我用这两个stl文件,另外几个太大,我这个型号一盘放不下。以前买的天鹰座,现在不知道出多少代了,好像最近比较火的是拓竹,以后再看要不要更新。
2025-04-22 21:58:10
441
原创 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
230
原创 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
805
原创 从 LabelImg 到 Label Studio!AI 数据标注神器升级,Web 版真香
Label Studio 支持图像、文本、音频、视频、时间序列等多类型数据标注,覆盖计算机视觉(目标检测、语义分割)、自然语言处理(情感分析、实体识别)、语音识别(音频转录)等场景,基于web的界面,看起来高级多了,支持多种安装方式,docker、虚拟环境等,而labelimg基本不维护了。我们使用condas安装的形式。点击label,在图中标框即可。比labelimg方便多了。测试下目标检测BBOX。
2025-04-20 00:11:17
367
原创 MuJoCo 提高机械臂笛卡尔空间IK+路径规划+轨迹优化的成功率及效率
在《MuJoCo 机械臂关节路径规划+轨迹优化+末端轨迹可视化》这期里面我们讲到了在关节空间下的路径规划及轨迹优化,但笛卡尔空间下的目标点移动更为常见。代码仓库:https://github.com/LitchiCheng/mujoco-learning。1.笛卡尔空间IK转关节空间,然后进行路径规划及轨迹优化的衔接部分。其中用于避免碰撞和关节限位的零空间分量参数需要调整至如下。rrt的参数修改如下,仅使用rrt_star搜索方法。2.优化IK及路径规划的成功率及效率。
2025-04-19 00:24:07
570
原创 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
650
原创 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
305
原创 MuJoCo 画出机械臂末端轨迹进行可视化(附代码)
上期视频我们使用matplotlib画出了路径规划及轨迹优化后的末端轨迹,有小伙伴留言说能不能在MuJoCo画出这个轨迹,粗看了下,官方文档中提供了这个方法,我们在上期视频基础上来添加这个功能。关键代码如下,将提取出来的末端tf赋值给pos,姿态的话就不显示,意义不大。可以使用initGeom或者conector的方式。这个示例画了一堆球,颜色不一样,我们需要改一下。
2025-04-15 23:56:20
347
acado_manual.pdf
2020-09-15
DMX512解码芯片原理使用说明
2018-09-02
FreeRTOS-STM32F103-Demo.zip
2020-09-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人