ROS Install on Jetson Tx1 E: unable to locate package ros-indigo-desktop-full - My Thoughts

After spending considerable time trying to install ROS on the Tx1 I have learned the following in the hopes it will help others with installing ROS on the Tx1. Please feel free to correct me if any of my information is incorrect.

ROS should be installed immediately after a fresh install of the latest jetpack version 2.2.1 (24.1). As odd as it sounds, do not mess with anything unless you are extremely aware of what the changes will do. I’ve found ROS To be super finicky. Do not change the time in ubuntu. Also do not go into system software and update to 14.04.4 or you’ll have massive problems.

The proper install procedures are at:
http://wiki.ros.org/indigo/Installation/UbuntuARM

#1 First go to Ubuntu>System Settings>Software Updates> in “downloadable from the internet” check all and specify “main server”. This will “setup your repositories”

#2 Setup your locale:

sudo update-locale LANG=C LANGUAGE=C LC_ALL=C LC_MESSAGES=POSIX

#3 Setup your sources:

sudo sh -c ‘echo “deb http://packages.ros.org/ros/ubuntu trusty main” > /etc/apt/sources.list.d/ros-latest.list’

#4 Setup your keys

sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net --recv-key 0xB01FA116

#5 sudo apt-get update
(this should run without any error. If it gets errors you need to determine the reason. Do not continue)

#6

Here is where a lot of the web instructions state you can install the following

sudo apt-get install ros-indigo-desktop-full

However I find no reference in ‘trusty’ version that there is such an install package. I even looked through the list of packages (and its’ a super long, long, list) packages.ros.org/ubuntu/dists/trusty/main/binary-armhf/Packages and if you scroll down about 1/3 of the way down you can see the only package is “ros-indigo-desktop.” There is no ros-indigo-desktop-full from what I’ve seen. At least not in this distribution for armhf (the version for the Tx1)

