热门标签 | 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 的结构比较容易扩展,不仅具有独立的能力如抓放,运动规划,也可扩展自公共类,但实际作为独立的插件运行

 


推荐阅读
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • 本文介绍了PhysioNet网站提供的生理信号处理工具箱WFDB Toolbox for Matlab的安装和使用方法。通过下载并添加到Matlab路径中或直接在Matlab中输入相关内容,即可完成安装。该工具箱提供了一系列函数,可以方便地处理生理信号数据。详细的安装和使用方法可以参考本文内容。 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • Google Play推出全新的应用内评价API,帮助开发者获取更多优质用户反馈。用户每天在Google Play上发表数百万条评论,这有助于开发者了解用户喜好和改进需求。开发者可以选择在适当的时间请求用户撰写评论,以获得全面而有用的反馈。全新应用内评价功能让用户无需返回应用详情页面即可发表评论,提升用户体验。 ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • 本文介绍了Python语言程序设计中文件和数据格式化的操作,包括使用np.savetext保存文本文件,对文本文件和二进制文件进行统一的操作步骤,以及使用Numpy模块进行数据可视化编程的指南。同时还提供了一些关于Python的测试题。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 在使用Visual Studio 2019评估Blazor时,将taghelper添加到剃刀文件时会出现错误。错误信息是"标记助手:@addTagHelper *,BlazorPOC.Validations"。需要在文件顶部添加@using语句"@using BlazorPOC.Validations"来解决这个问题。 ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
  • 深入理解Kafka服务端请求队列中请求的处理
    本文深入分析了Kafka服务端请求队列中请求的处理过程,详细介绍了请求的封装和放入请求队列的过程,以及处理请求的线程池的创建和容量设置。通过场景分析、图示说明和源码分析,帮助读者更好地理解Kafka服务端的工作原理。 ... [详细]
  • Carve库在Visual Studio2015中的编译方法及注意事项
    本文介绍了在Visual Studio2015中编译Carve库的方法及注意事项。首先下载Carve库,并使用Visual Studio2015打开,生成后在bin目录下会生成.lib文件。同时,本文还指出了之前在Visual Studio2017中编译的问题,并提醒需要根据对应的平台进行编译,否则会出现报错。详细的步骤和注意事项请参考原文链接。 ... [详细]
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社区 版权所有