复现autotune算法时遇到的若干问题及其解决方案

复现autotune算法时遇到的若干问题

  • 复现autotune算法时遇到的若干问题及其解决方案
    • Ubuntu18.04中安装ROS Melodic时遇到的问题
    • Ubuntu18.04中配置autotune时遇到的问题

复现autotune算法时遇到的若干问题及其解决方案

最近在搬砖的时候要复现一篇文章中的autotune算法,作者给了github链接,但是需要在Ubuntu 18.04中配置ROS Melodic环境。以前没接触过ROS,对Ubuntu也不熟悉,只能是摸着石头过河,踩过好多坑,在此记录一下。

Ubuntu18.04中安装ROS Melodic时遇到的问题

在百度上搜索“Ubuntu18.04安装ROS Melodic”有一大批的教程,安装过程大同小异,在此不再赘述。我参考的主要有两篇:
https://blog.csdn.net/weixin_44494462/article/details/106003988
以及
https://www.freesion.com/article/3533415147/

安装过程中最容易出现bug的地方就是在核心组件rosdep的安装上,包括:$sudo rosdep init以及$rosdep update两步,而且最头疼的是重复运行时报错的内容还各不相同。
这里列几条最常见的错误:
1.读取操作超时而引起的报错

ERROR: error loading sources list:
   ('The read operation timed out',)

复现autotune算法时遇到的若干问题及其解决方案_第1张图片
这里的解决方案可已参照这里,和
这里。

2.网站拒绝访问引起的报错
复现autotune算法时遇到的若干问题及其解决方案_第2张图片
这里可以的解决方案可以参照知乎文章,以及这篇博客。这两种方法我都试过了,在我这不好使,包括一些其他博客上介绍的方法,也都都没用。

总的来说,这里搜到的解决方案大致可以归纳如下:
a.缺少python-rosdep包的先安装这个包;
b.更换网络为热点;
c.更换软件源;
d.修改Python文件中的TimeOut时间;
e.取消ssh验证;

这里说下我最后的解决方案。受朋友指点,这里update出错原因在于网络,要访问像github等外网上的资源需要梯子。一般的梯子设置的模式是仅网页而非全局,所以只能在浏览器中访问这些资源而不能在其他地方(如我们运行的终端)进行访问。

然后我就又查了下在终端走代理的方法,这篇文章以及评论区基本上囊括了在Linux中让终端走代理的全部方法。其中,最核心的两条指令就是

$export http_proxy=http://127.0.0.1:port
$export https_proxy=http://127.0.0.1:port

这里一定要注意代理的地址(127.0.0.1)和端口(port)要根据你自己Ubuntu的代理填写。至于在Ubuntu中配置代理的方法我自己也尝试了好几种,最终是只有一种方法奏效。感兴趣的朋友可以私信我,或者在评论区留言,如果人数比较多的话我再专门做一期关于在Ubuntu中配置代理的详细步骤。

Ubuntu18.04中配置autotune时遇到的问题

按照github上作者给出的安装说明很容易进行前两步的配置,但是在执行第三步时出现了以下报错:

Could not determine ref type of version: [email protected]: Permission denied (publickey).
fatal: 无法读取远程仓库。

复现autotune算法时遇到的若干问题及其解决方案_第3张图片
首先要说的是这一步没有找到直接的解决办法,但是没有路就要靠自己走出一条路,直接解决不了可以“曲线救国”嘛。然后我查了mh_autotune/dependencies.yaml这个文件的内容之后发现这一步要做的事是把yaml文件里的包下载下来,既然这一条指令行不通,我就手动下载然后解压到工作空间src文件夹里面,把文件夹名称修改为对应的名称。这一步到这里算是解决了。

第四步按照流程也很容易,到了第五步bug就开始来神仙打架了,在$catkin build的时候各种错误就都来了。
1.首先是缺少ros-melodic包类型的报错

CMake Error at /opt/ros/melodic/share/catkin/cmake/catkinConfig.cmake:83 (find_package):
  Could not find a package configuration file provided by "octomap_msgs" with
  any of the following names:

    octomap_msgsConfig.cmake
    octomap_msgs-config.cmake

这个报错就是说缺少octomap_msgs的包,那么这种类型的报错都可以用这一条指令解决:

$sudo apt-get install ros-melodic-package

这里的package用报错里的包替换掉就行了,具体的话,以上一个报错为例,需要输入的指令为$sudo apt-get install ros-melodic-octomap_msgs

2.其次是缺少头文件类型的报错

CMake Error at /home/wanglei/autotune_ws/src/rotors_simulator/rotors_gazebo_plugins/cmake/FindGlog.cmake:77 (MESSAGE):
  Failed to find glog - Could not find glog include directory, set
  GLOG_INCLUDE_DIR to directory containing glog/logging.h

这种报错可以直接百度得到解决方案,对与这个报错,需要输入的指令为:
$sudo apt-get install libgoogle-glog-dev

这样一步一步硬啃,终于把全部35个包全部build成功了,截图庆祝下
复现autotune算法时遇到的若干问题及其解决方案_第4张图片

你可能感兴趣的:(linux,ROS,ROS,Melodic,autotune,rosdep,update)