专栏首页机器人课程与技术在Ubuntu系统基于ROS使用废旧Android手机摄像头获取视频流(rtsp_camera)

在Ubuntu系统基于ROS使用废旧Android手机摄像头获取视频流(rtsp_camera)

在Ubuntu系统基于ROS使用废旧Android手机摄像头搭建监控设备

之前的博文介绍了一些使用Android手机获取ROS中传感器,图像以及控制机器人小车的案例;

这里主要介绍如何让ROS获取手机摄像头数据并使用,这样就不用usb_cam等,并且大部分都有手机;

实验成本低,简洁易行。

手机端需要安装RTSP Server等IP Camera类型APP;

PC配置为Ubuntu 16.04 + ROS Kinetic,(14.04+indigo也可行)。

首先,下载功能包并配置,编译等,如下:

点击打开链接http://download.csdn.net/detail/zhangrelay/9799960

$ catkin_make

然后,source xxx/devel/setup.bash:

查看手机IP地址,并配置:

export ROCON_RTSP_CAMERA_RELAY_URL=rtsp://192.168.3.66:5540/ch0

注意,依据自己的端口和情况进行配置。如有必要配置ACL等。

这里用到的ROS功能包是rocon_rtsp_camera_relay

文件组织如下:

. ├── CHANGELOG.rst ├── CMakeLists.txt ├── env-hooks │   └── 25.rocon-rtsp-camera-relay.sh.em ├── include │   └── rocon_rtsp_camera_relay │       └── rocon_rtsp_camera_relay.hpp ├── launch │   └── rtsp_camera_relay.launch ├── package.xml ├── rapps │   └── image_stream │       ├── image_stream.launch.xml │       └── image_stream.rapp └── src     ├── main.cpp     └── rocon_rtsp_camera_relay.cpp 7 directories, 10 files

main.cpp

#include <ros/ros.h>
#include <rocon_rtsp_camera_relay/rocon_rtsp_camera_relay.hpp>

int main (int argc, char** argv) 
{
  ros::init(argc, argv, "rtsp_camera_relay");
  ros::NodeHandle pnh("~");
  std::string video_stream_url, user, password;

  pnh.getParam("video_stream_url", video_stream_url);

  rocon::RoconRtspCameraRelay rtsp(pnh);
  ROS_INFO("Rtsp Camera : Initialising..");
  if(!rtsp.init(video_stream_url))
  {
    ROS_ERROR("Rtsp Camera : Failed to initialise stream");
    return -1;
  }

  ROS_INFO("Rtsp Camera : Initialised");
  rtsp.spin();
  ROS_INFO("Rtsp Camera : Bye Bye");

  return 0;
}

可以知道只需要配置合适IP即可使用非常方便。

rocon_rtsp_camera_relay.cpp参考源码。

具体使用说明:

1 先启动手机端:

配置后打开:

2 PC端

运行如下命令:

$ roslaunch rocon_rtsp_camera_relay rtsp_camera_relay.launch --screen

如果没有报错,可以看到下面结果,如果报错,依据错误排查问题:

... logging to /home/relaybotbox/.ros/log/7fabe4ea-15c5-11e7-bd22-00e0b4159b09/roslaunch-relaybotbox-desktop-10439.log Checking log directory for disk usage. This may take awhile. Press Ctrl-C to interrupt Done checking log file disk usage. Usage is <1GB. started roslaunch server http://192.168.3.18:34861/ SUMMARY ======== PARAMETERS  * /rosdistro: kinetic  * /rosversion: 1.12.6  * /rtsp_camera_relay/video_stream_url: rtsp://192.168.3.... NODES   /     rtsp_camera_relay (rocon_rtsp_camera_relay/rocon_rtsp_camera_relay_node) auto-starting new master process[master]: started with pid [10450] ROS_MASTER_URI=http://localhost:11311 setting /run_id to 7fabe4ea-15c5-11e7-bd22-00e0b4159b09 process[rosout-1]: started with pid [10464] started core service [/rosout] process[rtsp_camera_relay-2]: started with pid [10472] [ INFO] [1490932367.742812354]: Rtsp Camera : Initialising.. [ INFO] [1490932369.181637729]: Rtsp Camera : Initialised 这里可以看到,最后显示Initialised,已经可以ROS已经可以查看手机的摄像头视频了:

