Skip to content

bcr arm: A 7-DOF robotic arm simulation with ROS2 Control, MoveIt motion planning, and support for ROS2 Humble, ROS2 Jazzy, GZ Fortress, GZ Harmonic, and NVIDIA Isaac Sim

License

Notifications You must be signed in to change notification settings

blackcoffeerobotics/bcr_arm

Repository files navigation

BCR Arm

bcr_arm_showcase.mp4

About

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:

  1. ROS2 Humble + Gazebo Fortress (Ubuntu 22.04)
  2. ROS2 Jazzy + Gazebo Harmonic (Ubuntu 24.04)
  3. Nvidia Isaac Sim

Humble + Fortress (Ubuntu 22.04)

Dependencies

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-fortress

Other 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

Source Build

# From the root of your workspace
colcon build --symlink-install

# Source the workspace
source install/setup.bash

Binary Install

# To install bcr arm binary run
sudo apt-get install ros-humble-bcr-arm

Launch Files

1. Gazebo Simulation with ROS2 Control and MoveIt2 Motion Planning

To 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 

2. Gazebo Simulation with ROS2 Control

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_gazebo to send commands to the arm.
  • Supports launch argument: world_path:=<path_to_world>

Jazzy + Harmonic (Ubuntu 24.04)

Dependencies

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-harmonic

Build 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.bash

Other 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

Build the project:

# From the root of your workspace
colcon build --symlink-install

# Source the workspace
source install/setup.bash

Launch Files

1. Gazebo Simulation with ROS2 Control and MoveIt2 Motion Planning

To 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 

2. Gazebo Simulation with ROS2 Control

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_gazebo to send commands to the arm.
  • Supports launch argument: world_path:=<path_to_world>

Nvidia Isaac Sim

Dependencies

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

Launch

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.py

Controlling the Arm

Once 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.py

Follow the on-screen prompts to select poses or enter custom joint angles.

Images

Gazebo BCR Arm simulation with Moveit2

Isaac Sim BCR Arm simulation with Moveit2

Jazzy BCR Arm simulation

About

bcr arm: A 7-DOF robotic arm simulation with ROS2 Control, MoveIt motion planning, and support for ROS2 Humble, ROS2 Jazzy, GZ Fortress, GZ Harmonic, and NVIDIA Isaac Sim

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •