Skip to content
This repository has been archived by the owner on Jan 14, 2023. It is now read-only.

ROS Melodic release for rosjava #19

Open
SomeshDaga opened this issue Oct 31, 2018 · 18 comments
Open

ROS Melodic release for rosjava #19

SomeshDaga opened this issue Oct 31, 2018 · 18 comments

Comments

@SomeshDaga
Copy link

Hi.

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

@SomeshDaga
Copy link
Author

@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?

Thanks

@jubeira
Copy link

jubeira commented Nov 20, 2018

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.

@drigz @ernestmc any thoughts about this?

@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.

@drigz
Copy link
Member

drigz commented Nov 20, 2018

@jubeira No strong feelings either way from me. Thanks for checking!

@ernestmc
Copy link
Member

I think keeping releases in separate branches will help in keeping order and for future reference, even if changes are minimal.

@SomeshDaga
Copy link
Author

@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

@Rezenders
Copy link

I'm interested in using rosjava with ros melodic too, any updates on this?

@jubeira
Copy link

jubeira commented 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
Copy link

Rezenders commented 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]

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

@talregev
Copy link

talregev commented Apr 20, 2019

Vote 👍 for rosjava melodic.

@orat
Copy link

orat commented Jul 19, 2019

Hi,

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?

best regards
Oliver

@joselpart
Copy link

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.

@khalidbourr
Copy link

khalidbourr commented 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
Copy link

dkati commented Apr 15, 2021

any news on ros melodic?

@talregev
Copy link

Better to do rosjava for ROS Noetic Ninjemys

@talregev
Copy link

And to think about ros2 rosjava

@ernestmc
Copy link
Member

And to think about ros2 rosjava

For Ros2 you can check this out.

@talregev
Copy link

I already try it and didn't succeded. Did you try it?

@dkati
Copy link

dkati commented 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

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

10 participants