快捷导航
本帖最后由 xhzhang 于 2021-2-3 15:44 编辑

你好,我从 https://github.com/MiiViiDynamics/miivii_gmsl_camera下载后,按照指南 cattkin_make,source,然后 rosrun,发现有3中情况:1、程序崩溃
2、卡住
由于调试,多运行几次rosrun和ctrl +c,后面就卡住不动,也无数据,发现卡在 gmsl_camera/nodes/miivii_gmsl_ros_node.cpp 中 grab_and_send_image()中if (m_gmsl_camera->GetImagePtr(gmsl_outbuf, timestap))位置。
3、设备被占用
系统信息:

# uname -r4.9.140-tegra
# lsb_release -a
No LSB modules are available.
Distributor ID:        Ubuntu
Description:        Ubuntu 18.04.4 LTS
Release:        18.04
Codename:        bionic

# cat /proc/device-tree/model
Jetson-AGX

程序崩溃的日志:

root@miivii-tegra:/home/nvidia/Documents/lm/ros_demo# /home/nvidia/Documents/lm/ros_demo/devel/lib/miivii_gmsl_ros/miivii_gmsl_ros_node
[ INFO] [1612337849.716014112]: starting to run gmsl camera construct function
78
111
[ INFO] [1612337849.747676000]: dev_name = /dev/video0   camWidth = 1280   camHeight = 720    fps = 25
116
MiiVii GMSL-Camera SDK Version: 0.0.0  
managed_shared_memory ex: No such file or directory
Producer mode.
fmt.fmt.pix.width 1280
fmt.fmt.pix.height 720
fmt.fmt.pix.pixelformat 1448695129
libv4l2_nvvidconv (0)802) (INFO) : Allocating (10) OUTPUT PLANE BUFFERS Layout=0
libv4l2_nvvidconv (0)818) (INFO) : Allocating (10) CAPTURE PLANE BUFFERS Layout=0
10-bit Bayer RGRG/GBGB
device like buffer count: 4
Camera v4l2mmbuffer buf length is not expected: Invalid argument
Camera v4l2mmbuffer buf length is not expected: Invalid argument
Camera v4l2mmbuffer buf length is not expected: Invalid argument
Camera v4l2mmbuffer buf length is not expected: Invalid argument
124
[ INFO] [1612337850.073373920]: camera_cali_file_list 0 camera1
131
[ WARN] [1612337850.073749792]: fail to load calibration file for camera camera1, fallback to empty calibration
146
166
Segmentation fault (core dumped)

gdb core文件的结果:
(gdb) bt
#0  0x0000007f793d3010 in bool __gnu_cxx::__ops::_Iter_equals_val<int const>:perator()<int*>(int*) () from /usr/lib/libmvgmslcam.so
#1  0x0000007f793d0f6c in int* std::__find_if<int*, __gnu_cxx::__ops::_Iter_equals_val<int const> >(int*, int*, __gnu_cxx::__ops::_Iter_equals_val<int const>, std::random_access_iterator_tag) () from /usr/lib/libmvgmslcam.so
#2  0x0000007f793cf8c8 in int* std::__find_if<int*, __gnu_cxx::__ops::_Iter_equals_val<int const> >(int*, int*, __gnu_cxx::__ops::_Iter_equals_val<int const>) () from /usr/lib/libmvgmslcam.so
#3  0x0000007f793ce324 in int* std::find<int*, int>(int*, int*, int const&) () from /usr/lib/libmvgmslcam.so
#4  0x0000007f793c9638 in GetR5Output::FindThisProcessId() () from /usr/lib/libmvgmslcam.so
#5  0x0000007f793c8f74 in GetR5Output::GetTimeFromShm() () from /usr/lib/libmvgmslcam.so
#6  0x0000007f793c1f5c in GmslCamera::GrabVICsPtr(unsigned char**, unsigned long&) () from /usr/lib/libmvgmslcam.so
#7  0x0000007f793be514 in miivii::MvGmslCamera::GetImagePtr(unsigned char**, unsigned long&) () from /usr/lib/libmvgmslcam.so
#8  0x0000005593e47930 in miivii::miivii_gmsl_ros_node::grab_and_send_image() ()
#9  0x0000005593e47cdc in miivii::miivii_gmsl_ros_node::spin() ()
#10 0x0000005593e41fc4 in main ()



卡住的日志:
root@miivii-tegra:/home/nvidia/ros_demo# ls
build  devel  src  test

