-
Notifications
You must be signed in to change notification settings - Fork 10
WIP Feat/livox #1235
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: dev
Are you sure you want to change the base?
WIP Feat/livox #1235
Conversation
…notations` The future annotations import made Out[PointCloud2] and Out[Imu] lazy strings, preventing the Module metaclass from creating real port descriptors. Move type imports out of TYPE_CHECKING block so ports are properly resolved at class definition time.
Livox-specific module (LivoxLidarModule, LivoxLidarModuleConfig) now lives in dimos/hardware/sensors/lidar/livox/module.py alongside the driver and SDK code. Generic LidarModule stays in the parent.
Greptile OverviewGreptile SummaryThis PR integrates Livox Mid-360 LiDAR hardware support into the dimos framework. The implementation includes:
The implementation follows good practices with thread-safe queuing, proper SDK lifecycle management, and comprehensive error handling. The code is well-documented and includes spec compliance tests. Confidence Score: 4/5
Important Files Changed
Sequence DiagramsequenceDiagram
participant User
participant LivoxLidarModule
participant LivoxMid360
participant LivoxSDK
participant HardwareDevice as Livox Hardware
User->>LivoxLidarModule: start()
LivoxLidarModule->>LivoxMid360: pointcloud_stream()
LivoxMid360->>LivoxSDK: init(config, host_ip)
LivoxSDK->>LivoxSDK: load shared library
LivoxSDK->>HardwareDevice: connect via network
LivoxMid360->>LivoxSDK: set_point_cloud_callback()
LivoxMid360->>LivoxSDK: set_imu_callback()
LivoxMid360->>LivoxSDK: set_info_change_callback()
LivoxMid360->>LivoxSDK: start()
LivoxSDK->>HardwareDevice: start device communication
loop Point Cloud Data
HardwareDevice->>LivoxSDK: UDP packet (points)
LivoxSDK->>LivoxMid360: callback with packet
LivoxMid360->>LivoxMid360: enqueue to _pc_queue
LivoxMid360->>LivoxMid360: consumer thread aggregates
LivoxMid360->>LivoxLidarModule: emit PointCloud2
LivoxLidarModule->>User: publish to pointcloud port
end
loop IMU Data
HardwareDevice->>LivoxSDK: UDP packet (IMU)
LivoxSDK->>LivoxMid360: callback with packet
LivoxMid360->>LivoxMid360: enqueue to _imu_queue
LivoxMid360->>LivoxMid360: consumer thread processes
LivoxMid360->>LivoxLidarModule: emit Imu
LivoxLidarModule->>User: publish to imu port
end
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
15 files reviewed, 1 comment
| # See the License for the specific language governing permissions and | ||
| # limitations under the License. | ||
|
|
||
| """Livox-specific LiDAR module with IMU support.""" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
missing from __future__ import annotations import that was intentionally removed from dimos/hardware/sensors/lidar/module.py to fix port resolution
| """Livox-specific LiDAR module with IMU support.""" | |
| """Livox-specific LiDAR module with IMU support.""" | |
| from __future__ import annotations |
No description provided.