Help Documentation•02 · Depth Camera & LiDAR Integration

02 · Depth Camera & LiDAR Integration

Updated: October 13, 2026

1 System & Recovery

1.1 Cannot connect to the motion control compute unit (192.168.0.163) — how do I troubleshoot?

  • Test whether your computer can ping it directly
  • On the development computer, check the NIC and routes for the robot's network segment: use ip addr and ip route on Linux; use ipconfig and route print on Windows. Avoid conflicting routes to the same robot network segment from wired, wireless, or VPN connections — the computer is not required to have only one IP.
  • If the debug computer is connected to both the external network and the robot, make sure the external network IP subnet differs from the robot network's 192.168.0.0/24 to avoid routing conflicts
  • Restart the robot
  • Contact after-sales support for debugging or factory repair

2 Sensor Development

2.1 How do I integrate the Intel RealSense D435i depth camera?

The PM01 has a built-in Intel RealSense D435i depth camera, and the official SDK provides integration examples based on the ROS2 ecosystem.

Step 1: Enumerate the depth camera device

Bash
rs-enumerate-devices -s

Example output:

Text
Device Name                   Serial Number       Firmware Version
Intel RealSense D435I         243322074409        5.15.1.55
Intel RealSense D435I         347622075631        5.15.1.55

Step 2: Launch the depth camera node

The open-source repository engineai_ros2_workspace includes the depth camera example program rs_launch.py:

Bash
# The serial number is only an example; replace it with the one from your enumeration
ros2 launch realsense2_camera rs_launch.py \
  serial_no:="'243322074409'" \
  camera_name:=cam_head

Before running, confirm that the driver is installed and the ROS2/workspace environment is loaded. Use ros2 launch realsense2_camera rs_launch.py --show-args to check the parameters supported by your installed version; do not blindly copy an unverified tf_prefix parameter across driver versions. After launch, you should see the corresponding camera node and receive data continuously on the actual image_raw topic.

Parameter description:

ParameterPurposeNotes
serial_noBind a specific cameraUse the serial number from actual enumeration when multiple cameras are present; this example uses outer double quotes and inner single quotes to pass a string. Parameter behavior depends on the installed driver version.
camera_nameTopic namespaceAvoids topic conflicts among multiple cameras; e.g., cam_head produces /camera/cam_head/xxx
tf_prefixTF prefix-related configuration (version-dependent)Actual frame names follow the TF published by the current driver; the effects of camera_name and the prefix parameter cannot be assumed across versions.

Available topics:

Text
/camera/cam_head/color/camera_info
/camera/cam_head/color/image_raw
/camera/cam_head/color/metadata
/camera/cam_head/depth/camera_info
/camera/cam_head/depth/image_rect_raw
/camera/cam_head/depth/metadata
/camera/cam_head/extrinsics/depth_to_color

2.2 How do I integrate the LiDAR?

This section applies to T800 configurations using the Odin2 LiDAR camera. The device default IP is 192.168.100.251 and the Orin management address is 192.168.0.162; they are on different subnets, so confirm the interface address and routing on the Orin side that connects to the sensor. Do not try to connect to the LiDAR by only changing the management NIC IP.

Connect to the Orin mainboard:

Bash
ssh -X username@192.168.0.162

Build and run (ROS2 Humble):

Bash
source /opt/ros/humble/setup.bash
cd your_ros_workspace
./src/odin_ros_driver/script/build_ros2.sh

# Run
source install/setup.bash
ros2 launch odin_ros_driver_rev1 driver.launch.py

# Specify resolution and frame rate
ros2 launch odin_ros_driver_rev1 driver.launch.py image_width:=640 image_height:=544 image_fps:=30

# Do not start RViz
ros2 launch odin_ros_driver_rev1 driver.launch.py start_rviz:=false

Functional modules:

NodeDescription
odin_ros_driver_nodeMain driver node: connects to the device, publishes raw data, provides calibration services
post_process_nodePost-processing node: image undistortion, point cloud coloring, stereo rectification
pointcloud_reprojector_nodePoint cloud reprojection node: reprojects sparse point clouds into an overlaid visualization image
pointcloud_to_depth_nodePoint cloud to depth image node: projection + dilation + Sobel edge suppression + nearest-neighbor upsampling

Main topics published by the main driver (all with the per-device prefix /{topic_prefix}/{model}/device{N}/):

Topic suffixTypeDescription
cloud/rawsensor_msgs/msg/PointCloud2Raw point cloud (256×192)
cloud/slamsensor_msgs/msg/PointCloud2SLAM point cloud
camera0/compressedsensor_msgs/msg/CompressedImageLeft camera JPEG compressed image
camera1/compressedsensor_msgs/msg/CompressedImageRight camera JPEG compressed image
imusensor_msgs/msg/ImuIMU data (acceleration, angular velocity)
odometrynav_msgs/msg/OdometryOdometry data

Common launch parameters:

ParameterDefaultDescription
start_rviztrueWhether to start RViz
topic_prefixmanifoldTopic prefix root
image_width / image_height / image_fps00 = use device defaults
image_formatmjpegImage format: mjpeg / yuyv / nv12 / nv21 / rgb24
sensor_mode0dToF sensor mode: 0=HDR / 1=High Peak / 2=Low Peak / 3=Adaptive
confidence_threshold7Point cloud confidence threshold (0–255)
02 · Depth Camera & LiDAR Integration | EngineAI Open Platform