csi_cam_topic详细内容

17 篇文章 0 订阅
10 篇文章 0 订阅

jetson_nano_csi_cam
Jetson Nano DevKit B01 + 双 CSI 摄像头 ROS 驱动程序。

此 ROS 包用于通过GStreamer或Jetson Linux 多媒体 API捕获连接到 Jetson Nano DevKit B01 的 CSI 摄像头(1 或 2)的图像,并将它们作为ROS sensor_msgs / Image 提供。

gscam通过 GStreamer 或 Jetson Linux Multimedia API 调用启动文件

分辨率和帧率设置
相机校准
多个CSI摄像机图像的获取和分配
实现了。

安装方法
jetson_nano_csi_cam要运行,请下载此存储库及其相关软件。

gscam有关更多信息,请参阅ROS Wiki或ros-drivers / gscam @ GitHub。

我们通过将两个用于 NVIDIA Jetson Nano 板(160 度 FoV)的 SainsSmart IMX219 摄像头模块连接到安装了以下软件的 NVIDIA Jetson Nano DevKit B01 来确认操作。

L4T R32.4.2 + ROS旋律
依赖
GStreamer-1.0 或 Jetson Linux 多媒体 API(与 JetPack 一起安装)
ROS旋律
支持 GStreamer-1.0gscam
1.jetson_nano_csi_cam下载
将此存储库catkin_ws下载到.

cd ~/catkin_ws/src
git clone https://github.com/rt-net/jetson_nano_csi_cam_ros.git
2.gscam下载并支持GStreamer-1.0
首先,安装gscam所需的gstreamer相关包。

sudo apt-get install gstreamer1.0-tools libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-good1.0-dev
gscamAcatkin_ws下载到。

cd ~/catkin_ws/src
git clone https://github.com/ros-drivers/gscam.git
下载后,./gscam/Makefile编辑以更改 CMake 选项。-DGSTREAMER_VERSION_1_x=On添加以下内容:

EXTRA_CMAKE_FLAGS = -DUSE_ROSBUILD:BOOL=1 -DGSTREAMER_VERSION_1_x=On
gscam您可以通过在下载的目录中执行以下命令来轻松编辑它。

sed -e “s/EXTRA_CMAKE_FLAGS = -DUSE_ROSBUILD:BOOL=1$/EXTRA_CMAKE_FLAGS = -DUSE_ROSBUILD:BOOL=1 -DGSTREAMER_VERSION_1_x=On/” -i Makefile
3. 构建和设置
jetson_nano_csi_cam并gscam建立和设置。

cd ~/catkin_ws
catkin build
source devel/setup.bash
如何使用
快速开始
要将作为 CAM0 连接/csi_cam_0/image_raw的相机流的数据作为ROS 主题分发,请在终端上执行以下命令。

roslaunch jetson_nano_csi_cam jetson_csi_cam.launch sensor_id:=0 width:= height:= fps:=
CAM0 和 CAM1 将摄像头数据流连接到每个/csi_cam_0/image_raw并/csi_cam_1/image_raw与 ROS 主题同时传递,运行以下命令。

roslaunch jetson_nano_csi_cam jetson_dual_csi_cam.launch width:= height:= fps:=
视频采集/分发
视频分发
执行以下命令以将相机图像作为 ROS 主题传送。

roslaunch jetson_csi_cam jetson_csi_cam.launch
这次发布只是启动一个节点进行分发。使用其他方法检查正在传送的视频。
要轻松检查视频是否正在传送,请启动您的设备rostopic list,运行它,/csi_cam_0/image_raw然后查找正在传送的 ROS 主题列表中命名的主题。

选项
roslaunch当您这样做时,您可以决定视频分发的参数作为一个选项。

roslaunch jetson_csi_cam jetson_csi_cam.launch width:=1920 height:=1080 fps:=15
对于其他参数,您可以roslaunch在<arg_name>:=<arg_value>格式中指定选项。

