5. ROS

本章介绍在 Ubuntu 系统下的 ROS 平台中使用 Mech-Eye SDK。

5.1. 准备工作

  1. 操作系统为 Ubuntu 系统。

  2. 根据 ROS 官方安装文档 安装 ROS。

注意事项:

  1. 示例中使用的 Ubuntu 系统版本号为 18.04 ,不同版本的 Ubuntu 系统安装 ROS 会有所不同。

  2. 若使用虚拟机安装软件,请预留 大于 20G 的磁盘空间,否则可能会导致安装失败。

  3. 若以下操作可正常运行小乌龟程序,即可视为 ROS 安装成功:

    1. 任意路径下,打开一个终端,输入命令:

      roscore
      
    2. 打开第二个终端,输入命令:

      rosrun turtlesim turtlesim_node
      
    3. 打开第三个终端,输入命令:

      rosrun turtlesim turtle_teleop_key
      

      执行完上述命令后,在第三个终端窗口中,通过操作键盘上的上下左右键即可操控小乌龟,如下图所示。

      ../../../_images/turtle_sim.png

5.2. 使用指南

5.2.1. 安装 Ubuntu 版本 Mech-Eye SDK

安装方法参考 在 Ubuntu 上安装 Mech-Eye SDK

5.2.2. 安装 ROS API

  1. 安装 libzmq5 和 libzmq3-dev。

    sudo apt install libzmq5 libzmq3-dev
    
  2. 创建 ~/ros_ws/src 目录并进入该目录。

    mkdir -p ~/ros_ws/src && cd ~/ros_ws/src
    
  3. mecheye_ros_interface 仓库克隆至 ~/ros_ws/src 目录。

    git clone https://github.com/MechMindRobotics/mecheye_ros_interface
    
  4. 进入 ~/ros_ws 目录并构建代码。

    cd ~/ros_ws && catkin_make
    
  5. 修改文件。

    • 如需存储图片,请将 ~/ros_ws/src/mecheye_ros_interface/launch/start_camera.launch 文件中此行 <arg name="save_file" default="true"/>false 更改为 true

    • 存储图片的路径可以在 ~/ros_ws/src/mecheye_ros_interface/src/main.cpp 中进行修改。

5.2.3. 运行服务

  1. 打开一个新终端,运行以下命令以开启服务。

    source ~/ros_ws/devel/setup.bash
    roslaunch mecheye_ros_interface start_camera.launch
    

    输出结果如下所示:

    ... logging to /home/mechmind/.ros/log/69ffe3a2-d290-11ec-828a-000c29351753/roslaunch-ubuntu-4349.log
    Checking log directory for disk usage. This may take a while.
    Press Ctrl-C to interrupt
    Done checking log file disk usage. Usage is <1GB.
    
    started roslaunch server http://ubuntu:38711/
    
    SUMMARY
    ========
    
    PARAMETERS
     * /mechmind_camera_start/camera_ip: 192.168.0.123
     * /mechmind_camera_start/fx: 1727.46410256
     * /mechmind_camera_start/fy: 1727.45869267
     * /mechmind_camera_start/save_file: False
     * /mechmind_camera_start/u: 655.818082573
     * /mechmind_camera_start/use_external_intri: False
     * /mechmind_camera_start/v: 516.630650061
     * /rosdistro: melodic
     * /rosversion: 1.14.13
    
    NODES
      /
        mechmind_camera_start (mecheye_ros_interface/start)
    
    auto-starting new master
    process[master]: started with pid [4359]
    ROS_MASTER_URI=http://localhost:11311
    
    setting /run_id to 69ffe3a2-d290-11ec-828a-000c29351753
    process[rosout-1]: started with pid [4370]
    started core service [/rosout]
    process[mechmind_camera_start-2]: started with pid [4377]
    Find Mech-Eye devices...
    Mech-Eye device index : 0
    ............................
    Camera Model Name: Mech-Eye Pro M Enhanced
    Camera ID:         Sample
    Camera IP Address: 192.168.xx.xx
    Hardware Version:  V4.0.0
    Firmware Version:  V1.5.2
    ............................
    Please enter the device index you want to connect: 0
    Connected to the Mech-Eye device successfully.
    ............................
    Camera Model Name: Mech-Eye Nano
    Camera ID:         TAM06218A3020706
    Camera IP Address: 192.168.xx.xx
    Hardware Version:  V3.0.0
    Firmware Version:  V1.5.2
    ............................
    
  2. 打开另一个新的终端,运行以下命令采集图片。

    rosservice call /run_mechmind_camera
    

    输出结果如下所示:

    success: True
    message: ''
    

    此时相机已经启用!2D 图及深度图等数据默认保存在 /tmp 文件夹中。

注意

每次修改 ~/ros_ws/src/mecheye_ros_interface/src 下的文件,都需要执行 cd ~/ros_ws && catkin_make 更新可执行文件。