热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

机器人操作系统入门(五)常用工具

参考资料:https:www.icourse163.orgcourseISCAS-1002580008?tid1003713012中国大学MOOChttps:www.bi

参考资料:

https://www.icourse163.org/course/ISCAS-1002580008?tid=1003713012  //中国大学MOOC

https://www.bilibili.com/video/av23401751  //B站

《ROS操作系统入门讲义》PDF下载

链接:https://pan.baidu.com/s/1OCja2WLDRnjYXMrpnZ3-sQ 
提取码:mziy

第五章 常用工具

  • gazebo:ROS仿真工具  //目前最好
  • rviz:可视化消息  //呈现接收信息
  • rqt:数据流可视化工具  //直观查看消息的通信架构和流通路径
  • rosbag:记录和回放ROS话题  //不记录service
  • rosbridge:沟通ROS和外界的功能包
  • moveit!:开源操作软件  //目前应用最广泛

注:gazebo——仿真;rviz、rqt——调试和可视化

1. Gazebo:提供一个虚拟的世界  //与ROS一样,由OSRF维护

  • 机器人仿真工具、模拟器,独立的开源机器人仿真平台;
  • 与ROS兼容最好
  • 给机器人一个逼近现实的虚拟物理环境
  • 仿真一些不依赖于具体硬件的算法和场景,例如图像识别、传感器数据融合处理、路径规划、SLAM等任务

2. rviz:the robot visualization tool 机器人可视化工具  //呈现接收到的信息

  • 左侧的插件相当于一个个的subscriber,rviz接收消息,并显示

3. rqt:基于qt开发的可视化工具  //比rviz高级一个层次

(1)rqt_graph:显示通信架构,包括当前有哪些node(椭圆形)topic(矩形)在运行,消息的流向是怎样的  //不显示service

(2)rqt_plot:将参数以曲线的形式绘制出来  //有利于分析动态参数的变化态势

(3)rqt_console:配合过滤器 rqt_logger_level 进行日志的查看

4. rosbag:提高性能,并避免消息的反序列化和重新排序  //同时提供命令行工具代码API

  • rosbag对软件包来操作(一个包是ROS用于存储ROS消息数据的文件格式),rosbag命令可以记录、回放和操作包。指令列表如下:

5. rosbridge:用于得ros系统和其他系统交互的功能包  //“桥梁”作用

主要包含两部分:协议和实现

(1)协议protocol:提供了非ROS程序与ROS通信的具体的格式规范,规范基于JSON格式,包括订阅topic,发布message,调用server,设置参数,压缩消息等。

示例:订阅topic的格式规范

注:此规范与所用的编程语言和传输方式无关,任何可以发送JSON格式的语言和传输方式都可以rosbridge protocol进行交流,并且与ROS进行交互

(2)实现implementation:rosbridge_suite元程序包  //实现rosbridge protocol并提供WebSocket传输层的包的集

  • rosbridge_library:核心rosbridge软件包,负责获取JSON字符串并将命令发送到ROS,反过来接收处理ROS发过来的信息,将之转换为JSON字符串,并将结果转交给非ROS程序
  • rosapi:通过服务调用来访问某些ROS操作,这些服务通常为ROS客户端库保留的服务,包括获取和设置参数,获取主题列表等
  • rosbridge_server:提供传输层的WebSocket连接,使得浏览器可以与ROS“交谈”;roslibjs是一个浏览器的Javascript库,可以通过rosbridge_server与ROS进行交流

 (3)安装:sudo apt-get install ros--rosbridge-server

6. moveit!:在机器人上最广泛使用的开源操作软件

  • moveit!的使用通过为用户提供接口来调用它,包括C++、Python、GUI三种接口
  • ROS中的 move_group 节点充当整合器,整合多个独立组件,提供ROS风格的Action和Service
  • move_group 通过ROS topic和action与机器人通讯,获取机器人的位置、节点等状态,获取数据再传递给机器人的控制器
  • move_group 节点获取到节点状态信息或者机器人变换信息时候,会通过控制器的接口去处理这些信息,比如进行坐标转换、规划场景、3D感知
  • move_group 的结构比较容易扩展,不仅具有独立的能力如抓放,运动规划,也可扩展自公共类,但实际作为独立的插件运行

 


