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

2019/02/21 22:15
阅读数 120

参考资料:

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

 

展开阅读全文
ros
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部