mono2d_body_detection编译失败

用户您好,请详细描述您所遇到的问题。

1.硬件获取渠道:淘宝

2.当前系统镜像版本:ubuntu20.04

3.当前天工开物版本:x3_ubuntu_1.1.2

4.问题定位:拉取mono2d_body_detection仓库编译失败

5.开发的demo/案例:mono2d_body_detection

6.需要提供的解决方案:编译成功

拉取mono2d_body_detection编译报错如下

They are being used from the following locations instead:

- /opt/tros

To suppress this warning ignore these packages in the workspace:

--packages-ignore hobot_mot

-– stderr: mono2d_body_detection

/usr/bin/ld: CMakeFiles/mono2d_body_detection.dir/src/mono2d_body_det_node.cpp.o: in function `Mono2dBodyDetNode::PostProcess(std::shared_ptrhobot::dnn\_node::DnnNodeOutput const&)':

mono2d_body_det_node.cpp:(.text+0x41f8): undefined reference to `hobot::dnn_node::parser_fasterrcnn::Parse(std::shared_ptrhobot::dnn\_node::DnnNodeOutput const&, std::shared_ptrhobot::dnn\_node::parser\_fasterrcnn::FasterRcnnKpsParserPara const&, std::vector<int, std::allocator > const&, int, int, std::vector<std::shared_ptrhobot::dnn\_node::parser\_fasterrcnn::Filter2DResult, std::allocator<std::shared_ptrhobot::dnn\_node::parser\_fasterrcnn::Filter2DResult > >&, std::shared_ptrhobot::dnn\_node::parser\_fasterrcnn::LandmarksResult&)’

collect2: error: ld returned 1 exit status

make[2]: *** [CMakeFiles/mono2d_body_detection.dir/build.make:177: mono2d_body_detection] Error 1

make[1]: *** [CMakeFiles/Makefile2:78: CMakeFiles/mono2d_body_detection.dir/all] Error 2

make: *** [Makefile:141: all] Error 2

-–

Failed <<< mono2d_body_detection [7.52s, exited with code 2]

Summary: 0 packages finished [9.76s]

1 package failed: mono2d_body_detection

1 package had stderr output: mono2d_body_detection

使用apt show tros命令查下tros版本号是不是1.1.2。

如果版本对的话,编译报错提示找不到的`hobot::dnn_node::parser_fasterrcnn::Parse’接口在板端/opt/tros/include/dnn_node/util/output_parser/detection/fasterrcnn_output_parser.h文件中。

是1.1.2,好像这个demo要求的依赖奇奇怪怪的,CMakeList我怀疑是不是有问题呀,有个类似的demo 古月居里面的视频,那个仓库拉下来,cpp_dnn_demo就可以编译成功。

看起来头文件也没问题,你下载的mono2d_body_detection代码的repo commit看下

你好,请问编译成功了吗,板端的fasterrcnn_output_parser.h头文件是否存在?

在板端这个示例是可以编译成功的:

头文件在哪获得

这个头文件是安装了TROS之后就会有的,你的开发板上没有吗?

没有,安装之后文件如下,有一个fasterrcnn_kps_output_parser.h,还有个问题哈,开发手册上的快速使用不用编译,我运行显示找不到摄像头,源代码readme里需要编译,两个教程不一致是为啥,应该还是要编译把。

apt安装TROS之后就可以直接运行手册里的示例了,源码README里的编译方法是为了满足二次开发的需求,比如功能扩展等。

具体报错信息可以发出来看下。

注意同样需要设置摄像头参数,另外HDMI不支持AI结果的渲染,只能展示图像数据。

感谢,刚刚运行又错摄像头有问题。。。应该是要把全部F37改成GC4663,我把tros/share/websocket和源代码里面的改了又报错摄像头路径问题,请问是为啥

你启动的是mono2d脚本 修改的配置也是这个脚本里的吗

修改的是脚本里面的.launch.py

改了gc4663还是报错找不到F37

现在是运行那个脚本嘛,默认摄像头是F37,我按照格式代码里改成GC4663,还是报错找不到F37

运行命令和修改的启动脚本文件全名发下。

修改摄像头参数具体参考:7.1. 购买渠道 — 地平线机器人平台用户手册 1.0 文档 (horizon.ai)

好的,我换成usb摄像头跑通了,现在想获取骨骼位置信息还有包围框等信息去分析,是要通过编译才能打印出来吗,请问这个实例能否获得骨骼数据信息或者相关教程?

可以使用ros2 topic echo打印出来发布的包含骨骼关键点的ros msg,手册里面也有对应的代码仓库地址,README有更详细的说明。

感谢,我去学习一下ros2 topic echo指令