TakanoTaiga / ros2_m1_native

macOS Native ROS 2
Apache License 2.0
38 stars 6 forks source link

Are you planning this package to be the part of the native distribution ? #10

Closed nihavend closed 8 months ago

nihavend commented 8 months ago

Thank you so much Takano. I am able to play with ROS2 with the help of of your repo on my M1 Max 32G at last.

Your repo uses ROS humble. Are you planning to migrate to Iron and/or rolling ?

TakanoTaiga commented 8 months ago

I am very pleased that it is operational. While support for Iron and Rolling is not currently under consideration, we are contemplating supporting the Jazzy release, which is a Long Term Support (LTS) version.

pfavr2 commented 8 months ago

Hi I'm Peter who is currently maintaining a script for installing ros2_rolling on Mac M1:

https://github.com/pfavr2/install_ros2_rolling_on_mac_m1

Maybe we could combine the effort and merge our solutions?

Best regards,

Peter

nihavend commented 8 months ago

@TakanoTaiga hope you can cooperate with @pfavr2 for the future of the project. I have a question about the tutorials. As the packages and the installation is ready for M1, how can I go through the tutorial at homesite any idea ?

TakanoTaiga commented 8 months ago

Thank you very much, @pfavr2, for sharing such a valuable repository. I would definitely like to collaborate. There are various ways to contribute, such as integrating into the repository or contributing to ROS2. Do you have any ideas?

TakanoTaiga commented 8 months ago

@nihavend In the tutorial on the homepage, I'm considering organizing the repository within the tutorial, or as a separate branch or project. However, since this repository shares procedures that diverge significantly from the official ROS2 installation instructions, it may not be entirely practical to strictly adhere to the official tutorial.

nihavend commented 8 months ago

@nihavend In the tutorial on the homepage, I'm considering organizing the repository within the tutorial, or as a separate branch or project. However, since this repository shares procedures that diverge significantly from the official ROS2 installation instructions, it may not be entirely practical to strictly adhere to the official tutorial.

To have all in within the official tutorial is the best case I guess but it may get more time rather than to have them in separate brunch or even project. Both makes one happy :) Let me know if I can do anything. I am going to try to go through with tutorial.

pfavr2 commented 8 months ago

Thank you very much, @pfavr2, for sharing such a valuable repository. I would definitely like to collaborate. There are various ways to contribute, such as integrating into the repository or contributing to ROS2. Do you have any ideas?

Thank you for the nice reply @TakanoTaiga 😀

Getting our work upstream must be the ultimate goal?

But to begin with we could maybe merge my repo into yours?

I think some files in patches/ might already be quite similar (across ROS2 versions)... so maybe make your repo have branches for each ros2 distribution e.g. ros2_iron, ros2_rolling etc?

Or we could make separate directories (and scripts) for each distribution and a "common" directory for the shared patches?

TakanoTaiga commented 8 months ago

Thank you, @pfavr2, for your suggestion. While I intend to merge it into my final upstream, I believe integrating it into my repository is also a good idea at the moment. As for the approach, I think the following might be suitable:

Or we could make separate directories (and scripts) for each distribution and a "common" directory for the shared patches?

TakanoTaiga commented 8 months ago

@nihavend It would be great to eventually merge it into upstream. If there are any issues with the current official tutorial, it might be a good idea to prepare a corrected tutorial within the ros2_m1_native repository.

nihavend commented 8 months ago

I have completed Beginner: CLI tools with no major differences using ros2_m1_native.

activated the workspace :

source /..../ros2_workspace/ros2_m1_native/install/setup.zsh
export ROS_VERSION=2
export ROS_PYTHON_VERSION=3
export ROS_DISTRO=humble

But for the Beginner: Client libraries needs some modification (which is beyond my current knowhow) as colcon have issues with ros2_m1_native repo.

I am using the below build script for workaround and completed Beginner: Client libraries -> Creating a workspace section of the tutorial

export CMAKE_PREFIX_PATH=$CMAKE_PREFIX_PATH:$(brew --prefix qt@5)
export PATH=$PATH:$(brew --prefix qt@5)/bin
export COLCON_EXTENSION_BLOCKLIST=colcon_core.event_handler.desktop_notification
python3.11 -m colcon build --symlink-install --packages-skip-by-dep qt_gui_cpp --packages-skip qt_gui_cpp --cmake-args \
            -DBUILD_TESTING=OFF \
            -DTHIRDPARTY=FORCE \
            -DCMAKE_BUILD_TYPE=Release \
            -Wno-dev

Let you know as i go forward...

nihavend commented 8 months ago

Hi guys, completed all beginning tutorials successfully. The workspace collapsed after running dependecy installer. I started from sratch but facing problems below and going to work to resolve the issue.

Just for yoru info :

Running command :

python3.11 -m colcon build --symlink-install --packages-skip-by-dep qt_gui_cpp --packages-skip qt_gui_cpp --cmake-args \
            -DBUILD_TESTING=OFF \
            -DTHIRDPARTY=FORCE \
            -DCMAKE_BUILD_TYPE=Release \
            -Wno-dev

CMake Error at ament_cmake_symlink_install/ament_cmake_symlink_install.cmake:29 (file):
  file failed to create directory:

    /xxx/xxx/xxx/xxx/xxx/ros2_m1_native/install/ament_cmake_test/../../../../../../../../Library/Python/3.9/site-packages/ament_cmake_test-1.3.8-py3.9.egg-info

  because: Permission denied
Call Stack (most recent call first):
  ament_cmake_symlink_install/ament_cmake_symlink_install.cmake:320 (ament_cmake_symlink_install_directory)
  cmake_install.cmake:36 (include)

---
Failed   <<< ament_cmake_test [2.57s, exited with code 1]
Starting >>> rosidl_cli
Starting >>> rpyutils
Aborted  <<< ament_lint_cmake [1.23s]
Aborted  <<< ament_cpplint [1.21s]
Aborted  <<< ament_clang_tidy [1.18s]
Aborted  <<< ament_clang_format [1.19s]
Aborted  <<< osrf_testing_tools_cpp [6.87s]
Aborted  <<< launch [0.45s]
Aborted  <<< rpyutils [0.02s]
Aborted  <<< rosidl_cli [0.04s]
Aborted  <<< ament_pclint [1.12s]

Summary: 32 packages finished [9.08s]
  1 package failed: ament_cmake_test
  9 packages aborted: ament_clang_format ament_clang_tidy ament_cpplint ament_lint_cmake ament_pclint launch osrf_testing_tools_cpp rosidl_cli rpyutils
  34 packages had stderr output: ament_cmake_core ament_cmake_export_definitions ament_cmake_export_dependencies ament_cmake_export_include_directories ament_cmake_export_interfaces ament_cmake_export_libraries ament_cmake_export_link_flags ament_cmake_export_targets ament_cmake_include_directories ament_cmake_libraries ament_cmake_python ament_cmake_target_dependencies ament_cmake_test ament_cmake_version ament_copyright ament_cppcheck ament_flake8 ament_index_python ament_lint ament_mypy ament_package ament_pep257 ament_pycodestyle ament_pyflakes ament_xmllint domain_coordinator fastcdr gmock_vendor gtest_vendor osrf_pycommon osrf_testing_tools_cpp ros_environment test_interface_files urdfdom_headers
  290 packages not processed
nihavend commented 8 months ago

fixed