Skip to content

Instantly share code, notes, and snippets.

@daoran
Forked from vfdev-5/README.md
Created February 5, 2020 00:58
Show Gist options
  • Save daoran/067588ff31460e94aa44d0e9f345970e to your computer and use it in GitHub Desktop.
Save daoran/067588ff31460e94aa44d0e9f345970e to your computer and use it in GitHub Desktop.
ROS development on MacOSX using docker

ROS development on MacOSX using docker

We need to use docker-machine to handle USB ports inside the docker.

Docker Machine (0.16.1)

Configuration

Follow this gist: https://gist.github.com/stonehippo/e33750f185806924f1254349ea1a4e68 to setup USB to be visible inside the container.

Pull ROS image

docker pull ros:latest

Run container

Following the guide : https://docs.docker.com/samples/library/ros/

Create network

docker network create ros-network

Container with roscore only

docker run -it --rm --net ros-network --name=roscore ros:latest roscore

Dev container

Command with debug support:

docker run -it --rm \
    --security-opt seccomp:unconfined \
    --net ros-network \
    -p 9091:9091 \
    --device=/dev/ttyUSB0 \
    -v $PWD:/home/project \
    --name=$container_name \
    --workdir=/home/project \
    $image_name /bin/bash

RViz container

Install XQuartz

Install it from : https://www.xquartz.org/

Configure following: https://sourabhbajaj.com/blog/2017/02/07/gui-applications-docker-mac/

Run XQuartz

IP=$(ifconfig en0 | grep inet | awk '$1=="inet" {print $2}')
xhost +${IP}

Install RViz to ROS Image

Run

docker run --rm \
    --env="DISPLAY=192.168.5.43:0" \
    --volume="$HOME/.Xauthority:/root/.Xauthority:rw" \
    --net ros-network \
    --env ROS_MASTER_URI=http://roscore:11311 \    
    --name=rviz \
    ros_rviz:latest rviz
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment