自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

darcsdn

xxxxxx

  • 博客(122)
  • 资源 (9)
  • 收藏
  • 关注

原创 MuJoCo 仿真 + TOPPRA 最优时间轨迹规划!机械臂运动效率拉满(附代码)

参考https://github.com/hungpham2511/toppra/blob/develop/examples/plot_straight_line.py中,使用toppra读取urdf的速度限制,以及指定加速度,指定起始和结束的速度均为0,重新生成满足如上的轨迹点。路径规划的目标是在机器人的工作空间里,找出一条从起始点到目标点的无碰撞路径。轨迹规划是在路径规划得出的路径基础上,为机械臂各关节分配随时间变化的运动参数,让机械臂按特定速度、加速度和时间完成运动。机械臂运动效率拉满(附代码)

2025-04-09 00:04:52 31

原创 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 84

原创 YOLOv12 训练实战,train.py 常用参数介绍

前几期的视频介绍了数据标注、数据集准备以及yolov12的环境准备,今天开始训练。指定使用哪个gpu,也可以同时用多个,比如'0,1,2',就是用三块gpu。指定data.yaml文件路径,前面视频创建的yaml文件。YOLOv12 训练实战,train.py 常用参数介绍。出现训练中断,如果想要继续,将resume改成True。首先创建训练脚本,完整代码如下。如果内存炸了,就把这个降低。

2025-04-06 23:35:33 231

原创 YOLOv12 训练从这里开始:LabelImg 标注数据集

默认的label列表是在data/predefined_classes.txt。设置环境变量export LC_ALL=en_US.UTF-8。直接python3 labelImg.py的话默认如下。然后最好把auto save勾上。del 删除选中的标注矩形框。

2025-04-05 21:49:15 319

原创 YOLOv12 从预训练迈向自主训练,第一步数据准备

val:验证数据集,用于在模型训练过程中评估模型的性能,调整超参数(例如学习率、网络层数等),防止模型过拟合(即模型在训练数据上表现很好,但在新数据上表现很差的情况)前面复现过yolov12,使用pre-trained的模型进行过测试,今天来讲下如何训练自己的模型,第一步先准备数据和训练格式。以这个开源数据集为例,作为数据样本来学习训练,下载得到 yolov5_gesture_datasets_1900.zip。labels 为 yolo 的标注格式,对应的 0_003.txt 如下。

2025-04-04 23:32:21 247

原创 教你如何给 so-arm100 机械臂 “换爪子”!Mujoco XML 配置介绍

大概会涉及到Mujoco xml文件中mesh路径添加、修改joint的旋转轴和运动范围、更换body、添加执行器等等。今天的主题是给机械臂换夹爪或给机械臂安装夹爪,这里比较偷懒,我们把so-arm100的夹爪换成panda的夹爪。将原来的Move Jaw换成panda的hand,安装位置保持一致,姿态需要修改,绕X轴旋转90°。首先,先把panda夹爪的mesh文件偷走,放到so-arm100的assets下。添加finger关节描述、修改Jaw关节的旋转轴,添加碰撞描述。好丑,不管了,反正思路问题。

2025-04-03 22:56:43 116

原创 MuJoCo 机械臂物体碰撞、接触检测方式一

但实际应用场景中,有很多方式可以判断,可以通过视觉识别,通过力传感器进行判断,那在MuJoCo中可以通过什么方式进行判断,今天分享一下其中的一种方式。在机械臂抓取物体的场景中,或训练的过程中,较为重要的就是如何判断物体是否被抓住了,或者是否发生了碰撞。演示代码,关节之间的碰撞,以及关节碰到地上,以及夹爪碰到长方体上。frame:接触点的局部坐标系(3x3矩阵,法线方向为第一行)geom1 / geom2:接触的两个几何体的ID。在Viewer中按C键,会显示碰撞的刚体。pos:接触点的三维位置坐标。

2025-04-02 00:01:08 518

原创 又见PTX,烤机神器Jetson GPU Burn实测

jetson核心板测试gpu的应用程序需要考虑多程序占用gpu时的影响及gpu满负荷时温度的变化,影响着硬件、功耗、散热设计,如下为gpu的一个烤机程序烤机脚本如下,使用stress压测8核,使用gpu_burn 跑满 gpu。

2025-03-31 23:50:32 155

原创 MuJoCo 可视化键盘控制球体及位姿实时记录,附代码!

答案是,Mujoco默认开启z轴的重力,小球会自然落到地面。为什么Alt R无法控制小球z方向运动?键盘的按键获取使用pynput库,如下。

2025-03-30 23:00:35 203

