RMVL  2.4.0-dev
Robotic Manipulation and Vision Library
载入中...
搜索中...
未找到
光源控制器

作者
赵曦
日期
2023/10/05

上一篇教程:相机设备
下一篇教程:函数插值方法


相关类

1 如何使用

海康机器人光源控制器使用 RS-232 串口进行数据传输,RMVL 在 Windows 和 Linux 平台上分别做了设计,可以很方便的开发,并且随附了 rmvl_hik_lightctl 命令行可执行程序。

奥普特 GigE 光源控制器在使用前需安装驱动,详情参考:构建并安装 RMVL

2 调试与开发

HikRobot 光源控制器可执行程序

rmvl_hik_lightctl 是一个命令行程序,用于控制海康机器人 RS-232 光源控制器,使用以下命令可以使用串口与光源控制器进行通信,其中 Windows 平台下的串口号为 COM<?>,Linux 平台下的串口号为 /dev/ttyUSB<?><?> 为具体的串口号,例如 COM1/dev/ttyUSB0

例如 Windows 平台可以使用以下命令:

rmvl_hik_lightctl COM1

而 Linux 平台可以使用以下命令:

rmvl_hik_lightctl /dev/ttyUSB0

在建立连接之后,可以输入 helphusage? 来查看帮助信息,可以输入 exitquitq 来退出程序,具体的帮助信息如下:

Common functions usage:
  h, help, ?, usage # show this help message
  exit, quit, q     # exit the program
Parameters control usage:
  ctl get delay       # get the delay time after writing
  ctl set delay <val> # set the delay time after writing
Commands usage:
  open            # open all the channels
  close           # close all the channels
  get <chn>       # get the brightness of the specified channel
  set <chn> <val> # set the brightness of the specified channel

OPT 光源控制器示例代码

不同的光源控制器有不同的使用方法,由于奥普特 GigE 光源控制器使用较复杂,这里以奥普特 GigE 光源控制器为例。

  • C++

    int main() {
    // 创建光源控制器对象
    auto light_controller = rm::OPTLightController();
    // 连接光源控制器
    auto lipc = rm::OPTLightIpConfig{"192.168.1.100", "192.168.1.1", "255.255.255.0"};
    light_controller.connect(lipc);
    // 打开指定的通道
    light_controller.openChannels({1});
    // 设置光源强度
    light_controller.setIntensity(1, 100);
    // 触发光源 50×10ms = 500ms
    light_controller.trigger(1, 50);
    }
    OPT 奥普特光源控制器
    定义 opt_light_control.h:27
    OPT 奥普特 GigE 光源控制库
  • Python

    import rm
    # 创建光源控制器对象
    light_controller = rm.OPTLightController()
    # 连接光源控制器
    cfg = rm.OPTLightIpConfig()
    cfg.ip = "192.168.1.100"
    cfg.gateway = "192.168.1.1"
    cfg.netmask = "255.255.255.0"
    light_controller.connect(cfg)
    # 打开指定的通道
    light_controller.openChannels([1])
    # 设置光源强度
    light_controller.setIntensity(1, 100)
    # 触发光源 50×10ms = 500ms
    light_controller.trigger(1, 50)