- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想安装 OV7251 摄像头驱动程序来使用我最近购买的模块 Arducam OV7251 MIPI ,因为我需要执行称为虚拟惯性导航 (VIN) 的类似 SLAM 的系统,因此首选全局快门相机。就我的系统而言,我在运行 Ubuntu 16.04 的 RPI-3B+ 上使用 ROS Kinetic。我正在使用这款相机,因为它接近我的价格点(<20 美元),并且通过 RPI 的 CSI 端口,消息来源说这比通过 USB 的更容易和更快。
我想拿这台相机并将它的数据发布到一个主题,我用于 VIN 的存储库,OpenVINS ,可以跟踪相机的位置。现在,我正在使用的相机除了制造商的 github 页面之外没有太多内容,该页面在 Ubuntu 上不起作用,并且无法连接到 ROS。现在,我对 RPI(包括 ROS)相当缺乏经验,因为我最初想在 Arduino 上执行此操作,但这主要是不可能的,所以我怀疑我是否能够编写一个简单的 ROS 节点,更不用说与CSI 端口。
目前,我无法为此找到很多图书馆,而且事实证明给我的帮助并不重要。相机本身没有 RPI 支持的驱动程序,这就是为什么我找不到任何/dev/video 库,cheese 什么都没有出现,命令 $ Vcgencmd get_camera
返回未检测到的设备。有人建议进行内核黑客攻击,以便使用 here 之类的库启用 menuconfig 中的模块.虽然我对内核黑客不太了解,但他建议我关注 this指导,在我运行 defconfig 行之后,我应该在 menuconfig 中搜索“OV7251”并将唯一弹出的模块化。尽管多次闪烁并重复此过程以确保我没有选择错误的分支、rpi-5.4.y 分支或错误的型号 RPI-3B+,但每次重新启动后,我最终都卡在了彩虹屏幕上.我知道彩虹屏幕要么意味着低功耗,这不是因为我之前运行过它,要么是内核错误,这很可能是有意义的。
现在,虽然我非常想修复彩虹屏错误,但我也想知道,在安装了 OV7251 驱动程序后,如何让它与 ROS 一起工作以将数据发送到主题?由于我怀疑我是否可以编写自己的节点,是否有一个库可以让我执行此操作,或者以前由于缺少驱动程序而无法工作的库现在会突然工作,还是我必须采用现有的一个并且修改它?在任何情况下,一个更底层的教程来完成这个将非常方便,因为我是新手。
但是,如果这不是软件,并且不支持此相机的原因是有充分理由的,还有其他便宜的全局快门相机我可以使用吗?在我的各种搜索中,我似乎找不到很多,但也许你们在这个领域都有更好的运气/经验。虽然,我确实找到了another这家制造商的库恰好支持我的相机型号,甚至还有一个可以在 ubuntu 上运行的 ROS 节点。但是,我相信如果可以做到这一点,那么只需 CSI 端口就可以做到这一点,而不是为 pi 购买额外的 40 美元 USB 摄像头帽,与此同时,我开始怀疑这家公司的有效性存储库。
然而,事实上,我在 RPI 的 CSI 端口上仅发现关于这台相机主题的信息很少,这家公司有多出名,这让我害怕,这可能是不可能的,如果是的话,请给我一些其他的好东西,希望能好- 记录相机,这很可能需要很多。如果用我设置的参数根本不可能得到我想要的结果,那么卷帘快门相机会对 VIN 的性能产生多大的影响,此外,是否有任何专门为卷帘快门设计的数据集可以最大限度地减少质量下降?这个地形对我来说太陌生了。
最佳答案
好的,所以我让一个 rpi 工程师在 rpi 的固件中为 ov7251 添加了 dtoverlay,并且最近的 rpi-update 在内核中有覆盖。
我做了sudo rpi-update
安装更新,然后我添加了dtoverlay=ov7251
到/boot/config.txt 以启用覆盖,我通过运行 sudo nano /boot/config.txt
对其进行了编辑.并且仓库只有一个依赖,v4l-utils
,通过运行 sudo apt-get install v4l-utils
很容易安装.最后我跑了sudo reboot
初始化更改。
为了将图像拉入 ROS,我编辑了一个名为 usb_cam
的 v4l2 节点。为了接受ov7251相机使用的像素格式(Y10)。我的 fork 可以找到here .为了安装它,(因为原始仓库的文档对安装说得很少),我跑了:
cd ~/catkin_ws/src
git clone https://github.com/ai-are-better-than-humans/usb_cam.git
cd ..
catkin_make
然后你所要做的就是
roslaunch usb_cam usb_cam-test.launch
启动节点。我的开始是黑暗的,所以我不得不进入启动文件并稍微调整一下亮度。当您在那里时,请确保
pixel_format
参数的值为
Y10
你应该得到一个 sensor_msgs::Image 消息被发布到一个名为“
rqt_graph
将其可视化。非常感谢树莓派论坛上的 6by9,不要认为没有他我就无法完成,他做了很多我非常感谢的工作。思想id在这里分享知识,以防有人发现它有用。
catkin_make --pkg usb_cam -DCMAKE_BUILD_TYPE=Release
编译而不是
catkin_make
如果节点占用过多的 CPU。另外,如果您在编译时看到大量错误消息,这很好,它仍然应该可以工作,但是如果您想摆脱它们,可以引用
this来自 ros 线程的回答:
It looks like you need to install libavcodec. I don't know the exactcommand to install it off the top of my head, but the format will looklike this:
sudo apt-get install libavcodec
The exact package name might not belibavcodec. It maybe looks something like libavcodec-VERSION-NUMBER orlibavcodec-dev. In these situations you can search for packages with acommand like this:
apt-cache search libavcodec
This will find all packages that have textcontaining "libavcodec". This should find the correct package for youto install.
关于linux - 在 RPI-3B+ 中安装 OV7251 驱动程序以与 ROS 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62604858/
我正在尝试为基于 arm 的板交叉编译驱动程序。在 make 文件中,包含文件的搜索路径是主机内核的路径,即它指向 ubuntu 附带的 linux 头文件。我在主机系统(i7/ubuntu)上也有目
1、准备材料 开发板(正点原子stm32f407探索者开发板V2.4) 。 STM32CubeMX软件(Version 6.10.0) 。 野火DAP仿真器 。 keil µVis
是否可以通过 c# 应用程序“驱动”excel(即从 excel gui 下拉列表中选择某些内容,按下按钮并读取特定单元格的内容)? 这并不是真正用于测试,而是用于类似于 selenium 的数据报废
给定任何具有超过 5 个 View 和 View 模型的中间 MVVM 应用程序,是否有任何推荐的设计模式来说明如何为此类应用程序搭建脚手架? 现在我通常有一个在 App.OnStartup 中创建的
我想知道如何使用曼哈顿距离启发式来驱动 NxN 二维数组中的搜索。我有以下曼哈顿距离: private int manhattan(int[] pos, int tile) { int
我试图了解 CUmodule 在 CUDA 驱动程序 API 函数中实际上代表什么。 许多 CUDA 驱动程序 API 函数都有一个 CUmodule 句柄,但它是什么?它是引导驱动程序调用过程的 d
我正在尝试创建一个 java 程序,它将创建 excel 文件并将其上传到谷歌驱动器中。上传后我需要它来授予权限。我已经完成了所有这些,但问题在于尝试将 excel 文件转换为 google 文件,以
我正在拼命尝试从 Linux(Raspbian 内核 4.4.12-v7+)与使用 TIUSB3410 USB 部件的设备进行通信。 这是 dmesg 的输出: [ 2730.016013] usb
我有一个关于在 PCIe 上使用突发读写的问题。我有一个 fpga,它通过 PCIe 连接到 cpu。我有一个简单的驱动程序,仅用于测试。驱动程序向 FPGA 写入数据以及从 FPGA 读取数据。 f
我有大约 500 条通往特定页面的可能路径,我需要测试所有这些路径。该页面的每个路径看起来都类似于此(使用 PHP 网络驱动程序;通常有大约 10 个步骤): // Navigate to form
如果chrome驱动的版本和当前的chrome版本不同,我想写一个python代码,下载并运行与当前chrome版本匹配的chrome驱动。 这就是我一直在寻找的东西 driver = webdriv
我在 Centos 7 Linux 机器上尝试通过 pyodbc 连接到 SQL 数据库。我了解到您需要设置 DSN,您可以通过安装 freetds 驱动程序并执行以下操作来实现: import py
是否可以使用 NUnit 通过 NDepend 运行 CQL 查询?如果能够将 NDepend dll 包含在 UnitTests 库中并编写如下测试,那就太好了: [Test] public voi
我在 cassandra 中有巨大的表,超过 20 亿行并且还在增加。这些行有一个日期字段,它遵循日期桶模式以限制每一行。 即便如此,对于某个特定日期,我也有超过一百万条条目。 我想尽快读取和处理每一
考虑以下示例,其中一个模块的输出 (inner::out) 应该驱动两个输出(outer::out 和 outer::out2) 的上层层次: #include SC_MODULE(inner) {
我不确定是否可以有一个具有多个 MySQL 根的连接器。当我尝试只使用一根根时,它效果完美。我的有 2 个根的代码如下所示: [ 'locale' => 'es_ES.UTF-8',
我的桌面APP无法注册Mysql JDBC驱动 我下载mysql-connector-java-5.1.16.zip 解压mysql-connector-java-5.1.16-bin.jar并将其放
我有一个无限循环等待输入的 python 脚本,然后输入发生时做一些事情。我的问题是制作 python告诉 emacs 做某事。我只需要一些方法来发送 emacs 输入并让 emacs 评估该输入。
我最初问的没有明确说明我的问题/问题,所以我会更好地解释它。我有一个将 JDialog 设置为可见的 JButton。 JDialog 有一个 WindowListener 将其设置为在 window
假设“doc”是我想插入到 MongoDB 集合中的一些文档,而“collection”是我要将文档插入到的集合。 我有如下内容: try { WriteConcern wc = new Wr
我是一名优秀的程序员,十分优秀!