UT-ADL / autoware_mini

Autoware Mini is a minimalistic Python-based autonomy software.
https://adl.cs.ut.ee/lab/software
MIT License
43 stars 5 forks source link

rosdep install failure on macOS #1

Open martinl opened 1 year ago

martinl commented 1 year ago

Here are my current install notes for ROS Noetic and Autoware Mini using RoboStack on macOS Ventura

Running RViz works but I got stuck at installing Autoware Mini dependencies

# Autoware Mini macOS install notes

# install robostack https://robostack.github.io/GettingStarted.html

curl -L -O "https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-$(uname)-$(uname -m).sh"
chmod +x Mambaforge-$(uname)-$(uname -m).sh
bash ./Mambaforge-$(uname)-$(uname -m).sh

# open new terminal tab

mamba create -n ros_env
mamba activate ros_env

# this adds the conda-forge channel to the new created environment configuration
conda config --env --add channels conda-forge
# and the robostack channel
conda config --env --add channels robostack-staging
# remove the defaults channel just in case, this might return an error if it is not in the list which is ok
conda config --env --remove channels defaults

# Install ros-noetic into the environment (ROS1)
mamba install ros-noetic-desktop

mamba deactivate
mamba activate ros_env

# Default tools to help with local development of ROS packages
mamba install compilers cmake pkg-config make ninja colcon-common-extensions catkin_tools

# Testing

# open first terminal
mamba activate ros_env
roscore

# open second terminal
mamba activate ros_env
rviz

# deactivate ros_env
mamba deactivate

# continue with autoware mini install https://github.com/UT-ADL/autoware_mini/blob/release/README.md

rosdep init
rosdep update
rosdep install --from-paths . --ignore-src -r -y

last command fails with incompatible packages error:

rosdep install --from-paths . --ignore-src -r -y
ERROR: the following packages/stacks could not have their rosdep keys resolved
to system dependencies:
carla_ros_bridge: No definition of [python-transforms3d-pip] for OS [conda]
vehicle_platform: Cannot locate rosdep definition for [ssc_pm_lexus]
autoware_mini: No definition of [python-is-python3] for OS [conda]
Continuing to install resolvable dependencies...
executing command [mamba install -c robostack-staging -c conda-forge -y ros-noetic-derived-object-msgs ros-noetic-image-proc ros-noetic-camera-calibration ros-noetic-avt-vimba-camera ros-noetic-velodyne-pointcloud ros-noetic-novatel-oem7-driver ros-noetic-ackermann-msgs ros-noetic-ros-numpy ros-noetic-lanelet2 ros-noetic-jsk-rviz-plugins ros-noetic-joy scikit-learn pyproj catkin_tools ros-noetic-autoware-msgs ros-noetic-automotive-platform-msgs ros-noetic-automotive-navigation-msgs ros-noetic-novatel-oem7-msgs ros-noetic-radar-msgs ros-noetic-pcl-ros ros-noetic-pcl-conversions]

                  __    __    __    __
                 /  \  /  \  /  \  /  \
                /    \/    \/    \/    \
