FAQ
What to do in case of "Multiple packages found with the same name"
When running catkin
or catkin_make
I get errors that "Multiple packages found with the same name", e.g.
/Users/me/miniconda3/envs/robostackenv/share/catkin/cmake/em/order_packages.cmake.em:23: error: <class 'RuntimeError'>: Multiple packages found with the same name "catkin":
- pkgs/ros-noetic-catkin-0.8.10-py38hb43b470_10/share/catkin
- share/catkin
robostackenv
. However, conda and mamba should only be installed in your base
environment. Try setting up a new environment without conda
and mamba
installed into that environment. What to do if packages could not be found?
When trying to build packages, you get CMake errors that packages could not be found, such as
CMake Error at /Users/me/miniconda3/envs/robostackenv/share/catkin/cmake/catkinConfig.cmake:83 (find_package):
Could not find a package configuration file provided by "std_msgs" with any
of the following names:
std_msgsConfig.cmake
std_msgs-config.cmake
mamba install ros-noetic-std-msgs
. You can use rosdep
to install dependencies. Second, make sure that your CMAKE_PREFIX_PATH
points to your robostackenv
, in the example case you could achieve this by export CMAKE_PREFIX_PATH=/Users/me/miniconda3/envs/robostackenv/
. This might happen if CMAKE_PREFIX_PATH
is not empty when you activate your robostackenv
. Why does autocomplete not work in zsh environments?
You will need to install https://github.com/conda-incubator/conda-zsh-completion
How to fix RLException error on MacOS (M Chip & Intel CPUs) ?
If you run into "RLException: Unable to contact my own server" error on MacOS here are the instructions that you need to follow in order to resolve that issue:
- Set up ROS_MASTER URI at 127.0.0.1 on port 11311 :
export ROS_MASTER_URI=http://127.0.0.1:11311
- Set up ROS_HOSTNAME :
export ROS_HOSTNAME=127.0.0.1
- Open the hosts file with a text editor like nano:
sudo nano /etc/hosts
- Add the following lines if they are not already present:
127.0.0.1 macbookpro
and127.0.0.1 localhost
- Then save the file and restart your terminal.
Can I use RoboStack in a non-conda virtual environment?
RoboStack is based on conda-forge and will not work without conda. However, check out rospypi which can run in a pure Python virtualenv. rospypi supports tf2 and other binary packages.
What to do if I have Python-related problems during the build of custom messages?
It is possible that if you are having problems in finding the Python installed in your environment, and for some reason the Python of your system is found instead. To workaround these kind of problems, a trick is to explicitly specify which Python to use to CMake, via:
--cmake-args -DPython_EXECUTABLE=$CONDA_PREFIX/bin/python -DPython3_EXECUTABLE=$CONDA_PREFIX/bin/python -DPYTHON_EXECUTABLE=$CONDA_PREFIX/bin/python -DPython3_FIND_STRATEGY=LOCATION -DPython_FIND_STRATEGY=LOCATION
-DPython_EXECUTABLE=$CONDA_PREFIX/bin/python -DPython3_EXECUTABLE=$CONDA_PREFIX/bin/python -DPYTHON_EXECUTABLE=$CONDA_PREFIX/bin/python -DPython3_FIND_STRATEGY=LOCATION -DPython_FIND_STRATEGY=LOCATION
$CONDA_PREFIX/bin/python
with %CONDA_PREFIX%\python.exe
. If you still encounter issues, you will also need to set cmake_minimum_required
to at least version 3.15: cmake_minimum_required(VERSION 3.15)
in your CMakeLists.txt
. In order to remain compatible with older cmake versions, you can exploit the policy_max
feature as such: cmake_minimum_required(VERSION 3.5...3.15)
. Note that this is required because of CMP0094 (see also https://github.com/RoboStack/ros-humble/issues/162).
What to do if my conda environment C++ compiler is unable to find GL/gl.h?
If you are using Windows or macOS, you do not need any additional package to find GL/gl.h
and use OpenGL
.
Instead for using OpenGL
on Linux, conda-forge packages the libglvnd
OpenGL loader that contains the library required to link OpenGL, and you can install it with:
For actually running OpenGL-applications on Linux, you also need to make sure that your distribution has installed the packages containing the OpenGL drivers for you GPU. In most cases those should be already installed in your system, but in case they are not (tipically for headless systems or barebone containers) you can tipically add them with:
- Debian/Ubuntu-based distributions:
sudo apt-get install libgl1-mesa-dri libglx-mesa0 libegl-mesa0
- Fedora-based distributions:
sudo dnf install mesa-libGL mesa-libEGL mesa-dri-drivers