在Ubuntu 18.10上安装ROS Melodic

Q. *_*ght 5 boost ros

不是唯一对Cosmic(与Wayland结合)和Melodic结合感兴趣的人。

我会提前:我似乎已经在我的XPS 13(9370)上成功地管理了此操作,或者至少成功地完成了安装脚本。但是,有一个真正的解决方法。无论结果如何,我都会很乐意投票给其他尝试安装的人。

基本上,我在http://wiki.ros.org/Installation/Source上运行了“桌面”安装的说明,以下是我如何处理各种麻烦的方法:

  • 使用仿生而不是宇宙覆盖发行版:
    rosdep install --from-paths src --ignore-src --os=ubuntu:bionic --rosdistro melodic -y

  • 增强库错误...
    (请参阅下面的Michal Fapso的解决方案。它更快,更轻松,更不会出现错误……)
    安装aptitude之后,在Boost 1.65和Boost 1.67之间来回切换,每次切换后重试安装。说真的 执行此操作的两个命令是: 和: 交替执行大约十二次,以确保每次获得的包装编号都更高。[我认为下一代ROS将需要Boost的date_time函数以不同的方式调用。]
    sudo aptitude install libboost1.65-all-dev

    sudo apt install libboost1.67-all-dev

  • 随机库--- OGRE,libyaml:
    可以使用apt(libogre-1.9-dev)
    libyaml 轻松轻松地安装OGRE ...也可以安装...,但在此卡死之前我尝试过三个或四个版本(libyaml-cpp0。 3-dev)


roscore运行,显示旋律版本1.14.3。Turtlesim使用turtle_tf2_demo(远程操作)运行,rviz可以运行,并且可以使用rosgraph和Python(rospy)模块。

请报告您的错误!

Mic*_*pso 5

感谢您的提示,Q。Wright。这是针对像我这样的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
Run Code Online (Sandbox Code Playgroud)

现在,在我们运行构建过程之前,存在Q. Wright提到的boost库错误。它们是由“ boost :: posix_time :: milliseconds”函数引起的,该函数在较新的boost版本中仅接受整数参数,但是ROS中的actionlib程序包在多个位置上对其进行了浮动处理。您可以使用该功能列出所有文件:

find -type f -print0 | xargs -0 grep 'boost::posix_time::milliseconds' | cut -d: -f1 | sort -u
Run Code Online (Sandbox Code Playgroud)

在文本编辑器中将其打开,然后搜索“ 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
Run Code Online (Sandbox Code Playgroud)

并替换如下调用:

boost::posix_time::milliseconds(loop_duration.toSec() * 1000.0f));
Run Code Online (Sandbox Code Playgroud)

至:

boost::posix_time::milliseconds(int(loop_duration.toSec() * 1000.0f)));
Run Code Online (Sandbox Code Playgroud)

还有这些:

boost::posix_time::milliseconds(1000.0f)
Run Code Online (Sandbox Code Playgroud)

至:

boost::posix_time::milliseconds(1000)
Run Code Online (Sandbox Code Playgroud)

现在我们终于可以构建ROS,希望不会出现任何错误:

./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release
Run Code Online (Sandbox Code Playgroud)