正在加载图片...
if not camera.isOpened()) ROS_ERROR STREAM("Failed to open camera device!"); ros::shutdown(); 3 nh.param<int>("fps",fps,DEFAULT_FPS ) ros::Duration period ros::Duration(1.fps ) pub_image_raw it.advertise("image_raw",1 ) frame boost::make shared<cv_bridge:Cvlmage >() frame->encoding sensor_msgs::image_encodings::BGR8; timer =nh.createTimer(period,&CameraDriver::capture,this ) 首先,我们要打开摄像头,如果无法打开则需要终止程序。注意,我们必须在属性构造 函数内完成这些工作: camera(cameraindex 这里camera工ndex是作为参数进行传递。 然后,我们读取fs参数并计算计时器周期。这些参数用于创建计时器并设定用于图像 捕捉的回调函数。我们使用ImageTransport API作为image_raw图像(源图像)的发布者, 并初始化frame变量。 下面代码是用于图像捕捉的回调函数读取和发布图像: camera >frame->image; if(not frame->image.empty()) frame->header.stamp ros::Time:now(); pub_image_raw.publish(frame->tolmageMsg()); 3 它捕捉图像,并检查帧是否被实际捕捉。在这种情况下,设定时间戳并发布己经被转换 成ROS Image的图像。 你可以使用以下代码启动这个节点: rosrun chapter6_tutorials camera_timer camera_index:=o fps:=15 我们将会以1SFPS的速度启动/dev/video(0摄像头。 然后你能使用image_view查看图像。和轮询的实现方式类似的是,你有一个.launch文 件,并能够使用以下命令运行: roslaunch chapter6_tutorials camera_polling.launch camera_index:=0 fps:=15 view:=true 现在,你能看到/camera,/image_.raw主题的图像。 -4-- 4 - if ( not camera.isOpened() ) { ROS_ERROR_STREAM( "Failed to open camera device!" ); ros::shutdown(); } nh.param<int>( "fps", fps, DEFAULT_FPS ); ros::Duration period = ros::Duration( 1. / fps ); pub_image_raw = it.advertise( "image_raw", 1 ); frame = boost::make_shared< cv_bridge::CvImage >(); frame->encoding = sensor_msgs::image_encodings::BGR8; timer = nh.createTimer( period, &CameraDriver::capture, this ); 首先,我们要打开摄像头,如果无法打开则需要终止程序。注意,我们必须在属性构造 函数内完成这些工作: camera( camera_index ) 这里camera 工ndex 是作为参数进行传递。 然后,我们读取fps 参数并计算计时器周期。这些参数用于创建计时器并设定用于图像 捕捉的回调函数。我们使用lmageTransport API 作为image_raw 图像(源图像)的发布者, 并初始化frame 变量。 下面代码是用于图像捕捉的回调函数读取和发布图像: camera >> frame->image; if( not frame->image.empty() ) { frame->header.stamp = ros::Time::now(); pub_image_raw.publish( frame->toImageMsg() ); } 它捕捉图像,并检查帧是否被实际捕捉。在这种情况下,设定时间戳并发布已经被转换 成ROS Image 的图像。 你可以使用以下代码启动这个节点: rosrun chapter6_tutorials camera_timer camera_index:=0 fps:=15 我们将会以lSFPS 的速度启动/ dev/videoO 摄像头。 然后你能使用image_view 查看图像。和轮询的实现方式类似的是,你有一个.launch 文 件,并能够使用以下命令运行: roslaunch chapter6_tutorials camera_polling.launch camera_index:=0 fps:=15 view:=true 现在,你能看到/ camera/image_raw 主题的图像
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有