Ubuntu14.04下安裝ros-indigo-serial串口功能包
初衷:記錄一下自己在ROS學習實踐中的遇到的問題和收穫,便於後續回顧提升,也希望能夠幫助到廣大同道衆人避免再入此坑!
問題背景:Ros中使用serial包實現串口通信
編寫了一個利用ROS節點網絡通訊機制的進行控制的C++程序,控制對象爲支持串口通信的伺服電機,因此頭文件部分可以引用ROS官方提供的Serial功能包,利用Serial中的各種API接口來實現串口通信控制。
程序引用
ROS串口程序頭文件引用部分:
/*************************************
程序名:基於ROS 串口的直線舵機位置反饋節點程序
功能爲:不斷的發送指令給舵機,以讀取當前的杆長數據併發布到指定的ROS話題上
時間:2019年10月16日
**************************************/
#include <ros/ros.h>
#include <serial/serial.h> //ROS已經內置了的串口包
#include <std_msgs/String.h>
#include <std_msgs/Empty.h>
#include <pararob_demo1/input.h>
/***全局初始化部分***/
serial::Serial motor_ser; //聲明舵機串口對象
.......
編譯報錯
寫好程序進行編譯時,才發現Ubuntu下沒有安裝ROS的Serial包! 會出現類似下圖的報錯現象:
常規方法:命令行安裝方式
網絡教程
於是,按照如下兩篇網上教程:
安裝失敗
按照上述的教程安裝步驟, 結果終端中安裝失敗,報錯出現如下
無法下載: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
這個命令將一般安裝軟件的兩個步驟合二爲一,分別是:
- 下載:到指定的網址上下載軟件安裝包
- 安裝:安裝上一步下載好的軟件安裝包
既然如此,通過終端命令行方式的快捷操作不行,何不退回採用較爲原始的方法——圖形化操作?
思路方法
採用圖形化的多步鼠標操作方式,來代替命令行操作方法。
-
將終端中的網址鏈接複製到瀏覽器地址欄中
2. 下載相應的軟件安裝包到本地目錄下:
3. 將下載好的軟件安裝包拖拽到終端中
,再回車,用Linux系統的軟件中心
來安裝(注意:直接將功能包拖拽到終端中,可能會出現如上圖所示那樣提示
沒有權限
,解決方法是,先在終端中輸入sudo
,再拖拽安裝包)忘了,最快的方法是:
直接在文件管理器中選中軟件安裝包右擊,選擇【使用Ubuntu軟件中心 打開(O)】
,如下圖所示
4. 最後在軟件中心中即可成功安裝ros-indigo-serial
總結提煉
作爲ROS初學者,遇到的大部分問題基本上都可以在網上找到解決方法。
但是有時候不一定可以在網絡上找到能夠百分百解決你所遇到的問題的方法,怎麼辦呢?
辦法就是,尋找那種已經解決了和你遇到的問題相似的問題的解決方法,認真研讀、深入分析,借鑑類比,思考轉換,方能在此基礎上真正探索出一個針對你的問題的方法。