Troubleshooting¶
A collection of quick fixes for the most common hiccups when running curobo_ros.
Docker Issues¶
1. Not Enough Disk Space¶
Symptom Docker build fails with:
no space left on device
ERROR: failed to solve: write /var/lib/docker/...
Cause The Docker image requires approximately 30 GB of disk space for the complete build (base images, ROS 2, CUDA, PyTorch, cuRobo, and dependencies).
Check Available Space
# Check disk usage
df -h
# Check Docker's disk usage
docker system df
Solutions
Option 1: Free up Docker space
# Remove unused containers, images, and volumes
docker system prune -a --volumes
# This can free up several GB!
Option 2: Change Docker’s data location (if your main disk is small)
# Stop Docker
sudo systemctl stop docker
# Edit Docker daemon config
sudo nano /etc/docker/daemon.json
# Add data-root to a larger drive:
{
"data-root": "/path/to/large/drive/docker"
}
# Move existing data
sudo rsync -aP /var/lib/docker/ /path/to/large/drive/docker/
# Restart Docker
sudo systemctl start docker
Option 3: Clean system space
# Remove old kernels (Ubuntu)
sudo apt autoremove
# Clean apt cache
sudo apt clean
# Remove snap cache (if using snap)
sudo rm -rf /var/lib/snapd/cache/*
2. Container Name Already Exists¶
Symptom
docker: Error response from daemon: Conflict. The container name "/curobo_ampere_dev" is already in use
Cause You’re trying to create a container, but one with that name already exists (possibly stopped).
Solution
Option 1: Start the existing container (recommended)
# Check if container exists
docker ps -a | grep curobo_ampere_dev
# Start it
docker start curobo_ampere_dev
# Attach to it
docker exec -it curobo_ampere_dev bash
Option 2: Remove and recreate (you’ll lose container-specific changes)
# Stop the container
docker stop curobo_ampere_dev
# Remove it
docker rm curobo_ampere_dev
# Now run start_docker_x86.sh again
bash start_docker_x86.sh
See also: Installation Guide
3. Docker Daemon Not Running¶
Symptom
Cannot connect to the Docker daemon at unix:///var/run/docker.sock
Cause Docker service is not running.
Solution
# Start Docker
sudo systemctl start docker
# Check status
sudo systemctl status docker
# Enable Docker to start on boot
sudo systemctl enable docker
# Add your user to docker group (to avoid sudo)
sudo usermod -aG docker $USER
# Log out and back in for this to take effect
4. Permission Denied¶
Symptom
permission denied while trying to connect to the Docker daemon socket
Cause
Your user is not in the docker group.
Solution
# Add user to docker group
sudo usermod -aG docker $USER
# Apply changes (log out and back in, OR)
newgrp docker
# Verify
docker ps
5. NVIDIA GPU Not Accessible in Container¶
Symptom
Inside the container, nvidia-smi fails or shows no GPUs.
Cause NVIDIA Container Toolkit not installed or not configured correctly.
Check
# On host
nvidia-smi # Should work
# Test GPU access in Docker
docker run --rm --gpus all nvidia/cuda:12.1.0-base-ubuntu22.04 nvidia-smi
# Should show your GPU
Solution
Install NVIDIA Container Toolkit:
# Add repository
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
# Install
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
# Configure Docker
sudo nvidia-ctk runtime configure --runtime=docker
# Restart Docker
sudo systemctl restart docker
6. Docker Build is Extremely Slow¶
Symptom
build_docker.sh takes hours instead of 20-30 minutes.
Possible Causes & Solutions
1. Slow internet connection
The build downloads several GB of data
Use wired connection if possible
Consider building during off-peak hours
2. Limited CPU resources
# Check CPU usage during build
htop
Close other applications
Ensure Docker has enough CPU allocated (Docker Desktop settings)
3. Limited RAM
Recommend at least 16 GB RAM
Close memory-heavy applications
Adjust Docker memory limit (Docker Desktop → Settings → Resources)
4. Disk I/O bottleneck
Use SSD instead of HDD if possible
Check disk usage:
iotop
ROS / Launch Issues¶
7. OpenCV - AttributeError: module 'cv2.dnn' has no attribute 'DictValue'¶
Symptom
You launch the Realsense D405 (or any vision node) and get:
AttributeError: module 'cv2.dnn' has no attribute 'DictValue'
Cause
Some OpenCV Python wheels ship an outdated typing stub that still references
the deprecated DictValue symbol.
Fix
Open the offending file inside the container:
nano /usr/local/lib/python3.10/dist-packages/cv2/typing/__init__.py
Comment out line 171 (the import of
DictValue) or remove the entire line.Save, exit, and re-run your command.
8. Missing symbol ucm_set_global_opts¶
Symptom ROS nodes fail at startup with an error similar to:
undefined symbol: ucm_set_global_opts
Cause
A broken or partially removed mpich/hwloc dependency inside the image.
Fix
Run the following inside the Docker container to reinstall the packages:
sudo apt-get update && sudo apt-get install --reinstall -y \
libmpich-dev hwloc-nox libmpich12 mpich
Windows-Specific Issues¶
9. Docker Containers Will Not Start¶
Symptom
docker run fails immediately, or the Docker Desktop dashboard shows
“Insufficient virtual memory”.
Fix
Reboot into your BIOS/UEFI setup.
Enable the CPU feature usually labelled Intel VT-x / AMD-V / Virtualization.
Save & reboot. Docker Desktop should now start containers normally.
(Names and menus differ between motherboards; consult your vendor manual.)
10. RViz / GUI Windows Do Not Appear (Windows)¶
Linux GUI apps inside the container need an X-server running on the host.
Solution (recommended for Windows)
Install VcXsrv / XLaunch from https://sourceforge.net/projects/vcxsrv/.
Launch XLaunch and keep the default settings except: Tick “Disable access control” on the last page.
In the PowerShell or WSL terminal where you will run
start_docker_x86.sh, set the display variable, replacing<HOST_IP>with the address shown byipconfig:export DISPLAY=<HOST_IP>:0
Start the container and run RViz as usual; the window should pop up on your desktop.