Therefore instead for a full install run:
sudo apt-get install ros-indigo-desktop
(this ran fine on my freshly flashed Tx1 with 14.04LTS ubuntu and freshly installed 32bit jetpack v24.1

for base install (no gui)
sudo apt-get install ros-indigo-ros-base

From here you can install individual packages and then continue on with rosdep. I haven’t seen to many hangups from users here but crossing fingers myself. I’ll continue to add to this thread should I see any more issues that could help others.

ros-

Nice! You might want to post this to the TX1 eLinux wiki if you’re comfortable editing wikis.

I’ve never actually updated a wiki. Is it terribly hard?

I see you’re using the 32bit Jetpack have you tried this on the 64bit version? I followed the steps and it still says it can’t find any ROS packages.

Yes I did try it on the 64bit (if I recall correctly) and when I ran “sudo apt-get install ros-indigo-desktop-full” it still gave me that. My next step is to try instaling ROS on my desktop ubuntu x86 linux box (host machine)that I built specifically for linux support for my robot. I’ll post the results and see if I find any difference.

Also I confirmed that there is no “full” install when I ran the command

apt-cache search ros-indigo (as per the wiki instruction here) http://wiki.ros.org/indigo/Installation/UbuntuARM

It scrolls the page really fast so you’ll want to use
apt-cache search ros-indigo |more and you can page through everything and there is no package that is full. So I guess the install that gives you the most complete interface is the ‘desktop’ version.

From there I installed catkin tools. And soon I hope to try gazebo and some other ROS packages.

ps… i didn’t get far on the 64 bit jetpack because the TX1 was freezing all the time due to said memory leak. Has this been fixed or did you find a workaround or are you not even having this problem?

The steps you linked are for armf not arm64. I tried them again in case I did something wrong and unfortunately it still doesn’t list any packages. After poking around the forums a bit it appears you may have to compile from source, unless someone has an easier solution?

Is there a reason you need to run the 64 bit jetpack with ROS? Because from what I hear people are having a nightmare with the 64 bit jetpack alone, let alone adding ROS which is very finicky. Probably not worth the effort, unless there is just some absolute need for it and you know what you’re doing. Everyone has told me to go back to 32 bit jetpack with ROS for stability reasons. At least until the 64 bit jetpack has all the bugs worked out. From what I’ve been told most of the installs for ROS are based in 32bit anyway. Sorry I couldn’t be of more help. I’m fairly noob-ish and learning as I go.

BTW, regarding wikis, it’s not that difficult once you get the hang of the syntax. This page is a pretty good start: https://en.wikiversity.org/wiki/Wiki_101

well I tried installing ROS on my desktop and got the same E: unable to locate package… nonsense. I haven’t done much to that host machine and I believe the problem that causes ROS to fail is when you go into software and updates and run the “update” for ubuntu. ROS really doesn’t like that. On a clean install on the TX1 I didn’t have this problem if I used the sudo apt-get install ros-indigo-desktop

I’m using a fresh 64bit flash. I think you may be mistaken there are no arm64 packages for ROS you have to compile from source: https://devtalk.nvidia.com/default/topic/946047/ros-indigo-does-not-support-arm64-on-jetpack-2-2-/

I’m only referring to the armhf package here http://wiki.ros.org/indigo/Installation/UbuntuARM which is a 32 bit install for TK1/TX1 in this thread. Like I said, all the ROS stuff as far as I know is also 32 bit.

Maybe it could be useful to know that exists another guide to install&configure ROS with the Jetson TX1/TK1.

This wiki can be found at this link: https://github.com/OpenPTrack/open_ptrack/wiki/Jetson-TX1-Installation

The wiki is targeted to use OpenPTrack (a people detection and tracking library in camera networks), but until point 8 you can find the Jetson and ROS configuration.

I confirm that currently the ROS stuff for ARM is only 32bit.

There are no pre-built packages for 16.04 Xenial on arm64. You have to compile from source and so far that doesn’t work either. Don’t know why you are having problems installing indigo on 14.04. That has never been a problem no matter what the state of the machine is. As long as you don’t whack the python install. Then you will have lots of problems. Indigo is very stable on nvidia hardware. Just cut and paste from the install instructions. Desktop full won’t install because of Gazebo. Gazebo will run but that is about the only thing you can run and on other arm boards not a chance. If you want to give it a go you can install that separately after you do a desktop install. You won’t like it but you can do it. No need to have it on the TX1 anyways as you can run that rqt and rviz remotely. Can’t even get rosdep init to work on the new jetpack. SSL certificates are bonkers apparently. Managed to get around that by installing the sources file manually then doing a rosdep update. But its still messed up. Rosdep gets all the stuff but the compile fails with some opencv errors. They look similar to the errors you see when trying to build the Zed driver. Wrong versions of libs etc in the cmake files and the opencv libs being in a non standard location and the open-cl lib being included when it doesn’t exist on the TX1 L4T distro. Glad I installed it on a memory card at least I don’t have to do a full flash to go back to 14.04.

Wow that sounds like a lot of problems. Is ROS just not meant for the TX1?

Ross-comm compiles no problem. But there are no packages for arm64 xenial yet. Still trying to get ros-desktop up and going. Problem with one package octomap. It wants a build system called ninja. I installed that but for some reason the build.ninja file doesn’t get generated so it fails. Last package too. The reason why ros-indigo-whatever won’t install is your machine isn’t armhf now once you install the upgrade. The latest version of the os doesnt’ allow mixed 32 64 bit as far as I’ve read. You might try doing a dual system set it up like a cross compile system but I’m pretty sure it still won’t download and install the apt-get packages as the machine id will still be arm64. If you know how to install debian packages the ros packages for kinetic are available on arm64 but I have a feeling that is a big can of worms. Ros runs fine on the TX1 and TK1. Just have to do a little more work now unless you want to wait for the arm64 xenial packages to be propagated to the repos.

@danpollack How did you get around the SSL certificates issue? I keep getting:

$ sudo rosdep init
ERROR: cannot download default sources list from:
https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list
Website may be down.

When I try to wget that file directly, I get:

$ wget https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list
--2016-09-22 23:22:31--  https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 151.101.40.133
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.40.133|:443... connected.
ERROR: cannot verify raw.githubusercontent.com's certificate, issued by ‘CN=DigiCert SHA2 High Assurance Server CA,OU=www.digicert.com,O=DigiCert Inc,C=US’:
  Unable to locally verify the issuer's authority.
To connect to raw.githubusercontent.com insecurely, use `--no-check-certificate'.

Did you use --no-check-certificate to download that file and then proceed?

FWIW, this is R24.2, (Ubuntu 16.04 on device) and I have ca-certificates installed just fine.

This may work…I don’t know if extra repositories must be uncommented in sources.list:

sudo apt update
sudo apt-get install ca-cacert

nm figured this portion out. For anyone else running into that issue, run:

$ sudo c_rehash /etc/ssl/certs

@danpollack Ran into the same problem trying to install the robot variant. It is unclear why ROS/catkin is trying to use ninja for this package. The authors’ recommended install is via cmake/make (see https://github.com/OctoMap/octomap/blob/devel/README.md). Indeed, if I go into ros_catkin_ws/build_isolated/octomap/install and simply do ‘make’ followed by ‘make install’ it compiles and installs into the correct directory. However, trying to run ‘catkin_make_isolated’ following that results in the same error about ninja again, so I restarted after that package. It fails in the same manner for orocos_kdl and python_orocos_kdl, so the same manual steps have to be done for those. All other packages install fine. Hacky, yes. Just not sure how to force catkin into using ‘make’ always instead of ‘ninja’ - though there’s an option to do exactly the opposite.