You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Jan 14, 2023. It is now read-only.
Repository navigation
This repository was archived by the owner on Jan 14, 2023. It is now read-only.
I see that rosjava does not have support for ROS Melodic as of yet. Being a relative newbie to the java world and the gradle build system, from what I attempted, it seems that all that is required is an upgrade in the gradle version to >= 4.7.
For the ROS message generators to work, it seems that they might have to be pre-installed before the workspace is built. Installing genjava and rosjava_build_tools from source and building it together with the rest of the ROS workspace results in some message dependencies not having the jar files built, due to race conditions in which packages get compiled first.
Hence, should a melodic branch be created for the relevant rosjava repos. I can submit some PRs for the update of the gradle version. Not sure how the release process works, and how long after being accepted will these changes be obtainable using rosdep
@jubeira I have put together some code that seems to be working for me locally, with the inconvenience that genjava has to be built before the rest of my packages, since it is a message generator. I'd like to push these changes upstream, so that they can make it into the next release. Would a melodic branch need to be created in these repos by one of the administrators of this project for me to issue pull requests to?
Hi @SomeshDaga, sorry for the delay.
Yes, we would need a melodic branch. In the past we've separated distro releases bumping the minor number of the packages, but since the differences between branches will be minimal I don't think it's necessary in this case. I'd say melodic could still use 0.3.x range of versions.
@jubeira I have put together some code that seems to be working for me locally, with the inconvenience that genjava has to be built before the rest of my packages, since it is a message generator
Hmm I don't have that problem when building rosjava from source in the current kinetic branch. If your packages' dependencies are correct, genjava should be built beforehand and then used to build the rest.
@jubeira Thanks for the follow up. With regards to your suspicions about not needing genjava to be built beforehand, I require genjava to implicitly build messages within most packages in my workspace (hence, these packages don't have an explicit dependency on genjava). This creates an issue when a specific package depends on genjava and a bunch of custom messages which were built prior to genjava being built. I see that some of the java message artifacts are missing for some custom messages. However, all is fine if I specifically build genjava first, although it's a bit of an annoyance to do so
Like @ernestmc,I personally prefer the creation melodic branches, esp. since packages like rosjava_bootstrap contains references to the raw buildscript in rosjava_core which specifically references kinetic (although I don't see this file changing for melodic), which might be confusing to future users. Let me know if this works for you
It's in my bucket list; I'll make the branches and releases when I grasp some more time.
Note that if you use source installations at kinetic branch it should be basically the same for Melodic. Please let me know if you have issues with that one so that we can correct them eventually.
Using the kinetic branch for source installation in Melodic I get the following error:
$ rosdep install --from-paths src -i -y
ERROR: the following packages/stacks could not have their rosdep keys resolved
to system dependencies:
rosjava_messages: Cannot locate rosdep definition for [world_canvas_msgs]
It's in my bucket list; I'll make the branches and releases when I grasp some more time.
Note that if you use source installations at kinetic branch it should be basically the same for Melodic. Please let me know if you have issues with that one so that we can correct them eventually.
EDIT:
If I proceed with the minimal install I get the following error when running catkin_make:
> :gradle_plugins:processResources
geometry_experimental/tf2/CMakeFiles/tf2.dir/build.make:86: recipe for target 'geometry_experimental/tf2/CMakeFiles/tf2.dir/src/buffer_core.cpp.o' failed
make[2]: *** [geometry_experimental/tf2/CMakeFiles/tf2.dir/src/buffer_core.cpp.o] Error 1
CMakeFiles/Makefile2:10925: recipe for target 'geometry_experimental/tf2/CMakeFiles/tf2.dir/all' failed
warning: [options] source value 6 is obsolete and will be removed in a future release
warning: [options] target value 1.6 is obsolete and will be removed in a future release
warning: [options] To suppress warnings about obsolete options, use -Xlint:-options.
Note: /root/rosjava_minimal/src/rosjava_bootstrap/message_generation/src/main/java/org/ros/internal/message/MessageImpl.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
3 warnings
[ 93%] Built target gradle-rosjava_bootstrap
Makefile:140: recipe for target 'all' failed
make: *** [all] Error 2
Invoking "make -j8 -l8" failed
Reacted by aWeinzierl, Benoît Jeaurond, Andrei Haidu, timautin, Federico Pecora, Wandemberg Gibaut, Mike Karamousadakis, NAMLH2910, Gustavo Rezende, Wonjae Cho and 9 more
Using the kinetic branch for source installation in Melodic I get the following error:
$ rosdep install --from-paths src -i -y
ERROR: the following packages/stacks could not have their rosdep keys resolved
to system dependencies:
rosjava_messages: Cannot locate rosdep definition for [world_canvas_msgs]
It is the same for me (Ubuntu18, ros meldodic, java8). Additionally "genjava_message_artifacts" fails with a strange message "Could not find any version that matches org.ors.rosjava_bootstrap:gradle_plugins:[0.4,0.5]". Yes, there is only version 0.3.3 available but why is 04;0.5 requested? Andy where can I change the request to the existing version?
I notice the last post is quite old but this may help others... First of all, currently there is a melodic branch for some of the rosjava packages but if you try to follow the installation guide in the wiki replacing "kinetic" for "melodic", it will fail due to the packages that do not have the melodic branch. Hence, to keep things simple, I will assume you are installing the kinetic branch.
The error reported by @Rezenders is due to the fact that world_canvas_msgs is not supported in melodic:
Using the kinetic branch for source installation in Melodic I get the following error:
$ rosdep install --from-paths src -i -y
ERROR: the following packages/stacks could not have their rosdep keys resolved
to system dependencies:
rosjava_messages: Cannot locate rosdep definition for [world_canvas_msgs]
Removing the entry from the CMakeLists.txt and package.xml files in the rosjava_messages package should take care of that.
Then you may encounter errors relating to not being able to find files for actionlib and dynamic_reconfigure. Just add these packages in the CMakeLists.txt and package.xml files. Also, remember to add any missing package for which you would want to generate messages, including your own packages.
This applies for building the core sources (section 3.1 in the wiki) in Ubuntu 18.04 with ROS Melodic. I didn't try the minimal install.
Rosjava is always not supported by Ros Melodic, the only solution is to work with Java Ros_bridge, you can have a look on this https://github.com/h2r/java_rosbridge and http://wiki.ros.org/rosbridge_suite. It works quite well, the only issue is that the client-server communication is not supported.
Activity
SomeshDaga commentedon Nov 16, 2018
@jubeira I have put together some code that seems to be working for me locally, with the inconvenience that
genjavahas to be built before the rest of my packages, since it is a message generator. I'd like to push these changes upstream, so that they can make it into the next release. Would amelodicbranch need to be created in these repos by one of the administrators of this project for me to issue pull requests to?Thanks
jubeira commentedon Nov 20, 2018
Hi @SomeshDaga, sorry for the delay.
Yes, we would need a
melodicbranch. In the past we've separated distro releases bumping the minor number of the packages, but since the differences between branches will be minimal I don't think it's necessary in this case. I'd saymelodiccould still use0.3.xrange of versions.@drigz @ernestmc any thoughts about this?
Hmm I don't have that problem when building
rosjavafrom source in the currentkineticbranch. If your packages' dependencies are correct,genjavashould be built beforehand and then used to build the rest.drigz commentedon Nov 20, 2018
@jubeira No strong feelings either way from me. Thanks for checking!
ernestmc commentedon Nov 20, 2018
I think keeping releases in separate branches will help in keeping order and for future reference, even if changes are minimal.
SomeshDaga commentedon Nov 20, 2018
@jubeira Thanks for the follow up. With regards to your suspicions about not needing
genjavato be built beforehand, I require genjava to implicitly build messages within most packages in my workspace (hence, these packages don't have an explicit dependency on genjava). This creates an issue when a specific package depends ongenjavaand a bunch of custom messages which were built prior togenjavabeing built. I see that some of the java message artifacts are missing for some custom messages. However, all is fine if I specifically build genjava first, although it's a bit of an annoyance to do soLike @ernestmc,I personally prefer the creation
melodicbranches, esp. since packages likerosjava_bootstrapcontains references to the raw buildscript inrosjava_corewhich specifically referenceskinetic(although I don't see this file changing for melodic), which might be confusing to future users. Let me know if this works for youRezenders commentedon Jan 15, 2019
I'm interested in using rosjava with ros melodic too, any updates on this?
jubeira commentedon Jan 18, 2019
It's in my bucket list; I'll make the branches and releases when I grasp some more time.
Note that if you use source installations at kinetic branch it should be basically the same for Melodic. Please let me know if you have issues with that one so that we can correct them eventually.
Rezenders commentedon Mar 18, 2019
Using the kinetic branch for source installation in Melodic I get the following error:
$ rosdep install --from-paths src -i -y ERROR: the following packages/stacks could not have their rosdep keys resolved to system dependencies: rosjava_messages: Cannot locate rosdep definition for [world_canvas_msgs]EDIT:
If I proceed with the minimal install I get the following error when running catkin_make:
talregev commentedon Apr 20, 2019
Vote 👍 for rosjava melodic.
orat commentedon Jul 19, 2019
Hi,
It is the same for me (Ubuntu18, ros meldodic, java8). Additionally "genjava_message_artifacts" fails with a strange message "Could not find any version that matches org.ors.rosjava_bootstrap:gradle_plugins:[0.4,0.5]". Yes, there is only version 0.3.3 available but why is 04;0.5 requested? Andy where can I change the request to the existing version?
best regards
Oliver
joselpart commentedon Feb 26, 2020
I notice the last post is quite old but this may help others... First of all, currently there is a melodic branch for some of the rosjava packages but if you try to follow the installation guide in the wiki replacing "kinetic" for "melodic", it will fail due to the packages that do not have the melodic branch. Hence, to keep things simple, I will assume you are installing the kinetic branch.
The error reported by @Rezenders is due to the fact that world_canvas_msgs is not supported in melodic:
Removing the entry from the CMakeLists.txt and package.xml files in the rosjava_messages package should take care of that.
Then you may encounter errors relating to not being able to find files for actionlib and dynamic_reconfigure. Just add these packages in the CMakeLists.txt and package.xml files. Also, remember to add any missing package for which you would want to generate messages, including your own packages.
This applies for building the core sources (section 3.1 in the wiki) in Ubuntu 18.04 with ROS Melodic. I didn't try the minimal install.
khalidbourr commentedon May 27, 2020
Hello guys,
Rosjava is always not supported by Ros Melodic, the only solution is to work with Java Ros_bridge, you can have a look on this https://github.com/h2r/java_rosbridge and http://wiki.ros.org/rosbridge_suite. It works quite well, the only issue is that the client-server communication is not supported.
dkati commentedon Apr 15, 2021
any news on ros melodic?
talregev commentedon Apr 16, 2021
Better to do rosjava for ROS Noetic Ninjemys
talregev commentedon Apr 16, 2021
And to think about ros2 rosjava
ernestmc commentedon Apr 16, 2021
For Ros2 you can check this out.
talregev commentedon Apr 16, 2021
I already try it and didn't succeded. Did you try it?
dkati commentedon Apr 17, 2021
i build the source from http://wiki.ros.org/rosjava/Tutorials/kinetic/Source%20Installation
Whats next?
*had to fix some dependencies and such