bcr_arm_showcase.mp4
This repository contains a Gazebo Fortress simulation for a 7-DOF robotic arm. It includes ROS2 Control integration and MoveIt for motion planning. Currently, the project supports:
- ROS2 Humble + Gazebo Fortress (Ubuntu 22.04)
- ROS2 Jazzy + Gazebo Harmonic (Ubuntu 24.04)
- Nvidia Isaac Sim
Ensure you have ROS2 Humble and Gazebo Fortress installed.
# Install ROS2 Humble (if not already installed)
sudo apt update
sudo apt install -y ros-humble-desktop
# Install Gazebo Fortress
sudo apt install -y gz-fortressOther dependencies can be installed using rosdep (from the root directory of your workspace):
# From the root directory of your workspace (e.g., ~/bcr_ws)
rosdep install --from-paths src --ignore-src -r -y# From the root of your workspace
colcon build --symlink-install
# Source the workspace
source install/setup.bash# To install bcr arm binary run
sudo apt-get install ros-humble-bcr-armTo launch the Gazebo simulation with ROS2 Control and MoveIt2 for motion planning, use the following command:
ros2 launch bcr_arm_moveit_config bcr_arm_moveit_gazebo.launch.py This is the primary launch file to bring up the full simulation environment.
ros2 launch bcr_arm_gazebo bcr_arm.gazebo.launch.py- This uses ROS2 mock controllers for the arm. Use scripts from
bcr_arm_gazeboto send commands to the arm. - Supports launch argument:
world_path:=<path_to_world>
Ensure you have ROS2 Jazzy and Gazebo Harmonic installed.
# Install ROS2 jazzy (if not already installed)
sudo apt update
sudo apt install -y ros-jazzy-desktop
# Install Gazebo Harmonic
sudo apt install -y gz-harmonicBuild topic_based_ros2_control from source (need to build from source for jazzy, to use Moveit with Isaac Sim):
git clone https://github.com/PickNikRobotics/topic_based_ros2_control.git
cd topic_based_ros2_control
rosdep install --from-paths src --ignore-src -r -y
colcon build --symlink-install --event-handlers log-
source install/setup.bashOther dependencies can be installed using rosdep (from the root directory of your workspace):
# From the root directory of your workspace (e.g., ~/bcr_ws)
rosdep install --from-paths src --ignore-src -r -yBuild the project:
# From the root of your workspace
colcon build --symlink-install
# Source the workspace
source install/setup.bashTo launch the Gazebo simulation with ROS2 Control and MoveIt2 for motion planning, use the following command:
ros2 launch bcr_arm_moveit_config bcr_arm_moveit_gazebo.launch.py This is the primary launch file to bring up the full simulation environment.
ros2 launch bcr_arm_gazebo bcr_arm.gazebo.launch.py- This uses ROS2 mock controllers for the arm. Use scripts from
bcr_arm_gazeboto send commands to the arm. - Supports launch argument:
world_path:=<path_to_world>
Ensure you have Nvidia Isaac Sim installed.
- Download the Isaac Sim SDK from here
- Install the SDK
- Launch Isaac Sim (.~/isaacsim/isaac-sim.sh) and load the bcr_arm usd
To launch Isaac Sim and use Moveit for motion planning and control.
To launch the robot in Isaac Sim:
- Add in extra viewports for different camera views.
- Start the Simulation: Run the simulation directly within Isaac Sim.
To view and launch moveit:
ros2 launch bcr_arm_moveit_config isaac_demo.launch.pyOnce the simulation with controllers is running (e.g., via bcr_arm.gazebo.launch.py), you can send commands.
Using the CLI Script:
A Python script is provided to send predefined or custom joint goals.
# Ensure your workspace is sourced
# ros2 run bcr_arm_gazebo test_arm_movement.py
ros2 run bcr_arm_gazebo control_arm_cli.pyFollow the on-screen prompts to select poses or enter custom joint angles.


