3D Industrial camera SDK for MRDVS visual hardware products.
面向迈尔微视视觉硬件产品的3D工业相机开发套件。
- Overview
- Product Portfolio
- Documents
- LxCameraViewer Download
- Supported Platforms
- Package Layout
- Path Notes
- Quick Start
- Examples
- Core Development Flow
- ROS and ROS2 Entry
- Runtime Notes
- Version
- Support and Feedback
LxCameraSDK provides the runtime libraries, C/C++ headers, Python package, C# wrapper samples, and ROS/ROS2 workspaces required to integrate MRDVS camera devices into industrial vision systems.
Typical integration tasks covered by this package include:
- Discovering and opening camera devices by index, IP address, SN, or device ID.
- Starting and stopping data streams.
- Reading RGB, depth, amplitude, full-frame, point-cloud, lidar-point, IMU, and application output data.
- Configuring camera parameters through integer, float, boolean, string, command, pointer, and ROI APIs.
- Running sample flows for single camera, multiple cameras, callback acquisition, pallet positioning, obstacle avoidance, visual localization, lidar-point callbacks, and IMU callbacks.
- Publishing camera data through ROS and ROS2 nodes for robotics systems.
MRDVS is dedicated to helping robots understand the world through 3D vision and AI. Zhejiang MRDVS Technology Co., Ltd. focuses on the development of visual sensors for mobile robots and provides integrated hardware and software solutions that combine 3D vision with AI algorithms. The company's core technical team was established in 2016, and MRDVS is a wholly owned subsidiary of Hangzhou Lanxin Robot Technology Co., Ltd.
MRDVS serves embodied intelligence robots, lawn-mowing robots, commercial cleaning robots, low-speed autonomous vehicles, intelligent wheelchairs, industrial mobile robots, and warehouse logistics automation scenarios. Based on iToF, dToF, binocular structured light, AI algorithms, and multi-sensor fusion, MRDVS continuously iterates visual hardware and algorithm solutions to help robots operate more safely, stably, and intelligently.
- LxCameraSDK C/C++ Developer Guide Click here
- LxCameraSDK Python Developer Guide Click here
- LxCameraViewer User Manual Click here
- LxCameraSDK&LxCameraViewer Development FAQs Click here
LxCameraViewer is the graphical host application for connecting to MRDVS cameras, previewing camera data, and configuring common parameters. Download the version for your operating system:
- Ubuntu: Download Link
- Windows: Download Link
| Platform | Architectures in package | Runtime libraries | Samples |
|---|---|---|---|
| Linux | linux_x64, linux_aarch64, linux_arm32 |
libLxCameraApi.so, libLxDataProcess.so |
C/C++, Python, ROS, ROS2 |
| Windows | win_x64, win_x86 |
LxCameraApi.dll, LxCameraApi.lib, LxDataProcess.dll |
C/C++, Python, C# |
CameraSDK/
|-- Document_EN/
|-- Document_CN/
|-- linux/
| |-- install.sh
| |-- set_socket_buffer_size.sh
| |-- set_firewall.sh
| |-- SDK/
| | |-- include/
| | `-- lib/
| | |-- linux_x64/
| | |-- linux_aarch64/
| | `-- linux_arm32/
| `-- Sample/
| |-- C/
| |-- python/
| |-- ROS/
| `-- ROS2/
|-- windows/
| |-- SDK/
| | |-- include/
| | `-- lib/
| | |-- win_x64/
| | `-- win_x86/
| `-- Sample/
| |-- C/
| |-- python/
| `-- C#/
|-- README.md
`-- release_note.txt
Commands in this README assume they are executed from the parent directory of CameraSDK, where CameraSDK is the directory name after git clone:
git clone https://github.com/Lanxin-MRDVS/CameraSDK.gitIf you are already in the SDK root directory, omit the CameraSDK/ prefix in the commands. If you use an extracted archive or installer package directory, such as CameraSDK-master, replace CameraSDK in the commands with your actual directory name.
Install SDK runtime files and configure the shared library path:
cd CameraSDK/linux
source install.shinstall.sh deploys headers and libraries to /opt/MRDVS and configures /opt/MRDVS/lib as the runtime library path. The script requires root permission; when run as a non-root user, it prompts whether to use sudo.
Build C/C++ samples:
cd CameraSDK/linux/Sample/C
cmake -S . -B build
cmake --build buildRun a sample:
./build/bin/demo_single_camera2Install and run the Python sample:
cd CameraSDK/linux/Sample/python
python3 -m pip install ./lx_camera_py-1.3.3-py3-none-any.whl
python3 demo.pyBefore running demo.py, change the SDK library path in the script to /opt/MRDVS/lib/libLxCameraApi.so, and replace the sample camera IP with the actual camera IP.
Build C/C++ samples:
cd CameraSDK\windows\Sample\C
cmake -S . -B build
cmake --build build --config ReleaseBefore running a sample, make sure the DLL directory for the target architecture can be loaded. Use win_x64 for 64-bit programs and win_x86 for 32-bit programs.
$env:PATH = "C:\path\to\CameraSDK\windows\SDK\lib\win_x64;$env:PATH"Install and run the Python sample:
cd CameraSDK\windows\Sample\python
py -3 -m pip install .\lx_camera_py-1.3.3-py3-none-any.whl
py -3 .\demo.pyBefore running demo.py, change the SDK library path in the script to the actual path, for example C:\path\to\CameraSDK\windows\SDK\lib\win_x64\LxCameraApi.dll, and replace the sample camera IP with the actual camera IP.
Build C# samples:
cd CameraSDK\windows\Sample\C#
cmake -S . -B build -G "Visual Studio 17 2022"
cmake --build build --config ReleaseThe C# sample calls LxCameraApi.dll through the LxCameraApiNet.dll wrapper. At runtime, make sure the directory containing LxCameraApi.dll is added to PATH, or copy the DLL to the application directory.
| Sample | Linux | Windows | Description |
|---|---|---|---|
single_camera2 |
Supported | Supported | Opens a single camera and obtains full-frame data. |
multi_cameras |
Supported | Supported | Opens multiple cameras and obtains stream data. |
frame_callback |
Supported | Supported | Obtains data through frame callbacks. |
application_obstacle_v1 |
Supported | Supported | Enables obstacle avoidance and reads the result. |
application_obstacle_v2 |
Supported | Supported | Enables obstacle avoidance V2 and reads the result. |
application_pallet |
Supported | Supported | Enables pallet positioning and reads pose output. |
application_location |
Supported | Supported | Enables visual localization and reads localization output. |
imu_callback |
Supported | Supported | Receives IMU data through callbacks. |
lidarpoint_callback |
Supported | Supported | Receives XYZIRT lidar point cloud data. |
arm_local_camera |
Supported | Not supported | Calls the SDK in the camera ARM-side environment. |
| Sample | Path | Description |
|---|---|---|
| Python | CameraSDK/linux/Sample/python, CameraSDK/windows/Sample/python |
Demonstrates device discovery, opening, streaming, image access, point cloud access, and frame rate statistics. |
| C# | CameraSDK/windows/Sample/C# |
Demonstrates calling the wrapped APIs through LxCameraApiNet.dll for device opening, stream control, pointer data, and application algorithm output. |
The basic native API call sequence is:
DcGetDeviceList
DcOpenDevice
DcSetBoolValue / DcSetIntValue / DcSetFloatValue / DcSetStringValue
DcStartStream
DcSetCmd(LX_CMD_GET_NEW_FRAME) or DcRegisterFrameCallback
DcGetPtrValue
DcStopStream
DcCloseDevice
Common capabilities include:
| Capability | Description |
|---|---|
| Device management | Discover devices, open devices, close devices, and configure device IP. |
| Data acquisition | Obtain RGB images, depth images, amplitude images, full frames, and point cloud data. |
| Callback streaming | Supports frame data callbacks, camera status callbacks, and IMU data callbacks. |
| Parameter configuration | Supports integer, float, boolean, string, ROI, and extended control APIs. |
| Built-in algorithms | Supports obstacle avoidance, pallet positioning, visual localization, and custom application data output. |
| Runtime configuration | Supports logging, GPU switch, PTP switch, thread count, and JPEG decode method configuration. |
Supported camera open modes:
| Mode | Parameter |
|---|---|
OPEN_BY_INDEX |
Device index in the discovery list. When the device list changes, the same index may refer to another device. |
OPEN_BY_IP |
Camera IP address or ip:port. |
OPEN_BY_SN |
Camera SN. |
OPEN_BY_ID |
Camera device ID. |
For detailed API parameters, return values, enums, and structures, refer to SDK/include/lx_camera_api.h, SDK/include/lx_camera_define.h, SDK/include/lx_camera_application.h, and the corresponding developer guides.
| Framework | Workspace | Build command | Description |
|---|---|---|---|
| ROS | CameraSDK/linux/Sample/ROS/lx_camera_node_ws |
./build.sh or catkin_make |
Provides lx_camera_node, lx_localization_node, and sensor_sim_node. |
| ROS2 | CameraSDK/linux/Sample/ROS2/lx_camera_node_ws |
./build.sh or colcon build |
Provides ROS2 camera, localization, and simulation nodes. |
The ROS/ROS2 samples publish images, depth, amplitude, point clouds, IMU, frame rate, pallet, obstacle, and error information, and provide command, integer, float, boolean, and string service wrappers. For topics, services, and launch files, refer to the README files and source code in the corresponding workspaces.
- The camera and host must be on a reachable network segment. When using
OPEN_BY_IP, confirm the camera IP, host NIC IP, and firewall rules. - On Linux, run
CameraSDK/linux/install.shfirst to keep headers, libraries, andLD_LIBRARY_PATHconsistent. - On Windows, the process architecture must match the loaded DLLs. Use
win_x64for 64-bit programs andwin_x86for 32-bit programs. - The SDK library path and camera IP in Python samples are example values. Update them before running the sample.
- After a device is opened, it is exclusively controlled by the current process. Call
DcStopStreamandDcCloseDevicebefore exit; if the process exits abnormally, the camera may not be available again until the heartbeat times out. CameraSDK/linux/set_socket_buffer_size.shconfigures Linux socket receive/send buffers;CameraSDK/linux/set_firewall.shhelps configure Linux firewall rules.
| Item | Version |
|---|---|
| SDK | 2.4.60.260126 |
| API macro | V2.4.60,20260126 |
| Python wheel | lx_camera_py-1.3.3-py3-none-any.whl |
| ROS package | 1.0.0 |
| ROS2 package | 1.0.0 |
| LxDataProcess | 1.3.6.260113 |
- GitHub repository: Lanxin-MRDVS/CameraSDK
- Issue feedback: GitHub Issues
- Product inquiry: WhatsApp
+86 13370882355
LxCameraSDK提供MRDVS相机设备二次开发所需的运行库、头文件、语言示例和ROS/ROS2驱动示例。开发者可以基于本SDK完成设备搜索、设备打开、数据流控制、图像和点云获取、IMU数据获取、内置应用算法结果读取,以及相机参数配置。
本文作为SDK入口文档,主要说明包结构、环境配置、示例编译和运行注意事项。接口参数、结构体定义和语言层封装细节,请参考对应开发指南和示例代码。
迈尔微视致力于让机器人“看懂”世界,专注移动机器人视觉传感器研发,提供 3D 视觉与 AI 算法相结合的软硬件一体化解决方案。浙江迈尔微视科技有限公司核心技术团队组建于 2016 年,是杭州蓝芯机器人技术股份有限公司的全资子公司。
迈尔微视面向具身智能机器人、割草机器人、商用清洁机器人、低速无人车、智能轮椅、工业移动机器人及仓储物流自动化等场景,提供稳定可靠的视觉感知能力。公司依托 iToF、dToF、双目结构光、AI 算法和多传感器融合技术,持续迭代视觉硬件与算法方案,助力机器人运行更安全、更稳定、更智能。
更多官方产品资料请访问 MRDVS Hub 2.0。
- LxCameraSDK C/C++ 开发指南 Click here
- LxCameraSDK Python 开发指南 Click here
- LxCameraSDK Linux 示例说明 Click here
- LxCameraViewer 用户手册 Click here
- LxCameraSDK&LxCameraViewer 设备二次开发常见问题 Click here
LxCameraViewer为MRDVS相机配套上位机,可用于设备连接、数据预览及常用参数配置。请根据主机操作系统下载对应版本:
| 平台 | 包内架构 | 运行库 | 示例 |
|---|---|---|---|
| Linux | linux_x64、linux_aarch64、linux_arm32 |
libLxCameraApi.so、libLxDataProcess.so |
C/C++、Python、ROS、ROS2 |
| Windows | win_x64、win_x86 |
LxCameraApi.dll、LxCameraApi.lib、LxDataProcess.dll |
C/C++、Python、C# |
CameraSDK/
|-- Document_EN/
|-- Document_CN/
|-- linux/
| |-- install.sh
| |-- set_socket_buffer_size.sh
| |-- set_firewall.sh
| |-- SDK/
| | |-- include/
| | `-- lib/
| | |-- linux_x64/
| | |-- linux_aarch64/
| | `-- linux_arm32/
| `-- Sample/
| |-- C/
| |-- python/
| |-- ROS/
| `-- ROS2/
|-- windows/
| |-- SDK/
| | |-- include/
| | `-- lib/
| | |-- win_x64/
| | `-- win_x86/
| `-- Sample/
| |-- C/
| |-- python/
| `-- C#/
|-- README.md
`-- release_note.txt
本文命令默认从CameraSDK父目录执行,CameraSDK为git clone后的目录名:
git clone https://github.com/Lanxin-MRDVS/CameraSDK.git如果已经位于SDK根目录,请省略命令中的CameraSDK/前缀。如果使用压缩包或安装包解压目录,例如CameraSDK-master,将命令中的CameraSDK替换为实际目录名。
安装SDK运行文件并配置动态库路径:
cd CameraSDK/linux
source install.shinstall.sh会将头文件和库文件部署到/opt/MRDVS,并配置/opt/MRDVS/lib动态库路径。脚本需要root权限;非root执行时会提示是否使用sudo。
编译C/C++示例:
cd CameraSDK/linux/Sample/C
cmake -S . -B build
cmake --build build运行示例:
./build/bin/demo_single_camera2安装并运行Python示例:
cd CameraSDK/linux/Sample/python
python3 -m pip install ./lx_camera_py-1.3.3-py3-none-any.whl
python3 demo.py运行demo.py前,请将脚本中的SDK库路径改为/opt/MRDVS/lib/libLxCameraApi.so,并将示例相机IP改为实际相机IP。
编译C/C++示例:
cd CameraSDK\windows\Sample\C
cmake -S . -B build
cmake --build build --config Release运行示例前,请确认对应架构的DLL目录可被程序加载。64位程序使用win_x64,32位程序使用win_x86。
$env:PATH = "C:\path\to\CameraSDK\windows\SDK\lib\win_x64;$env:PATH"安装并运行Python示例:
cd CameraSDK\windows\Sample\python
py -3 -m pip install .\lx_camera_py-1.3.3-py3-none-any.whl
py -3 .\demo.py运行demo.py前,请将脚本中的SDK库路径改为实际路径,例如C:\path\to\CameraSDK\windows\SDK\lib\win_x64\LxCameraApi.dll,并将示例相机IP改为实际相机IP。
构建C#示例:
cd CameraSDK\windows\Sample\C#
cmake -S . -B build -G "Visual Studio 17 2022"
cmake --build build --config ReleaseC#示例通过LxCameraApiNet.dll封装调用LxCameraApi.dll。运行时需要确保LxCameraApi.dll所在目录已加入PATH,或将DLL复制到程序目录。
| 示例 | Linux | Windows | 说明 |
|---|---|---|---|
single_camera2 |
支持 | 支持 | 打开单台相机并获取完整帧数据。 |
multi_cameras |
支持 | 支持 | 打开多台相机并获取数据流。 |
frame_callback |
支持 | 支持 | 使用帧回调获取数据。 |
application_obstacle_v1 |
支持 | 支持 | 启用避障算法并读取结果。 |
application_obstacle_v2 |
支持 | 支持 | 启用避障算法V2并读取结果。 |
application_pallet |
支持 | 支持 | 启用托盘定位算法并读取位姿输出。 |
application_location |
支持 | 支持 | 启用视觉定位算法并读取定位输出。 |
imu_callback |
支持 | 支持 | 使用回调接收IMU数据。 |
lidarpoint_callback |
支持 | 支持 | 接收XYZIRT激光点云数据。 |
arm_local_camera |
支持 | 不支持 | 在相机ARM侧环境调用SDK。 |
| 示例 | 路径 | 说明 |
|---|---|---|
| Python | CameraSDK/linux/Sample/python、CameraSDK/windows/Sample/python |
演示设备搜索、打开、启流、图像访问、点云访问和帧率统计。 |
| C# | CameraSDK/windows/Sample/C# |
演示通过LxCameraApiNet.dll调用封装接口,完成设备打开、流控制、指针数据和应用算法输出读取。 |
原生接口的基本调用顺序如下:
DcGetDeviceList
DcOpenDevice
DcSetBoolValue / DcSetIntValue / DcSetFloatValue / DcSetStringValue
DcStartStream
DcSetCmd(LX_CMD_GET_NEW_FRAME) 或 DcRegisterFrameCallback
DcGetPtrValue
DcStopStream
DcCloseDevice
常用能力包括:
| 能力 | 说明 |
|---|---|
| 设备管理 | 搜索设备、打开设备、关闭设备、配置设备IP。 |
| 数据采集 | 获取RGB图、深度图、强度图、完整帧和点云数据。 |
| 回调取流 | 支持帧数据回调、相机状态回调和IMU数据回调。 |
| 参数配置 | 支持整型、浮点、布尔、字符串、ROI和扩展控制接口。 |
| 内置算法 | 支持避障、托盘定位、视觉定位和自定义应用数据输出。 |
| 运行配置 | 支持日志、GPU开关、PTP开关、线程数和JPEG解码方式配置。 |
打开相机可使用以下模式:
| 模式 | 参数 |
|---|---|
OPEN_BY_INDEX |
设备搜索列表中的索引。设备列表变化后,同一索引可能对应不同设备。 |
OPEN_BY_IP |
相机IP或ip:port。 |
OPEN_BY_SN |
相机SN。 |
OPEN_BY_ID |
相机设备ID。 |
具体接口参数、返回值、枚举和结构体定义,请以SDK/include/lx_camera_api.h、SDK/include/lx_camera_define.h、SDK/include/lx_camera_application.h及对应开发指南为准。
| 框架 | 工作空间 | 构建命令 | 说明 |
|---|---|---|---|
| ROS | CameraSDK/linux/Sample/ROS/lx_camera_node_ws |
./build.sh或catkin_make |
提供lx_camera_node、lx_localization_node和sensor_sim_node。 |
| ROS2 | CameraSDK/linux/Sample/ROS2/lx_camera_node_ws |
./build.sh或colcon build |
提供ROS2版本相机节点、定位节点和模拟节点。 |
ROS/ROS2示例会发布图像、深度、强度、点云、IMU、帧率、托盘、避障和错误信息,并提供命令、整型、浮点、布尔、字符串等服务封装。具体话题、服务和launch文件请查看对应工作空间内的README和源码。
- 相机和主机需处于可通信网段。使用
OPEN_BY_IP时,请确认相机IP、主机网卡IP和防火墙规则。 - Linux下建议先执行
CameraSDK/linux/install.sh,保证头文件、库文件和LD_LIBRARY_PATH配置一致。 - Windows程序运行时必须加载与进程架构一致的DLL。64位程序使用
win_x64,32位程序使用win_x86。 - Python示例中的SDK库路径和相机IP是示例值,运行前必须按实际安装位置和设备IP修改。
- 设备打开后会被当前进程独占。程序退出前应调用
DcStopStream和DcCloseDevice释放资源;如果程序异常退出,相机可能需要等待心跳超时后才能重新打开。 CameraSDK/linux/set_socket_buffer_size.sh用于配置Linux socket收发缓冲区;CameraSDK/linux/set_firewall.sh用于辅助配置Linux防火墙规则。
| 项目 | 版本 |
|---|---|
| SDK | 2.4.60.260126 |
| API宏定义 | V2.4.60,20260126 |
| Python wheel | lx_camera_py-1.3.3-py3-none-any.whl |
| ROS package | 1.0.0 |
| ROS2 package | 1.0.0 |
| LxDataProcess | 1.3.6.260113 |
- 产品知识库:MRDVS Hub 2.0
- GitHub仓库:Lanxin-MRDVS/CameraSDK
- 问题反馈:GitHub Issues
- 产品咨询:
400-025-6680
Last updated: June 2026
Hangzhou Lanxin Technology Co., Ltd. & MRDVS Co., Ltd.
All Rights Reserved.