原创 【逆解机械臂】Pinocchio+MuJuCo 仿真 CLIK 闭环控制!附代码

今天的主题是使用 Pinocchio 结合 MuJuCo 给定机械臂末端位姿,IK出关节角进行控制,pinocchio官方示例,给出了clik的闭环逆运动学的示例。下面是代码实现,已上传至仓库:https://github.com/LitchiCheng/mujoco-learning。我们结合Mujoco进行一次仿真测试,给一个变化的末端位姿,进行关节角度控制。

2025-03-29 22:52:35 497

原创 Pinocchio 安装教程|机器人学的必备库

安装pinocchio,不要安装pip3 install pinocchio!

2025-03-28 23:18:56 211

原创 机械臂如何稳稳上桌?Mujoco场景修改实操

中介绍的mujoco-menagerie中机械臂大多都是base_link放在地上的,这些场景往往和真实的场景对应不上,比如机械臂可能是安装在桌子上,或者安装在底盘上,所以就涉及到修改场景模型文件,今天我们就以so-arm100这个机械臂为例,为其添加一个桌子。我们可以参考aloha的场景,他是有桌子的,最起码桌子的mesh文件不用自己找了。修改后的文件如下,可以重新命名为scene_with_table.xml。a. 首先需要把桌子的模型放进assets文件夹中。d. 添加位置关系描述。

2025-03-27 23:19:53 231

原创 被Python版本逼疯?Miniconda环境隔离拯救你

目前各大仿真平台、强化学习、深度学习的开源项目中都会使用不同的python版本,包括对应不同的库版本,很难解决依赖问题,或者前面一个项目安装后,后面一个重新安装后前面的又运行不起来了。选择安装路径:默认路径为 /home/用户名/miniconda3,按需修改或直接回车,安装完成后,输入 yes 以将 Conda 添加到系统环境变量。官方的地址:https://www.anaconda.com/docs/getting-started/miniconda/main。或使用清华镜像加速下载。

2025-03-26 23:28:57 225

原创 Rviz 同时显示多个独立 URDF!解决双机械臂+底盘等场景(球体+方块实例演示)

有小伙伴留言说想看下同时使用多个独立的urdf如何配置,实际上这个场景是很常见的,比如双机械臂,机械臂加底盘,机械臂加双足等等,都是多个独立的urdf文件构成,这个时候同时在Rivz中显示多个模型就很有用了,今天我们以一个球体的urdf和一个方块的urdf为例,介绍下如何搭建。创建一个launch文件夹,新建一个display_multi_urdf.launch.py。创建一个rviz文件夹,新建一个display_multi_urdf.rviz。在urdf中新建cube.urdf。

2025-03-25 22:45:56 201

原创 ROS2下MoveIt+Rviz+MuJoCo 三剑合璧!Panda 机械臂联动仿真!

今天介绍下,ros2下使用moveit在Rviz和mujoco联合仿真,结合上一期视频《MuJoCo 仿真 Panda 机械臂关节空间运动|含完整代码》拖动Rviz末端的控制,点击planning中的plan和excute。在src中创建joint_state_subscriber.py。可以看到mujoco中机械臂跟着一起动啦!首先创建一个ros2的package。先运行panda rviz场景。修改setup.py。

2025-03-24 22:22:37 797

原创 MuJoCo 仿真 Panda 机械臂关节空间运动|含完整代码

panda机械臂有七个关节的控制量,弧度单位,对应link0到link6,演示代码,控制某一个关节一直自增位置,但注意自增的量不能太大,不然控制台会输出如下,表示DOF 0不对劲,故需要归一到+-180°内。上期介绍了Mujoco获取仿真中Panda机械臂末端的位置,实际上也可以获得其他关节的,今天介绍下data的另一个控制量,qpos,也就是关节位置,关键代码就一行。

2025-03-23 22:03:48 134

原创 MuJoCo 仿真 Panda 机械臂!末端位置实时追踪 + 可视化(含缩放交互)

本期介绍下,mujoco_py这个库很老了,最新的版本可以通过mujoco的python库,可视化模型及获取模型body的实时位置,下面开始,首先安装如下依赖库。运行代码,python3 get_body_pos.py,可以看到出现panda机械臂场景,同时控制台不停的输出hand body的位置。关于模型有哪些body,可以通过代码的形式,或者查看xml描述文件。新建get_body_pos.py的文件夹。

2025-03-22 23:34:57 437 2

原创 常见机械臂模型不用找!Mujoco这儿都有!

高质量的模型集合,franka panda,so-arm100,ur之类的机械臂都有。常见机械臂模型不用找!Mujoco这儿都有!大概346M,网速不行的可以下载zip。

