ros_arduino_bridge
停滞了一个月后,又回来继续搞小车了,发现好多东西需要去学习,好多问题亟待解决,而且悲剧的是,之前学的基本忘光了。就悲伤且坚定的继续努力吧
本篇内容主要是我搬运的,基于jetson tx2 nx 做了一点点修改,主要是为了方便自己后续查看。原博客地址如下:https://www.codeleading.com/article/55935670020/ Jetson nano 上使用ROS进行双目摄像头(CSI-IMX219)操作标定
1. CSI-IMX219简介
imx219是索尼800万像素中,超越imx179的一款对角为4.6mm (1/4.0型) , 有效像素约808万的背照式cmos图像传感器。imx219面向移动终端 (智能手机, 平板电脑) , 可以拍摄帧率180帧/秒高速视频的cmos图像传感器。imx219满足了高性能拍照应用所需的 [高灵敏度] 、[高帧率拍摄] 等基本功能需求, 由于芯片的小型化, 使得它即使在时尚的窄边框设计的设备的前置摄像头上也能很方便应用。
拍摄功能在通常的全尺寸8mpix输出时30帧/秒的基础上, 通过2×2像素同时读取的加算功能还实现了4倍速拍摄。而且, 通过搭载lsc1功能来降低模块生产过程中产生的光学偏差, 进而有助于减少系统成本。另外, 通过与具备bme hdr2功能的后段isp的组合, 还可以扩展出高动态范围视频拍摄功能。
2. 在Jetson tx2 nx上简单使用
nvgstcapture-1.0
摄像头可用的话那么屏幕上则会开启一个摄像头的展示框。
3. 使用ROS操作CSI-IMX219
这一步的前提是CSI-IMX219摄像头可以正常开启。
首先从github上克隆一个日本程序员写的第三方包组,使用这个包可以实现双目摄像头的标定等操作。
cd ~/catkin_ws/src
git clone https://github.com/rt-net/jetson_nano_csi_cam_ros.git
接下来下载一些gscam的依赖,上述包组是依赖于gscam的,因此也要把gscam克隆下来
sudo apt-get install gstreamer1.0-tools libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-good1.0-dev
cd ~/catkin_ws/src
git clone https://github.com/ros-drivers/gscam.git
接下来我们进入到克隆好的gscam目录中使用sed命令添加一行参数
cd ~/catkin_ws/src/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
然后我们在src目录下直接编译
cd ~/catkin_ws
catkin_make
source devel/setup.bash
将作CAM0连接的相机流的数据/csi_cam_0/image_raw进行ROS主题发布,在终端中执行以下命令:
roslaunch jetson_nano_csi_cam jetson_csi_cam.launch sensor_id:=0 width:=<image width> height:=<image height> fps:=<desired framerate>
将与CAM0和CAM1连接的相机流的数据/csi_cam_0/image_raw和//csi_cam_1/image_raw同时进行ROS主题发布,在终端中执行以下命令:
roslaunch jetson_nano_csi_cam jetson_dual_csi_cam.launch width:=<image width> height:=<image height> fps:=<desired framerate>
要以ROS为主题开启摄像头不间断连续发送相机视频,在终端中执行以下命令:
roslaunch jetson_csi_cam jetson_csi_cam.launch
这个launch只是启动发送用的节点。为了确认发送的视频,会使用其他的手段。
为了简单确认影像是否被发送,可以在终端执行rostoopic list,从发送中的ROS话题一览找到/csi_cam_0/image_raw这个话题。
rostopic list
同样我们也可以使用rqt_image_view选择/csi_cam_0/image_raw实时的去看我们的视频是否不间断获取到:
rqt_image_view
可以添加视频的参数:
roslaunch jetson_csi_cam jetson_csi_cam.launch width:=1920 height:=1080 fps:=15
关于其他参数,在roslaunch时name>:=<arg_可以以value>格式指定选项。
sensor(default: 0) --相机ID
width(default:640)--发送的影像的宽度
height(default:480)--发送的影像高度
fps(default:30)--发送的帧速率(根据分辨率的不同可能不满足这个帧速率)
cam_name (default: csi_cam_$(arg sensor_id)--与camerainfo对应的相机名称
frame_id (default: /$(arg cam_name)_link)--tf中使用的照相机的帧名
sync_sink (default: true)--appsink(如果将帧速率设置低并发生问题时将此选项设为假,问题可能会得到解决)
flip_method(default:0)--视频传送时图像的反转选项
计算刷新频率:
可以通过以下命令确认ROS主题的刷新频率
rostopic hz /csi_cam_0/image_raw
图像视频校准:
rosrun camera_calibration cameracalibrator.py --size 8x6 --square <square size in meters> image:=/csi_cam_0/image_raw camera:=/csi_cam_0
Github原文链接:https://github.com/rt-net/jetson_nano_csi_cam_ros
版权声明:本文为qq_40695642原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_40695642/article/details/117568458