ros程序调用MindVision工业相机添加udev规则设置权限

MindVision工业相机使用usb连接时,必须使用sudo,才能调用摄像头执行程序。
如果不想使用sudo,或者ros程序无法使用管理员运行,按照官方文档,需要
在这里插入图片描述

具体添加方法如下:

  1. 终端输入lsusb 查看mindvision摄像机的信息,如下:
Bus 004 Device 005: ID f622:d132 MindVision SUA133GC
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
......

有f622开头的,后面是MindVision的,说明已经检测到usb信息

  1. 在/etc/udev/rules.d/88-mvusb.rules文件中添加规则
KERNEL=="*", ATTRS{idVendor}=="f622", ATTRS{idProduct}=="产品号", MODE:="0777", SYMLINK+="mindvision" 

其中idProduct是产品号,输入上述查看信息中f622后的四位,此处即为 d132
在MODE中赋予权限777

  1. 终端输入sudo service udev reloadsudo service udev restart
  2. 重新插拔usb口
  3. 终端输入ls /dev | grep mindvision, 能正常输出mindvision,说明已经成功添加约束
  4. 在程序的launch文件中添加指向设备的内容:
<param name="serial_port"  type="string" value="/dev/mindvision" />

这样就可以在运行代码时自动赋予设备权限了

  • 3
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
以下是一个 C++ 程序示例,用于启动两个相机标定程序 AprilTag: ```cpp #include <cstdlib> #include <iostream> #include <string> using namespace std; int main(int argc, char * argv[]) { // Set the camera topics string cam1_topic = "/camera1/image_raw"; string cam2_topic = "/camera2/image_raw"; // Set the calibration files string cam1_calib_file = "/path/to/camera1_calibration.yaml"; string cam2_calib_file = "/path/to/camera2_calibration.yaml"; // Set the launch file name string launch_file = "apriltag_calib.launch"; // Construct the command strings string cam1_cmd = "ros2 run image_tools cam2image " + cam1_topic + " & ros2 launch apriltag_ros " + launch_file + " camera:=camera_1 camera_info:=" + cam1_calib_file; string cam2_cmd = "ros2 run image_tools cam2image " + cam2_topic + " & ros2 launch apriltag_ros " + launch_file + " camera:=camera_2 camera_info:=" + cam2_calib_file; // Start the first camera calibration process system(("gnome-terminal --tab --title='Camera 1 Calibration' -- bash -c '" + cam1_cmd + "'").c_str()); // Start the second camera calibration process system(("gnome-terminal --tab --title='Camera 2 Calibration' -- bash -c '" + cam2_cmd + "'").c_str()); return 0; } ``` 这个 C++ 程序使用 `system()` 函数调用了 shell 命令,启动了两个终端,每个终端都会运行一个命令。每个命令都包含一个 `cam2image` 命令和一个 `ros2 launch` 命令,用于启动 AprilTag 相机标定程序和相应的摄像头信息文件。 你可以根据自己的需要修改文件路径和话题名称。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

虚宇宸轩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值