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

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确实存在一些问题,有知道的朋友可以评论告诉我。

在这里插入图片描述

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

  • 13
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值