basler相机外部硬触发,转换图像格式并发送到ROS下的topic

运行环境:Ubuntu20.04 (64-Bit)

运行软件:pylon Viewer 64-Bit,pylon Release 6.3.0

相机型号:acA 1920-25gc (GigE接口)

触发电平源:单片机

0 准备工作

调试外部硬触发前,已经成功读取图像,并且实现了相机的简单功能。

Windows10下pylon Viewer读取basler相机图像_abanchao的博客-_pylon viewer使用教程

Ubuntu20.04 ROS读取basler相机图像步骤。_abanchao的博客-CSDN博客_basler ubuntu

1 软件设置

1.1 获取图像参数设置

  • acquisitionframecount: n 触发一次采集n张图像
  • trigger selector: acquisition start(采集开始)frame start一个信号只能拍一张
  • trigger mode: on 开启外触发模式
  • trigger source: line 1
  • trigger activation: rising edge 电平上升沿触发,下降沿也可以

1.2 保存图像设置

窗口-> 录制设置

  • 输出格式和录制缓冲区大小:默认即可
  • 帧录制间隔:1帧,否则会出现好多张照片
  • 输出文件夹:图片保存位置。

2 硬件触发

建议用0-5V触发,24V触发的话需要加2k电阻,以降低电流,否则会烧坏相机。

用单片机的电压输出引脚,有3.3V,也有5V。

 关键一步!!点击一下连拍!!手持触发I/O线即可触发。

点击录制即可将图像按照前面的设置自动保存到指定路径。

3 硬触发图像发送到话题topic

截至上一步,实现了相机的硬触发功能,我做多传感器融合,还需要把硬触发的图像统一到ROS下,与GPS,INS,LiDAR统一数据保存形式,即rosbag。但是basler官方的ROS驱动包属于软触发,那么就得根据相机的函数库进行二次开发。

官网有产品文档,介绍了二次开发的函数,以及示例代码。

Trigger Selector | Basler (baslerweb.com)

本人没有做过相机的二次开发工作,不知从何下手,感谢有大佬的博客教程,实现了ROS下的硬触发,但是没有发送到话题topic。

Basler ace 相机软件设置、 硬件连接、软件触发,程序硬件触发全套详细资料_贵在坚持,不忘初心的博客-CSDN博客_basler相机软件使用手册

进一步地,为实现保存的rosbag,增加了图像格式转换发布topic两个内容。

在hardwaretrigger.cpp增加以下代码

ros::NodeHandle nh;
ros::Publisher pub = nh.advertise<sensor_msgs::Image>("camera_raw", 2000);
sensor_msgs::Image msg;
ros::Rate loop_rate(10); 

sensor_msgs::ImagePtr msg = cv_bridge::CvImage(std_msgs::Header(), "bgr8", cv_img).toImageMsg();
pub.publish(msg);
loop_rate.sleep();

调试这个程序包时,有以下注意事项:

  • 现在官方软件pylon viewer配置参数并成功硬触发后,再launch这个程序包。
  • 编译之后,要把上级目录的build文件夹复制的子目录下,即与launch文件夹同级,重要修改时,最好把子目录的build文件夹删了重新复制。
  • 不转换一次格式的话,不完全符合ROS的image格式,可以录包,但是无法提取,无法查看。
  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

可见一班

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

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

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

打赏作者

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

抵扣说明:

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

余额充值