Unable to install ROS-Kinetic

Hi everyone,

We are having lots of unmet dependency issues when installing ROS-Kinetic on Ubuntu 16.06 running on DrivePX2. Has any of you successfully installed ROS on DrivePX2?

Here is what we tried so far:
[b]

  1. Installing from pre-compiled packages:[/b]
    Because ROS-Kinetic distribution is not available for arm64 architecture, we got unmet dependency error:
The following packages have unmet dependencies:
 ros-kinetic-ros-base : Depends: ros-kinetic-actionlib but it is not going to be installed
                        Depends: ros-kinetic-bond-core but it is not going to be installed
                        Depends: ros-kinetic-class-loader but it is not going to be installed
                        Depends: ros-kinetic-dynamic-reconfigure but it is not going to be installed
                        Depends: ros-kinetic-nodelet-core but it is not going to be installed
                        Depends: ros-kinetic-pluginlib but it is not going to be installed
                        Depends: ros-kinetic-ros-core but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

2) Installing from source
Next, we tried to install ROS-Desktop-Full version from source. During the build, we got lots of unmet dependency issues that we need to solve manually. First, we tried to install those dependencies by using ‘sudo apt-get install’ but most of the time got ‘unmet dependency’ errors similar to one above. Then, tried to build each package from source. So far, we managed to install these libraries manually: pip, poco, boost, cmake, empy, Qt(in progress). However, solving dependencies package-by-package is a very tedious task and building some libraries such as Qt takes too much effort.

Why we are getting those unmet dependency errors and how we can get rid of these unmet dependency errors? And, can you please give some instructions on proper way of installing ROS on DrivePX? I believe this will be useful for other users, too.

Hello mdemir,

We plan to provide a ROS-K guideline doc following an upcoming release of the PDK.
Could you please check ROS-Kinetic installation on DPX2 with an upcoming release of the PDK? Thanks.

When do you plan to release the next PDK? Is it possible to provide us the ROS installation guideline first?

Hello mdemir,
Next PDK will be released in Arpil and the ROS installsation guideline will be included in the PDK. Thanks.

Hi mdemir,

I installed ROS as explained on the main tutorial page:
http://wiki.ros.org/kinetic/Installation/Ubuntu

i picked the ROS-Base (Bare-Bone) version and that worked quite out of the box.

hoped that helped a little!

Hello SteveNV,

Has the ROS-K guideline doc been released already?
If so, where can I find it?

Thanks

Hello nachotb,

Not yet. We will release next DrivePX2 PDK in May. Thanks.

Check ROS installation guideline. How’s that going as today is the last day of May?

Is there any update about the release date of the next PDK?

Hello all,

Please refer to below to install ROS-Kinetic on DPX2.

  1. Install the PDK and flash the target build onto the board as described in the PDK Developer’s Guide

  2. Boot to Ubuntu Unity Desktop
    Note: Do not perform “apt-get upgrade” on the target, at any stage

  3. Via Ubuntu GUI, configure Ubuntu to allow package installation from main, restricted, universe and multiverse repositories

  4. Setting locale:
    (This is optional. Setting locales explicitly to either of the options mentioned may cause some issues with launching the terminal after a system reboot. So, this step may be skipped in the first try)
    sudo update-locale LANG=C LANGUAGE=C LC_ALL=C LC_MESSAGE=POSIX
    (or)
    export LANGUAGE=en_US.UTF-8
    export LANG=en_US.UTF-8
    export LC_ALL=en_US.UTF-8
    sudo locale-gen en_US.UTF-8
    sudo dpkg-reconfigure locales

  5. Setup the keys to authenticate package downloads
    sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116

  6. Open the ‘Software & Updates’ applet and add
    deb http://packages.ros.org/ros/ubuntu xenial main

  7. Update the libssl1.0.0 package to the latest version [1.0.2g-1ubuntu4.6]and install libssl-dev
    sudo apt-get install libssl1.0.0/xenial libssl-doc/xenial libssl-dev/xenial

  8. Install the ‘Desktop’ bundle of ROS (contains the ROS Core Framework, plus a set of popular algorithms and sample apps)
    sudo apt-get install ros-kinetic-desktop

  9. After successful installation of ROS, set up the environment so that the terminal recognizes ROS.
    echo “source /opt/ros/kinetic/setup.bash” >> ~/.bashrc
    source ~/.bashrc

  10. Set the library search path for the current shell
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib:/usr/lib/aarch64-linux-gnu

  11. Run some ROS sample apps to verify install success. For example:
    VISUALIZING THE ROS TURTLESIM APP WITH RVIZ

  12. From a terminal, run
    roslaunch turtle_tf turtle_tf_demo.launch

  13. In a new terminal, run
    rviz &

  14. After launching the rviz GUI, change the Fixed frame (found under ‘Global Options’ in the ‘Displays’ section) to ‘world’.

  15. From the display section, Add > By display type > TF

  16. To verify successful connectivity between the turtlesim application and rviz,
    move the turtle on the terminal used to run roslaunch (Step1 above) and observe the movement of the turtle frames with respect to the world frame in the rviz GUI

Hi SteveNV,

Thank you for the instruction. I got the problem to launch the terminal as you mentioned in Step 4, which I assume I shouldn’t try that. Do you have any suggestions to fix that as I have tried ‘change the locale in /etc/default/locale’ but with no luck. Thanks!

Hi, have you tried reconfiguring locales and re-booting the system?

export LANGUAGE=en_US.UTF-8
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
sudo locale-gen en_US.UTF-8
sudo dpkg-reconfigure locales

Hi lelouchkaneki,

Thanks for that. yep I have tried that method several times but with no luck.
We are using Terminator instead of Gnome Terminal. However, I do want my Terminal back to life…

Can you execute

sudo update-locale LANG=en_US.UTF-8 LANGUAGE=en_US.UTF-8 LC_ALL=en_US.UTF-8

in the terminator, reboot the system and check if the terminal is working now?

Alternatively,
after exporting LC_ALL to en_US.UTF-8, executing

dbus-launch gnome-terminal

in the terminator seems to launch the terminal normally.

Awesome!! That works!!!Thanks a lot!

I was able to install ROS on PX2 just file but did anyone was able to install arm64 ROS on their desktop to cross cross compile?
Or perhaps you guys are building on PX2 directly?

Here is what I have done trying to setup cross compilation

On my Ubuntu 16.04 desktop (NOT PX2)

  1. sudo dpkg --add-architecture arm64
  2. dpkg --print-foreign-architectures

    i386
    arm64
  3. create arm64-xenial.list in /etc/apt/sources.list.d with contents

deb [arch=arm64,amd64] http://ports.ubuntu.com/ xenial main restricted universe multiverse
deb [arch=arm64,amd64] http://ports.ubuntu.com/ xenial-security main restricted universe multiverse
deb [arch=arm64,amd64] http://ports.ubuntu.com/ xenial-backports main restricted universe multiverse
deb [arch=arm64,amd64] Index of /ubuntu-ports xenial main multiverse universe restricted
deb [arch=arm64,amd64] Index of /ubuntu-ports xenial-updates main multiverse universe restricted
deb [arch=arm64,amd64] Index of /ubuntu-ports xenial-security main multiverse universe restricted

  1. modify ros-latest.list in /etc/apt/sources.list.d
    vi deb [arch=amd64,arm64] http://packages.ros.org/ros/ubuntu xenial main

  2. sudo apt-get update

  3. sudo apt-get install ros-kinetic-ros-base:arm64

Reading package lists… Done
Building dependency tree
Reading state information… Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
ros-kinetic-ros-base:arm64 : Depends: ros-kinetic-actionlib:arm64 but it is not going to be installed
Depends: ros-kinetic-bond-core:arm64 but it is not going to be installed
Depends: ros-kinetic-class-loader:arm64 but it is not going to be installed
Depends: ros-kinetic-dynamic-reconfigure:arm64 but it is not going to be installed
Depends: ros-kinetic-nodelet-core:arm64 but it is not going to be installed
Depends: ros-kinetic-pluginlib:arm64 but it is not going to be installed
Depends: ros-kinetic-ros-core:arm64 but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

If you cross compiling what is wrong here? Or how did you set up your build env.

I am also trying to figure out how to install arm64 ROS on my desktop to cross compile for the Drive PX2.

Has anyone found a solution or has a suggestion?

For me following the guide posted by @SteveNV worked:
[url]https://devtalk.nvidia.com/default/topic/1000373/drive-linux/unable-to-install-ros-kinetic/post/5166541/#5166541[/url]

I am on a Nvidia Jetson-TX2

Hi I tried installing ROS kinetic based on the instruction given above. Everything seemed to have been installing properly until I got this error:

error message:
Setting up ros-kinetic-desktop (1.3.2-0xenial-20180830-145536-0800) …
Setting up odbcinst (2.3.1-4.1) …
Processing triggers for libc-bin (2.23-0ubuntu3) …
/sbin/ldconfig.real: /usr/lib/libnv_extimgdev.so is not a symbolic link

The process just abruptly stopped.

Though most of the functionalities of ROS are still present (I tried running roscore and also turtle_sim) when I tried configuring a joystick for linux (using steps at joy/Tutorials/ConfiguringALinuxJoystick - ROS Wiki) the same error pops up

error message :
Setting up joystick (1:1.4.9-1) …
Setting up ros-kinetic-joy (1.12.0-0xenial-20180826-035200-0800) …
Processing triggers for libc-bin (2.23-0ubuntu3) …
/sbin/ldconfig.real: /usr/lib/libnv_extimgdev.so is not a symbolic link

ubuntu@nvidia:~$

I tried connecting my joy stick but it was not detected. Do you know what might be causing this error?