当前位置: 首页 > news >正文

UGV Rover ROS2 语音控制平台;Python 调用 ROS2三种主流方式;

UGV Rover ROS2 语音控制平台

平台: Waveshare UGV Rover / Jetson Orin / ROS2 Humble / Docker

DockerROS2工具类应用

文档里太多命令控制实现了,整个工具类方便发命令控制
将所有容器内命令执行统一收口到DockerROS2工具类,main.py和mapping.py不再有重复的_CONTAINER、_ROS2_SOURCE定义。

Pythonclass DockerROS2:def run(cmd, timeout)        # 同步执行def run_bg(cmd)              # 后台执行,返回 Popen 句柄def run_async(cmd, timeout)  # 异步执行def node_running(node_name)  # 检查节点是否运行def shell(cmd, timeout)      # 返回 (returncode, output)

ros2服务列表

ros2服务列表:已启动当前所有运行中的节点的service接口,相当于查询机器人现在能做什么操作。只有节点启动后对应的服务才会出现。

查看当前运行的所有ROS2 节点

  • ros2的docker容器内部执行:
    ros2 service list
  • 宿主机执行:
docker exec -it ugv_jetson_ros_humble bash -i -c \"source /root/.bashrc && source /home/ws/ugv_ws/install/setup.bash && \ros2 node list"

Python 调用 ROS2三种主流方式;

三种主流方式:

  1. rclpy(官方推荐)
    直接在 Python 里初始化 ROS2 节点,发布 topic、调用 service,不需要任何中间层:
  • 优点:最直接,性能最好,官方支持
  • 缺点:必须在 ROS2 环境里运行,目前做了环境隔离所以条件不够
  1. rosbridge + websocket(现在用的)
    ROS2 节点通过 rosbridge 暴露 WebSocket 接口,任何语言都可以通过 JSON 协议控制:
  • 优点:语言无关,程序可以跑在容器外
  • 缺点:多一层转发,有延迟,复杂操作需要拼 JSON
  1. subprocess 调用命令行(现在用于启动节点)
  • 优点:简单直接,适合启动 launch 文件
  • 缺点:只适合启动/停止节点,不适合频繁的控制指令

rosbridge详解

rosbridge 能做的:

  • 发布 topic
  • 订阅 topic
  • 调用 service
  • 发送 action

rosbridge 不能做的:

  • ros2 launch xxx.launch.py
  • ros2 run xxx
  • 启动/关闭整个节点
    rosbridge本质上是一个已运行节点的代理,它把ROS2的通信接口转变成WebSocket,但它没有能力去启动新的进程。
http://www.jsqmd.com/news/982738/

相关文章:

  • K60微控制器时钟与ADC电气特性深度解析与高可靠性设计实践
  • 深度解析pkNX:专业级宝可梦Switch游戏ROM编辑与数据随机化工具
  • 嵌入式硬件工程师必读:Kinetis K11 MCU引脚配置与型号识别实战指南
  • 手把手复现中文对话机器人:LSTM Seq2Seq模型训练+推理全流程代码包
  • C++入门之string(一)
  • 2026年AI编程工具免费付费推荐榜单
  • i.MX 6UltraLite引脚分配与硬件设计实战指南
  • 2026年不做GEO优化,老板你将错失啥?
  • NoFences:5分钟彻底告别杂乱桌面,这款免费开源神器让Windows效率翻倍
  • gradle国内镜像地址
  • 如何在Windows上安装安卓应用?APK安装器的完整使用指南
  • ARM Cortex-M0+微控制器外设驱动与内存映射实战解析
  • 学术双审时代,paperxie 拆解论文降重与 AIGC 淡化的分层解决方案
  • 在上海回收黄金怕被坑?这五家靠谱门店精选推荐,附避坑指南 - 奢侈品回收评测
  • 如何利用BiliTools的AI视频总结功能实现3倍学习效率提升
  • 无线芯片功耗与射频性能实战解析:从数据手册到PCB设计
  • 猫抓浏览器扩展:一站式网页视频资源下载解决方案完全指南
  • 瑞芯微RV1126B开发板(EASY-EAI-PI2) WIFI STA
  • 阿里算法岗 0530笔试真题 - 多约束条件下的元素匹配统计
  • 企业级GB28181视频监控平台:构建统一安防系统的终极解决方案
  • 如何在Photoshop中直接使用Stable Diffusion?5分钟快速上手终极AI插件指南
  • 广州服装货源怎么找?AI穿搭教学+拿货避坑指南,这个穿搭博主藏了太多干货 - 资讯纵览
  • 西科大数电实验四:D/ JK/ RS触发器FPGA实现与Diamond波形仿真全套工程文件
  • 嵌入式系统设计:从数据手册到实战,解析KL82模拟外设与电气规格
  • Horizon RDS场实战:从安全策略配置到应用程序池权限管理的完整避坑指南
  • 客户投诉率降低95%!往复式洗车机如何赋能洗车连锁门店转型升级? - 资讯纵览
  • i.MX53引脚配置全解析:从数据手册到硬件设计的实战指南
  • 从零到精通:Draw.io Mermaid插件完全指南
  • 屈光发育档案:一个儿童视力数据追踪系统——以及它为什么比单次验光能提供更多判断依据
  • UniApp扫码功能商业化升级指南:如何像支付宝/微信一样‘秒扫’(基于mPaaS插件)