复现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',)

在这里插入图片描述
这里的解决方案可已参照这里,和
这里

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: git@github.com: Permission denied (publickey).
fatal: 无法读取远程仓库。

在这里插入图片描述
首先要说的是这一步没有找到直接的解决办法,但是没有路就要靠自己走出一条路,直接解决不了可以“曲线救国”嘛。然后我查了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成功了,截图庆祝下
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值