在这里,我主要说明我是在什么样的情况下遇到了下面问题。(持续更新…)
我想在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 - 超级实用的免费跨平台局域网文件/文件夹传输工具
参考: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优先,再试试
这个问题的主要原因是:优先使用了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/
参考:http://askubuntu.com/questions/522114/cant-get-rid-of-gpg-error-http-download-opensuse-org
这个问题还是没有找到真正的原因,但是在wiki.ros上看到有人说Ubuntu14.04 64位对Kinect 2的驱动支持不太好。之后就装了32位的,可以看到rgb图像,但是看不到深度图。
参考:http://www.cnblogs.com/hitcm/p/5118196.html
在使用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
$ 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
在home roslaunch 按tab键的时候,出现No such file or directory问题。但是已经source devel/setup.bash了
但是在catkin_ws下roslaunch的时候就没有问题了。
Ubuntu安装教程地址:http://software.opensuse.org/download.html?project=home:colomboem&package=dukto