Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Include arm64 machines as used in MAC M1 Virtual, Raspberry Pi & Nvidia machine as a gz-sim supported platform #2160

Closed
ARLunan opened this issue Sep 20, 2023 · 13 comments
Assignees
Labels
enhancement New feature or request

Comments

@ARLunan
Copy link

ARLunan commented Sep 20, 2023

Required Info
Operating System: Ubuntu 22.04.3 arm64
ROS2 Version: Iron Binary

Desired behavior
Install Gazebo Harmonic and ros-gz on arm64 platforms such as MAC M1 Virtual (NOT native MAC functionality), Raspberry Pi or Nvidia machines used as a ROS 2 Desktop,

@ARLunan ARLunan added the enhancement New feature or request label Sep 20, 2023
@mjcarroll mjcarroll moved this from Inbox to To do in Core development Oct 30, 2023
@azeey
Copy link
Contributor

azeey commented Dec 13, 2023

Running bash terminal-dashboard/table.bash harmonic shows that arm64 packages are available, so it should be possible to build ros-gz from source on arm64.
image

@ARLunan
Copy link
Author

ARLunan commented Dec 23, 2023

Tnx: On my MAC M1 arm64 Ubuntu 22.05 Machine (that currently also has ign gazebo installed and working), successfully Binary ( I use Synaptic) installed gz-cmake3 gz-tools2 gz-utils2 gz-math7 gz-common5 gz-msgs10 sdformat14 gz-fuel_tools9 gz-plugin2 gz-transport13 gui8 launch7 sim8 sensors8 gz-physics7 gz-harmonic .

@ARLunan
Copy link
Author

ARLunan commented Dec 24, 2023

Then tried Source install ros_gz branch ros2 (default),: rosdep completed. But Build failed due missing gz-transport12, just noticed a Pull request #473 in ros_gz that is in process to support Harminc . This should fix this?

@jpgtzg
Copy link

jpgtzg commented Dec 26, 2023

Hi, have there been any fixes to this issue?

@ARLunan
Copy link
Author

ARLunan commented Dec 26, 2023

Pertaining to gz_sim, yes. Following Installation from Binary , (https://gazebosim.org/api/sim/8/install.html) on my Ubuntu 22.04 MAC M1 arm64 Parallels 18 VM (and I believe would be the case on a native x86-64 also), successfully installed gz_sim. executing $ gz sim --version displays : Gazebo Sim, version 8.0.0 .
This includes libgz-sim8-dev and the set of gz_sim packages gz-cmake3 gz-tools2 gz-utils2 gz-math7 gz-common5 gz-msgs10 sdformat14 gz-fuel_tools9 gz-plugin2 gz-transport13 gui8 launch7 sim8 sensors8 gz-physics7 gz-harmonic. I actually installed these 16 packages manually with Synaptic (GUI dpkg) .

However, there remains an issue with Source install of ros_gz on Humble (even provided executing $ export GZ_VERSION=harmonic as necessary dependency ros2/ros2 rosidl_pycommon doesn't exist in Humble. ( ros2/rosidl#777 ).
I posted a bug issue (gazebosim/ros_gz#474) which was moved to github-project-automation Inbox in Core development, to release availability of Binary install for Native Ubuntu 22.04 x86-64 and Native or VM arm64 machines.

@jpgtzg
Copy link

jpgtzg commented Dec 27, 2023

Yesterday I installed Gazebo Fortress from this link: https://gazebosim.org/docs/fortress/install_ubuntu

And ran it with ign gazebo --render-engine ogre and had no problems. Then I installed ros_gz through sudo apt install ros-humble-ros-gz and had no issues.

What's the difference between my method to install gazebo and yours?

Thanks for helping by sharing your information @ARLunan , if I get more issues or comments to help fixing this, I will.

@ARLunan
Copy link
Author

ARLunan commented Dec 28, 2023

To answer your install method question: I have a Ubuntu 22.04 arm64 machine (MAC M1 with Parallels VM), vs your x86-64 Intel machine. I can binary install gz_sim but not ros_gz. A ros_gz Source that I must use now that fails, install requires a ros2 dependency with is not available on Humble. I hope that is fixed by adding an arm64 Binary install to the already available x86-64 install, (gazebosim/ros_gz#474) .

@jpgtzg
Copy link

jpgtzg commented Dec 29, 2023

Thanks for replying!

I have a Mac m1 with Asahi ubuntu, so I'm on a similar situation as you. I am running ros2 humble without any issues. I didn't have any issues downloading ros_gz. I installed through sudo apt install ros-humble-ros-gz. Not sure if I'm missing something here.

Maybe try using Gazebo Fortress with ign_ros_gz ?

@ARLunan
Copy link
Author

ARLunan commented Dec 29, 2023 via email

@azeey
Copy link
Contributor

azeey commented Jan 2, 2024

As mentioned in gazebosim/ros_gz#474 (comment), you need to use the humble branch when building ros_gz from source with with ROS 2 Humble. The ros2 branch is equivalent to rolling.

We currently provide binary packages for the ROS 2 Humble / Gazebo Fortress combination. That's what ros-humble-ros-gz is. Other binaries are available (eg. ros-humble-ros-gzgarden, see https://gazebosim.org/docs/harmonic/ros_installation), but these are not available for arm64.

@ARLunan
Copy link
Author

ARLunan commented Jan 3, 2024

Andromeda. As I mentioned in gazebosim/ros_gz#474 (comment) , Success compiling ros_gz from Source : Summary: 12 packages finished [37 secs] with the allocating 4 Cores CPU /8 GB Memory and export MAKEFLAGS="-j 1". Thank you.

So the ros_gz Harmonic (Humble branch) Install on a ROS 2 Humble from Source on a suitably powerful arm64 machine works . Thank you (and Azeey) for assistance.

@jpgtzg
Copy link

jpgtzg commented Jan 4, 2024

Perfect, I'm glad you've managed to compile it from source

Thanks for the help as well

@ARLunan
Copy link
Author

ARLunan commented Jan 9, 2024

For ros_rz and ros_gz_project_template source build, suggest adding these parameters to the READ.ME (such as on arm64 machines) , namely use the humble branch, before running colcon build in a Terminal:
$ export MAKEFLAGS="-j 1"
$ workspace/colcon build —executor sequential —parallel-workers=1, and in
ros_gz_sim_demos/hooks/ros_gz_demos.dev.in , revise IGN_GAZEBO_RESOURCE_PATH to GZ_SIM_RESOURCE_PATH.

Finally consider release a arm64 Binary Install for ros_gz and ros_gz_project_template.

@ARLunan ARLunan closed this as completed Jan 9, 2024
@github-project-automation github-project-automation bot moved this from To do to Done in Core development Jan 9, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Archived in project
Development

No branches or pull requests

4 participants