ROS程序设计系列 - 3.ROS Tools

news2024/10/24 13:26:20

ROS程序设计系列 - 3.ROS Tools

  • 1. 源由
  • 2. Trasformation System
    • 2.1 设计目标
    • 2.2 已知局限
    • 2.3 Transform Tree
    • 2.4 Tools
    • 2.5 RViz Plugin
    • 2.6 DEMO - Transform Listener
  • 3. rqt User Interface
    • 3.1 rqt plugins
    • 3.2 rqt_image_view
    • 3.3 rqt_multiplot
    • 3.4 rqt_graph
    • 3.5 rqt_console
    • 3.6 rqt_logger_level
  • 4. Robot Models (URDF)
  • 5. Simulation Descriptions (SDF)
  • 6. 视频课程

1. 源由

继续学习ROS编程,本章主要是一些工具面的介绍,做一个快速的介绍。

实际结合工作实例来理解会更加好,后续有机会,在进行补充吧。

2. Trasformation System

类似一个坐标记录服务,动态的实时记录每个需要记录坐标。但是要注意一个问题,就是消息系统最主要的问题就是时延,根据系统内部各个应用组件部署的不同,对于各个实体部件位置来说至少实在几十ms的延迟。

当然如果能有一些预测可能会适当增加精度。但是对于高精度要求的应用,比如:机床、刀具位置控制,还是建议使用实时操作系统会比较好。

正如在通信系统上面经常考虑的,控制面可以有延迟,但是数据面是有更高的实时要求,具体需要根据应用来决策。

在这里插入图片描述

2.1 设计目标

  1. 分布式部署设计
  2. 仅在使用时在坐标系之间转换数据
  3. 支持对非当前时间戳的数据进行查询
  4. 只需知道坐标系的名称即可处理数据
  5. 系统不需要提前了解配置,可以实时重新配置
  6. 核心与ROS无关
  7. 线程安全接口
  8. 多机器人支持
  9. 原生数据类型接口

在这里插入图片描述

2.2 已知局限

  1. tf_prefix 令人困惑且不直观
  2. 图的方向可能会引起混淆
  3. tf 消息无法很好地适应低带宽网络
  4. tf 不会保留长时间的历史记录

2.3 Transform Tree

在这里插入图片描述

2.4 Tools

在这里插入图片描述

2.5 RViz Plugin

在这里插入图片描述

2.6 DEMO - Transform Listener

在这里插入图片描述

3. rqt User Interface

基于QT开发的一个UI界面,提供各种Plugin来处理各自的应用问题。

在这里插入图片描述

3.1 rqt plugins

rqt组件有很多,根据需要可以考虑安装:

