最新消息:

rosbridge_suite入门教程-rosbridge_library代码解读

ROS1/一代机器人系统 少儿编程 1572浏览 0评论
rosbridge_suite教程

rosbridge_suite入门教程-rosbridge_library代码解读

说明:

  • 介绍rosbridge_library各文件及功能

代码目录结构:

├── CHANGELOG.rst
├── CMakeLists.txt
├── msg                                #定义消息
│   ├── Num.msg                        #定义数字消息
│   ├── TestChar.msg                   #定义字符消息
│   ├── TestDurationArray.msg          #定义Duration数组消息
│   ├── TestHeaderArray.msg            #定义Header数组消息
│   ├── TestHeader.msg                 #定义Header消息
│   ├── TestHeaderTwo.msg              #定义Header消息 
│   ├── TestTimeArray.msg              #定义Time数组消息
│   ├── TestUInt8FixedSizeArray16.msg  #定义Unit8[16]消息
│   └── TestUInt8.msg                  #定义Unit8[]消息
├── package.xml
├── setup.py                           #python安装脚本
├── src
│   └── rosbridge_library              #核心库
│       ├── capabilities               #功能包
│       │   ├── advertise.py           #执行话题的广播和取消
│       │   ├── advertise_service.py   #执行服务的广播
│       │   ├── call_service.py        #调用服务
│       │   ├── defragmentation.py     #对消息内容解析
│       │   ├── fragmentation.py       #对消息内容封装
│       │   ├── __init__.py            #声明为Python库
│       │   ├── publish.py             #发布话题
│       │   ├── service_response.py    #服务反馈处理
│       │   ├── subscribe.py           #订阅话题
│       │   └── unadvertise_service.py #取消服务广播
│       ├── capability.py
│       ├── __init__.py
│       ├── internal                  #内部功能实现
│       │   ├── exceptions.py         #异常处理
│       │   ├── __init__.py
│       │   ├── message_conversion.py #消息转换
│       │   ├── pngcompression.py     #图像压缩
│       │   ├── publishers.py         #跟踪使用特定发布者的客户端。提供用于发布消息和注册使用这个发布者的客户端的API
│       │   ├── ros_loader.py         #ros相关核心类导入
│       │   ├── services.py           #为特定的服务创建服务调用者,使用start()开启独立线程,或在线程中使用run()函数。
│       │   ├── subscribers.py        #管理和与ROS订阅服务器对象接口.单个订阅者在多个客户端之间共享
│       │   ├── subscription_modifiers.py #位于来自订阅的传入消息和传出消息之间发布方法,提供限制/缓冲功能.当参数改变时,处理程序可以转换到不同的类型的处理程序
│       │   └── topics.py             #发布者和订阅者共同的代码和异常处理  
│       ├── protocol.py               #单个客户端与ROS交互的接口.
│       ├── rosbridge_protocol.py     #继承protocol协议,初始化rosbridge功能列表
│       └── util
│           └── __init__.py
├── srv                               #服务定义
│   ├── AddTwoInts.srv                #
│   ├── SendBytes.srv                 #发送内容定义
│   ├── TestArrayRequest.srv
│   ├── TestEmpty.srv
│   ├── TestMultipleRequestFields.srv
│   ├── TestMultipleResponseFields.srv
│   ├── TestNestedService.srv
│   ├── TestRequestAndResponse.srv
│   ├── TestRequestOnly.srv
│   └── TestResponseOnly.srv
└── test                              #相关测试,包括核心功能,扩展功能,内部执行
    ├── capabilities
    │   ├── __init__.py
    │   ├── test_advertise.py
    │   ├── test_call_service.py
    │   ├── test_capabilities.test
    │   ├── test_publish.py
    │   └── test_subscribe.py
    ├── experimental
    │   ├── complex_srv+tcp
    │   │   ├── test_non-ros_service_client_complex-srv.py
    │   │   └── test_non-ros_service_server_complex-srv.py
    │   └── fragmentation+srv+tcp
    │       ├── test_non-ros_service_client_fragmented.py
    │       └── test_non-ros_service_server_fragmented.py
    ├── __init__.py
    ├── internal
    │   ├── __init__.py
    │   ├── publishers
    │   │   ├── __init__.py
    │   │   ├── test_multi_publisher.py
    │   │   ├── test_multi_unregistering.py
    │   │   ├── test_publisher_consistency_listener.py
    │   │   └── test_publisher_manager.py
    │   ├── subscribers
    │   │   ├── __init__.py
    │   │   ├── test_multi_subscriber.py
    │   │   ├── test_subscriber_manager.py
    │   │   └── test_subscription_modifiers.py
    │   ├── test_compression.py
    │   ├── test_internal.test
    │   ├── test_message_conversion.py
    │   ├── test_ros_loader.py
    │   └── test_services.py
    └── test_all.test
    

重要文件说明:

rosbridge_library/src/protocol.py

  • 单个客户端与ROS交互的接口.
  • 协议实例的生命周期如下:
    • 处理从客户端传入的消息
    • 发送处理后的消息到客户端
    • 客户端完成清除相关资源

rosbridge_library/test

  • python的单元测试目录
  • http://wiki.ros.org/unittest
  • http://wiki.ros.org/rostest

您必须 登录 才能发表评论!