项目作者: guanfuchen

项目描述 :
dji camera video convert image and publish image topic
高级语言: CMake
项目地址: git://github.com/guanfuchen/dji_cam_transport.git
创建时间: 2017-12-15T02:33:31Z
项目社区:https://github.com/guanfuchen/dji_cam_transport

开源协议:

下载


大疆视频传输ROS tcpic


编译安装

这里将原先的大疆示例程序封装为ros package,需要注意得是大疆提供的header和so文件是c的,需要在头文件加入extern c表示编译的包是来自c的,才能编译通过。

  1. cd ~/catkin_ws/src
  2. git clone https://github.com/guanfuchen/dji_cam_transport
  3. cd ~/catkin_ws
  4. # 编译过程中缺少依赖库自行安装,该仓库依赖roscpp、rospy、std_msgs、image_transport、cv_bridge
  5. catkin_make
  6. source $YOUR_HOME/catkin_ws/devel/setup.bash

运行dji_cam_transport

运行dji_cam需要获得root权限,切换root权限并且执行source $YOUR_HOME/catkin_ws/devel/setup.bash,运行如下所示:

  1. sudo su
  2. # 生成buffer然后通过image_transport等依赖库转发topic
  3. rosrun dji_cam_transport dji_cam_transport -g
  4. # 本机查看image
  5. rosrun image_view image_view image:=/camera/image

主从通信

参考如下,在从机上运行image_view即可:


一些问题

在非图形界面下无法生成图像,需要输入以下才能生成图像数据。

  1. xinit&
  2. export DISPLAY:=0

使用 Manifold 获取 M100 上的 X3 摄像头数据

使用Manifold 获取M100 上的X3 摄像头数据一硬件连接二使用

但是获取图像数据需要获取root权限,而使用sudo rosrun则提示无法找到rosrun命令,所以切换到root用户中,并且将相应的ros环境source到root用户中,此时发现运行上述命令无法实现图像解码。猜想是由于自动登录非root用户如ubuntu将图形界面占据,那么接下来的思路便是将自动登录改为root,具体详细步骤参考如下链接,包括开启ssh相关的root登录等等。

  1. sudo passwd root
  2. sudo vim /etc/ssh/sshd_config
  3. #注释#PermitRootLogin without-password并增加PermitRootLogin yes
  4. sudo vim /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf
  5. #修改如下所示
  6. #[SeatDefaults]
  7. #autologin-user=root
  8. #user-session=ubuntu
  9. #greeter-show-manual-login=true
  10. sudo vim /root/.profile
  11. #将mesg n替换成tty -s && mesg n

How to Allow root to use SSH on Ubuntu 14.04

linux ubuntu启用root用户登录

ubuntu 16.04启用root用户登陆