ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

Hi, I've compiled ROS bare-bone packages on my macOS. and I've managed to run rqt tools.

Basically what I did is, create a catkin_ws/src/ and under src/ I've added all the bare-bone packages, rospy roscpp topic_tools image_tools rqt_gui ... etc

and configured the workspace, such that the -DPYTHON_LIBRARY -DPYTHON_INCLUDE_DIR arguments were set, and also configured the install space as /opt/ros/melodic

Here is how my catkin_ws/.catkin_tools/profiles/default/build.yaml file looks like:

blacklist: []
build_space: build
catkin_make_args: []
cmake_args:
- -DCMAKE_FIND_FRAMEWORK=LAST
- -DCATKIN_ENABLE_TESTING=1
- -DCMAKE_BUILD_TYPE=Release
- -DPYTHON_LIBRARY=/Library/Frameworks/Python.framework/Versions/2.7/lib/libpython2.7.dylib
- -DPYTHON_INCLUDE_DIR=/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7
- -DPYTHON3_LIBRARY=/Library/Frameworks/Python.framework/Versions/3.7/lib/libpython3.7.dylib
- -DPYTHON3_INCLUDE_DIR=/Library/Frameworks/Python.framework/Versions/3.7/include/python3.7m
- -DCMAKE_CXX_FLAGS= -DQT_MAC_USE_COCOA
- -DCMAKE_CXX_STANDARD=14
devel_layout: linked
devel_space: devel
extend_path: null
install: true
install_space: /opt/ros/melodic
isolate_install: false
jobs_args: []
log_space: logs
make_args: []
needs_force: false
source_space: src
use_env_cache: false
use_internal_make_jobserver: true
whitelist: []

Esentially, the .rosinstall file contains every package that is in bare bones or desktop-full bundles. The was i've downloaded all of the packages is with the following script. The reason I've used this script instead of the default method with rosinstall command is i had SSL issues with my computer, so the rosinstall continuously failed to download those packages I had to write my own ... (I know I know .. :) )

import yaml
stream = open("melodic-tf.rosinstall", 'r+').read()
arr = yaml.safe_load(stream)


import os
if not os.path.isdir("./download_folder"):
    os.mkdir("./download_folder")

os.chdir("./download_folder") cur_path =
os.path.dirname(os.path.realpath(__file__))

for elem in arr:
    if "tar" in elem.keys():
        name = elem["tar"]["local-name"]
        uri = elem["tar"]["uri"]
        download_name = uri.split("/")[-1]

        os.system("mkdir -p " + name)

        os.chdir(name)
        os.system("wget " + uri)
        os.system("tar -xvf " + download_name)
        _list = os.listdir(".")
        selected_name = ""
        for l in _list:
            if l != download_name:
                selected_name = l
        os.system("mv ./" + selected_name + "/* .")
        os.system("rm -rf " + selected_name)

        os.chdir(cur_path)

    elif "git" in elem.keys():
        name = elem["git"]["local-name"]
        uri = elem["git"]["uri"]
        ver = elem["git"]["version"]

        os.system("git clone " + uri + " " + name)
        os.chdir(name)
        os.system("git checkout " + ver)
        os.chdir(cur_path)

After I've downloaded everything and configured the catkin as described above, all i had to do was very simple and easy and just run catkin build, which resulted in about 100 errors to fix :D You'll need to install boost and other required libraries through homebrew, which I searched on google to how to install one by one, as I got more erros. And finally, all the compilations were successful, I just sourced /opt/ros/melodic/setup.bash, and moved on.

You can ask more details (package library versions etc etc) if you want as i still use that setup.

BTW this is not the easiest installation, you can definitely work with brew installation method on the official ros site, idk why I've choosen this way :)

Note: I know this question is not related to ROS1 which my configuration is, and is related to ROS2, I haven't got into ROS 2 yet, but I am replying as you've contacted me on reddit.