dimensionalOS / dimensionalOS/dimos
coordinator-cartesian-ik-mock fails on startup with 'dict' object has no attribute 'position_lower'
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 4.5k
- Forks
- 808
- Avg merge
- 3d 5h
- Merged PRs (30d)
- 233
Description
Description
What happened?
Running the built-in coordinator-cartesian-ik-mock blueprint fails during startup.
The blueprint starts normally, the worker pool starts, and ArmPoseCoordinator is deployed. The coordinator transports are also created, including /cartesian_command.
Startup then fails in the ControlCoordinator/start RPC handler with:
'dict' object has no attribute 'position_lower'
The final exception is:
AttributeError: 'dict' object has no attribute 'position_lower'
What did you expect?
coordinator-cartesian-ik-mock should start successfully with the mock arm configuration and remain running until stopped.
System
Ubuntu 24.04
Robot / Sim / Hardware
Mock arm / no physical robot hardware
Steps to reproduce
uv run dimos run coordinator-cartesian-ik-mock
Environment
- Install method:
uv - Python: 3.12.3
- Pygame: 2.6.1
- DimOS branch/commit: TODO — run
git rev-parse --short HEAD
Logs / screenshots
01:29:16.383 [inf][imos/cli/commands/lifecycle.py] Starting DimOS
01:29:16.385 [inf][dination/module_coordinator.py] Building the blueprint
01:29:16.996 [inf][dination/module_coordinator.py] Starting the modules
01:29:18.172 [inf][ation/worker_manager_python.py] Worker pool started. n_workers=2
01:29:18.604 [inf][dimos/control/coordinator.py ] ControlCoordinator initialized at 100.0Hz
01:29:18.605 [inf][/coordination/python_worker.py] Deployed module. module=ArmPoseCoordinator module_id=0 worker_id=0
01:29:18.658 [inf][dination/module_coordinator.py] Transport module=ControlCoordinator name=coordinator_joint_state original_name=coordinator_joint_state topic=/coordinator_joint_state#sensor_msgs.JointState transport=LCMTransport type=dimos.msgs.sensor_msgs.JointState.JointState
01:29:18.659 [inf][dination/module_coordinator.py] Transport module=ControlCoordinator name=joint_command original_name=joint_command topic=/joint_command#sensor_msgs.JointState transport=LCMTransport type=dimos.msgs.sensor_msgs.JointState.JointState
01:29:18.659 [inf][dination/module_coordinator.py] Transport module=ControlCoordinator name=twist_command original_name=twist_command topic=/twist_command#geometry_msgs.Twist transport=LCMTransport type=dimos.msgs.geometry_msgs.Twist.Twist
01:29:18.660 [inf][dination/module_coordinator.py] Transport module=ControlCoordinator name=gripper_command original_name=gripper_command topic=/gripper_command#std_msgs.Float32 transport=LCMTransport type=dimos.msgs.std_msgs.Float32.Float32
01:29:18.661 [inf][dination/module_coordinator.py] Transport module=ControlCoordinator name=cartesian_command original_name=cartesian_command topic=/cartesian_command#geometry_msgs.PoseStamped transport=LCMTransport type=dimos.msgs.geometry_msgs.PoseStamped.PoseStamped
01:29:18.663 [err][imos/protocol/rpc/pubsubrpc.py] Exception in RPC handler for ControlCoordinator/start: 'dict' object has no attribute 'position_lower'
Full traceback ends with:
AttributeError: 'dict' object has no attribute 'position_lower'
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by running uv run dimos run coordinator-cartesian-ik-mock and inspect the coordinator-cartesian-ik-mock blueprint together with the ControlCoordinator/start handler. Trace the mock arm configuration passed to startup and identify why the value used for position_lower is a dict. Done means the blueprint starts successfully and remains running until stopped.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- robotics
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 68/100