2025-03-21 23:01:25 197

原创 Ubuntu 装 Mujoco 居然这么简单?

直接进入MuJoCo Github 地址,Releases · google-deepmind/mujoco,最新版本为3.3.0。export将执行程序导入环境中,使用simulate指令将humanoid场景加载测试。创建放mujoco程序的文件夹,下载后进行解压。默认仿真就是Run的,先鞠躬给大家。

2025-03-20 22:32:30 344 2

原创 ROS2 Moveit2 手把手教你 Panda 机械臂关节速度控制!(附代码)

编译运行,先运行rviz场景,再运行moveit_joint_node,指定joint_name和velocity。前期讲到了笛卡尔速度,也就是末端的速度控制,今天介绍下关节速度如何玩!新建package,命名moveit_joint_velocity。src中新建joint_velocity_node.cpp。CMakeLists.txt文件。不动的原因可能是到达关节限位。

2025-03-19 22:45:37 142 1

原创 ROS2 Moveit2 手把手教你 Panda 机械臂笛卡尔速度控制!(附代码)

编译运行,先运行rviz场景,再运动panda_servo,指定linear.x和angular.z。ROS2 Moveit2 手把手教你 Panda 机械臂笛卡尔速度控制!新建package,命名moveit_servo_panda。src中新建panda_servo.cpp。CMakeLists.txt文件。不动的原因可能是到达关节限位。

2025-03-18 22:26:49 391

原创 DQN 玩 2048 实战|第三期!优化网络,使用GPU、Env奖励优化

1. 仅考虑局部合并奖励:目前的奖励只设置为合并方块时获得的分数,只关注了每一步的即时合并收益,而没有对最终达成 2048 这个目标给予额外的激励,如果没有对达成 2048 给予足够的奖励信号,Agent 可能不会将其作为一个重要的目标。将 state 和 next_state 先使用 .cpu() 方法移动到 CPU 上,再使用 .numpy() 方法转换为 NumPy 数组。在 train ,创建模型实例后,使用 .to(device) 将模型移动到指定的设备(GPU 或 CPU)

2025-03-17 21:30:15 139

原创 DQN 玩 2048 实战|第二期!设计 ε 贪心策略神经网络,简单训练一下吧!

DQN(深度 Q 网络,Deep Q-Network)中,Q 的全称是 “Quality”(质量),对应的完整术语是“状态 - 动作值函数”(State-Action Value Function),记作 Q(s,a)Q 值是强化学习中 “决策” 的核心依据。智能体通过比较当前状态下所有可能动作的 Q 值,选择 Q 值最大的动作(即 “最优动作”),以最大化累积奖励。定义:Q(s,a) 表示在状态 s 下执行动作 a 后,智能体未来累积奖励的期望(即 “长期收益的质量”)。

2025-03-16 22:30:45 346

原创 DQN 玩 2048 实战|第一期!搭建游戏环境(附 PyGame 可视化源码)

2]:66游戏开始时,网格上会出现两个数值为2或4的方块。如果两个相同数值的方块碰撞,它们将合并成一个方块,其数值等于两个方块的数值之和。[3][4]如果三个数值相同的方块碰撞,则只会合并靠近终点方向的两个方块,距起点最近的方块的数值不变。[5]在同一移动过程中,新生成的方块不能再与其他方块合并。玩家的初始分数为零,每当两个方块合并时,分数会增加,得分取决于合并后方块的数值。[9][10][11]当玩家没有合法的移动方法时,即出现了网格上没有空方格,且相邻方块的数值均不相同的情况,游戏就直接结束。

2025-03-15 23:08:59 301

原创 Moveit2还真有python接口版本?带你使用关节位置控制(有小坑需要避免哦)!

最近一个视频中小伙伴评论说moveit2没有python的接口,翻了一下,还真有,如下,库封装的很简单,操作说明也很简单,来复现一下,等下会讲下过程中的小细节需要处理的,不然复现是不成功的。但不动,panda的控制台报错了,找不到arm这个group,这里需要做一点修改,因为官方的group name不是panda的group规划组名。所以我们可以修改ws_moveit2/src/pymoveit2/examples/ex_joint_goal.py,将。我们使用如下example中的例子。

2025-03-14 22:53:51 160

原创 Panda换成SO-Arm100机械臂,代码仅换一行,末端固定位姿一样控制

就换一行,我们打开《一文搞定!ROS2 中用 MoveIt2 精准操控 Panda 机械臂末端至固定位姿》中写的Package,将原来的这行。在运行控制位姿的程序,这里我们Package名称不变,还是之前的Panda,固定位姿。控也能控,但Z的位置反转了,增加一个变换矩阵进行反转即可。先运行so-arm100的moveit场景。