$ aptitude search ros-noetic-rqt
i   ros-noetic-rqt                                                              - rqt is a Qt-based framework for GUI development for ROS.
p   ros-noetic-rqt-action                                                       - rqt_action provides a feature to introspect all available ROS action (from actionlib)
p   ros-noetic-rqt-bag                                                          - rqt_bag provides a GUI plugin for displaying and replaying ROS bag files.
p   ros-noetic-rqt-bag-plugins                                                  - rqt_bag provides a GUI plugin for displaying and replaying ROS bag files.
p   ros-noetic-rqt-common-plugins                                               - rqt_common_plugins metapackage provides ROS backend graphical tools suite that can be
p   ros-noetic-rqt-console                                                      - rqt_console provides a GUI plugin for displaying and filtering ROS messages.
p   ros-noetic-rqt-controller-manager                                           - Graphical frontend for interacting with the controller manager.
p   ros-noetic-rqt-dep                                                          - rqt_dep provides a GUI plugin for visualizing the ROS dependency graph.
p   ros-noetic-rqt-drone-teleop                                                 - A common drone teleop interface for all drone exercises in the JdeRobot Robotics Acade
p   ros-noetic-rqt-ez-publisher                                                 - The rqt_ez_publisher package
p   ros-noetic-rqt-graph                                                        - rqt_graph provides a GUI plugin for visualizing the ROS computation graph.
p   ros-noetic-rqt-ground-robot-teleop                                          - A common ground robot teleop interface for all ground robot exercises in the JdeRobot
i A ros-noetic-rqt-gui                                                          - rqt_gui provides the main to start an instance of the ROS integrated graphical user in
i A ros-noetic-rqt-gui-cpp                                                      - rqt_gui_cpp enables GUI plugins to use the C++ client library for ROS.
p   ros-noetic-rqt-gui-cpp-dbgsym                                               - debug symbols for ros-noetic-rqt-gui-cpp
i A ros-noetic-rqt-gui-py                                                       - rqt_gui_py enables GUI plugins to use the Python client library for ROS.
p   ros-noetic-rqt-human-radar                                                  - A radar-like visualization for humans in the scene, representing their position, orien
p   ros-noetic-rqt-human-radar-dbgsym                                           - debug symbols for ros-noetic-rqt-human-radar
p   ros-noetic-rqt-image-view                                                   - rqt_image_view provides a GUI plugin for displaying images using image_transport.
p   ros-noetic-rqt-image-view-dbgsym                                            - debug symbols for ros-noetic-rqt-image-view
p   ros-noetic-rqt-joint-trajectory-controller                                  - Graphical frontend for interacting with joint_trajectory_controller instances.
p   ros-noetic-rqt-launch                                                       - This rqt plugin ROS package provides easy view of .launch files.
p   ros-noetic-rqt-logger-level                                                 - rqt_logger_level provides a GUI plugin for configuring the logger level of ROS nodes.
p   ros-noetic-rqt-moveit                                                       - An rqt-based tool that assists monitoring tasks for MoveIt! motion planner developers
p   ros-noetic-rqt-msg                                                          - A Python GUI plugin for introspecting available ROS message types.
p   ros-noetic-rqt-multiplot                                                    - rqt_multiplot provides a GUI plugin for visualizing numeric values in multiple 2D plot
p   ros-noetic-rqt-multiplot-dbgsym                                             - debug symbols for ros-noetic-rqt-multiplot
p   ros-noetic-rqt-nav-view                                                     - rqt_nav_view provides a gui for viewing navigation maps and paths.
p   ros-noetic-rqt-plot                                                         - rqt_plot provides a GUI plugin visualizing numeric values in a 2D plot using different
p   ros-noetic-rqt-pose-view                                                    - rqt_pose_view provides a GUI plugin for visualizing 3D poses.
p   ros-noetic-rqt-pr2-dashboard                                                - rqt_pr2_dashboard is a GUI for debugging and controlling low-level state of the PR2.
p   ros-noetic-rqt-publisher                                                    - rqt_publisher provides a GUI plugin for publishing arbitrary messages with fixed or co
p   ros-noetic-rqt-py-common                                                    - rqt_py_common provides common functionality for rqt plugins written in Python.
p   ros-noetic-rqt-py-console                                                   - rqt_py_console is a Python GUI plugin providing an interactive Python console.
p   ros-noetic-rqt-py-trees                                                     - rqt_py_trees provides a GUI plugin for visualizing py_trees behaviour trees based on r
p   ros-noetic-rqt-reconfigure                                                  - This rqt plugin succeeds former dynamic_reconfigure's GUI (reconfigure_gui), and provi
p   ros-noetic-rqt-robot-dashboard                                              - rqt_robot_dashboard provides an infrastructure for building robot dashboard plugins in
p   ros-noetic-rqt-robot-monitor                                                - rqt_robot_monitor displays diagnostics_agg topics messages that are published by diagn
p   ros-noetic-rqt-robot-plugins                                                - Metapackage of rqt plugins that are particularly used with robots during its operation
p   ros-noetic-rqt-robot-steering                                               - rqt_robot_steering provides a GUI plugin for steering a robot using Twist messages.
p   ros-noetic-rqt-rosbag-fancy                                                 - rqt GUI for rosbag_fancy
p   ros-noetic-rqt-rosbag-fancy-dbgsym                                          - debug symbols for ros-noetic-rqt-rosbag-fancy
p   ros-noetic-rqt-rosmon                                                       - rqt GUI for rosmon, the node launcher and monitor for ROS.
p   ros-noetic-rqt-rosmon-dbgsym                                                - debug symbols for ros-noetic-rqt-rosmon
p   ros-noetic-rqt-runtime-monitor                                              - rqt_runtime_monitor provides a GUI plugin viewing DiagnosticsArray messages.
p   ros-noetic-rqt-rviz                                                         - rqt_rviz provides a GUI plugin embedding RViz.
p   ros-noetic-rqt-rviz-dbgsym                                                  - debug symbols for ros-noetic-rqt-rviz
p   ros-noetic-rqt-service-caller                                               - rqt_service_caller provides a GUI plugin for calling arbitrary services.
p   ros-noetic-rqt-shell                                                        - rqt_shell is a Python GUI plugin providing an interactive shell.
p   ros-noetic-rqt-srv                                                          - A Python GUI plugin for introspecting available ROS message types.
p   ros-noetic-rqt-tf-tree                                                      - rqt_tf_tree provides a GUI plugin for visualizing the ROS TF frame tree.
p   ros-noetic-rqt-top                                                          - RQT plugin for monitoring ROS processes.
p   ros-noetic-rqt-topic                                                        - rqt_topic provides a GUI plugin for displaying debug information about ROS topics incl
p   ros-noetic-rqt-web                                                          - rqt_web is a simple web content viewer for rqt.

