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

ROS Melodic release for rosjava #19

Description

@SomeshDaga

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

Activity

  1. SomeshDaga commented on Nov 16, 2018

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

  2. jubeira commented on Nov 20, 2018

    @jubeira

    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.

  3. drigz commented on Nov 20, 2018

    @drigz
    Member

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

  4. ernestmc commented on Nov 20, 2018

    @ernestmc
    Member

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

  5. SomeshDaga commented on Nov 20, 2018

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

  6. Rezenders commented on Jan 15, 2019

    @Rezenders

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

  7. jubeira commented on Jan 18, 2019

    @jubeira

    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.

  8. Rezenders commented on Mar 18, 2019

    @Rezenders

    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
  9. talregev commented on Apr 20, 2019

    @talregev

    Vote 👍 for rosjava melodic.

  10. orat commented on Jul 19, 2019

    @orat

    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

  11. joselpart commented on Feb 26, 2020

    @joselpart

    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.

  12. khalidbourr commented on May 27, 2020

    @khalidbourr

    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.

  13. dkati commented on Apr 15, 2021

    @dkati

    any news on ros melodic?

  14. talregev commented on Apr 16, 2021

    @talregev

    Better to do rosjava for ROS Noetic Ninjemys

  15. talregev commented on Apr 16, 2021

    @talregev

    And to think about ros2 rosjava

  16. ernestmc commented on Apr 16, 2021

    @ernestmc
    Member

    And to think about ros2 rosjava

    For Ros2 you can check this out.

  17. talregev commented on Apr 16, 2021

    @talregev

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

  18. dkati commented on Apr 17, 2021

    @dkati

    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 join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions