-
Notifications
You must be signed in to change notification settings - Fork 68
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Client library that fully support ROS 2 #148
Comments
Hi @threeal thanks for your suggestion! Indeed, the roslibjs cannot fully support all the features rclnodejs offers, which is a Node.js client of ROS2. Because there are some new concepts/params in ROS2, meanwhile, some ROS1 concepts/params are deprecated. Date back to the beta stage of ROS2, it was about 3 years ago. Our initial aim of this project was to be compatible with roslibjs by adopting the rosbridge v2 protocol, thus developers could migrate their apps to ROS1 smoothly. Along with the development of ROS2 during the past 3 years, it seems that the roslibjs is not enough to expose the capabilities of ROS2. We should have implemented a specific version of roslibjs for ROS2 only and extended the rosbridge protocol as you suggested. The fact is that we have limited resources now, we need to implement a new protocol and the frond-end JS library if we want to resolve these current problems. So we may need more developers together to achieve this goal 😄 |
I could help to create a new front-end JS library that could support ROS 2. As the roslibjs already support some of the feature in the ROS 2, I considered we could create a library that wrap the roslibjs library to be compatible with ROS 2 for now. This will make the roslibjs could still be used in ros2-web-bridge without modifying the protocol, and we would have another library that could use some of the feature in ROS 2 that is not supported by the roslibjs. but where to start? should it be part of the RobotWebTools project or i created it in my own repository? |
That's great and thanks for your support! Some suggestions and ideas
I'm not sure we should wrap the current roslibjs, I prefer we could extend/change the interfaces/parameters.
Yes, this should be part of RWT project and I reckon we can divide the whole work into two parts:
My question is how we deal with the rosbridge v2 protocol, shall we upgrade it to rosbridge v3 protocol (meaning for ROS2)? How do you think @threeal? Also, I'd like to listen to @jihoonl's suggestions, thanks! |
Should we extend the For rosbridge v3 protocol, i think we could look at how |
Oh, I misunderstood the "wrap" you mentioned and we'd better keep the interfaces as the current ones if possible. "extend" means that we could expose new interfaces to the web developers to extend the current scope of roslibjs.
|
So is someone making a ROS2 client side JS library? |
You may find more information RobotWebTools/rosbridge_suite#345 and https://github.com/RobotWebTools/rosbridge_suite/issues?q=ros2 |
Feature Request
Feature Description
The ros2-web-bridge currently only support roslibjs as the clients library that communicates with it. The good things is they both use the same rosbridge v2 protocol so we could still use some of the roslibjs features like service and topic for the ros2-web-bridge, despite if it was developed for ROS 1. But the problem arise when we need to use other features like parameter as ROS 2 treat the parameters differently, It simply won't work.
Implementation Considerations
I consider there could be 2 options to solve the problems as follow:
The text was updated successfully, but these errors were encountered: