首先大家要明确不同版本的ubuntu对应不同的ros型号
Melodic 主要对应:Ubuntu Artful (17.10), Bionic (18.04 LTS) 以及Debian Stretch
为保证安装过程的顺利,确保网速够劲!!!
环境配置问题总是麻烦的,每个人遇到的问题都可能不同而异,但是遇到了总该解决,最下下策也大不了重装系统。
以下是我在配置ros和kinect V2还有openni及nite遇到的问题。
-
anaconda以前装的opencv和ros melodic自带的opencv发生冲突。
经过查阅,有以下几种办法:
暴力法:把其中一个删除,哈哈哈。
麻烦法:去掉cv_bridge手动指定路径、修改cv_bridge的配置文件或者cv_bridge与手 动指定结合的方式。
可以参考此文章 -
设备一定要插在usb3.0的接口,最好更新显卡驱动
-
sudo rosdep init 和rosdep update运行失败
-
openni安装后识别不了kinect2
第一步安装ros
特别注意!sudo rosdep init 有坑!
第一种解决办法:
sudo c_rehash /etc/ssl/certs
sudo -E rosdep init
第二种解决办法:看看系统有未设置代理!把系统的网络代理改为自动,默认是禁用的。
第三种解决办法:是否是网速不行,尝试热点。
安装kinect2驱动
kinect2深度视觉相机,最近突发奇想,想用它来实现一些结合机器视觉的小功能便入坑了,配置过程曲曲折折。
#下载libfreenect2源代码
git clone https://github.com/OpenKinect/libfreenect2.git
#安装cmake编译器和必要的依赖
sudo apt-get install build-essential cmake pkg-config libturbojpeg libjpeg-turbo8-dev mesa-common-dev freeglut3-dev libxrandr-dev libxi-dev
sudo apt-get install libglfw3-dev
sudo apt-get install libopenni2-dev
#安装最新版libusb-dev
sudo apt-get install libusb-dev
#缺少这个依赖下面会报错[来自github解答](https://github.com/OpenKinect/libfreenect2/issues/984)
sudo apt-get install libturbojpeg0-dev
#开始编译过程
cd libfreenect2
mkdir build && cd build
cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/freenect2 #地址可以修改,但是后面对应也有些需要修改。
make
sudo make install
#设定udev rules:(填好自己libfreenect2的路径)
sudo cp libfreenect2/platform/linux/udev/90-kinect2.rules /etc/udev/rules.d/
#运行build目录下的例子
./bin/Protonect
#进入已经创建好的工作空间
mkdir -p ~/catkin_ws/src # -p,在创建目录的时候父目录不存在则一并创建
catkin_init_workspace # 初始化工作空间
cd ~/catkin_ws
catkin_make #catkin_make命令行工具简化了catkin的标准工作流程,可以认为catkin_make是在CMake标准工作流程中依次调用了cmake和make
cd ~/catkin_ws/src/
git clone https://github.com/code-iai/iai_kinect2.git #下载ros和kinect2的接口代码
cd iai_kinect2
rosdep install -r --from-paths . #此句会报错
rosdep install --from-paths ~/catkin_ws/src/iai_kinect2 --ignore-src -r
[转自](https://answers.ros.org/question/237451/run-rosdep-install-r-from-paths-error-when-i-install-iai_kinect2/)
cd ~/catkin_ws
catkin_make -DCMAKE_BUILD_TYPE="Release" #编译
#如果没有添加永久环境变量,则每次都需要source以下
source ~/catkin_ws/devel/setup.bash
#添加ros永久环境变量
echo "source ~/catkin_ws/devel/setup.sh" >> ~/.bashrc
roslaunch kinect2_bridge kinect2_bridge.launch #运行kinect2自带的launch
rosrun kinect2_viewer kinect2_viewer #查看运行结果。
安装OpenNI2
NiViewer
openDevice failed:
DeviceOpen using default: no devices found
Press any key to continue . . .
对于安装openni2结合kinect2使用,网上大多说法都是它们不兼容,我开始也卡在里面。检查rules规则有没有放进去udev里面,或者libfreenect2的驱动driver有没有放入openni中,但是最后发现那些是有版本的方法了,下面这种方法亲测可用。记住最后运行是NiViewer2而不是NiVierwer。
sudo apt-get install libopenni2-dev
将Kinect V2重新插拔,之后运行测试
./bin/Protonect #重新接入之后运行测试
sudo apt-get install openni2-utils && sudo make install-openni2 && NiViewer2 #可选测试
重新接入的过程中,如果只是重新插拨一下USB接口,可能并不会生效,最稳妥的办法是将Kinect断电之后重新上电,在上下电的过程中USB接口可以不用重新插拨。
哈哈哈,这是我第一次写博客,很多都不是原创,但是把大多方法和个人理解和优化了的运行步骤结合在了上面。望大家安装配置过程中更加顺畅,加油!!!