ROS和Halcon机器视觉软件随手记
学院有Halcon机器视觉实验室,先进自动化生产线也是使用Halcon进行视觉处理。
主要参考链接:
1. asr halcon bridge: http://wiki.ros.org/asr_halcon_bridge
2. asr ros: https://github.com/asr-ros
----机器翻译----
描述
软件包包含一个库,用于在ROS和HALCON特定数据结构之间转换点云和图像。
功能
库的结构主要基于cv_bridge -package,更多信息,请查看相关文档。
用法
需要的功能包
包本身对外部ROS包没有任何依赖性(除了ROS的核心安装附带的默认包)。
需要的软件包
为了能够构建此包并在项目中使用它,需要安装一个版本的HALCON图像处理库。到目前为止,它仅使用版本11进行了测试,但理论上它应该适用于更高版本以及数据类型的基本结构没有改变。
需要正确设置环境变量HALCONROOT和HALCONARCH,否则cmake将无法找到HALCON安装。如果遵循HALCON的安装指南,通常应该是这种情况。
需要的硬件
需要拥有HALCON安装的有效许可证; 如果因为这个原因获得了usb-dongle,则需要在运行时插入它,否则将收到异常。
启动系统
由于此软件包仅包含库,因此应该看教程中有关如何使用它的更多信息。
ROS节点
没有订阅/发布的主题或服务,也没有配置参数。
教程
要使用此库提供的函数,需要首先将此包设置为项目的依赖项,然后在代码中包含halcon_image.h或halcon_pointcloud.h,具体取决于要转换的内容。
转换图片:
要将sensor_msgs :: Image转换为HalconCpp :: HImage,请调用以下函数之一:
HalconImagePtr toHalconCopy(const sensor_msgs :: ImageConstPtr&source)
HalconImagePtr toHalconCopy(const sensor_msgs :: Image&source);
返回值是HalconImagePtr对象,它包含HalconCpp :: HImage -Pointer作为名为image的成员。
要将HalconImage再次转换为ROS,请调用以下成员函数之一:
sensor_msgs :: ImagePtr toImageMsg()const;
void toImageMsg(sensor_msgs :: Image&ros_image)const;
转换点云:
此步骤类似于图像转换。重要的功能是
HalconPointcloudPtr toHalconCopy(const sensor_msgs :: PointCloud2ConstPtr&source);
HalconPointcloudPtr toHalconCopy(const sensor_msgs :: PointCloud2&source);
将sensor_msgs :: PointCloud2转换为HalconCpp :: HObjectModel3D(返回的HalconPointcloud中的成员称为模型)。
要将其转换回ROS调用:
sensor_msgs :: PointCloud2Ptr toPointcloudMsg()const;
void toPointcloudMsg(sensor_msgs :: PointCloud2&ros_pointcloud)const;
----
文章来源: zhangrelay.blog.csdn.net,作者:zhangrelay,版权归原作者所有,如需转载,请联系作者。
原文链接:zhangrelay.blog.csdn.net/article/details/83155034
- 点赞
- 收藏
- 关注作者
评论(0)