- 博客(145)
- 收藏
- 关注
原创 【QT】ROS2 Humble联合使用QT教程
然后点击Next,如果点击Next没有反应的话,我们先点击Browse,然后立马cancel,这个路径不要改,退出来之后,我们就可以点击Next了,这可能是一个小bug。然后安装插件,注意这里是默认Qt Creator的安装路径为~/Qt/Tools/QtCreator,如果你的路径不是这里,请将下面语句-C后改为你自己的安装路径。直接进入src文件夹中然后git clone这个ROS功能包,地址:https://github.com/shenmuxin/ros2_humble_qt_demo。
2025-07-04 12:46:47
387
原创 ubuntu 6.8.0 安装xenomai3.3
选择与内核 6.8.0 匹配的 Dovetail 补丁。例如,如果你使用的是内核 6.8.0,可以尝试下载。对于 Xenomai 3.2.1,你需要下载对应的 Dovetail 补丁。通过以上步骤,你可以成功下载和编译带有 Xenomai 补丁的 Linux 内核 6.8.0。在编译好内核后,需要安装 Xenomai 的用户空间库。下载 Linux 内核 6.8.0 的源码。下载 Xenomai 3.2.1 的源码。: 在网站中找到内核 6.8.0 的下载链接。
2025-07-03 14:13:38
643
原创 【QT】ROS2 Humble联合使用QT教程
然后点击Next,如果点击Next没有反应的话,我们先点击Browse,然后立马cancel,这个路径不要改,退出来之后,我们就可以点击Next了,这可能是一个小bug。安装ROSProjectManager的主要流程参考官方给出的流程,官方地址在这里(ros_qtc_plugin),我们采用二进制安装更为方便。首先先安装相关的依赖。然后安装插件,注意这里是默认Qt Creator的安装路径为~/Qt/Tools/QtCreator,如果你的路径不是这里,请将下面语句-C后改为你自己的安装路径。
2025-07-02 22:48:06
376
原创 ubuntu 22.04 LTS 安装preempt-rt
PREEMPT-RT 内核与 NVIDIA 驱动可能不兼容,建议使用开源的 Nouveau 驱动。如果需要定制内核或使用特定版本的 PREEMPT-RT 补丁,可以手动编译。如果你不想使用 Ubuntu Pro,可以手动下载并安装预编译的实时内核。Ubuntu Pro 提供了官方支持的实时内核,安装过程较为简单且稳定。:重启后在 GRUB 菜单中选择新安装的实时内核启动。:重启后在 GRUB 菜单中选择新编译的实时内核启动。:重启后,在 GRUB 菜单中选择实时内核启动。
2025-07-02 20:46:17
644
原创 Ubuntu22+ROS2+QtCreator+Ros_Qtc_Plugin开发环境搭建
之前开发ROS1程序时一直用的QTC,我本以为QTC应该还没有对应的ROS2插件,没想到网上查找了一番发现ros_qtc_plugin早就支持ROS2了,现在把我配置环境的过程记录下来。② 本例QTC版本为10,则选择ros_qtc_plugin10版本,根据操作系统选择相应的zip文件进行下载。③ 点击install Plugin,选择刚才下载的ros_qtc_plugin的zip文件进行安装,如果QTC版本和ros_qtc_plugin不对应则会报错。本例使用清华源,也可以换成其他支持qt的镜像源。
2025-07-02 17:52:28
387
原创 x86 ubuntu preempt-rt 补丁
如果你的系统是 Ubuntu 22.04 LTS,以上步骤应该可以帮助你安装官方预编译的实时内核。如果你使用的是其他版本的 Ubuntu 或有其他特殊需求,可能需要采取不同的方法。网站,根据内核主版本号下载对应的 preempt-rt 补丁,如补丁 5.15.83-rt53 需对应 5.15.x 内核。:对于 Ubuntu 22.04 LTS,你可以直接安装官方预编译的实时内核。:安装实时内核后,持续监控系统的性能和稳定性,确保一切正常运行。:在进行任何内核更改之前,建议备份你的系统,以防出现问题。
2025-07-02 11:19:09
431
原创 preempt-rt 测试
例如,在隔离CPU中运行的测评结果中,周期延迟的最大值为17微秒,最小值为1微秒,平均值为1微秒,其中1~4微秒范围占了99.997326%,1~8微秒范围占了99.999969%它的工作原理是启动一个主线程,主线程会启动几个实时测量线程,这些线程会在设定的时间间隔后定期唤醒,记录预期和实际唤醒时间的时差,并将结果传递给主进程,测试结束后输出汇总结果。例如,在空载测试中,某系统的测试结果显示最大延迟为34微秒。:用于模拟系统负载的工具,通过模拟CPU、内存、I/O等多方面的压力,可以对系统进行压力测试。
2025-07-02 09:56:04
372
原创 qt5 安装
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。原文链接:https://blog.youkuaiyun.com/weixin_48560325/article/details/124373125。Ubuntu自带国外源;先判断 : clang -v。6、安装make-guile。4、安装 clang ++3、安装qtcreator。3、安装clang编译器。2、安装Qt的开发工具。1、判断gcc是否安装。2、判断g++是否安装。1、安装Qt5的组件。
2025-07-01 16:42:08
103
原创 安装 preempt_rt 实时内核
重启系统后,进入引导程序(如Grub)的引导加载器屏幕,选择新构建的Preempt_RT内核启动。下载与当前系统内核版本匹配的Linux内核源码文件和Preempt_RT补丁文件。在某些系统中,可能需要手动编辑Grub配置文件来设置默认启动的内核。将当前系统内核的配置文件复制到内核源码目录下,并重命名为。命令检查当前运行的内核版本,若版本号中包含。例如,若CPU有4个线程,可使用。命令安装编译内核所需的依赖软件。进入内核源码目录,并应用补丁。后缀,则说明实时内核安装成功。命令,进入内核配置菜单。
2025-06-25 13:41:56
296
原创 sudo cyclictest -l100000 -m -t5 -p99 -i1000 -h100 指令详解
直方图用于统计不同延迟范围内的发生次数,帮助分析系统的延迟分布情况。此参数限制了直方图记录的最大延迟值,超过该值的延迟将不会被记录在直方图中,但会在结果中显示为溢出(overflow)。如果指定了该选项但没有指定具体的线程数,则会创建与CPU核心数量相同的线程。在实时测试中,高优先级的线程可以优先获得CPU资源,从而更准确地测试系统的实时性能。这个参数定义了线程在每次唤醒之间的时间间隔,用于控制测试的频率。可以对系统的实时性能进行详细的测试和分析,帮助评估系统在不同负载和配置下的延迟表现。
2025-06-24 17:47:54
101
原创 Ubuntu 系统是否已安装 PREEMPT-RT 实时内核补丁
Ubuntu 22.04 LTS 及以上版本可通过 Ubuntu Pro 服务直接安装官方实时内核。:Ubuntu 22.04 LTS 是首个官方集成 PREEMPT-RT 补丁的版本,需确认系统版本是否支持。,则说明系统已通过 Ubuntu Pro 订阅启用了 PREEMPT-RT 内核。,但存在实时性能优化,可能是用户手动编译的内核,需进一步检查。),若数值在微秒级(如 <100μs),则表明实时内核生效。,则表明内核已启用实时抢占功能。),则说明系统已启用实时内核。:若内核版本号未明确标注。
2025-06-17 11:22:09
280
原创 xenomai3+linux构建linux实时操作系统-基于X86_64和arm
Xenomai是一个实时性解决方案,通过在Linux上添加实时内核Cobalt来增强实时性能。它有三个主要部分:libcobalt(用户空间实时库)、Cobalt(内核空间实时内核)和硬件架构特定层(ipipe-core或dovetail)。ipipe-core适用于Linux 5.4以下版本,而dovetail用于5.4及以上版本。本文介绍了在X86 Ubuntu环境下,如何编译Xenomai内核,搭建应用环境,包括配置、编译、安装和实时性测试。对于其他硬件架构,如ARM和ARM64,步骤类似。
2025-06-17 11:05:30
626
原创 Qt Creator 从入门到项目实战
Qt Creator 是一个跨平台的集成开发环境(IDE),专门用于开发 Qt 应用程序。它为开发者提供了一个强大的工具集,包括代码编辑器、调试器、UI 设计器以及性能分析工具等。Qt Creator 提供了一个直观的用户界面,其中包含了多种功能,以帮助开发者更高效地进行软件开发。信号和槽在 QObject 的子类中使用signal和slot关键字来定义。// 示例:定义信号和槽Q_OBJECTpublic:signals:Qt 提供了一套丰富的控件库,用于构建图形用户界面(GUI)。
2025-06-12 17:52:38
695
原创 udp 传输实时性测量
如果你熟悉编程,可以使用Python等编程语言编写自定义的UDP测试脚本。脚本可以模拟UDP客户端发送数据包,并验证服务器端的响应,以测试UDP的性能和可靠性。
2025-05-29 16:55:34
662
原创 Ubuntu22.04 安装Linux实时补丁preempt_rt
RT补丁:https://mirrors.edge.kernel.org/pub/linux/kernel/projects/rt/Linux内核:https://mirrors.edge.kernel.org/pub/linux/kernel/cp -v /boot/config-6.8.0-50-generic .config ##复制现有的内核配置文件。选择相近版本内核 linux-6.8.2以及内核相同版本补丁 patch-6.8.2-rt11。启动RT内核需下载linuxn内核源码和RT补丁。
2025-05-29 16:30:47
789
原创 Docker 挂载卷并保存为容器
docker commit 是一个非常方便的工具,可以快速将运行中的容器保存为一个新的镜像。如果你只是需要快速保存当前容器的状态,docker commit 是一个不错的选择。docker commit 创建的镜像仅包含当前容器的状态,不包含构建过程中的上下文信息(如 Dockerfile 中的指令)。在 Docker 中,你可以将运行中的容器保存为一个新的镜像,以便后续可以基于这个镜像快速创建新的容器。使用 docker commit 创建的镜像会包含容器的所有更改,包括文件系统的变化和运行时的状态。
2025-05-27 17:29:02
837
原创 doucker 挂载卷
v /path/to/host/workspace:/root/ros2_ws:将宿主机的 /path/to/host/workspace 目录挂载到容器的 /root/ros2_ws 目录。在 Docker 中,挂载卷(Volumes)是一种非常重要的功能,它允许你将宿主机的文件系统与容器的文件系统进行共享。-v /path/to/host:/path/to/container:将宿主机的 /path/to/host 目录挂载到容器的 /path/to/container 目录。
2025-05-27 17:05:58
776
原创 ssh 测试 是否可以连通docker 容器
docker inspect -f '{{range .NetworkSettings.Ports}}{{.HostPort}} -> {{.HostIp}}:{{.HostPort}}{{end}}' <容器名称或ID>docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' <容器名称或ID>如果一切配置正确,你应该能够成功连接到容器的 SSH 服务。确保容器的 IP 地址是正确的,并且网络设置没有问题。
2025-05-27 16:12:58
595
原创 mobaxterm通过ssh登录docker无图形界面
在Mobaxterm中配置SSH连接信息,包括IP地址、用户名和端口号。打开Mobaxterm,点击“Session” -> “SSH”,输入IP地址、用户名和端口号,然后保存配置。在Mobaxterm中使用SSH连接到Docker容器。通过上述步骤,你可以成功使用Mobaxterm通过SSH登录到无图形界面的Docker容器。4 在Mobaxterm中通过SSH连接到Docker容器。在Docker中启动一个容器,确保容器已经安装了SSH服务。# 通过SSH连接到Docker容器。
2025-05-27 15:53:42
448
原创 MobaXterm连接Docker Desktop中的容器(shell)
输入terminal启动命令:docker exec -it [你的容器] sh 即可。选择terminal shell类型,我选择的是powershell。
2025-05-27 15:43:33
531
原创 Docker+MobaXterm+x11实现容器UI界面转发本地
我们的需求是,可以直接通过ssh访问生成的ubuntu 18.04 container,因此需要将容器的ssh端口暴露到server的某个端口上,这样做有很多好处,最主要的是直接通过Xterm上传下载container中的文件,而不用使用docker cp命令,同时也可以支持x11转发UI界面。这里将容器的22端口转发给server的50002端口,以后直接ssh server:50002就可以直接进这个container。使用Dockerfile获取镜像,对应的文件内容如下。
2025-05-27 15:34:03
460
原创 Mobaxterm解锁Docker
Mobaxterm集成了多种终端功能,如X11转发、SFTP客户端、SSH客户端、Tunnelling、Telnet客户端等。它特别适合于远程登录服务器和进行远程开发工作。集成终端:提供Linux和Windows风格的终端,支持多个终端标签页。X11转发:允许用户在Windows系统上运行Linux应用程序。SFTP客户端:安全文件传输,支持SSH协议。SSH客户端:提供SSH连接,支持SSH密钥认证。Tunnelling:支持SSH隧道,用于安全地转发网络流量。
2025-05-27 15:31:06
707
原创 Mobaxterm 连接到 Docker 容器
输入容器内部的 SSH 端口,默认端口为 22。如果容器没有运行 SSH 服务,你将无法通过 SSH 连接。在“SSH 服务器”选项卡中,输入容器的 IP 地址或 localhost(如果使用端口映射)。如果容器使用了非默认的 SSH 端口,请确保在 Mobaxterm 中输入正确的端口号。在“用户认证”选项卡中,输入连接到 Docker 容器的用户名(如 root)和密码。如果容器的 SSH 端口未正确映射到宿主机,你可能需要重新启动容器并添加端口映射。步骤 3:在 Mobaxterm 中连接到容器。
2025-05-27 15:15:09
542
原创 UDP 传输时间(延迟)
iperf3 是一款功能强大的网络性能测试工具,支持 UDP 和 TCP 的带宽、延迟、丢包率等指标的测试。nping 是 Nmap 项目中的一个工具,可以用来发送自定义的 UDP 数据包并测量往返时间。通过上述工具和方法,你可以有效地测试 UDP 的传输时间(延迟)并分析网络性能。UDPping 会输出每个数据包的往返时间(RTT),并统计平均延迟和丢包率。UDPping 是一个轻量级的工具,专门用于测试 UDP 的延迟和丢包情况。nping 会输出每个数据包的往返时间(RTT),并统计平均延迟。
2025-05-27 13:24:33
495
原创 Unable to get end effector tips from jmg
这个错误通常是由于配置文件中缺少末端执行器信息,或者代码中使用了错误的关节模型组或末端执行器名称。按照上述步骤检查和修改配置文件和代码,应该可以解决问题。
2025-05-17 20:56:28
437
原创 MarkerArray 可视化工具
这段代码通过在Rviz中可视化了一些信息和轨迹。确保text_pose和等变量的值是合理的,并且与MoveIt中的关节组名称匹配。如果需要更灵活的用户交互,可以考虑使用其他方法替代。
2025-05-17 20:55:24
613
原创 【MoveIt 2】使用 MoveIt 任务构造器(MoveIt Task Constructor)进行拾取和放置
当您选择特定阶段时,成功和失败的解决方案列表将显示在最右侧的窗口中。选择其中一个解决方案将开始其可视化。
2025-05-14 19:08:37
884
原创 Ros2 - Moveit2 - DeepGrasp(深度抓握)
MoveIt 任务构造器包含一个生成器阶段。此阶段不直接包含 GPD 或 Dex-Net 的实现。相反,与 MoveIt 任务构造器的通信是通过 ROS 操作消息实现的。该阶段包含一个与操作服务器通信的操作客户端。操作服务器的实现位于moveit_task_constructor_dexnet和包中。操作服务器将抓取候选连同相关成本一起作为反馈发送回操作客户端。消息的相关字段可以在中看到使用阶段很简单。将下面的阶段添加到当前任务中。实现可以在中看到。模板参数是操作消息。指定。
2025-05-14 19:04:24
839
原创 PPO算法:一种先进的强化学习策略
PPO(Proximal Policy Optimization)是一种增强学习算法,主要应用于解决连续控制任务。PPO算法在2017年由OpenAI提出,旨在解决传统策略梯度方法在连续控制任务中面临的挑战。PPO算法通过引入一个近似目标函数和重要性采样,提高了策略更新的稳定性和效率。PPO算法是一种有效的增强学习算法,适用于解决连续控制任务。通过引入近似目标函数和重要性采样,PPO算法减小了策略更新的方差,提高了学习效果。
2025-05-14 18:58:36
183
原创 强化学习_PPO算法
state定义:比如说视觉就是一幅图像或者是一幅矩阵(模型的输入)action定义:交互后的反应,例如选择上下左右(模型的输出,反作用于模型的下个输入state)初步理解:如何得到state和action:比如以超级玛丽游戏为例子,由现在的图片(当前状态state)作为输入,来控制上下左右走的行动action,也就是输出奖励(reward)背景:我们前面提到了超级玛丽的例子,提到了不同的行动,但是并没有说明那种行为更好,因此我们在此处引入了奖励奖励(reward)定义。
2025-05-14 18:53:03
561
原创 笛卡尔路径规划
两点之间插值的算法有很多,简单起见,我们就采用直线插补,因为这里小鱼是从当前点向下运动30cm,所以姿态是不存在变化的,姿态的变化也有相应的插值算法,比如球面线性插值(将ompl支持的算法常用的都测试了下,可能因为参数调的不够好,最终效果都不太满意,关于如何调整moveit所使用的ompl算法,再搞一篇文章来讲。等,虽然都可以进行路径搜索,但并不能保证最终搜索出来的路径是我们想要的那种,比如这里小鱼让机械臂向下移30cm,结果机械臂饶了一圈。为什么路径和姿态那么奇怪,开始以为是姿态问题,毕竟用的求解器是。
2025-05-14 12:09:41
302
原创 MoveIt途经点过多导致轨迹规划失败如何优化
在使用MoveIt进行机器人轨迹规划时,途经点(Waypoints)过多是一个常见问题。途经点越多,计算复杂度越高,可能导致规划时间过长甚至失败。为解决这一问题,需要从简化途经点和优化约束条件两方面入手。
2025-05-14 12:05:28
364
原创 ubuntu22.04在 Docker容器中安装 ROS2-Humble
22.04 安装 docker 容器并实现rviz功能1命令拉取包含-Humble的镜像:d验证该镜像是否拉取成功。
2025-05-11 11:19:44
459
转载 Docker容器中安装 ROS2-Humble
volume=/dev/dri:/dev/dri:挂载卷,将宿主机的 /dev/dri 目录挂载到容器的相同路径,这个目录包含了 Direct Rendering Infrastructure (DRI) 设备文件,用于 GPU 硬件的直接访问。–volume=/tmp/.X11-unix:/tmp/.X11-unix:挂载卷,将宿主机的 /tmp/.X11-unix 目录挂载到容器的相同路径,这个目录包含了 X11 服务器的 UNIX 域套接字,用于图形界面的通信。
2025-05-11 05:46:58
199
原创 Docker容器中安装 ROS2-Humble 并使用 rviz
拉取完后创建容器,但是为了能在docker中能打开窗口,将使用以下参数,只需要修改名字即可,your_name 改成你想要的名字,必须英文。这两种创建的版本,哪个能用用哪个,参考在docker中进行RVIZ可视化。然后就可以运行容器啦,$containerId 换成容器名字也可以。运行下面这句,把 $containerId 替换为容器的 id。这个时候必然会报错,上步的目的是为了创建有对应参数的容器,解决主机无法访问和容器的共享文件夹的问题,这句在主机运行。此时进入容器了,再在容器里面运行这句。
2025-05-10 18:24:55
622
原创 RViz(机器人可视化工具)的配置文件(moveitcpp)
这里是配置文件中定义的各种显示内容,包括网格、规划场景、轨迹等。面板是RViz界面中的各个功能区域,用于显示和操作不同的数据。: 展开的属性树节点,这里列出了几个默认展开的节点,如。这是RViz的核心部分,用于管理所有显示的内容。这里是配置文件中定义的工具列表,用于操作和交互。分割窗口的比例,用于控制面板的布局。指定面板的类型,这里是显示面板。用于选择和操作场景中的对象。用于显示额外的可视化工具。帮助区域的高度(像素)。: 展开的工具属性节点,如。属性树的高度(像素)。显示当前工具的属性。
2025-05-05 18:00:42
897
转载 panda 物体抓取和放置
第一个阶段CurrentState也是一个生成阶段——为了连接第一个阶段和这个阶段,必须使用连接阶段,我们已经在上面创建了。然后,我们创建一个ComputeIK阶段并将我们的GeneratePlacePose阶段传递给它——其余的逻辑与抓取阶段相同。这个阶段是一个传播阶段,它接收相邻阶段的解决方案并传播到下一个或上一个阶段。
2025-04-29 04:47:59
45
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人