3.2 rqt_image_view

$ sudo apt-get install ros-noetic-rqt-image-view

//dependant camera package
$ sudo apt-get install ros-noetic-libuvc-camera
$ sudo apt-get install ros-noetic-cv-camera
$ sudo apt-get install ros-noetic-usb-cam
$ sudo apt-get install ros-noetic-camera-calibration

目前,gstreamer确实存在一些问题,有知道的朋友可以评论告诉我。

  • Can’t access video WebGUI #234
  • Rosrun cv_camera_node failed with GStreamer

在这里插入图片描述

3.3 rqt_multiplot

$ sudo apt-get install ros-noetic-rqt-multiplot

在这里插入图片描述

3.4 rqt_graph

$ sudo apt-get install ros-noetic-rqt-graph

在这里插入图片描述

3.5 rqt_console

$ sudo apt-get install ros-noetic-rqt-console

3.6 rqt_logger_level

$ sudo apt-get install ros-noetic-rqt-logger-level

在这里插入图片描述

4. Robot Models (URDF)

这个模型描述文件,没有实例估计更加难理解,暂时先过下,知道有个大概,后续我们有实例的时候,进一步介绍。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5. Simulation Descriptions (SDF)

略。

在这里插入图片描述

6. 视频课程

Programming for Robotics, Lecture 3 Programming for ROS A

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1842858.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

「Python-docx 专栏」docx 设置页面边距、页眉页脚高度

本文目录 前言一、docx 页面边距在哪里二、对 <w:pgMar> 的详细说明1、上边距的说明2、右边距的说明3、下边距的说明4、左边距的说明5、页眉高度的说明6、页脚高度的说明三、设置 docx 页边距、页眉页脚高度1、完整代码2、代码执行效果图四、补充一些内容1、页面边距的两…

【廉颇老矣,尚能饭否】传统的数据仓库是否还能发挥作用?

引言&#xff1a;随着数字化转型的深入和大数据技术的发展&#xff0c;大数据平台、数据中台和和数据湖技术不断涌现&#xff0c;给人感觉传统的数据仓库技术已经过时&#xff0c;廉颇老矣&#xff0c;不能应对新的挑战&#xff0c;在数字化转型中&#xff0c;不能发挥重要作用…

AMD vs NVIDIA:渲染领域的显卡之争

在数字创意与设计的世界里&#xff0c;显卡作为图形处理的核心&#xff0c;其性能与兼容性直接关系到创作者的工作效率与作品质量。AMD与NVIDIA&#xff0c;作为两大显卡巨头&#xff0c;各自在渲染领域拥有独特的技术与优势。那么&#xff0c;针对渲染而言&#xff0c;哪种显卡…

土地财政新变化——从最近的“退出政府融资平台”说起

我国城投领域最早的名单可以追溯到2010年&#xff08;原&#xff09;银监会建立的地方投融资平台名单。2010年开始&#xff0c;监管部门着手对地方城投平台进行整顿和规范&#xff0c;地方城投平台融资迎来第一个缩紧周期。根据《国务院关于加强地方政府融资平台工作管理有关问…

iptables(2)安装及规则查询

安装iptables 我是用的系统是debian 12,目前没有安装iptables。 防火墙已经安装完成了 iptables 的配置语法 iptables (选项) (参数) # 通用匹配:源地址目标地址的匹配 -p:指定要匹配的数据包协议类型 -s, --source [!] address[/mask] :把指定的一个/一组地址作为源地…

神经网络学习-池化层

池化层方法 池化一般是用来对卷积层进行降维 空洞卷积&#xff0c;通过在卷积核的元素之间插入“空洞”&#xff08;即零&#xff09;&#xff0c;可以在不增加参数量和计算量的情况下扩大卷积核的感受野。这对于捕捉图像中的多尺度信息特别有用。 池化的默认步长是池化核的大…

【网络安全的神秘世界】文件上传、JBOSS、Struct漏洞复现

&#x1f31d;博客主页&#xff1a;泥菩萨 &#x1f496;专栏&#xff1a;Linux探索之旅 | 网络安全的神秘世界 | 专接本 | 每天学会一个渗透测试工具 攻防环境搭建及漏洞原理学习 Kali安装docker 安装教程 PHP攻防环境搭建 中间件介绍 介于应用系统和系统软件之间的软件。…

设计软件有哪些?景观插件篇,渲染100邀请码1a12

建立大型景观也是设计师常用的设计方法&#xff0c;我们介绍一些景观插件。 1、AutoGrass AutoGrass是用于快速生成逼真的草地和植被场景的3ds Max插件&#xff0c;它提供了大量的草地预设和工具&#xff0c;使用户能够轻松地创建各种各样的草地效果&#xff0c;包括草地、草…

程序员必须知道!Serverless超强打造国产BAAS

在当今快节奏的软件开发领域&#xff0c;懒人开发者和独立开发者们一直在寻找能够简化开发流程、提高效率的利器。而今&#xff0c;MemFire Cloud以其强大的功能和简便的操作&#xff0c;成为了解决方案中的明星。无需搭建服务&#xff0c;无需开发API接口&#xff0c;你甚至可…

开源技术:在线教育系统源码及教育培训APP开发指南

本篇文章&#xff0c;小编将探讨如何利用开源技术开发在线教育系统及教育培训APP&#xff0c;旨在为有志于此的开发者提供全面的指导和实践建议。 一、在线教育系统的基本构架 1.1架构设计 包括前端、后端和数据库三个主要部分。 1.2前端技术 在前端开发中&#xff0c;HTML…

【论文速读】| 超越随机输入:一种基于机器学习的新型硬件模糊测试方法

本次分享论文&#xff1a;Beyond Random Inputs: A Novel ML-Based Hardware Fuzzing 基本信息 原文作者&#xff1a;Mohamadreza Rostami, Marco Chilese, Shaza Zeitouni, Rahul Kande, Jeyavijayan Rajendran, Ahmad-Reza Sadeghi 作者单位&#xff1a;Technical Univers…

