Giter Site home page Giter Site logo

ros2 / rosbridge_suite Goto Github PK

View Code? Open in Web Editor NEW

This project forked from robotwebtools/rosbridge_suite

2.0 2.0 1.0 2.26 MB

Server Implementations of the rosbridge v2 Protocol

Home Page: http://robotwebtools.org/

License: Other

CMake 0.69% Python 99.31%

rosbridge_suite's Introduction

rosbridge_suite's People

Contributors

adolfo-rt avatar baalexander avatar behery avatar bennyre avatar dabertram avatar dirk-thomas avatar dlu avatar dwlee avatar fmessmer avatar garfonso avatar gyeates avatar jihoonl avatar jonathanmace avatar jonbinney avatar kiloreux avatar ledmonster avatar marcoarruda avatar mgruhler avatar mvollrath avatar otl avatar pro avatar rayman avatar rctoris avatar sanic avatar sevenbitbyte avatar syrnick avatar t045t avatar theclearpathdash avatar wh-0501 avatar xuhao1 avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

aws-ros-dev

rosbridge_suite's Issues

[ROS2 Port] Rosbridge_library package

Rosbridge core library. Internal python packages:

  • Capabilities: Mostly dependencies on Internal and util packages.
    • Rospy rependency in advertise_service.
  • Internal:
    • General dependencies on rospy (parameters, rostime, logs).
    • Dependency on roslib in message_conversion is not used; it can be removed.
    • Publishers.py:
      • Needs rospy.Publisher (straightforward)
      • Depends on rospy.SubscribeListener. This is used to avoid losing messages when publishing before subscribers have set up connections; might be solved using a proper QoS settings.
      • Depends on rostopic.get_topic_type.
    • Ros_loader.py:
      • Remove dependency on rospy
      • Needs roslib.launcher to import specific types→ maybe this can be replaced with ros2pkg. Note: This is used by rosapi package as well.
    • Services.py:
      • Needs services and resolve_name from rospy.
      • Needs rosservice.get_service_type (also used by rosapi).
    • Subscribers.py:
      • Needs rospy.Subscriber and logging (straightforward).
      • Needs rostopic.get_topic_type (also needed by rosapi).
  • Util: Nothing to be done here.

[ROS2 Port] Rosapi package

This package exposes several ROS services that require some dependencies to fulfill the requests. They are listed below, separated in categories [ROS1 package and module used in brackets]:

  • Services requiring introspection over ROS system (as in rosservice, rostopic, etc). This functionality should be found in ros2cli:
    • Topics: active topics in system [rosgraph.masterapi] → ros2topic.api.get_topic_names.
    • Topics_for_type: list of topics of a given type [rosservice.get_topic_type].
    • Services: list of services being advertised [rosservice.get_service_list.
    • Services_for_type: services that are publishing a given type [rosservice.rosservice_find].
    • Nodes: List of all registered nodes [rosnode.get_node_names].
    • Node_details: Returns node description (subscriptions, publications, services) [rosgraph.masterapi].
    • Action_servers: List of action servers [same as Topics service, nothing new].
    • Topic_type: returns the type of a given topic [rostopic.get_topic_type].
    • Service_type: returns the type of a given service [rosservice.get_service_type].
    • Publishers: returns list of node names publishing to a given topic [rosgraph.masterapi].
    • Subscribers: returns list of node names subscribing to a given topic [rosgraph.masterapi].
    • Service_providers: returns a list of node names that are advertising a service with the specified type [rosgraph.masterapi].
    • Service_node: returns name of the node providing a given service [rosservice.get_service_node].
    • Service_host: returns the name of the machine that is hosting the given service [rosservice.get_service_uri].
  • Services depending on roslib via rosbridge_library.internal (roslib.launcher.load_manifest, which internally depends on RosPack):
    • Message_details: returns typedef for a message type.
    • Service_request_details: returns typedef for a service request type.
    • Service_response_details: returns typedef for a service response type.
  • Parameter handling services; needs parameter adaptation to ROS2 (parameters are associated to nodes in ROS2 as opposed to ROS1, which may result in slight changes wrt. current API):
    • Set_param
    • Get_param
    • Has_param
    • Search_param
    • Delete_param
    • Get_param_names
  • Misc
    • Get_time: equivalent to rospy.get_rostime().

The idea to start with is to depend on packages in ros2cli repository and make use of its functionality as it is (mainly inside api python packages). As a second step, one possibility would be to refactor ros2cli (repository) a bit to extract the functionality to be reused here from the command line part of the code (i.e. don't depend on ros2cli package itself). This shall be analyzed throughout the implementation.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.