在 Ubuntu 18.10 上安装 ROS Melodic

2023-12-21

I can't是唯一对 Cosmic(与 Wayland)和 Melodic 的组合感兴趣的人。

我会坦白说:我似乎已经在 XPS 13 (9370) 上成功管理了此操作,或者至少安装脚本[最终]成功完成。然而,有一个非常棘手的解决方法。无论结果如何,我都会很乐意投票支持其他尝试安装的人的回复。

基本上,我运行了说明http://wiki.ros.org/Installation/Source 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
    and:
    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) 模块一起运行。

请报告您的错误!


感谢您的提示,Q. Wright。这是针对像我这样的 ROS 初学者的更详细的指南:)

这部分来自http://wiki.ros.org/melodic/Installation/Source 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));

to:

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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Ubuntu 18.10 上安装 ROS Melodic 的相关文章

随机推荐

  • C# 中简单线程池的代码 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 在 gelf 连接失败时使用 Symfony 2 / Monolog 防止内部服务器错误

    我正在尝试使用 gelf 格式将日志从 symfony 2 应用程序流式传输到graylog 2 服务器 我的独白配置如下 monolog handlers 8 lt gt 8 graylog type gelf publisher hos
  • DWR 的缺点是什么?

    在内网中使用DWR时 会出现性能或安全问题等缺点吗 直接 Web 远程处理是一种使用 Ajax 请求从 js 文件联系服务器的工具 我要注意的一件事是 与 正常 全页 HTTP 交付相比 您的服务器很可能会受到更多 HTTP 请求的攻击 让
  • 为什么在测试 MediaRecorder 示例时出现致命异常?

    我使用 Android Studio 在真实设备中测试示例 E Android SDK samples android 22 media MediaRecorder 出现以下错误 为什么 样本中是否存在一些错误 顺便说一句 我的 Andro
  • 返回按钮和上次活动

    我的应用程序链接了一些活动 如果您按后退按钮 您会返回到旧的活动 然后您会突然退出应用程序 所以如果它是堆栈上的最后一个活动 我需要显示一条消息 例如 你真的想退出吗 我知道如何覆盖后退按钮 但我不知道如何知道历史中有多少活动 Overri
  • 为 SQL Server 中的字段生成唯一哈希

    我正在编写一个会员提供程序 以便与我们现有的会员基础一起使用 我使用 EF4 1 进行所有数据库访问 我遇到的问题之一是 当数据库最初设置时 关系是以编程方式完成的 而不是在数据库中完成的 一种是如果需要在并非所有用户都需要的列上建立关系
  • 如何在WebRTC对等连接中创建数据通道?

    我正在尝试学习如何创建一个RTCPeerConnection这样我就可以使用DataChannelAPI 这是我根据我的理解尝试过的 var client new mozRTCPeerConnection var server new mo
  • PHP、PDO 和异常

    我目前对于 PDO 有点进退两难 我最近转而从我自己的自定义数据库类中使用它 因为我想利用事务 我面临的问题是如何从已经用 PDO 的 try catch 包装的代码块内部抛出异常 这是一个例子 try PDO code Transacti
  • 如何在React hooks中自动停止setInterval?

    我想构建一个循环进度条 计数到 60 然后自动停止 但它无法停止 我想使用 React hooks 和 useEffect 我的代码在这里 https codesandbox io s nostalgic khorana lijdyo fi
  • 如何在 iOS 15 Xcode 13 中将 TabView tabItem 上的填充图标更改为不填充?

    如何将 iOS 15 Xcode 13 中的 TabView tabItem 上的填充图标更改为不填充 现在看来图标是默认填充的 我的代码 import SwiftUI struct Test Home V View var body so
  • Promise.catch() 在 AngularJS 单元测试中没有捕获异常

    我正在 Typescript 中为我的应用程序编写 Jasmine 单元测试 并通过 Resharper 运行它们 如果处理程序抛出异常 它应该执行一个操作 describe Q Service Test gt var q ng IQSer
  • 边缘会话.cookie_lifetime

    我的网站功能在 Edge 上损坏 尤其是登录 有人告诉我这与session cookie lifetime 对于此事的任何帮助 我将不胜感激 请注意 我不是开发人员 没有任何代码知识 我的一些 php ini 文件 如果有帮助的话 sess
  • 查找上个月

    我见过一些使用的方法dateutil模块来执行此操作 但是有没有一种方法可以在不使用内置库的情况下执行此操作 例如 当前月份是七月 我可以使用datetime now 功能 python 返回上个月的最简单方法是什么 这很简单 gt gt
  • 是否可以在函数内使用 Excel 数组中的单个单元格引用?

    我有一些数据想要放入 LOGEST 函数中 e g x values 0 463 0 609 0 887 y values 0 05 0 1 0 2 For this example I have put the data into the
  • asyncio 和 trio 之间的核心区别是什么?

    今天 我发现了一个名为trio http trio readthedocs io en latest index html它说它自己是一个供人类使用的异步 API 这些词有点相似requests As requests确实是一个不错的库 我
  • 如何在队列上设置 ActiveMQ redeliveryPolicy?

    如何在队列上的 ActiveMQ 中设置 redeliveryPolicy 1 在文档中 请参阅 activeMQ 重新传送 http activemq apache org redelivery policy html 说明您应该在 Co
  • 如何使用 Microsoft.Graph 将文件附加到 Sharepoint 中的项目

    Microsoft Graph Sharepoint api 允许更新列表项https developer microsoft com en us graph docs api reference beta api listitem upd
  • 1 和 0 的大字符串到 BitSet

    我有一个非常大的字符串 64 个字符 其中包含 1 和 0 样本 1001111111101010011101101011100101001010111000101111011110001000 我想要的只是将其转换为 BitSet var
  • 丰富 SparkContext 而不会引发序列化问题

    我正在尝试使用 Spark 处理来自 HBase 表的数据 这篇博文 http www vidyasource com blog Programming Scala Java Data Hadoop Analytics 2014 01 25
  • 在 Ubuntu 18.10 上安装 ROS Melodic

    I can t是唯一对 Cosmic 与 Wayland 和 Melodic 的组合感兴趣的人 我会坦白说 我似乎已经在 XPS 13 9370 上成功管理了此操作 或者至少安装脚本 最终 成功完成 然而 有一个非常棘手的解决方法 无论结果