blackcoffeerobotics/bcr_bot

A mobile robot simulation with differential drive, depth camera, IMU and 2D LiDAR that supports ROS, ROS2, Gazebo, Ignition, Mujoco, and ISAAC Sim

BCR Bot – Multi‑ROS/Gazebo robot simulation

What it is – A ready‑to‑run simulation package for a differential‑drive robot that carries an IMU, a depth camera, a stereo pair and a 2‑D LiDAR. The repo supplies the robot description, world files and ROS launch files for several common ROS/Gazebo stacks and for NVIDIA Isaac Sim.

Why it matters – Robotics research and teaching often need a stable simulated platform that works across ROS 1 (Noetic) and ROS 2 (Humble) and across the various Gazebo releases (Classic 11, Fortress, Harmonic) as well as the newer Isaac Sim. BCR Bot provides exactly that, letting you switch the underlying simulator with only a change of launch file/branch.

Key features (as described in the README)

  • Supports five ROS‑simulator combos:
    1. ROS Noetic + Gazebo Classic 11
    2. ROS 2 Humble + Gazebo Classic 11
    3. ROS 2 Humble + Gazebo Fortress
    4. ROS 2 Humble + Gazebo Harmonic
    5. ROS 2 Humble + Isaac Sim
  • Sensors: IMU, depth camera, stereo camera, 2‑D LiDAR.
  • Launch files expose many parameters (camera on/off, lidar on/off, initial pose, world file, namespace, odometry source, etc.).
  • Provides ready‑made worlds (small_warehouse.world/.sdf) and USD scenes for Isaac Sim (warehouse_scene.usd, scene.usd, bcr_bot.usd).
  • Includes example pipelines for SLAM Toolbox mapping and Nav2 navigation, usable with any of the supported simulators.
  • Binary packages are available via apt for both ROS 1 and ROS 2 distributions (e.g., sudo apt-get install ros-humble-bcr-bot).
  • Build instructions use the standard ROS tools (catkin build for ROS 1, colcon build for ROS 2).

Typical workflow

  1. Install the matching ROS distribution and the desired Gazebo/Isaac Sim version.
  2. Install ROS‑Gazebo bridge packages if needed (e.g., ros-humble-ros-gz-sim).
  3. Resolve remaining dependencies with rosdep.
  4. Build the workspace (catkin build or colcon build).
  5. Launch the robot in the simulator (roslaunch … or ros2 launch …).
  6. Optionally run mapping (ros2 launch bcr_bot mapping.launch.py) or navigation (ros2 launch bcr_bot nav2.launch.py).

Who would use it – Students, researchers, or developers who need a plug‑and‑play robot model that works across the ROS‑1 → ROS‑2 transition and across the evolving Gazebo ecosystem, or who want to prototype algorithms in Isaac Sim without rewriting URDF/launch files.

Limitations noted in the README

  • Harmonic support is not yet packaged as a binary.
  • The gz-harmonic command conflicts with the classic Gazebo gz command, so they cannot be installed side‑by‑side.
  • Isaac Sim usage requires the separate NVIDIA installation and the ROS 2 extension.

All information above is taken directly from the repository’s README; no additional features have been inferred.

Related

  • Project
  • Project
  • Project
  • Project