Skip to content

ROS 2 workspace in a containerized environment for deploying the dual arm mobile manipulation platform (Phoebe Bridgeback) in NASA JSC's iMETRO facility. Supports hardware, kinematic simulation, and a dynamic simulation.

License

Notifications You must be signed in to change notification settings

NASA-JSC-Robotics/phoebe_bridgeback_ws

Repository files navigation

Phoebe Bridgeback Workspace

Docker enabled ROS 2 workspace for building and running applications with the Phoebe Bridgeback robot. Phoebe Bridgeback is a dual armed, mobile manipulation platform maintained in the iMETRO Facility at NASA's Johnson Space Center.

The platform includes a Clearpath Ridgeback base, 2x Ewellix column lifts, and 2x UR5e serial manipulators. Peripherals include wrist mounted Realses D435 cameras along with Robotiq Hand-E grippers. This workspace includes packages for baseline operation of the hardware system, along with a supported kinematic and dynamic simulation built with MuJoCo.

alt text

Quick Development Setup

  1. Install Docker

    • Don't worry about Docker Desktop
    • For Ubuntu recommend using the utility script
  2. Install git sudo apt install git

  3. Clone this repo with submodules

    git clone --recursive [email protected]:imetro/robots/phoebe-bridgeback/phoebe_bridgeback_ws.git -b humble-feature/full-urdf
    cd phoebe_bridgeback_ws

    Or to update submodules if you do not do a recursive clone,

    cd phoebe_bridgeback_ws
    git submodule update --init
  4. Set your user information for the project build

    • We recommend just putting this in your ~/.bashrc:

      export USER_UID=$(id -u $USER)
      export USER_GID=$(id -g $USER)
    • Alternatively, open the .env file in the root of this repo and update each line with your information

      • USER_UID and USER_GID
        • found using id -u and id -g respectively

Using the Images

Build the base images using the compose specification.

To build the development image from the repo root, and then launch it

# Compile the image
docker compose build

# Start it
docker compose up dev -d

# Connect to the console
docker compose exec dev bash

Once you're attached to the container, you can use it as a regular colcon workspace. The contents of the src/ directory will be mounted into /home/er4-user/ws/src.

To run the things, do the following

# build the ROS workspace
colcon build

# Start Phoebe ros2 control software with mock_hardware
ros2 launch phoebe_deploy control_mock_hardware.launch.py

# start moveit with rviz!
ros2 launch phoebe_moveit_config phoebe_moveit.launch.py

For running things in mujoco, follow these steps

# build the ROS workspace
colcon build

# Start Phoebe ros2 control software with mujoco sim
ros2 launch phoebe_mujoco_config phoebe_mujoco.launch.py

# Start the sensors launch file to get odometry processed as it would be on the robot
ros2 launch phoebe_deploy ridgeback_sensors.launch.py is_sim:=true

# start moveit with rviz!
ros2 launch phoebe_moveit_config phoebe_moveit.launch.py use_sim_time:=true

# launch nav2
ros2 launch phoebe_nav2_config phoebe_nav.launch.py use_sim_time:=true

Other Things to Note

  • Build logs, compiled artifaces, and the .ccache are also mounted in the workspace/user home. This ensure artifacts are persisted even when restarting or recreating the container.

  • The .bash folder gets mounted into your workspace, and the environment variable HISTFILE is set in the docker compose file. This points the bash to keep the history in this folder, which will persist between docker container sessions so that your history is kept.

  • Your host's DDS configuration (either cyclone or fastrtps) will be mounted into the image if set in your environment. For more information refer to the compose specification.

  • Defaults for colcon build are set for the user. To change or modify, refer to the defaults file.

  • We use MuJoCo for many of our dynamic simulations, so we include installing in the Dockerfile.

Troubleshooting

Common pitfalls and troubleshooting tips are documented in the troubleshooting guide.

About

ROS 2 workspace in a containerized environment for deploying the dual arm mobile manipulation platform (Phoebe Bridgeback) in NASA JSC's iMETRO facility. Supports hardware, kinematic simulation, and a dynamic simulation.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •