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 设计目标
- 分布式部署设计
- 仅在使用时在坐标系之间转换数据
- 支持对非当前时间戳的数据进行查询
- 只需知道坐标系的名称即可处理数据
- 系统不需要提前了解配置,可以实时重新配置
- 核心与ROS无关
- 线程安全接口
- 多机器人支持
- 原生数据类型接口
2.2 已知局限
tf_prefix
令人困惑且不直观- 图的方向可能会引起混淆
tf
消息无法很好地适应低带宽网络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