███████████████/  /██/  /██/  /██/  /████████████████████████
              /  / \   / \   / \   / \  \____
             /  /   \_/   \_/   \_/   \    o \__,
            / _/                       \_____/  `
            |/
        ███╗   ███╗ █████╗ ███╗   ███╗██████╗  █████╗
        ████╗ ████║██╔══██╗████╗ ████║██╔══██╗██╔══██╗
        ██╔████╔██║███████║██╔████╔██║██████╔╝███████║
        ██║╚██╔╝██║██╔══██║██║╚██╔╝██║██╔══██╗██╔══██║
        ██║ ╚═╝ ██║██║  ██║██║ ╚═╝ ██║██████╔╝██║  ██║
        ╚═╝     ╚═╝╚═╝  ╚═╝╚═╝     ╚═╝╚═════╝ ╚═╝  ╚═╝

        mamba (1.4.1) supported by @QuantStack

        GitHub:  https://github.com/mamba-org/mamba
        Twitter: https://twitter.com/QuantStack

█████████████████████████████████████████████████████████████

Looking for: ['ros-noetic-derived-object-msgs', 'ros-noetic-image-proc', 'ros-noetic-camera-calibration', 'ros-noetic-avt-vimba-camera', 'ros-noetic-velodyne-pointcloud', 'ros-noetic-novatel-oem7-driver', 'ros-noetic-ackermann-msgs', 'ros-noetic-ros-numpy', 'ros-noetic-lanelet2', 'ros-noetic-jsk-rviz-plugins', 'ros-noetic-joy', 'scikit-learn', 'pyproj', 'catkin_tools', 'ros-noetic-autoware-msgs', 'ros-noetic-automotive-platform-msgs', 'ros-noetic-automotive-navigation-msgs', 'ros-noetic-novatel-oem7-msgs', 'ros-noetic-radar-msgs', 'ros-noetic-pcl-ros', 'ros-noetic-pcl-conversions']

robostack-staging/osx-arm64                                   No change
robostack-staging/noarch                                      No change
conda-forge/osx-arm64                                6.3MB @   3.3MB/s  2.1s
conda-forge/noarch                                  12.4MB @   4.9MB/s  2.8s

Pinned packages:
  - python 3.9.*

Could not solve for environment specs
The following packages are incompatible
├─ ros-noetic-ackermann-msgs   does not exist (perhaps a typo or a missing channel);
├─ ros-noetic-automotive-navigation-msgs   does not exist (perhaps a typo or a missing channel);
├─ ros-noetic-automotive-platform-msgs   does not exist (perhaps a typo or a missing channel);
├─ ros-noetic-autoware-msgs   does not exist (perhaps a typo or a missing channel);
├─ ros-noetic-avt-vimba-camera   does not exist (perhaps a typo or a missing channel);
├─ ros-noetic-derived-object-msgs   does not exist (perhaps a typo or a missing channel);
├─ ros-noetic-jsk-rviz-plugins   does not exist (perhaps a typo or a missing channel);
├─ ros-noetic-lanelet2   does not exist (perhaps a typo or a missing channel);
├─ ros-noetic-novatel-oem7-driver   does not exist (perhaps a typo or a missing channel);
├─ ros-noetic-novatel-oem7-msgs   does not exist (perhaps a typo or a missing channel);
├─ ros-noetic-ros-numpy   does not exist (perhaps a typo or a missing channel);
└─ ros-noetic-velodyne-pointcloud   does not exist (perhaps a typo or a missing channel).

ERROR: the following rosdeps failed to install
  conda: command [mamba install -c robostack-staging -c conda-forge -y ros-noetic-derived-object-msgs ros-noetic-image-proc ros-noetic-camera-calibration ros-noetic-avt-vimba-camera ros-noetic-velodyne-pointcloud ros-noetic-novatel-oem7-driver ros-noetic-ackermann-msgs ros-noetic-ros-numpy ros-noetic-lanelet2 ros-noetic-jsk-rviz-plugins ros-noetic-joy scikit-learn pyproj catkin_tools ros-noetic-autoware-msgs ros-noetic-automotive-platform-msgs ros-noetic-automotive-navigation-msgs ros-noetic-novatel-oem7-msgs ros-noetic-radar-msgs ros-noetic-pcl-ros ros-noetic-pcl-conversions] failed
  conda: Failed to detect successful installation of [ros-noetic-derived-object-msgs]
  conda: Failed to detect successful installation of [ros-noetic-image-proc]
  conda: Failed to detect successful installation of [ros-noetic-camera-calibration]
  conda: Failed to detect successful installation of [ros-noetic-avt-vimba-camera]
  conda: Failed to detect successful installation of [ros-noetic-velodyne-pointcloud]
  conda: Failed to detect successful installation of [ros-noetic-novatel-oem7-driver]
  conda: Failed to detect successful installation of [ros-noetic-ackermann-msgs]
  conda: Failed to detect successful installation of [ros-noetic-ros-numpy]
  conda: Failed to detect successful installation of [ros-noetic-lanelet2]
  conda: Failed to detect successful installation of [ros-noetic-jsk-rviz-plugins]
  conda: Failed to detect successful installation of [ros-noetic-joy]
  conda: Failed to detect successful installation of [scikit-learn]
  conda: Failed to detect successful installation of [pyproj]
  conda: Failed to detect successful installation of [catkin_tools]
  conda: Failed to detect successful installation of [ros-noetic-autoware-msgs]
  conda: Failed to detect successful installation of [ros-noetic-automotive-platform-msgs]
  conda: Failed to detect successful installation of [ros-noetic-automotive-navigation-msgs]
  conda: Failed to detect successful installation of [ros-noetic-novatel-oem7-msgs]
  conda: Failed to detect successful installation of [ros-noetic-radar-msgs]
  conda: Failed to detect successful installation of [ros-noetic-pcl-ros]
  conda: Failed to detect successful installation of [ros-noetic-pcl-conversions]

do you have any recommendations on how to build compatible packages

tambetm commented 1 year ago

Unfortunately RoboStack for MacOS does not have all the required packages available, you can see the list of packages here. Curiously these packages were available for linux-64 previously, but not any more.

You should be able to fix most of the dependencies manually:

  1. python-transforms3d-pip - can be installed with pip install transforms3d
  2. ssc_pm_lexus - not needed when not in the car
  3. python-is-python3 - not needed, in Python3 conda environments python is by default the same as python3
  4. ros-noetic-ackermann-msgs - https://github.com/ros-drivers/ackermann_msgs
  5. ros-noetic-automotive-platform-msgs - https://github.com/astuff/automotive_autonomy_msgs
  6. ros-noetic-autoware-msgs - https://github.com/autowarefoundation/autoware_ai_messages
  7. ros-noetic-avt-vimba-camera - not needed when not in the car
  8. ros-noetic-derived-object-msgs - https://github.com/astuff/astuff_sensor_msgs
  9. ros-noetic-jsk-rviz-plugins - https://github.com/jsk-ros-pkg/jsk_visualization
  10. ros-noetic-lanelet2 - https://github.com/fzi-forschungszentrum-informatik/lanelet2
  11. ros-noetic-novatel-oem7-driver - not needed when not in the car
  12. ros-noetic-novatel-oem7-msgs - not needed when not in the car
  13. ros-noetic-ros-numpy - https://github.com/eric-wieser/ros_numpy
  14. ros-noetic-velodyne-pointcloud - not needed when not in the car
  15. ros-noetic-image-proc - weird, try again mamba install ros-noetic-image-proc
  16. ros-noetic-camera-calibration - weird, try again mamba install ros-noetic-camera-calibration
  17. ros-noetic-joy - not needed when not in the car
  18. scikit-learn - weird, try again mamba install scikit-learn
  19. pyproj - weird, try again mamba install pyproj
  20. catkin_tools - weird, try again mamba install catkin_tools
  21. ros-noetic-radar-msgs - https://github.com/ros-perception/radar_msgs
  22. ros-noetic-pcl-ros - weird, try again mamba install ros-noetic-pcl-ros
  23. ros-noetic-pcl-conversions - weird, try again mamba install ros-noetic-pcl-conversions

Most of these packages are just message definitions, I see no reason why RoboStack does not include them. You just need to clone the respective repo to autoware_mini_ws/src and rebuild the project. NB! Noetic version of the messages might not be in the default branch, you may need to find the branch from which the noetic build was made from.

Also for a very basic planner simulation test you could omit vehicle_platform and carla_ros_bridge repos and include only autoware_mini in the workspace. This should shorten the list of failed packages, especially drivers, which are only required in the car.

tambetm commented 1 year ago

There is also unofficial Docker compose setup, which I haven't had time to review yet. autoware_mini_docker_compose.zip