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 ... (more)
Not for reading/writing
.bag
s.What's a "ROS pub/sub server" btw?
Not sure how you would "replay rosbags" without having a ROS master active and some nodes, but that would probably depend on your definition of replay.
Sorry, I'm still getting familiar with the terminology. When I tried running
pspypi/simple
it expected aROS_MASTER
server running athttp://localhost:11311
If you create a node: yes, you need a master.
But for working with
.bag
s, that's not needed.okay good to know thanks! I'll investigate further.
My goal is to run
rqt_bag
andrviz
using macos on both pre-recorded and simulated data