ROS安裝使用中遇到的問題及解決辦法(包括ubuntu)

0、寫在前面的話及目錄

在這裏,我主要說明我是在什麼樣的情況下遇到了下面問題。(持續更新…)
我想在Ubuntu14.04上安裝ROS hidigo,然後利用他使用微軟的Kinect 2.但是在這個過程中出現了一些列問題。
1. Ubuntu14.04安裝和配置ROS Indigo
2. apt-get cat’t connect to ‘security.ubuntu.com’
3. GPG error: http://download.opensuse.org Release: The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY E3757B8E0D988D6E
4. 執行roslaunch freenect_launch freenect-registered-xyzrgb.launch是出現錯誤:No divices connected… waiting for devices to be connected
5. ubuntu開啓SSH服務
6. image_view symbol lookup error
7. roslaunch turtlebot_exploration_3d/ turtlebot_gfind: cannot search `’: No such file or directory
8. Dukto R6 - 超級實用的免費跨平臺局域網文件/文件夾傳輸工具


1、Ubuntu14.04安裝和配置ROS Indigo

參考:http://www.jianshu.com/p/04be841e2293
其中最關鍵的地方是:ROS官網用的密鑰是

$ sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net --recv-key 0xB01FA116

但是我的有問題,下面密鑰可以正常使用:

$ wget http://packages.ros.org/ros.key -O - | sudo apt-key add -

這個有可能的原因是:優先訪問ipV6,所以可以改成ipV4優先,再試試


2、apt-get cat’t connect to ‘security.ubuntu.com

這個問題的主要原因是:優先使用了ipv6,導致地址找不到,所以shell一直在等待。解決辦法是:
$ sudo gedit /etc/gai.conf
然後做如下修改,就是將註釋刪掉:

#
# For sites which prefer IPv4 connections change the last line to
#
precedence ::ffff:0:0/96 100

這個修改的意思就是將ipv4設置爲優先訪問。
參考:https://zach-adams.com/2015/01/apt-get-cant-connect-to-security-ubuntu-fix/


3、GPG error: http://download.opensuse.org Release: The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY E3757B8E0D988D6E

參考:http://askubuntu.com/questions/522114/cant-get-rid-of-gpg-error-http-download-opensuse-org


4. 執行roslaunch freenect_launch freenect-registered-xyzrgb.launch是出現錯誤:No divices connected… waiting for devices to be connected

這個問題還是沒有找到真正的原因,但是在wiki.ros上看到有人說Ubuntu14.04 64位對Kinect 2的驅動支持不太好。之後就裝了32位的,可以看到rgb圖像,但是看不到深度圖。
參考:http://www.cnblogs.com/hitcm/p/5118196.html


5、ubuntu開啓SSH服務

在使用ROS中想用ssh服務,所以就想把配置過程記錄下來:
SSH分客戶端openssh-client和openssh-server
如果你只是想登陸別的機器的SSH只需要安裝openssh-client(ubuntu有默認安裝,如果沒有則sudo apt-get install openssh-client),如果要使本機開放SSH服務就需要安裝openssh-server
sudo apt-get install openssh-server
然後確認sshserver是否啓動了:
ps -e |grep ssh
如果看到sshd那說明ssh-server已經啓動了。
如果沒有則可以這樣啓動:sudo /etc/init.d/ssh start
ssh-server配置文件位於/ etc/ssh/sshd_config,在這裏可以定義SSH的服務端口,默認端口是22,你可以自己定義成其他端口號,如222。
然後重啓SSH服務:
sudo /etc/init.d/ssh stop
sudo /etc/init.d/ssh start
然後使用以下方式登陸SSH:
ssh [email protected] username爲192.168.1.112 機器上的用戶,需要輸入密碼。
斷開連接:exit
參考:http://www.cnblogs.com/xiazh/archive/2010/08/13/1798844.html

我的Ubuntu裝載虛擬機上(VMware12),虛擬機提供了直接使用主機網卡的功能,這樣就可以利用ssh客戶端訪問另外一臺電腦的ssh服務了。具體過程:
參考:http://licoolxue.iteye.com/blog/1850756


6、image_view symbol lookup error

問題:想利用iai_kinect2查看kinect2獲取的數據

$ roslaunch kinect2_bridge kinect2_bridge
$ rosrun image_view image_view image:=/kinect2/qhd/image_color

但是出現下面錯誤提示:

[ INFO] [1464594522.943802369]: Using transport "raw"

/opt/ros/indigo/lib/image_view/image_view: symbol lookup error: /opt/ros/indigo/lib/image_view/image_view: undefined symbol: _ZN9cv_bridge18cvtColorForDisplayERKN5boost10shared_ptrIKNS_7CvImageEEERKSsbdd

解決辦法:

這是由於cv_bridge的版本和image_view的版本不太匹配,確切的說是因爲image_view的版本太老了,不支持更新版本的cv_bridge。所以提示信息是:undefined symbol
那麼就執行下面的命令去更新image_view:

$ sudo apt-get update 
$ sudo apt-get install ros-indigo-image-view

7、roslaunch turtlebot_exploration_3d/ turtlebot_gfind: cannot search `’: No such file or directory

問題:

在home roslaunch 按tab鍵的時候,出現No such file or directory問題。但是已經source devel/setup.bash了
但是在catkin_ws下roslaunch的時候就沒有問題了。


8、Dukto R6 - 超級實用的免費跨平臺局域網文件/文件夾傳輸工具

Ubuntu安裝教程地址:http://software.opensuse.org/download.html?project=home:colomboem&package=dukto
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章