zoukankan      html  css  js  c++  java
  • 机器人操作系统入门(五)常用工具

    参考资料:

    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-<rosdistro>-rosbridge-server

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

    • moveit!的使用通过为用户提供接口来调用它,包括C++、Python、GUI三种接口
    • ROS中的 move_group 节点充当整合器,整合多个独立组件,提供ROS风格的Action和Service
    • move_group 通过ROS topic和action与机器人通讯,获取机器人的位置、节点等状态,获取数据再传递给机器人的控制器
    • move_group 节点获取到节点状态信息或者机器人变换信息时候,会通过控制器的接口去处理这些信息,比如进行坐标转换、规划场景、3D感知
    • move_group 的结构比较容易扩展,不仅具有独立的能力如抓放,运动规划,也可扩展自公共类,但实际作为独立的插件运行
  • 相关阅读:
    CSS边框(圆角、阴影、背景图片)
    CSS3浏览器兼容
    HTML5全局属性
    HTLM5新增属性
    HTML5标签
    如何开始使用bootstrap
    重新了解Java基础(三)-运行机制&HelloWorld
    重新了解Java基础(二)-Java的特性
    Java关键字之native
    重新了解Java基础(一)
  • 原文地址:https://www.cnblogs.com/hg-love-dfc/p/10413764.html
Copyright © 2011-2022 走看看