Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/workflows/code-cleanup.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ jobs:

- uses: actions/checkout@v3
- uses: actions/setup-python@v3
- uses: astral-sh/setup-uv@v4
- name: Run pre-commit
id: pre-commit-first
uses: pre-commit/action@v3.0.1
Expand Down
7 changes: 7 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,13 @@ repos:

- repo: local
hooks:
- id: uv-lock-check
name: Check uv.lock is up-to-date
entry: uv lock --check
language: system
files: ^pyproject\.toml$
pass_filenames: false

- id: lfs_check
name: LFS data
always_run: true
Expand Down
4 changes: 2 additions & 2 deletions dimos/hardware/manipulators/base/components/motion.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
import logging
from queue import Queue
import time
from typing import Any, Optional
from typing import Any

from ..driver import Command
from ..sdk_interface import BaseManipulatorSDK
Expand Down Expand Up @@ -186,7 +186,7 @@ def move_joint_velocity(

# Check velocity limits
if self.capabilities.max_joint_velocity:
valid, error = validate_velocity_limits(
valid, _error = validate_velocity_limits(
velocities, self.capabilities.max_joint_velocity, self.velocity_scale
)
if not valid:
Expand Down
2 changes: 1 addition & 1 deletion dimos/hardware/manipulators/base/components/servo.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

import logging
import time
from typing import Any, Optional
from typing import Any

from ..sdk_interface import BaseManipulatorSDK
from ..spec import ManipulatorCapabilities
Expand Down
6 changes: 3 additions & 3 deletions dimos/hardware/manipulators/base/components/status.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,12 @@
"""Standard status monitoring component for manipulator drivers."""

from collections import deque
from dataclasses import dataclass, field
from dataclasses import dataclass
import logging
import time
from typing import Any, Optional
from typing import Any

from ..sdk_interface import BaseManipulatorSDK, ManipulatorInfo
from ..sdk_interface import BaseManipulatorSDK
from ..spec import ManipulatorCapabilities
from ..utils import SharedState
from . import component_api
Expand Down
5 changes: 2 additions & 3 deletions dimos/hardware/manipulators/base/driver.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,19 +14,18 @@

"""Base manipulator driver with threading and component management."""

from abc import ABC
from dataclasses import dataclass
import logging
from queue import Empty, Queue
from threading import Event, Thread
import time
from typing import Any, Optional
from typing import Any

from dimos.core import In, Module, Out, rpc
from dimos.msgs.geometry_msgs import WrenchStamped
from dimos.msgs.sensor_msgs import JointCommand, JointState, RobotState

from .sdk_interface import BaseManipulatorSDK, ManipulatorInfo
from .sdk_interface import BaseManipulatorSDK
from .spec import ManipulatorCapabilities
from .utils import SharedState

Expand Down
5 changes: 2 additions & 3 deletions dimos/hardware/manipulators/base/spec.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,10 @@
# limitations under the License.

from dataclasses import dataclass
from typing import Any, Optional, Protocol
from typing import Any, Protocol

from dimos.core import In, Out
from dimos.msgs.geometry_msgs import PoseStamped, Twist, WrenchStamped
from dimos.msgs.nav_msgs import Path
from dimos.msgs.geometry_msgs import WrenchStamped
from dimos.msgs.sensor_msgs import JointCommand, JointState


Expand Down
13 changes: 6 additions & 7 deletions dimos/hardware/manipulators/base/utils/converters.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,9 @@
"""Unit conversion utilities for manipulator drivers."""

import math
from typing import Union


def degrees_to_radians(degrees: Union[float, list[float]]) -> Union[float, list[float]]:
def degrees_to_radians(degrees: float | list[float]) -> float | list[float]:
"""Convert degrees to radians.

Args:
Expand All @@ -32,7 +31,7 @@ def degrees_to_radians(degrees: Union[float, list[float]]) -> Union[float, list[
return math.radians(degrees)


def radians_to_degrees(radians: Union[float, list[float]]) -> Union[float, list[float]]:
def radians_to_degrees(radians: float | list[float]) -> float | list[float]:
"""Convert radians to degrees.

Args:
Expand All @@ -46,7 +45,7 @@ def radians_to_degrees(radians: Union[float, list[float]]) -> Union[float, list[
return math.degrees(radians)


def mm_to_meters(mm: Union[float, list[float]]) -> Union[float, list[float]]:
def mm_to_meters(mm: float | list[float]) -> float | list[float]:
"""Convert millimeters to meters.

Args:
Expand All @@ -60,7 +59,7 @@ def mm_to_meters(mm: Union[float, list[float]]) -> Union[float, list[float]]:
return mm / 1000.0


def meters_to_mm(meters: Union[float, list[float]]) -> Union[float, list[float]]:
def meters_to_mm(meters: float | list[float]) -> float | list[float]:
"""Convert meters to millimeters.

Args:
Expand All @@ -74,7 +73,7 @@ def meters_to_mm(meters: Union[float, list[float]]) -> Union[float, list[float]]
return meters * 1000.0


def rpm_to_rad_per_sec(rpm: Union[float, list[float]]) -> Union[float, list[float]]:
def rpm_to_rad_per_sec(rpm: float | list[float]) -> float | list[float]:
"""Convert RPM to rad/s.

Args:
Expand All @@ -89,7 +88,7 @@ def rpm_to_rad_per_sec(rpm: Union[float, list[float]]) -> Union[float, list[floa
return rpm * factor


def rad_per_sec_to_rpm(rad_per_sec: Union[float, list[float]]) -> Union[float, list[float]]:
def rad_per_sec_to_rpm(rad_per_sec: float | list[float]) -> float | list[float]:
"""Convert rad/s to RPM.

Args:
Expand Down
2 changes: 1 addition & 1 deletion dimos/hardware/manipulators/base/utils/shared_state.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
from dataclasses import dataclass, field
from threading import Lock
import time
from typing import Any, Optional
from typing import Any


@dataclass
Expand Down
2 changes: 1 addition & 1 deletion dimos/hardware/manipulators/base/utils/validators.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@

"""Validation utilities for manipulator drivers."""

from typing import Any, Optional, cast
from typing import cast


def validate_joint_limits(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
"""

import threading
from typing import Any, Optional
from typing import Any

from dimos.core import rpc
from dimos.msgs.sensor_msgs import JointState, RobotState
Expand Down
2 changes: 1 addition & 1 deletion dimos/hardware/manipulators/piper/piper_driver.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

import logging
import time
from typing import Any, Optional
from typing import Any

from dimos.hardware.manipulators.base import (
BaseManipulatorDriver,
Expand Down
2 changes: 1 addition & 1 deletion dimos/hardware/manipulators/piper/piper_wrapper.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

import logging
import time
from typing import Any, Optional
from typing import Any

from ..base.sdk_interface import BaseManipulatorSDK, ManipulatorInfo

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
"""

import threading
from typing import TYPE_CHECKING, Any, Optional
from typing import TYPE_CHECKING, Any

from dimos.core import rpc
from dimos.msgs.sensor_msgs import JointState, RobotState
Expand Down
5 changes: 2 additions & 3 deletions dimos/hardware/manipulators/xarm/spec.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,8 @@
from typing import Protocol

from dimos.core import In, Out
from dimos.msgs.geometry_msgs import PoseStamped, Twist, WrenchStamped
from dimos.msgs.nav_msgs import Path
from dimos.msgs.sensor_msgs import JointCommand, JointState, RobotState as RobotStateMsg
from dimos.msgs.geometry_msgs import WrenchStamped
from dimos.msgs.sensor_msgs import JointCommand, JointState


@dataclass
Expand Down
2 changes: 1 addition & 1 deletion dimos/hardware/manipulators/xarm/xarm_wrapper.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

import logging
import math
from typing import Any, Optional
from typing import Any

from ..base.sdk_interface import BaseManipulatorSDK, ManipulatorInfo

Expand Down
3 changes: 1 addition & 2 deletions dimos/hardware/sensors/camera/module.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
from dataclasses import dataclass, field
import queue
import time
from typing import Any, Generic, Literal, Optional, Protocol, TypeVar

from dimos_lcm.sensor_msgs import CameraInfo
import reactivex as rx
Expand All @@ -28,7 +27,7 @@
from dimos.agents import Output, Reducer, Stream, skill # type: ignore[attr-defined]
from dimos.core import Module, ModuleConfig, Out, rpc
from dimos.hardware.sensors.camera.spec import CameraHardware
from dimos.hardware.sensors.camera.webcam import Webcam, WebcamConfig
from dimos.hardware.sensors.camera.webcam import Webcam
from dimos.msgs.geometry_msgs import Quaternion, Transform, Vector3
from dimos.msgs.sensor_msgs import Image
from dimos.msgs.sensor_msgs.Image import Image, sharpness_barrier
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
import math
import threading
import time
from typing import Any, Optional
from typing import Any

from dimos.core import In, Module, Out, rpc
from dimos.core.module import ModuleConfig
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@
"""

import signal
import sys
import time

from dimos import core
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,14 +29,13 @@
"""

import signal
import sys
import time

from dimos import core
from dimos.hardware.manipulators.xarm import XArmDriver
from dimos.manipulation.control import JointTrajectoryController
from dimos.msgs.sensor_msgs import JointCommand, JointState, RobotState
from dimos.msgs.trajectory_msgs import JointTrajectory, TrajectoryPoint, TrajectoryState
from dimos.msgs.trajectory_msgs import JointTrajectory, TrajectoryState

# Global flag for graceful shutdown
shutdown_requested = False
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -330,7 +330,7 @@ def _execution_loop(self) -> None:
)
else:
# Sample trajectory
q_ref, qd_ref = self._trajectory.sample(t)
q_ref, _qd_ref = self._trajectory.sample(t)

# Create and publish command (outside lock would be better but simpler here)
cmd = JointCommand(positions=q_ref, timestamp=time.time())
Expand Down
3 changes: 1 addition & 2 deletions dimos/protocol/skill/coordinator.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
from dataclasses import dataclass
from enum import Enum
import json
import threading
import time
from typing import Any, Literal

Expand All @@ -28,7 +27,7 @@
from rich.text import Text

from dimos.core import rpc
from dimos.core.module import Module, ModuleConfig, get_loop
from dimos.core.module import Module, ModuleConfig
from dimos.protocol.skill.comms import LCMSkillComms, SkillCommsSpec
from dimos.protocol.skill.skill import SkillConfig, SkillContainer # type: ignore[attr-defined]
from dimos.protocol.skill.type import MsgType, Output, Reducer, Return, SkillMsg, Stream
Expand Down
2 changes: 0 additions & 2 deletions dimos/simulation/mujoco/input_controller.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,6 @@

from numpy.typing import NDArray

from dimos.hardware.end_effectors.end_effector import EndEffector


class InputController(Protocol):
"""A protocol for input devices to control the robot."""
Expand Down
11 changes: 11 additions & 0 deletions uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading