《机器人实践开发①:Foxglove 开发环境完整搭建指南(含常见坑位) 》

《机器人实践开发①:Foxglove 开发环境完整搭建指南(含常见坑位) 》

导语:

在机器人项目中,调试工具往往比算法本身更耗时间。Foxglove 作为新一代机器人可视化平台,提供了强大的话题订阅、视频显示、3D 展示和日志分析能力。本篇从零开始,手把手带你完成 Foxglove 的环境搭建,包含依赖安装、连接配置以及常见踩坑点。

《机器人实践开发》系列文章索引

《机器人实践开发①:Foxglove 开发环境完整搭建指南(含常见坑位)》

《机器人实践开发②:Foxglove 嵌入式移植 + CMake 集成》

《机器人实践开发③:Foxglove可视化机器人的眼睛-视频》

《机器人实践开发④:Foxglove可视化机器人的耳朵-声音》

《机器人实践开发⑤:Foxglove可视化机器人的3D显示》

《机器人实践开发⑥:Foxglove可视化机器人传感器数据》

《机器人实践开发⑦:Foxglove可视化机器人的日志显示》

《机器人实践开发⑧:Foxglove可视化机器人的地图显示》

《机器人实践开发⑨:Foxglove可视化机器人的MyBag 数据回放》


foxglove 官网

Foxglove 是一个专为机器人团队打造的平台,用于收集、分析和学习构建、训练、部署和操作可靠机器人所需的大量多模态数据。

foxglove_Home_hero_2024_new

foxglove 安装

在这里插入图片描述

ubuntu运行foxglove_bridge完成

echo "start run foxglove ... ... " killall -9 foxglove_bridge ros2 launch foxglove_bridge foxglove_bridge_launch.xml port:=8765

Ros 运行仿真测试程序

在这里插入图片描述

运行 macOS 上面的Foxglove studio,设置远程连接的地址:

在这里插入图片描述


在这里插入图片描述

控制面板设置-主题是否可见

在这里插入图片描述

web网页端也可以使用

注意:webs 没有 ssl 所以chrome 认为不安全,需要网页加载脚本

选择设置面板

在这里插入图片描述

友情提示🔔

🙏 感谢你的阅读!
如果这篇文章对你有所启发,欢迎关注我 ⭐,欢迎点击 “打赏支持作者” 支持一下我,你的支持是我持续创作的最大动力!
我会持续分享更多关于 智能摄像头 📷、机器人实践、 🤖音视频 RTC 🎧、App 开发 📱、嵌入式开发 🔧 等方向的实战经验,让你更快落地、更少踩坑。
欢迎浏览我其他文章 📚,或许能解决你当前的难题。
如果你正好在做相关项目产品,也欢迎随时私信我,一起技术交流、一起搞事情! 🤝💬📞 联系微信/电话:13826173658

Read more

JavaScript 事件循环(Event Loop)

JavaScript 事件循环(Event Loop)

JavaScript 事件循环(Event Loop) * 什么是事件循环? * 核心概念 * 1. 调用栈(Call Stack) * 2. 任务队列(Task Queue) * 3. 执行顺序 * 初等难度练习题 * 解题顺序 * 中等难度练习题 * 题目要求 * 答案解析 * 详细执行过程 * 关键点总结 * 实际应用场景 * 1. 优化性能 * 2. 确保执行顺序 * 3. 避免阻塞 * 常见面试问题 * 参考资源 什么是事件循环? 事件循环是JavaScript实现异步编程的核心机制。JavaScript是单线程语言,通过事件循环来处理异步操作,避免阻塞主线程。 详解: JavaScript 在设计之初便是单线程,即指程序运行时,只有一个线程存在,同一时间只能做一件事。 为什么要这么设计,跟JavaScript的应用场景有关 JavaScript 初期作为一门浏览器脚本语言,通常用于操作 DOM ,如果是多线程,

By Ne0inhk

在 Windows 上实现多 JDK 快速切换方案

在 Windows 系统中管理多个 JDK 版本时,手动修改环境变量效率较低。本文介绍一种通过 .bat批处理脚本结合 JAVA_HOME 变量联动机制实现一键切换 JDK 的高效方法。觉得文章冗余,不利于快速解决问题,可将本文提供给AI总结处理,快速且高效 该方案的核心思想是:利用系统环境变量 %JAVA_HOME% 的动态指向,配合批处理脚本自动修改其值,从而快速切换不同版本的 JDK。 第一步:调整环境变量顺序(关键) 为了确保 %JAVA_HOME% 能正确生效并被优先识别,必须将其路径设置为环境变量中的第一个条目。 操作步骤: 1. 打开“环境变量编辑窗口”(可通过“此电脑 → 属性 → 高级系统设置 → 环境变量”进入)。 2. 在“系统变量”区域找到 Path 变量,点击“

By Ne0inhk
Java 2026年面试总结(持续更新)

Java 2026年面试总结(持续更新)

1.自我介绍简单一点吧,把自己的情况说清楚,一两分钟即可。 2.微服务的组件 答:微服务是把一个类似单体项目根据某种维度进行拆分,比如根据功能模块进行拆分。 拆分之后,具备了更好的抗压性/扩展性,还可以更好的解耦,但是维护相比之前会更麻烦了 常用的组件有Spring Cloud。其中里面有: Nacos:用来做注册中心/配置中心 Gateway:用来做网关 Hystrx:做限流、熔断、降级 Dubbo:做服务间的调用 Feign:也是服务间的调用 3.mq的运用 答:本项目中是用作削峰和解耦。 4.项目的并发量 5.机器搭建 6.团队的规模 7.查询优化 答:索引 8.spring的知识点 9.@resource/@Autowired区别 答:

By Ne0inhk
JavaSE基础-Java String不可变性深度解析

JavaSE基础-Java String不可变性深度解析

目录 Java String 不可变性(Immutability)深度解析 一、核心原因详解 1. 字符串常量池(String Pool)—— 内存共享的基础 精简版 详细版 2. 安全性(Security)—— 防止被恶意篡改 精简版 详细版 3. 线程安全(Thread Safety)—— 天然的不可变对象 精简版 详细版 4. 适合作为 HashMap 的 Key —— hashCode 缓存 精简版 详细版 5. 缓存 hashCode —— 提升性能 二、不可变对象的一般性好处(扩展) 三、一句话总结 高频修改场景的核心矛盾:不可变性带来的 GC 压力

By Ne0inhk