推荐阅读
  • 基于Net Core 3.0与Web API的前后端分离开发:Vue.js在前端的应用
    本文介绍了如何使用Net Core 3.0和Web API进行前后端分离开发,并重点探讨了Vue.js在前端的应用。后端采用MySQL数据库和EF Core框架进行数据操作,开发环境为Windows 10和Visual Studio 2019,MySQL服务器版本为8.0.16。文章详细描述了API项目的创建过程、启动步骤以及必要的插件安装,为开发者提供了一套完整的开发指南。 ... [详细]
  • 在ElasticStack日志监控系统中,Logstash编码插件自5.0版本起进行了重大改进。插件被独立拆分为gem包,每个插件可以单独进行更新和维护,无需依赖Logstash的整体升级。这不仅提高了系统的灵活性和可维护性,还简化了插件的管理和部署过程。本文将详细介绍这些编码插件的功能、配置方法,并通过实际生产环境中的应用案例,展示其在日志处理和监控中的高效性和可靠性。 ... [详细]
  • Python 3 Scrapy 框架执行流程详解
    本文详细介绍了如何在 Python 3 环境下安装和使用 Scrapy 框架,包括常用命令和执行流程。Scrapy 是一个强大的 Web 抓取框架,适用于数据挖掘、监控和自动化测试等多种场景。 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • Redis 脑裂现象及其应对策略
    本文探讨了 Redis 集群中的脑裂现象及其解决方案,包括脑裂的成因、影响以及如何通过配置项防止脑裂的发生。 ... [详细]
  • Linux CentOS 7 安装PostgreSQL 9.5.17 (源码编译)
    近日需要将PostgreSQL数据库从Windows中迁移到Linux中,LinuxCentOS7安装PostgreSQL9.5.17安装过程特此记录。安装环境&#x ... [详细]
  • MySQL 5.7 学习指南:SQLyog 中的主键、列属性和数据类型
    本文介绍了 MySQL 5.7 中主键(Primary Key)和自增(Auto-Increment)的概念,以及如何在 SQLyog 中设置这些属性。同时,还探讨了数据类型的分类和选择,以及列属性的设置方法。 ... [详细]
  • 从0到1搭建大数据平台
    从0到1搭建大数据平台 ... [详细]
  • 原文网址:https:www.cnblogs.comysoceanp7476379.html目录1、AOP什么?2、需求3、解决办法1:使用静态代理4 ... [详细]
  • 秒建一个后台管理系统?用这5个开源免费的Java项目就够了
    秒建一个后台管理系统?用这5个开源免费的Java项目就够了 ... [详细]
  • 在《Cocos2d-x学习笔记:基础概念解析与内存管理机制深入探讨》中,详细介绍了Cocos2d-x的基础概念,并深入分析了其内存管理机制。特别是针对Boost库引入的智能指针管理方法进行了详细的讲解,例如在处理鱼的运动过程中,可以通过编写自定义函数来动态计算角度变化,利用CallFunc回调机制实现高效的游戏逻辑控制。此外,文章还探讨了如何通过智能指针优化资源管理和避免内存泄漏,为开发者提供了实用的编程技巧和最佳实践。 ... [详细]
  • 深入解析Struts、Spring与Hibernate三大框架的面试要点与技巧 ... [详细]
  • 本文介绍了如何利用Shell脚本高效地部署MHA(MySQL High Availability)高可用集群。通过详细的脚本编写和配置示例,展示了自动化部署过程中的关键步骤和注意事项。该方法不仅简化了集群的部署流程,还提高了系统的稳定性和可用性。 ... [详细]
  • 本文深入探讨了NoSQL数据库的四大主要类型:键值对存储、文档存储、列式存储和图数据库。NoSQL(Not Only SQL)是指一系列非关系型数据库系统,它们不依赖于固定模式的数据存储方式,能够灵活处理大规模、高并发的数据需求。键值对存储适用于简单的数据结构;文档存储支持复杂的数据对象;列式存储优化了大数据量的读写性能;而图数据库则擅长处理复杂的关系网络。每种类型的NoSQL数据库都有其独特的优势和应用场景,本文将详细分析它们的特点及应用实例。 ... [详细]
  • Parallels Desktop for Mac 是一款功能强大的虚拟化软件,能够在不重启的情况下实现在同一台电脑上无缝切换和使用 Windows 和 macOS 系统中的各种应用程序。该软件不仅提供了高效稳定的性能,还支持多种高级功能,如拖放文件、共享剪贴板等,极大地提升了用户的生产力和使用体验。 ... [详细]
author-avatar
艾特PONYO
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有