【问题标题】:Installing ROS Melodic on Ubuntu 18.10在 Ubuntu 18.10 上安装 ROS Melodic
【发布时间】:2019-01-02 01:10:05
【问题描述】:

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

我会提前说明:我似乎已经在我的 XPS 13 (9370) 上成功地管理了这个,或者至少安装脚本 [最终] 成功完成了。但是,有一个非常hacky的解决方法。无论结果如何,我都会很乐意对尝试安装的其他人的回复进行投票。

基本上,我在http://wiki.ros.org/Installation/Source 上运行了“桌面”安装的说明,以下是我在此过程中处理各种障碍的方法:

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

  • Boost 库错误...
    (请参阅下面 Michal Fapso 的解决方案。它更快、更容易、错误更少...)
    安装 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:
    可以使用 apt (libogre-1.9-dev) 轻松轻松地安装 OGRE
    libyaml... 也可以安装,除了我尝试了三四个版本之前这个卡住了(libyaml-cpp0.3-dev)


roscore 运行,显示旋律版本 1.14.3。 Turtlesim 与 turtle_tf2_demo(远程操作)、rviz 以及 rosgraph 和 Python(rospy)模块一起运行。

请报告您的错误!

【问题讨论】:

  • 那么现在在 Ubuntu 18.10 上安装 ROS 的状态如何?只能从源头上吗?我尝试通过sources.list,但在更新时它给了我一个“无发布文件”-错误。在 ubuntu 18.10 上安装 ROS 时应遵循任何资源或步骤吗?或者只是从源代码安装并像你和迈克尔那样处理障碍?
  • 其他人需要回答;我不想安装,因为依赖地狱,我已经转向使用 Virtualbox 安装 ROS2。

标签: boost ros


【解决方案1】:

感谢您的提示,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

现在,在我们运行构建过程之前,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

在您的文本编辑器中打开它们并搜索“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)

到:

boost::posix_time::milliseconds(1000)

现在我们终于可以构建 ROS,希望没有任何错误:

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

【讨论】:

  • 快速问题:您是否成功地完成并安装了所有依赖项而没有任何问题? rosdep install --from-paths src --ignore-src --os=ubuntu:bionic --rosdistro melodic -y
  • @avermaet,我不记得了。那时我只学习了很少的 ROS 教程,现在我没有使用 ROS。但是当我运行你现在提到的命令时,我得到这个输出:ERROR: the following packages/stacks could not have their rosdep keys resolved to system dependencies: husky_gazebo: Cannot locate rosdep definition for [multimaster_launch] husky_control: Cannot locate rosdep definition for [teleop_twist_joy] husky_bringup: Cannot locate rosdep definition for [um7] husky_navigation: Cannot locate rosdep definition for [gmapping]
  • 好的,谢谢。也不适合我,所以我降级到受支持的 18.04。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-16
  • 1970-01-01
  • 2022-11-04
  • 2020-10-07
  • 1970-01-01
  • 1970-01-01
  • 2020-01-21
相关资源
最近更新 更多