在 Ubuntu 18.10 上安装 ROS Melodic
Installing ROS Melodic on Ubuntu 18.10
我不能 是唯一对 Cosmic(与 Wayland)和 Melodic 的组合感兴趣的人。
我会提前说明:我似乎已经在我的 XPS 13 (9370) 上成功地管理了这个,或者至少安装脚本 [最终] 成功完成了。但是,有一个非常棘手的解决方法。无论结果如何,我都会很乐意对尝试安装的其他人的回复投赞成票。
基本上,我 运行 http://wiki.ros.org/Installation/Source 上的说明用于 "desktop" 安装,以下是我如何处理一路上的各种障碍:
覆盖发行版,使用 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:
OGRE 可以使用 apt (libogre-1.9-dev)
轻松安装
libyaml...也可以安装,只不过我试了三四个版本之前这个就卡住了(libyaml-cpp0.3-dev)
roscore
运行,显示旋律版本 1.14.3。 Turtlesim 使用 turtle_tf2_demo(远程操作)、rviz 以及 rosgraph 和 Python(rospy)模块运行。
请报告您的错误!
感谢您的提示,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
现在,在我们 运行 构建过程之前,有 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
我不能 是唯一对 Cosmic(与 Wayland)和 Melodic 的组合感兴趣的人。
我会提前说明:我似乎已经在我的 XPS 13 (9370) 上成功地管理了这个,或者至少安装脚本 [最终] 成功完成了。但是,有一个非常棘手的解决方法。无论结果如何,我都会很乐意对尝试安装的其他人的回复投赞成票。
基本上,我 运行 http://wiki.ros.org/Installation/Source 上的说明用于 "desktop" 安装,以下是我如何处理一路上的各种障碍:
覆盖发行版,使用 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:
OGRE 可以使用 apt (libogre-1.9-dev)
轻松安装 libyaml...也可以安装,只不过我试了三四个版本之前这个就卡住了(libyaml-cpp0.3-dev)
roscore
运行,显示旋律版本 1.14.3。 Turtlesim 使用 turtle_tf2_demo(远程操作)、rviz 以及 rosgraph 和 Python(rospy)模块运行。
请报告您的错误!
感谢您的提示,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
现在,在我们 运行 构建过程之前,有 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