Ubuntu20.04下vins-mono调用摄像头并跑通(D435i)

目录

一、安装RealSense SDK2.0 (包括调用摄像头)

1、注册服务器公钥

2、服务器添加到存储库列表

3、安装SDK2

4、测试结果

问题:

解决办法1:(不一定有用,建议直接看2)

1)查虚拟机版本

2)下载拓展包

3) 安装拓展包

4)测试

解决办法2:

5、读相机参数

二、安装realsense-ros

1、安装rgbd-launch

2、源码安装

3、验证

1 )启动相机节点

2 )查看话题列表

3 )查看rgb图和深度图

三、运行vins-mono

1、修改文件

1)/realsense_ros/realsense2_camera/launch/rs_camera.launch

2)/VINS-Mono/config/realsense/realsense_color_config.yaml

2、重新编译

3、添加环境变量

4、运行

四、参考文章


又是从零开始,今天也在持续痛苦面具中

系统:Ubuntu 20.04 

ros:noetic

相机:D435i

一、安装RealSense SDK2.0 (包括调用摄像头)

1、注册服务器公钥

sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE || sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE

2、服务器添加到存储库列表

sudo add-apt-repository "deb https://librealsense.intel.com/Debian/apt-repo $(lsb_release -cs) main" -u

3、安装SDK2

# 基础安装
sudo apt update
sudo apt install librealsense2-dkms
sudo apt install librealsense2-utils

# 选装
sudo apt-get install librealsense2-dev
sudo apt-get install librealsense2-dbg

选装的命令行,如果用 apt 而不是 apt-get 可能会出现如下的错误:

4、测试结果

realsense-viewer

 建议手动输入,不然可能会出现未找到命令的问题。

问题:

 没有摄像头画面,查了一下发现虚拟机需要先调用外接摄像头。

解决办法1:(不一定有用,建议直接看2)

我用的虚拟机是 vbox 

1)查虚拟机版本

在虚拟机管理器界面,选择 帮助-关于VirtualBox ,可以看到虚拟机版本

2)下载拓展包

下载页面

①新版本

这里直接下

②旧版本

 然后选择对应的版本,我是7.0.8

 

进去找到拓展包,点击下载

 

3) 安装拓展包

在vbox管理器界面

 然后选择按顺序安装刚才下的拓展包,安装成功以后重启

4)测试
# 检查是否连接摄像头

ls /dev/video*

# 调用

# 方法一
sudo apt-get install cheese
cheese
cheese -d /dev/video5

# 方法二
sudo apt-get install -y xawtv
xawtv
xawtv -d /dev/video5

但是我两种办法都没有调用成功……就挺痛苦的

解决办法2:

查了一下,可能是usb接口版本不对

关闭虚拟机,在管理器页面选择 设置-USB设备

把这个选到3.0,灰色是因为我已经调过了,截图时没关虚拟机

ps:看看自己连得是usb2.0还是3.0,有时候检测不出设备可能换个接口就出来了

然后打开虚拟机(注意检查设备那里有没有勾选USB,找不见的重启试试看),继续用上面的调用方法,终于出来了

设备选的是USB不是摄像头!!!

设备选的是USB不是摄像头!!!

设备选的是USB不是摄像头!!!

喜极而泣的进行下一步

realsense-viewer

出来后没画面,但是有相机和选项了,点击左侧的on,出现画面了

Stereo Module——深度图

RGB Module——RGB影像

Motion Module——IMU相关数据

至此相机调试完毕

5、读相机参数

D435i的参数已经标好了的,直接读取就行,但这个是全部参数,后面修改文件的话用别的方法

二、安装realsense-ros

1、安装rgbd-launch

sudo apt-get install ros-noetic-rgbd-launch

2、源码安装

# 进入工作空间

cd ~/catkin_ws/src/

# 源码
git clone https://github.com/IntelRealSense/realsense-ros.git
cd realsense-ros/
git checkout `git tag | sort -V | grep -P "^2.\d+\.\d+" | tail -1`
cd ..

#安装ddynamic_reconfigure
sudo apt-get install ros-noetic-ddynamic-reconfigure

# 编译
catkin_init_workspace
cd ..
catkin_make clean
catkin_make -DCATKIN_ENABLE_TESTING=False -DCMAKE_BUILD_TYPE=Release
catkin_make install

# 添加环境变量
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc

3、验证

1 )启动相机节点
roscore
roslaunch realsense2_camera rs_camera.launch
2 )查看话题列表
rostopic list

有一堆话题(但是咱也看不太懂)

3 )查看rgb图和深度图
rosrun rqt_image_view rqt_image_view

这里可以调不同的影像,如果没有显示画面就是这里没有调

三、运行vins-mono

1、修改文件

1)/realsense_ros/realsense2_camera/launch/rs_camera.launch

①第43,44行,打开imu流

②第52行,开机相机和IMU的同步

③第64行,让IMU的角速度和加速度作为一个topic输出

保存退出,顺便检查一下输出话题是否含有/camera/imu

roslaunch realsense2_camera rs_camera.launch
rostopic list

2)/VINS-Mono/config/realsense/realsense_color_config.yaml

①第4,5行,修改订阅的topic

②第11,12行,第19-22行,修改相机内参

先打开终端读一下相机内参

# 运行realsense
roslaunch realsense2_camera rs_camera.launch

# 获取内参
rostopic echo /camera/color/camera_info

友情提示,因为获取内参是一直在进行的,为了方便观察,可以适当关闭第一个终端让获取过程停止

主要修改一下红框里的内容,其中K里的非零数依次为fx,cx,fy,cy

 我自己改成科学计数法了,为了一致性,不改应该也行
③第25行,IMU到相机的变换矩阵,不知道外参选2(自动修正)


④第59-62行IMU参数,全部改成后面注释给的参数

重力加速度我按照我的地区改了,如果不想改就直接9.8
⑤第72行,在线估计同步时差,因为realsense D435i已经做好了硬件同步,改成0(不需要)

 ⑥第76行,相机曝光改成0(全局曝光)

⑦第7,69行,改成自己的路径

保存关闭

2、重新编译

cd ~/catkin_ws
catkin_make

3、添加环境变量

这步很重要,如果不添加环境变量,运行的时候就会报错报错报错(安详.jpg)

sudo gedit ~/.bashrc

在文件的末尾加上工作路径

source ~/catkin_ws/devel/setup.bash
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:~/catkin_ws/

# 重启
source ~/.bashrc

# 查询路径
echo $ROS_PACKAGE_PATH

4、运行

# 第一个终端
roslaunch realsense2_camera rs_camera.launch 

# 第二个终端
roslaunch vins_estimator realsense_color.launch 

# 第三个终端
roslaunch vins_estimator vins_rviz.launch

如果环境变量已经添加了,运行还是出现 RLException 这个报错的话,重启吧:)

结果如图

 完毕~

四、参考文章

Ubuntu20.04LTS下安装Intel Realsense D435i驱动与ROS包

1 Ubuntu20.04安装D435i相机驱动

virtualBox虚拟机下的ubuntu16.04调用摄像头

VirtualBox 7.06 安装扩展包遇见的问题

Intel RealSense D435i:简介、安装与使用(ROS、Python)

virtualBox下安装的ubuntu20.04虚拟机打开外接摄像头后摄像头屏幕黑屏

T265/D435i相机和相机与IMU参数获取,也可以通过realsense-viewer直接获取

Ubuntu20.04 配置D435i相机

Ubuntu20.04用D435i运行VINS-Mono

RLException: [xx.launch] is neither a launch file in package [x] nor is [x] a launch file name的解决方法

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值