2025-03-13 23:03:11 188

原创 【[特殊字符]SO-Arm100 机械臂 ROS2 配置保姆级教程】MoveIt Setup Assistant 从 0 到 1 实操!避坑指南

配置Planning Groups,这个作用在Moveit规划的文章里面我们用过,就是要指定规划的组名,比如so-arm100-groups,就是这里了,运动学求解器选择一个即可,OMPL的planning我们选常用的RTTConnect。选择导入urdf文件,如果urdf中引用的package搜索不到,会直接崩溃,需要先source install/setup.bash,具体参考《ROS2导入机械臂URDF竟有这些坑?点击Load Files,加载完成后,右侧会出现模型,和Rviz中一样,可以拖动显示。

2025-03-12 22:46:14 883

原创 ROS2导入机械臂URDF竟有这些坑?SO-ARM100 Rivz可视化避坑指南

中介绍的如何使用在Rviz中显示urdf的Package,我们新建一个Package,命名为display_so_arm100_rviz,需要将如上meshes和urdf文件夹复制到display_so_arm100_rviz下。修改 urdf/SO_7DOF_ARM100_08h_HL_01d_URDF_01.SLDASM.urdf 文件中所有关于package的名称改成 display_so_arm100_rviz。这里有一个坑,需要注意,就是urdf文件中的package名字需要修改下,参考如下。

2025-03-11 22:38:11 177

原创 5分钟,带你复现YOLOv12进行目标检测

仓库地址:git@github.com:sunsmarterjie/yolov12.git。下载yolov12s pre-trained的模型。登陆http://127.0.0.1:7860/5分钟,带你复现YOLOv12进行目标检测。conda创建Python 3.11环境。

2025-03-10 21:54:45 172

原创 Hot 3D 人体姿态估计 HPE Demo复现过程

再运行一次,生成的视频,3d pose 2d pose都在output目录下。下载YOLOv3 and HRNet pretrained models。使用 conda update matplotlib 解决。Hot 3D 人体姿态估计 HPE Demo复现过程。放到./demo/lib/checkpoint。下载human3.6M dataset。解压后把npz放进./data文件夹下。三个地方的文件下载完成后,如下图的目录。下载pretrained-model。使用conda进行环境准备。

2025-03-09 16:01:59 661 2

原创 OpenCV 拆分、合并图像通道方法及复现

环境准备:安装 OpenCV 库(pip install opencv-python)2. 使用 split () 函数拆解成 3 个单色通道(单通道图像视为灰度图,0黑)1. 读取任意图片(支持 jpg/png 等格式)3. 通过 merge () 函数还原彩色图像。2. 单色通道在图像分割中的应用,降低计算量等。1. 对比原图与拆分后的 B/G/R 单色图。OpenCV 拆分、合并图像通道方法及复现。1. 通道调整实现图像调色,磨皮等。

2025-03-08 23:58:15 361

原创 ROS2 机械臂 MoveIt 开发必看!用 MTC 实现抓取任务规划的完整流程(附代码解析)

2. 创建任务:使用 MoveIt2 的任务构造器(MoveIt Task Constructor,MTC)构建一个复杂的任务,该任务包含多个阶段,如打开手爪、移动到抓取位置、抓取物体、移动到放置位置、放置物体和返回初始位置等。依赖 MTC 包,如果没有moveit task constructor,进入src,进行clone。内容:定义一个机械臂从抓取物体到放置物体,最后返回初始位置的完整任务流程。1. 在规划场景中添加一个圆柱形的碰撞物体,模拟待抓取的目标物体。新增launch文件。

2025-03-07 23:57:52 401 1

原创 ROS2 Rviz 实战:给 panda 机械臂场景塞个圆柱体

在src中添加add_cylinder.cpp,如下。创建add_cylinder的package。先启动Rviz2的panda机械臂场景。CMakeLists.txt文件如下。在其一个终端,输入如下指令。

2025-03-06 23:47:54 255

原创 看完这个教程,MoveIt2 轻松实现 Panda 夹爪控制!

创建一个名为panda_gripper_control的包,依赖control_msgs action_msgs。在src中增加panda_gripper_control.cpp,代码如下。开一个窗口运行Rviz的panda机械臂场景。修改CMakeLists.txt。再开一个窗口,执行夹爪控制的动作。

2025-03-05 23:36:15 196

原创 一文搞定!ROS2 中用 MoveIt2 精准操控 Panda 机械臂末端至固定位姿

