-
Notifications
You must be signed in to change notification settings - Fork 133
Gazebo transport bridge (#185) #187
base: master
Are you sure you want to change the base?
Conversation
|
@ahcorde may I ask you to trigger the workflows? Not sure if the last one was triggered by you or not, but since it failed I made some fixes :) EDIT: nevermind, the issue is with rolling sensor_msgs: EDIT 2: the issue is with Fork CI (now only uncrustify issues): |
|
Ok, up to now the code builds but CI fails uncrustify/cpplint due to foreign code (Gazebo's modified node.hh & node.cc). This means that:
Any suggestions or ideas? |
|
Hi @roncapat, Thank you for your contribution but I would like to understand this better, what's the motivation behind this ? You already can access to these topics throught ROS 2 in particular the ros2_control APIs. Why do you need to expose this in gz::transport ? |
Hi, this is to use standalone, non-ROS gazebo plugins and to have access /expose over ROS2 (via ros_control) to all gazebo topics. So, both read/write capability. It's like to add universal exchange of data between ROS2 and GZ transport, potentially allowing a user not to port a third-party Gazebo plugin to gazebo_ros and explicitly pub/sub from the inside of the plugin. A note, if you tell me it's something you are going to consider, I have some more commits to push here then ;) Fixed some nasty bug (and started using in our lab environment with no further issues since then). And BTW, do you know some Gazebo-classic dev to speed up the approval of the "lambda" PR? |
a332f0c to
d98dea7
Compare
|
Linting of Gazebo-included files can't be fully achieved since cpplint and uncrustify collide each other on some lines. This may of course be avoided at all by gazebosim/gazebo-classic#3309 |
|
I've tried pushing a release just now but there's a missing requirement for Gazebo that the package.xml picks up by default. I don't think that has anything to do with your conflict, I suspect this PR is based on an ignition PR? |
|
May I ask where I can see a log of the problem? From mobile I'm just seeing test failures related to linting. Edit/verbose: no, this patch in principle is standalone, in the sense that it ships with its modded gazebo files (node.cc and node.hh). Those files may be removed theoretically if gazebo-classic ever merges the other PR I linked above, but even then all older releases of gazebo-classic would cease to be compatible with this patch. This means that my personal idea/recommendation is, to just ship those files and do not plan their removal anytime soon. Question is: this is surely an ugly solution, so how can we handle those files in this repo? What about linting issues, for example? Regarding the merge conflict, tomorrow I will rebase👍 |
|
@bmagyar may I ask you how would you like to proceed here / what I can do to revise this patch set? |
christophfroehlich
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What I often have to ask for 😇 : Could you please add this feature to the documentation and/or add a new demo to the demo? Maybe then the use case gets clearer for everyone.
Hi @christophfroehlich, I will be happy to also work on minimum example + docs, but first I need to resolve my concern about the included files from Gazebo. If you ensure me that this PR is of interest and those 2 files are not an issue / you tell me how you want me to handle them differently, I will be happy then allocate effort to complete the PR with docs & demo. May I ask then also to you an opinion on this? |
It seems that the gazebo-PR has a chance to get merged -> let's wait for that to avoid duplicating node.hh. Once gazebo is released, do we have to support older versions of gazebo from this package then? don't know.. Honestly speaking, I have too little experience to evaluate the benefits from this PR and therefore asked for a demo example. |
My same doubt, since I do not know whether gazebo-classic is handled by any ROS "sync" or is handled standalone. |
destogl
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please clean this up so we can do a proper review
See #185 for rationale.
This allows
state_interfacesandcommand_interfaceswith value different from "effort", "velocity" or "position" to be interpreted as Gazebo Transport topics to which either publish or subscribe.Gazebo::Transport::Nodeclass has to be redefined out-of-tree because the PR that introduces a required method addition has been submitted this same day (gazebosim/gazebo-classic#3309), and thus is needed until upstream merge.