Установка ROS Melodic в Ubuntu 18.10 - PullRequest
0 голосов
/ 12 ноября 2018

Я не могу быть единственным человеком, заинтересованным в этой комбинации Космического (с Уэйлендом) и Мелодика.

Я буду честен: мне, кажется, удалось успешноэто на моем XPS 13 (9370) или, по крайней мере, сценарий установки [в конце концов] завершился успешно.Тем не менее, есть действительно хакерский обходной путь.Я с удовольствием проголосую за ответы других, кто попытался выполнить установку, независимо от результата.

В основном, я выполнил инструкции на http://wiki.ros.org/Installation/Source для установки "на компьютере", и вот как я справлялсяразличные препятствия на этом пути:

  • Переопределите дистрибутив, используя бионический вместо космический :
    rosdep install --from-paths src --ignore-src --os=ubuntu:bionic --rosdistro melodic -y

  • Увеличить ошибки библиотеки ...
    (См. Решение Михала Фапсо ниже. Это быстрее, проще, меньше ошибок ...)
    После установки aptitude переключайтесь назад и вперед между Boost 1.65 и Boost 1.67, повторяя установку после каждого переключателя.Шутки в сторону.Для этого есть две команды:
    sudo aptitude install libboost1.65-all-dev
    и:
    sudo apt install libboost1.67-all-dev
    Чередуйте около десятка раз, убедившись, что вы получитена более высокий номер пакета каждый раз.[Я думаю, что следующему поколению ROS потребуется функция Boost date_time, вызываемая по-другому.]

  • Случайные библиотеки --- OGRE, libyaml:
    OGRE можно легко и просто установить с помощьюapt (libogre-1.9-dev)
    libyaml ... также может быть установлен, за исключением того, что я попробовал три или четыре версии, прежде чем эта зависла (libyaml-cpp0.3-dev)


roscore работает, показывая мелодическую версию 1.14.3.Turtlesim работает с turtle_tf2_demo (телеоперация), работает rviz, а также с модулями rosgraph и Python (rospy).

Сообщите о своих ошибках, пожалуйста!

1 Ответ

0 голосов
/ 19 ноября 2018

Спасибо за ваши подсказки, Q. Райт.Вот более подробное руководство для начинающих ROS, таких как я:)

Эта часть из http://wiki.ros.org/melodic/Installation/Source и включает трюк Q. Wright с указанием более старого дистрибутива Ubuntu:

sudo apt-get install python-rosdep python-rosinstall-generator python-wstool python-rosinstall build-essential
sudo rosdep init
rosdep update
mkdir ~/projects/ros_catkin_ws
cd ~/projects/ros_catkin_ws
rosinstall_generator desktop_full --rosdistro melodic --deps --tar > melodic-desktop-full.rosinstall
wstool init -j8 src melodic-desktop-full.rosinstall
rosdep install --from-paths src --ignore-src --os=ubuntu:bionic --rosdistro melodic -y

Теперь, прежде чем мы запустим процесс сборки, есть ошибки библиотеки повышения, о которых упоминал В. Райт.Они вызваны функцией 'boost :: posix_time :: milliseconds', которая в более новых версиях boost принимает только целочисленный аргумент, а пакет actionlib в ROS дает ему значение float в нескольких местах.Вы можете перечислить все файлы, используя эту функцию:

find -type f -print0 | xargs -0 grep 'boost::posix_time::milliseconds' | cut -d: -f1 | sort -u

Откройте их в текстовом редакторе и найдите вызов функции boost :: posix_time :: milliseconds.Аргумент с плавающей точкой передается в следующих файлах:

./src/actionlib/include/actionlib/client/simple_action_client.h
./src/actionlib/include/actionlib/destruction_guard.h
./src/actionlib/include/actionlib/server/simple_action_server_imp.h
./src/actionlib/src/connection_monitor.cpp
./src/actionlib/test/destruction_guard_test.cpp

и заменяет вызовы следующим образом:

boost::posix_time::milliseconds(loop_duration.toSec() * 1000.0f));

на:

boost::posix_time::milliseconds(int(loop_duration.toSec() * 1000.0f)));

и эти:

boost::posix_time::milliseconds(1000.0f)

to:

boost::posix_time::milliseconds(1000)

Теперь мы наконец можем построить ROS, надеюсь, безо всяких ошибок:

./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release
...