Ubuntu14.04下在终端中以命令行形式安装ROS官方串口包 serial失败——解决方法

Ubuntu14.04下安装ros-indigo-serial串口功能包

  • 问题背景:Ros中使用serial包实现串口通信
    • 程序引用
    • 编译报错
  • 常规方法:命令行安装方式
    • 网络教程
    • 安装失败
  • 解决措施: 手动下载安装包进行安装
    • 问题分析
    • 思路方法
    • 总结提炼

初衷:记录一下自己在ROS学习实践中的遇到的问题和收获,便于后续回顾提升,也希望能够帮助到广大同道众人避免再入此坑!

问题背景:Ros中使用serial包实现串口通信

编写了一个利用ROS节点网络通讯机制的进行控制的C++程序,控制对象为支持串口通信的伺服电机,因此头文件部分可以引用ROS官方提供的Serial功能包,利用Serial中的各种API接口来实现串口通信控制。

程序引用

ROS串口程序头文件引用部分:

/*************************************
程序名:基于ROS 串口的直线舵机位置反馈节点程序
功能为:不断的发送指令给舵机,以读取当前的杆长数据并发布到指定的ROS话题上
时间:2019年10月16日
**************************************/

#include  
#include   //ROS已经内置了的串口包 
#include  
#include 
#include 

/***全局初始化部分***/
serial::Serial motor_ser; //声明舵机串口对象
.......

编译报错

写好程序进行编译时,才发现Ubuntu下没有安装ROS的Serial包! 会出现类似下图的报错现象:
Ubuntu14.04下在终端中以命令行形式安装ROS官方串口包 serial失败——解决方法_第1张图片

常规方法:命令行安装方式

网络教程

于是,按照如下两篇网上教程:

  1. ros中使用serial包实现串口通信
    Ubuntu14.04下在终端中以命令行形式安装ROS官方串口包 serial失败——解决方法_第2张图片
  2. 编写ros串口节点,使用官方serial包
    Ubuntu14.04下在终端中以命令行形式安装ROS官方串口包 serial失败——解决方法_第3张图片

安装失败

按照上述的教程安装步骤, 结果终端中安装失败,报错出现如下

无法下载:http://packages.ros.org/ros/ubuntu/pool/main/r/ros-indigo-serial/ros-indigo-serial_1.2.1-0trusty-20160321-181504-0700_amd64.deb ......

(当时忘记截图了,但报错的主要内容如上)

解决措施: 手动下载安装包进行安装

问题分析

在终端中通过命令行的方法安装软件包,无非是通过sudo apt-get install 这个命令将一般安装软件的两个步骤合二为一,分别是:

  1. 下载:到指定的网址上下载软件安装包
  2. 安装:安装上一步下载好的软件安装包

既然如此,通过终端命令行方式的快捷操作不行,何不退回采用较为原始的方法——图形化操作?

思路方法

采用图形化的多步鼠标操作方式,来代替命令行操作方法。

  1. 将终端中的网址链接复制到浏览器地址栏中

    Ubuntu14.04下在终端中以命令行形式安装ROS官方串口包 serial失败——解决方法_第4张图片
    2. 下载相应的软件安装包到本地目录下

    Ubuntu14.04下在终端中以命令行形式安装ROS官方串口包 serial失败——解决方法_第5张图片
    3. 将下载好的软件安装包拖拽到终端中,再回车,用Linux系统的软件中心 来安装 Ubuntu14.04下在终端中以命令行形式安装ROS官方串口包 serial失败——解决方法_第6张图片

    (注意:直接将功能包拖拽到终端中,可能会出现如上图所示那样提示没有权限,解决方法是,先在终端中输入sudo,再拖拽安装包)

    忘了,最快的方法是:
    直接在文件管理器中选中软件安装包右击,选择【使用Ubuntu软件中心 打开(O)】,如下图所示
    Ubuntu14.04下在终端中以命令行形式安装ROS官方串口包 serial失败——解决方法_第7张图片
    4. 最后在软件中心中即可成功安装ros-indigo-serial

    Ubuntu14.04下在终端中以命令行形式安装ROS官方串口包 serial失败——解决方法_第8张图片

总结提炼

作为ROS初学者,遇到的大部分问题基本上都可以在网上找到解决方法。
但是有时候不一定可以在网络上找到能够百分百解决你所遇到的问题的方法,怎么办呢?
办法就是,寻找那种已经解决了和你遇到的问题相似的问题的解决方法,认真研读、深入分析,借鉴类比,思考转换,方能在此基础上真正探索出一个针对你的问题的方法。

你可能感兴趣的:(ROS,C/C++,Linux/Ubuntu)