在《ROS2 应用:按键控制 MoveIt2 中 Panda 机械臂关节位置》中介绍了如何控制关节位置,今天介绍下如何控制笛卡尔空间下的末端位姿。在~/ros2_ws/src/panda_moveit_controller/src目录下创建panda_moveit_control.cpp。创建package,命名panda_moveit_controller,依赖moveit_ros_planning_interface。ROS2 中用 MoveIt2 精准操控 Panda 机械臂末端至固定位姿。

2025-03-04 23:07:49 323

原创 别慌!WSL2 编译跳出 “Killed signal terminated program cc1plus” 的应对法

修改C盘用户目录下的.wslconfig文件,增加如下配置(需要结合本身内存大小,我的机器是32G的内存,如果内存不大,可以把swap加大,这个只消耗硬盘,但编译速度会变慢)WSL2 C++编译时报错,一般出现该报错,都是内存或者swap满了,被oom kill掉了编译器程序,所以只需要增加swap或者分配更多的内存。先free -h看一下,确认下当前WSL下的内存大小以及swap大小。在powershell 中执行如下指令关闭wsl。再进入WSL2,free看一下。

2025-03-03 23:09:10 233

原创 速收藏!xacro 秒变 sdf,Gazebo 里加载 panda 机械臂

链接:xacro 秒变 sdf,Gazebo 里加载 panda 机械臂。

2025-03-02 22:10:10 117

原创 ROS2 URDF 遇上 XACRO,一场参数修改引发的全局 “大变身”!

修改上期视频中 display_urdf_launch 包中的 launch 脚本,将urdf名字换成 diff_without_xacro.urdf 的路径,进行编译。》视频里面,将两轮差速方形底盘的urdf改成xacro形式,如下。可以看到,如果需要修改轮子的尺寸或质量,只需要修改相应的常量,link的左右关系,也有side这个参数决定。接下来我们修改XACRO文件,修改如下内容的value,预期应该是左右轮的半径都变换。可以看到,直接转换后的urdf和之前一致。URDF和XACRO的差别。

2025-03-01 23:56:35 227

原创 笑不活了,哪吒搞怪Pose! 天雷滚滚我好怕怕,YOLOv8却不怕!

闲来无事,使用 YOLOv8-POSE 对哪吒的经典话语片段进行姿态识别,下面是视频展示及图片展示。笑不活了,哪吒搞怪Pose!天雷滚滚我好怕怕,YOLOv8却不怕!

2025-02-28 22:41:51 115

原创 想知道两轮差速方形底盘 URDF 咋做,ROS2 配 Rviz 咋显示吗?看这里!

一个方形底盘和两个差速驱动轮。

2025-02-27 23:22:20 288

YOLOv5二维码QR code识别

YOLOv5二维码QR code识别

2024-01-03

103_407.pack离线包.rar

keil5 的stm32f103 和stm32f407的离线安装包 平常在keil官网下载比较慢,一般要下很久,采用离线安装就比较爽了

2020-11-24

SAE J1939.doc

柴油车目前的ODB协议,可以通过该协议实现从CAN网络中读取发动机转速等信息,车门信息,发动机故障信息等等

2020-11-08

acado_manual.pdf

ACADO工具包是一个软件环境和算法收集用c++写的控制和动态优化。它提供了一个使用伟大的通用框架,各种直接最优控制算法,包括模型预测控制以及即状态估计和参数估计。它还提供了(独立的)有效实现龙格-库塔和BDF积分器用于ODE和DAE的仿真。

2020-09-15

切向加速度和法向加速度.ppt

对于切向加速度和法向加速度的PPT,讲解了两者直接的关系,和运动学建模,v=rw等关系,还有一些图例

2020-09-15

FreeRTOS-STM32F103-Demo.zip

针对stm32f103ZE开发板的freeRTOS的移植,新建了两个task, 1. 编码器读取,针对AB型 2. pwm输出,可以点亮LED

2020-09-15

PID和LQR两轮平衡车公式推导.pdf

PID和LQR两轮平衡车公式推导,英文版,包含一部分中文注释, 有针对PID和LQR部分的建模和公式计算过程

2020-09-15

DMX512解码芯片原理使用说明

DMX512解码芯片原理使用说明,6通道 2. MY9221,48通道 3. MY9231,48通道 4. MBI6024,48通道 5. DM13A,48通道 6. TLS3001,48通道 7. UCS2909,54通道

2018-09-02

查看句柄,获取HANDLE,用于windows编程获取某窗口句柄

查看句柄,获取HANDLE,用于windows编程获取某窗口句柄

2018-09-02

关闭指定进程批处理文件

批处理小工具,如果需要关掉的进程,就再里面更改下就可以了,双击运行。

2018-06-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除