root@miivii-tegra:/home/nvidia/ros_demo# source devel/setup.bash
root@miivii-tegra:/home/nvidia/ros_demo# rosrun miivii_gmsl_ros miivii_gmsl_ros_node
[ INFO] [1612334311.569478464]: starting to run gmsl camera construct function
78
111
[ INFO] [1612334311.605213248]: dev_name = /dev/video0   camWidth = 1280   camHeight = 720    fps = 25
116
MiiVii GMSL-Camera SDK Version: 0.0.0  
Producer mode.
fmt.fmt.pix.width 1280
fmt.fmt.pix.height 720
fmt.fmt.pix.pixelformat 1448695129
libv4l2_nvvidconv (0)802) (INFO) : Allocating (10) OUTPUT PLANE BUFFERS Layout=0
libv4l2_nvvidconv (0)818) (INFO) : Allocating (10) CAPTURE PLANE BUFFERS Layout=0
10-bit Bayer RGRG/GBGB
device like buffer count: 4
Camera v4l2mmbuffer buf length is not expected: Invalid argument
Camera v4l2mmbuffer buf length is not expected: Invalid argument
Camera v4l2mmbuffer buf length is not expected: Invalid argument
Camera v4l2mmbuffer buf length is not expected: Invalid argument
[ INFO] [1612334311.873300288]: camera_cali_file_list 0 camera1
[ WARN] [1612334311.873534656]: fail to load calibration file for camera camera1, fallback to empty calibration



设备被占用的日志

root@miivii-tegra:/home/nvidia/ros_demo# rosrun miivii_gmsl_ros miivii_gmsl_ros_node
[ INFO] [1612335075.265607488]: starting to run gmsl camera construct function
78
111
[ INFO] [1612335075.287148256]: dev_name = /dev/video0   camWidth = 1280   camHeight = 720    fps = 25
116
MiiVii GMSL-Camera SDK Version: 0.0.0  
managed_shared_memory ex: No such file or directory
Producer mode.
fmt.fmt.pix.width 1280
fmt.fmt.pix.height 720
fmt.fmt.pix.pixelformat 1448695129
libv4l2_nvvidconv (0)802) (INFO) : Allocating (10) OUTPUT PLANE BUFFERS Layout=0
libv4l2_nvvidconv (0)818) (INFO) : Allocating (10) CAPTURE PLANE BUFFERS Layout=0
10-bit Bayer RGRG/GBGB
VIDIOC_REQBUFS: Device or resource busy



举报 使用道具
| 回复

共 5 个关于本帖的回复 最后回复于 2021-3-1 10:11

贺老师 游客 发表于 2021-2-3 15:37 | 显示全部楼层
你好:

和你确认几个信息:
1. 是否使用的是Apex Xavier
2. 是否使用的是最新的4.4镜像
3. 使用用户手册中gmsl sdk,是否能够正确显示图像?https://docs.miivii.com/product/ ... 05.gmsl.html?h=gmsl
4. 是否确认对于开源代码的修改,是否匹配你的摄像头数量?(默认是连接4个摄像头)

看你的现象像是对开源代码并没有进行对应修改造成的,实际连接的摄像头数量,和代码中配置的不匹配。
misszhq 会员 发表于 2021-2-3 15:57 | 显示全部楼层
贺老师 发表于 2021-2-3 15:37
你好:

和你确认几个信息:

你好;
以下时关于你的几个问题:
1. 确认使用的是Apex Xavier
2. 确认使用的是4.4-v1.1.0镜像.
3. 确认使用用户手册中gmsl sdk,可以正确显示图像。但目前还没有测试多次关闭和开启的情况。
4. 目前只接了一路摄像头,未对ROS demo代码做任何修改,可以告知一下在哪个位置进行修改吗。
贺老师 游客 发表于 2021-2-3 16:00 | 显示全部楼层
misszhq 发表于 2021-2-3 15:57
你好;
以下时关于你的几个问题:
1. 确认使用的是Apex Xavier

你好

可以自行看一下代码,以及代码的readme
之所以开源代码,就是因为我们没有办法对每个客户进行支持。

我们的readme应该有对应的说明。
YJw 游客 发表于 2021-3-1 09:27 | 显示全部楼层
你好,我也遇到了同样的问题,4路摄像头也不好使
贺老师 游客 发表于 2021-3-1 10:11 | 显示全部楼层
YJw 发表于 2021-3-1 09:27
你好,我也遇到了同样的问题,4路摄像头也不好使


需要您确认这么几个事情。
1. 单路SDK是否可以用?
2. 那请问使用SDK单路和四路可以么?
3. 是否使用的都是从我司采购的摄像头?
您需要登录后才可以回帖 登录 | 点我注册

精彩推荐

  • canbus与vcu相连接,出现bus-off状态
  • 有线连接失败
  • Apex 串口通讯
  • 关于SPI通信问题咨询
  • MIIVII APEX DUAL ORIN米文域控制器产品合

明星用户