Search code examples
pythonros

rosjava catkin_make fails


I want to install the rosjava on my ubuntu16.04 system. But I got a problem when I catkin_make.

I followed the tutorial:

$ mkdir -p ~/rosjava/src
$ wstool init -j4 ~/rosjava/src https://raw.githubusercontent.com/rosjava/rosjava/kinetic/rosjava.rosinstall
$ source /opt/ros/kinetic/setup.bash
$ cd ~/rosjava
$ rosdep update
$ rosdep install –from-paths src -i -y
$ catkin_make

But first, I got ERROR: error loading sources list: ('The read operation timed out',) error when doing the rosdep update. And when I try to catkin_make, it fails. Besides, I have also tried to change the version of java. However, it does not work.

Base path: /home/yygx/rosjava
Source space: /home/yygx/rosjava/src
Build space: /home/yygx/rosjava/build
Devel space: /home/yygx/rosjava/devel
Install space: /home/yygx/rosjava/install
####
#### Running command: "make cmake_check_build_system" in "/home/yygx/rosjava/build"
####
####
#### Running command: "make -j4 -l4" in "/home/yygx/rosjava/build"
####
[  1%] Gradling tasks for rosjava_bootstrap
[  1%] Built target _rosjava_test_msgs_generate_messages_check_deps_CompositeA
[  1%] Built target _rosjava_test_msgs_generate_messages_check_deps_TestHeader
[  1%] Built target _rosjava_test_msgs_generate_messages_check_deps_TestArrays
[  1%] Built target std_msgs_generate_messages_lisp
[  1%] Built target _rosjava_test_msgs_generate_messages_check_deps_AddTwoInts
[  1%] Built target _rosjava_test_msgs_generate_messages_check_deps_Composite
[  1%] Built target _rosjava_test_msgs_generate_messages_check_deps_CompositeB
[  1%] Built target _rosjava_test_msgs_generate_messages_check_deps_TestString
[  1%] Built target std_msgs_generate_messages_py
[  1%] Built target std_msgs_generate_messages_cpp
[  1%] Built target std_msgs_generate_messages_nodejs
[  1%] Built target std_msgs_generate_messages_eus
[  1%] Built target _rosjava_test_msgs_generate_messages_check_deps_TestPrimitives
[  3%] Compiling rosjava message artifacts for [std_msgs rosgraph_msgs std_srvs rosjava_test_msgs actionlib_msgs common_msgs diagnostic_msgs geometry_msgs nav_msgs sensor_msgs shape_msgs stereo_msgs trajectory_msgs visualization_msgs tf2_msgs ar_track_alvar_msgs uuid_msgs yocs_msgs concert_msgs concert_service_msgs gateway_msgs rocon_app_manager_msgs rocon_device_msgs rocon_interaction_msgs rocon_service_pair_msgs rocon_std_msgs rocon_tutorial_msgs world_canvas_msgs scheduler_msgs move_base_msgs map_store roscpp]
[  3%] Built target sensor_msgs_generate_messages_eus
[  3%] Built target sensor_msgs_generate_messages_py
[  3%] Built target tf2_msgs_generate_messages_nodejs
Traceback (most recent call last):
  File "/home/yygx/rosjava/src/genjava/scripts/genjava_message_artifacts", line 11, in <module>
    import genjava
  File "/home/yygx/rosjava/devel/lib/python3/dist-packages/genjava/__init__.py", line 35, in <module>
    exec(__fh.read())
  File "<string>", line 39, in <module>
  File "/home/yygx/rosjava/src/genjava/src/genjava/genjava_main.py", line 45, in <module>
    import rosjava_build_tools
  File "/home/yygx/rosjava/devel/lib/python3/dist-packages/rosjava_build_tools/__init__.py", line 35, in <module>
    exec(__fh.read())
  File "<string>", line 7, in <module>
  File "/home/yygx/anaconda3/lib/python3.7/site-packages/console/__init__.py", line 36, in <module>
    _CHOSEN_PALETTE = _choose_palette()
  File "/home/yygx/anaconda3/lib/python3.7/site-packages/console/detection.py", line 90, in choose_palette
    result, pal = detect_palette_support(basic_palette=pal)
  File "/home/yygx/anaconda3/lib/python3.7/site-packages/console/detection.py", line 207, in detect_palette_support
    result, pal_name, basic_palette = _find_basic_palette(result)
  File "/home/yygx/anaconda3/lib/python3.7/site-packages/console/detection.py", line 252, in _find_basic_palette
    if get_terminal_color('index', 2)[0][:2] == '4e':
  File "/home/yygx/anaconda3/lib/python3.7/site-packages/console/detection.py", line 481, in get_terminal_color
    with TermStack() as fd:
  File "/home/yygx/anaconda3/lib/python3.7/site-packages/console/detection.py", line 52, in __enter__
    self.orig_attrs = self.termios.tcgetattr(self.fd)
termios.error: (25, 'Inappropriate ioctl for device')
rosjava_messages/CMakeFiles/rosjava_messages_generate_artifacts.dir/build.make:57: recipe for target 'rosjava_messages/CMakeFiles/rosjava_messages_generate_artifacts' failed
make[2]: *** [rosjava_messages/CMakeFiles/rosjava_messages_generate_artifacts] Error 1
CMakeFiles/Makefile2:1606: recipe for target 'rosjava_messages/CMakeFiles/rosjava_messages_generate_artifacts.dir/all' failed
make[1]: *** [rosjava_messages/CMakeFiles/rosjava_messages_generate_artifacts.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[  3%] Built target tf2_msgs_generate_messages_lisp
[  3%] Built target sensor_msgs_generate_messages_lisp
[  3%] Built target gradle-rosjava_bootstrap
Makefile:138: recipe for target 'all' failed
make: *** [all] Error 2
Invoking "make -j4 -l4" failed

Solution

  • I just ran through your steps inside a fresh LXC container running Ubuntu 16.04 - everything worked ok (catkin_make worked fine). I'd guess the issue is somewhere in your path.

    The stack trace jumps into:

    /home/yygx/anaconda3/lib/python3.7/site-packages/console/__init__.py
    

    That has nothing to do with ROS, and shouldn't be part of the catkin build.

    I don't know what that's doing, but I'd bet that it is something that customizes the terminal somehow for Anaconda. If so, then when you installed Anaconda, it probably inserted itself into your $PATH somewhere.

    Check your ~/.bashrc or ~/.bash_profile for export PYTHONSTARTUP= or export PATH= lines that point into /home/yygx/anaconda3/*.

    Alternatively, just skip your bash config. Start bash without configuration: $ bash --noprofile or just /bin/sh. (See here for details on that), then run through tutorial commands again.

    🤖 🤖 🤖