ROS driver suite for Odin sensor modules (Manifold Tech Ltd.)
Compatibility:
● ROS 1(LTS Release: Noetic recommended)
● ROS 2(LTS Release: Humble recommended)
This driver package provides core functionality for point cloud SLAM applications and targets specific use cases. It is intended exclusively for technical professionals conducting secondary development. End users must perform scenario-specific optimization and custom development to align with operational requirements in practical deployment environments.
Current Version: v0.3.1
● Ubuntu 18.04 for ROS Melodic;
● Ubuntu 20.04 for ROS Noetic and ROS2 Foxy;
● Ubuntu 22.04 for ROS2 Humble;
● Opencv
● yaml-cpp
● thread
● OpenSSL
● Eigen3
sudo apt update
sudo apt-get install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt update
sudo apt install -y libyaml-cpp-dev
sudo apt update
sudo apt install -y libusb-1.0-0-dev
sudo apt update
sudo apt-get install libopencv-dev
For ROS Melodic installation, please refer to: ROS Melodic installation instructions
For ROS Noetic installation, please refer to: ROS Noetic installation instructions
For ROS2 Foxy installation, please refer to: ROS Foxy installation instructions
For ROS2 Humble installation, please refer to: ROS Humble installation instructions
sudo vim /etc/udev/rules.d/99-odin-usb.rules
Add the following content to the 99-odin-usb.rules file
SUBSYSTEM=="usb", ATTR{idVendor}=="2207", ATTR{idProduct}=="0019", MODE="0666", GROUP="plugdev"
Reload rules and reinsert devices
sudo udevadm control --reload
sudo udevadm trigger
git clone https://github.com/manifoldsdk/odin_ros_driver.git catkin_ws/src/odin_ros_driver
Note: Please clone the source code into the "[ros_workspace]/src/" folder, otherwise compilation errors will occur.
source /opt/ros/noetic/setup.bash
./script/build_ros.sh
source /opt/ros/foxy/setup.bash
./script/build_ros2.sh
source [ros_workspace]/install/setup.bash
ros2 launch odin_ros_driver [launch file]
● odin_ros_driver: package name;
● launch file: launch file;
● ros_workspace: User's ROS environment workspace;
roslaunch odin_ros_driver odin1_ros1.launch
source [ros2_workspace]/install/setup.bash
ros2 launch odin_ros_driver [launch file]
● odin_ros_driver: package name;
● launch file: launch file;
● ros2_workspace: User's ROS2 environment workspace;
ROS2 Demo Launch Instructions:
ros2 launch odin_ros_driver odin1_ros2.launch.py
Odin_ROS_Driver/ // ROS1/ROS2 driver package
3rdparty/ // Third-party libraries
src/
host_sdk_sample.cpp // Example source code
yaml_parser.cpp // Source code for reading yaml parameters
rawCloudRender.cpp // Source code for RenderCloud
lib/
liblydHostApi_amd.a // Static library for AMD platform
liblydHostApi_arm.a // Static library for ARM platform
include/
host_sdk_sample.h // Example header file
lidar_api_type.h // API data structure header file
lidar_api.h // API function declarations
yaml_parser.h // Parameter file reading header file
rawCloudRender.h // API about RenderCloud
config/
control_command.yaml // Control parameter file for driver
calib.yaml //Machine calibration yaml
launch_ROS1/
odin1_ros1.launch // ROS1 launch file
launch_ROS2/
odin1_ros2.launch.py // ROS2 launch file
script/
build_ros1.sh // Installation script for ROS1
build_ros2.sh // Installation script for ROS2
README.md // Usage instructions
CMakeLists.txt // CMake build file
License // License file
Launch File Name | Description |
---|---|
odin1_ros1.launch | Launch file for ROS1 - Odin1 Basic Operations Demo |
odin1_ros2.launch.py | Launch file for ROS2 - Odin1 Basic Operations Demo |
Internal parameters of the Odin ROS driver are defined in config/control_command.yaml. Below are descriptions of the commonly used parameters:
Topic | Detailed Description |
---|---|
odin1/imu | Imu Topic |
odin1/image | RGB Camera Topic |
odin1/image/compressed | RGB Camera compressed Topic |
odin1/cloud_raw | Raw_Cloud Topic |
odin1/cloud_render | Render_Cloud Topic |
odin1/cloud_slam | Slam_PointCloud Topic |
odin1/odometry_map | Odom Topic |
Error Message
No device connected after 60 seconds
Solution
-
Please power on Odin module again # Disconnect and reconnect odin power
-
Reinitialize Odin SDK # Execute SDK after device reboot
Error Message
ld: cannot find -llydHostApi or symbol lookup errors
Resolution
- Clean previous build artifacts
ROS1
rm -rf devel/ build/
ROS2
rm -rf devel/ install/ log/
- Re-run script installation
Error Message
Unable to open X display or No protocol specified
Resolution
xhost + #This command enables graphical passthrough to Docker containers
Error Message
Rviz does not respond, and after a while the terminal prints Device disconnected, waiting for reconnection...
Resolution
Please power on Odin module again
Error Message
Missed ok response from device,probably wrong interaction procedure.
Resolution
Please adopt the solution mentioned in 5.1
Error Message
ERROR:Missing camera node 'cam_0'
Resolution
Please plug and unplug the USB again
To help diagnose the issue, please provide the following details to our FAE engineer:
- Current firmware version
[device_version_capture]: ros_driver_version: [Version Number]
-
Photos of power adapter and converter cable in use.
-
Does the issue happen occasionally or consistently?
-
Provide images of the problem scenario.
-
Did the troubleshooting methods in Section V resolve the issue?
-
Expected timeline for issue resolution.