rosbridge_suite入门教程-rosbridge_library代码解读
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
获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号