jetson_csi_cam.launch的论据
sensor_id(默认 😃 – 相机0ID
width(默认 😃 640-- 要传送的视频的宽度
height(默认 😃 480-- 要传送的视频的高度
fps(默认 😃 --30要传送的帧率(可能低于此帧率,具体取决于分辨率)
cam_name(默认:csi_cam_ ( a r g s e n s o r i d ) ) − c a m e r a i n f o 对应的相机名称 f r a m e i d (默认 / (arg sensor_id))-camera info对应的相机名称 frame_id(默认/ (argsensorid)camerainfo对应的相机名称frameid(默认/(arg cam_name)_link:) – 用于 tf 的相机帧名称
sync_sink(默认: true) - Appsink同步设置(设置低帧率问题是这个选项false当你出现时,你可能会解决这个问题)
flip_method(默认 😃 --0传送视频时的图像反转选项
视频分发测试
检查相机图像
要轻松查看相机图像,请在 GNOMErqt_img_view等桌面环境中启动终端并执行。
从启动的图像查看器左上角的下拉菜单中选择相机图像主题。 jetson_csi_cam.launch对于 的默认设置/csi_cam_0/image_raw。

帧率测量
您可以使用以下命令检查 ROS 主题的更新频率:

rostopic hz /csi_cam_0/image_raw
摄像头图像ROS主题更新频率== 不是交付图像的帧率,但几乎匹配。如果低于设置的帧率,可能是以下原因。

Jetson Nano电源管理处于性能限制模式
Jetson Nano 与电脑接收视频网络不稳定
您指定的值大于或等于所连接摄像头模块的最大帧速率。
相机校准
jetson_nano_csi_cam还将相机信息作为 ROS 主题分发,以便更轻松地校准相机。
要将相机信息与您实际使用的相机相匹配,请根据ROS Wiki上的单目相机校准指南进行校准。无需校准即可分发相机图像。在这种情况下,请参阅以下信息。

您需要按照 ROS Wiki 上的说明打印棋盘格。

roslaunch摄像机的视频由视频传输中解释的命令传输。

image并camera指定如下命令所示的棋盘格的选项和大小,进行校准。

rosrun camera_calibration cameracalibrator.py --size 8x6 --square image:=/csi_cam_0/image_raw camera:=/csi_cam_0
如果你把棋盘移动到相机可以看到的范围内,你就可以按下“校准”按钮,这样就可以写出校准文件了。

执照
© 2020 RT 公司

如果在文件中指定,每个文件都受许可的约束。除非另有说明,否则它是在 Apache 许可证 2.0 版下发布的。可以在LICENSE或apache.org/licenses/LICENSE-2.0找到
完整的许可证。

致谢
彼得莫兰 / jetson_csi_cam
版权所有 © 2017 彼得莫兰
麻省理工学院执照
https://github.com/peter-moran/jetson_csi_cam/blob/b4d839bdfca0e2714103c1d2fe3750f3a8f36832/LICENSE
相关文件
NVIDIA Jetson Linux 开发人员指南上的加速 GStreamer 文档
NVIDIA Jetson Linux 开发人员指南上的 Jetson Nano 和 Jetson TX1 设备的电源管理

<?xml version="1.0"?>
<launch>
  <!-- Command Line Arguments -->
  <arg name="sensor_id" default="0" />                       <!-- The sensor id of the camera -->
  <arg name="cam_name" default="csi_cam_$(arg sensor_id)" /> <!-- The name of the camera (corrsponding to the camera info) -->
  <arg name="frame_id" default="/$(arg cam_name)_link" />    <!-- The TF frame ID. -->
  <arg name="sync_sink" default="true" />                    <!-- Synchronize the app sink. Setting this to false may resolve problems with sub-par framerates. -->
  <arg name="width" default="1280" />                         <!-- Image Width to stream -->
  <arg name="height" default="720" />                        <!-- Image Height to stream -->
  <arg name="fps" default="30" />                            <!-- Desired framerate. True framerate may not reach this if set too high. -->
  <arg name="flip_method" default="0" />                     <!-- flip_method -->
  <arg name="load_camera_info" default="true" />             <!-- Load the camera info or not-->

  <!-- Make arguments available to parameter server -->
  <param name="$(arg cam_name)/camera_id" type="int" value="$(arg sensor_id)" />
  <param name="$(arg cam_name)/image_width" type="int" value="$(arg width)" />
  <param name="$(arg cam_name)/image_height" type="int" value="$(arg height)" />
  <param name="$(arg cam_name)/target_fps" type="int" value="$(arg fps)" />

  <!-- Define the camera calibration parameter -->
  <param name="$(arg cam_name)/camera_info_url" type="string" if="$(arg load_camera_info)"
    value="package://jetson_nano_csi_cam/config/sainsmart-imx219-jetson-nano-160deg-fov-$(arg cam_name).yaml" />

  <!-- Define the GSCAM pipeline -->
  <param name="$(arg cam_name)/gscam_config" type="string" value="nvarguscamerasrc sensor-id=$(arg sensor_id) ! video/x-raw(memory:NVMM),
    width=(int)$(arg width), height=(int)$(arg height), format=(string)NV12, framerate=(fraction)$(arg fps)/1 !
    nvvidconv flip-method=$(arg flip_method) ! videoconvert" />

  <!-- Start the GSCAM node -->
  <node pkg="gscam" type="gscam" name="$(arg cam_name)">
    <param name="camera_name" value="$(arg cam_name)" />
    <param name="frame_id" value="$(arg frame_id)" />
    <param name="sync_sink" value="$(arg sync_sink)" />
    <remap from="camera/image_raw" to="$(arg cam_name)/image_raw" />
    <remap from="/set_camera_info" to="$(arg cam_name)/set_camera_info" />
  </node>
</launch>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

我是硝酸钾

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

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

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

打赏作者

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

抵扣说明:

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

余额充值