NXP实战笔记(十四):32K3xx基于RTD-SDK在S32DS实现HSE的安装。

目录 1、概述 1.1、什么是HSE&#xff1f; 1.2、如何实现HSE的OTA功能 1.3、S32K3放置HSE的地址 2、通过调试器安装HSE 3、通过IVT方式安装HSE 4、坑点慎重踩 4.1、优化等级 4.2、Flash放RAM 4.3、C40_Ip配置更改 4.4、程序烧录 5、测试结果 6、代码链接 1、概述 首…

IngsollRang模块化控制器上电无显示维修

英格索兰模块化控制器是工业领域的重要设备&#xff0c;在许多工业生产过程中起着关键的控制作用。然而&#xff0c;当出现IngsollRang控制器上电无显示故障时&#xff0c;不仅会影响生产进度&#xff0c;还可能带来安全隐患。 一、IngsollRang模块化控制器故障诊断 1. 检查电源…

JAVA语言开发的一套(智慧工地监管系统源码)让工地变得更加“聪明”

JAVA语言开发的一套&#xff08;智慧工地监管系统源码&#xff09;让工地变得更加“聪明” 数字智慧工地是指利用物联网、大数据、云计算、人工智能等先进技术&#xff0c;对工地进行全面数字化改造和智能化升级&#xff0c;实现工地管理的精细化、高效化和智能化。它通过实时…

最新版Cisco Packet Tracer思科模拟器Windows版本64位下载

Cisco Packet Tracer是思科公司推出的一款网络仿真工具&#xff0c;主要用于网络教学、培训和实验。它提供了一个真实的网络环境模拟平台&#xff0c;让用户可以设计、构建和调试网络&#xff0c;以及进行实时互动&#xff0c;从而帮助用户理解和实践网络技术。 通过 Cisco Pa…

律所优选管理软件排名:Alpha法律智能操作系统领先行业

面对庞大复杂的管理体量&#xff0c;律所一体化建设面临的首要问题便是信息化系统的建设与应用&#xff0c;即统一管理平台的问题。Alpha法律智能操作系统集法律大数据、律所管理、人工智能于一体&#xff0c;从业务、人员、信息三个板块最大限度支持律所数字化建设&#xff0c…

双通道-程控绝缘测试电阻箱的性能

双通道-程控绝缘测试电阻箱是高精度、高性能的电气测量设备&#xff0c;广泛应用于电力系统、电气设备、电子设备等领域。采用先进的数字式电阻测量技术&#xff0c;具有高精度、高稳定性的测量性能。其测量误差小于0.05%&#xff0c;能够满足各种精密测量的需求。 双通道-程控…

Java实现数字替代功能:卡码网54替换数字实践案例

Java实现数字替代功能&#xff1a;卡码网54替换数字实践案例 引言 在编程实践中&#xff0c;我们经常需要对数字进行特定的替代处理&#xff0c;以满足不同的业务需求。本文将介绍如何在Java中实现一个简单的数字替代功能&#xff0c;以卡码网54上的一个替换数字实际案例为例…

git merge(3个模式) 与 git rebase 图文详解区别

目录 1 git merge1.1 模式一&#xff1a;fast-forward(–ff)1.2 模式二&#xff1a;non-Fast-forward(–no-ff)1.3 模式三&#xff1a;fast-forward only(–ff-only) 2 git rebase3 区别 1 git merge git merge有好几种不同的模式 默认情况下你直接使用 git merge 命令&#x…

PHP调用阿里云OSS的SDK封装成服务的完整指南与问题解决

在现代Web开发中&#xff0c;使用云存储来管理和存储大量的静态文件已经成为常态。阿里云OSS&#xff08;对象存储服务&#xff09;是其中一个非常受欢迎的选择。在这篇文章中&#xff0c;我们将详细讲解如何在PHP项目中集成并使用阿里云OSS SDK。 #### 一、前期准备 在开始之…