使用一些工具可以查看具体信息,如下:

$ rostopic list /rosout /rosout_agg /rtsp_camera_relay/camera_info /rtsp_camera_relay/image /rtsp_camera_relay/image/compressed /rtsp_camera_relay/image/compressed/parameter_descriptions /rtsp_camera_relay/image/compressed/parameter_updates /rtsp_camera_relay/image/compressedDepth /rtsp_camera_relay/image/compressedDepth/parameter_descriptions /rtsp_camera_relay/image/compressedDepth/parameter_updates /rtsp_camera_relay/image/theora /rtsp_camera_relay/image/theora/parameter_descriptions /rtsp_camera_relay/image/theora/parameter_updates /rtsp_camera_relay/status

手机不仅可以很方便的获取ROS中摄像头的数据,ROS也可以很方便的获取手机摄像头的数据。

机器翻译参考:

概述

实时流协议(即RTSP)是IP摄像机(例如foscam)使用的网络控制协议。该包桥接从ip摄像机转换流图像,并将其提供为ROS主题。

安装

 > sudo apt-get install ros- <distro> -rocon-rtsp-camera-relay

执行

 > export ROCON_RTSP_CAMERA_RELAY_URL = rtsp://您的IPCAM URL
 > roslaunch rocon_rtsp_camera_relay rtsp_camera_relay.launch  - 屏幕

~End~

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • ROS2Go与Ubuntu+ROS+Gazebo等版本对应关系

    目前,系统驱动和仿真软件Gazebo11,已经测试完成,等待ROS1.0和ROS2.0新版发布即可开启预装和测试。

    zhangrelay
  • 使用机器人操作系统ROS 2和仿真软件Gazebo 9服务进阶实战(八)- mobot行驶至目标位置

    案例非常简单,稍微复杂一下,如上述机器人案例,发送目标坐标,机器人行驶到目标坐标。

    zhangrelay
  • 计算机控制技术课程教学设计(10个)

    PID算法可以用Matlab或C语言进行学习;系统接口和输入输出可以通过三维仿真软件或实际系统进行学习。

    zhangrelay
  • Zabbix 3.4.3实现企业微信报警 原

       微信的报警方式可以让我们随时随地接收到信息,加快问题的处理,比传统邮件更加方便,首先我们先打开企业微信的地址 https://work.weixin.qq...

    拓荒者
  • Zabbix 3.4.3实现企业微信报警 原

       微信的报警方式可以让我们随时随地接收到信息,加快问题的处理,比传统邮件更加方便,首先我们先打开企业微信的地址 https://work.weixin.qq...

    拓荒者
  • PYTHON3 中的虚假四舍五入:round()

    我的博客即将搬运同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan

    CN_Simo
  • Windows 10 中Linux系统(WSL)忘记密码怎么办

    我们知道Windows 10 中的 WSL正式版已发布,我们可以直接在 Windows 商店中安装和卸载Debian GNU/Linux 操作系统。如果我们忘记...

    Debian中国
  • 21.多端项目上线部署(3)部署前端项目newpc

    在newpc目录下,将node_modules目录删除,然后将newpc项目打包为zip包

    玩蛇的胖纸
  • 小程序请求抓包方案

    在PC上调试WEB服务,可以使用chrom自带的工具查看请求和响应, 如果在手机上,相关的工具相对缺乏, 本文介绍一种基于代理的手机端请求获取方案。

    scuabin
  • 詹映:“通知-移除”规则在网络交易平台专利侵权中的适用

    詹映  中南财经政法大学知识产权学院副教授 一、问题的提出   “通知-移除”规则(notice and take down),原本是在网络著作权侵权领域为...

    腾讯研究院

扫码关注云+社区

领取腾讯云代金券