Skip to content

Conversation

@erobinson-1997
Copy link

I was trying to follow the instructions and ran into a lot of issues using the latest versions of Ubuntu and Android Studio. Some of the paths to build the packages in the astrobee repository were also incorrect for me as well, so I updated them in the instructions.

README.md Outdated

Before building the Astrobee Android project, ensure your system meets the following requirements:

- **Operating System**: Ubuntu 16.04 (Xenial Xerus) is needed for compatibility with `ros-kinetic-rosjava` dependencies.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@rgarciaruiz should comment on our Ubuntu version strategy.

The Astrobees on ISS indeed currently run Ubuntu 16.04 on the MLP and LLP, but there is a plan to upgrade them to Ubuntu 20.04, hopefully later this year. Also, the astrobee_android code of course runs on the HLP under Android (not Ubuntu), so to some extent it should be isolated from caring about the Ubuntu version running on the other processors.

It's possible that you have two viable options for your astrobee_android development:

  1. Develop under Ubuntu 20.04 and use ros-noetic-rosjava. If this works, it would be preferred in terms of being easier to maintain long-term and more compatible with upcoming Astrobee upgrades.
  2. Develop under Ubuntu 16.04 and use ros-kinetic-rosjava, as you are suggesting. This would be the highest-fidelity test if you are targeting an ISS activity this summer, but I think it's otherwise not recommended for most users.

I'm not aware that anybody has tested option 1 -- @rgarciaruiz would be most likely to know. It's possible there is no such version of rosjava, or that using it might require some cascading changes elsewhere in the system. One potential concern would be that a noetic version of rosjava might have incompatibilities with the kinetic version of ROS1 running on the MLP/LLP at the network protocol level. But I think this is very unlikely because the ROS1 network protocol has been quite stable for a while, and we are using it in a limited, straightforward way.

(I'm sorry I can't be more definitive about this! But I think we should really mention this issue if we are going to update documentation of the system requirements.)

Copy link
Author

@erobinson-1997 erobinson-1997 Apr 27, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are some dependencies that are not the same between ROS versions, and ros-noetic-rosjava doesn't exist. You need to build ros-kinetic-rosjava from source with ROS Noetic. I closed out this issue after I switched from 20.04 to 16.04.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Understood. I think what I'm saying is that we should fix those dependency issues so that development under Ubuntu 20.04 works properly, rather than making sure to advise everyone to use 16.04, which contradicts our general advice for other parts of the system, and is guaranteed to cause hassles for users going forward.

(I appreciate that this puts you in a tough spot, since you're doing your development right now and this issue hasn't been fixed yet.)

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's fine. However, if that is the case it might be worthwhile to add instructions on how to build the ros-kinetic-rosjava package from source for ROS Noetic since ros-noetic-rosjava does not exist yet. My other updates are also helpful so I can make another pull request with those changes if that sounds alright to you.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, thanks for taking the time to push your changes as an upstream PR! I shouldn't be the primary reviewer on this PR, but we appreciate your efforts!

I guess a quick interim fix would be to keep your note about the current build instructions assuming Ubuntu 16.04, but also mention in the same place that Ubuntu 16.04 support will soon be phased out as we migrate to Ubuntu 20.04, and reference your earlier issue describing the current (temporary) issue with astrobee_android under 20.04. Then it would tell the whole story. Thanks!

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sounds good. Should I open an issue regarding the dependencies, or do you guys already have one open?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good point. Reopened #44

… about the operating system and rosjava dependency issues with using Ubuntu 20.04
@marinagmoreira marinagmoreira linked an issue May 31, 2023 that may be closed by this pull request
you@machine:~ $ mkdir -p $HOME/.m2
you@machine:.m2 $ cd $HOME/.m2
you@machine:.m2 $ ln -s $BUILD_PATH/devel/share/maven repository
you@machine:.m2 $ ln -s $BUILD_PATH/devel/.private/ff_msgs/share/maven repository

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this did not change, it's still devel/share/maven

this runs frequently and uses it..
https://github.com/nasa/isaac/blob/v0.2.6/scripts/docker/build_apk.Dockerfile#L46

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

At some point when I was trying to get this to work I didn't have /maven in my /devel/share directory. I will have to retrace my steps to figure out why. I have developed a guest science app that logs coordinates from the simulator using the other path so it's a functional alternative for now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Buliding the Astrobee API with Ubuntu 20.04

3 participants