UT-ADL / autoware_mini

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

Running autoware mini on Ubuntu 22.04 #5

Open Leviathan321 opened 1 month ago

Leviathan321 commented 1 month ago

I was trying to install the environment for autoware mini on Ubuntu 22.04, however I fail at the step:

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

I tried different python versions but the errors are similar. Some excerpt is below.

├─ ros-noetic-lgsvl-msgs does not exist (perhaps a typo or a missing channel);
├─ ros-noetic-mrt-cmake-modules is not installable because it requires
│  └─ ros-distro-mutex 0.5.* , which requires
│     └─ libboost-devel 1.82.* , which conflicts with any installable versions previously reported;
├─ 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-pcl-conversions is installable with the potential options
   ├─ ros-noetic-pcl-conversions 1.7.4 would require
   │  └─ pcl >=1.13.1,<1.13.2.0a0  with the potential options
   │     ├─ pcl 1.13.1 would require
   │     │  ├─ qt-main >=5.15.8,<5.16.0a0  with the potential options
   │     │  │  ├─ qt-main [5.15.3|5.15.4|5.15.6|5.15.8], which can be installed (as previously explained);
   │     │  │  ├─ qt-main 5.15.8, which can be installed (as previously explained);
   │     │  │  ├─ qt-main 5.15.8, which cannot be installed (as previously explained);
   │     │  │  ├─ qt-main 5.15.8, which cannot be installed (as previously explained);
   │     │  │  ├─ qt-main 5.15.8, which cannot be installed (as previously explained);
   │     │  │  ├─ qt-main 5.15.8, which cannot be installed (as previously explained);
   │     │  │  └─ qt-main 5.15.8, which cannot be installed (as previously explained);
   │     │  ├─ vtk >=9.2.6,<9.2.7.0a0  with the potential options
   │     │  │  ├─ vtk [9.2.5|9.2.6] would require
   │     │  │  │  ├─ python >=3.10,<3.11.0a0 , which can be installed;
   │     │  │  │  └─ vtk-base [9.2.6 egl_py310h1234567_10|9.2.6 egl_py310h1234567_11|...|9.2.6 qt_py310h1234567_223], which requires
   │     │  │  │     └─ python >=3.10,<3.11.0a0 , which can be installed;
   │     │  │  ├─ vtk [9.2.5|9.2.6] would require
   │     │  │  │  ├─ python >=3.11,<3.12.0a0 , which can be installed;
   │     │  │  │  └─ vtk-base [9.2.6 egl_py311h1234567_10|9.2.6 egl_py311h1234567_11|...|9.2.6 qt_py311h1234567_223], which requires
   │     │  │  │     └─ python >=3.11,<3.12.0a0 , which can be installed;
   │     │  │  ├─ vtk [9.2.5|9.2.6] would require
   │     │  │  │  ├─ python >=3.8,<3.9.0a0 , which can be installed;
   │     │  │  │  └─ vtk-base [9.2.6 egl_py38h1234567_10|9.2.6 egl_py38h1234567_11|...|9.2.6 qt_py38h1234567_223], which requires
   │     │  │  │     └─ python >=3.8,<3.9.0a0 , which can be installed;
   │     │  │  ├─ vtk [9.2.5|9.2.6] would require
   │     │  │  │  ├─ pugixml >=1.11.4,<1.12.0a0 , which conflicts with any installable versions previously reported;
   │     │  │  │  └─ vtk-base [9.2.6 egl_py39h1234567_3|9.2.6 egl_py39h1234567_4|...|9.2.6 qt_py39h1234567_206], which requires
   │     │  │  │     └─ pugixml >=1.11.4,<1.12.0a0 , which conflicts with any installable versions previously reported;
   │     │  │  ├─ vtk 9.2.6 would require
   │     │  │  │  └─ vtk-base [9.2.6 egl_py312h1234567_18|9.2.6 egl_py312h1234567_19|...|9.2.6 qt_py312h1234567_223], which requires
   │     │  │  │     └─ python >=3.12,<3.13.0a0 , which can be installed;
   │     │  │  ├─ vtk 9.2.6 would require
   │     │  │  │  └─ vtk-base [9.2.6 egl_py39h1234567_10|9.2.6 egl_py39h1234567_11|...|9.2.6 qt_py39h1234567_218], which requires
   │     │  │  │     └─ pugixml >=1.13,<1.14.0a0 , which conflicts with any installable versions previously reported;
   │     │  │  └─ vtk 9.2.6 would require
   │     │  │     └─ vtk-base [9.2.6 egl_py39h1234567_19|9.2.6 egl_py39h1234567_20|...|9.2.6 qt_py39h1234567_223], which requires
   │     │  │        └─ libexpat [<2.6 |>=2.5.0,<2.6.0a0 ], which conflicts with any installable versions previously reported;
   │     │  └─ vtk-base >=9.2.6,<9.2.7.0a0  with the potential options
   │     │     ├─ vtk-base 9.2.6, which can be installed (as previously explained);
   │     │     ├─ vtk-base 9.2.6, which can be installed (as previously explained);
   │     │     ├─ vtk-base 9.2.6, which can be installed (as previously explained);
   │     │     ├─ vtk-base 9.2.6, which can be installed (as previously explained);
   │     │     ├─ vtk-base 9.2.6, which cannot be installed (as previously explained);
   │     │     ├─ vtk-base 9.2.6, which cannot be installed (as previously explained);
   │     │     └─ vtk-base 9.2.6, which cannot be installed (as previously explained);
   │     ├─ pcl 1.13.1 would require
   │     │  └─ vtk >=9.2.5,<9.2.6.0a0  with the potential options
   │     │     ├─ vtk [9.2.5|9.2.6], which can be installed (as previously explained);
   │     │     ├─ vtk [9.2.5|9.2.6], which can be installed (as previously explained);
   │     │     ├─ vtk [9.2.5|9.2.6], which can be installed (as previously explained);
   │     │     └─ vtk [9.2.5|9.2.6], which cannot be installed (as previously explained);
   │     └─ pcl 1.13.1 would require
   │        └─ boost-cpp >=1.78.0,<1.78.1.0a0 , which conflicts with any installable versions previously reported;
   └─ ros-noetic-pcl-conversions 1.7.4 would require
      └─ ros-distro-mutex 0.4.* noetic, which can be installed.
ERROR: the following rosdeps failed to install
  conda: command [mamba install -c robostack-staging -c conda-forge -y geographiclib-cpp ros-noetic-mrt-cmake-modules libboost-python-devel ros-noetic-jsk-rviz-plugins ros-noetic-joy ros-noetic-pcl-ros catkin_tools ros-noetic-novatel-oem7-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-pcl-conversions libboost-devel libboost-python-devel ros-noetic-jsk-recognition-msgs ros-noetic-lgsvl-msgs] failed
  conda: Failed to detect successful installation of [geographiclib-cpp]
  conda: Failed to detect successful installation of [ros-noetic-mrt-cmake-modules]
  conda: Failed to detect successful installation of [libboost-python-devel]
  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 [ros-noetic-pcl-ros]
  conda: Failed to detect successful installation of [catkin_tools]
  conda: Failed to detect successful installation of [ros-noetic-novatel-oem7-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-pcl-conversions]
  conda: Failed to detect successful installation of [libboost-devel]
  conda: Failed to detect successful installation of [libboost-python-devel]
  conda: Failed to detect successful installation of [ros-noetic-jsk-recognition-msgs]
  conda: Failed to detect successful installation of [ros-noetic-lgsvl-msgs]

I tried to install the packages via cloning the github repos (as for issue 1), but there are still many packages missing. For instance I fail to install deps to solve that error:

Errors     << jsk_recognition_utils:cmake /home/lev/Documents/testing/autoware_mini_ws/logs/jsk_recognition_utils/build.cmake.004.log                                                                                         
CMake Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required):
  Compatibility with CMake < 2.8.12 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.

CMake Error at /home/lev/miniforge3/envs/ros_env_9/share/catkin/cmake/catkinConfig.cmake:83 (find_package):
  Could not find a package configuration file provided by "jsk_topic_tools"
  with any of the following names:

    jsk_topic_toolsConfig.cmake
    jsk_topic_tools-config.cmake

  Add the installation prefix of "jsk_topic_tools" to CMAKE_PREFIX_PATH or
  set "jsk_topic_tools_DIR" to a directory containing one of the above files.
  If "jsk_topic_tools" provides a separate development package or SDK, be
  sure it has been installed.

Is the compatibility tested with Ubuntu 22.04 or are there any recommendations?

Also, does the python version for installing the ros deps has to match the python version in the environment we create to install autoware mini python dependencies? Which python version is recommended?

tambetm commented 1 month ago

Unfortunately Autoware Mini at the moment works only with Ubuntu 20.04 and ROS Noetic. This requirement comes from some of the drivers we use with our car. It recently came to my attention that Robostack is missing autoware_msgs package, which means that RoboStack ROS Noetic is not an option as well. Unfortunately Ubuntu 20.04 (possibly through Docker) is your only choice at the moment.

Leviathan321 commented 4 weeks ago

Ok thank you for the hint. So I could manage to run the autoware mini + CARLA setup via Docker after customizing the files in here: https://github.com/UT-ADL/autoware_mini/files/11582192/autoware_mini_docker_compose.zip. I can share the code if interested later. Do you maybe know the best way to extract the location and velocity traces of the autoware car and other actors from autoware directly? I know I can do it via Carla but would like to have it directly via autoware

tambetm commented 3 weeks ago

Oh, thanks for reminding me about the Docker, I still need to review it.

To extract the location and velocity the easiest is to record /localization/current_pose and /localization/current_velocity. Current pose is in UTM zone 35N coordinate system with custom origin.

I think it would be best to record ROS bag file of your experiments and process it later using Python. But if you want something quick and dirty then rostopic echo -p /localization/current_pose >current_pose.csv could do the trick. You would need to time-sync CSV files later then.

Leviathan321 commented 3 weeks ago

I have already tested and augmented the code, I put it here for our own lab: https://github.com/ast-fortiss-tum/autoware_mini_docker. Let me know if I need to attribute to someone.

Ok I dont know yet, which solution is faster...I would need execute many (>500) scenarios and process everytime the traces.