bcr_bot
bcr_bot
README
BCR Bot
https://github.com/blackcoffeerobotics/bcr_bot/assets/13151010/0fc570a3-c70c-415b-8222-b9573d5911c8
About
This repository contains a Gazebo and Isaac Sim simulation for a differential drive robot, equipped with an IMU, a depth camera, stereo camera and a 2D LiDAR. ROS2 versions also include Nav2 and SLAM Tool Box support. Currently, the project supports the following combinations -
Each of the following sections describes depedencies, build and run instructions for the combinations supported by the ros2-jazzy branch.
Jazzy + Harmonic (Ubuntu 24.04)
Dependencies
Install Gazebo harmonic using ROS2 binaries:
sudo apt install ros-jazzy-ros-gz-sim ros-jazzy-ros-gz-bridge ros-jazzy-ros-gz-interfaces
Install other dependencies with rosdep.
# From the root directory of the workspace. This will install everything mentioned in package.xml
rosdep install --from-paths src --ignore-src -r -y
Build
colcon build --packages-select bcr_bot
Run
To launch the robot in Gazebo,
ros2 launch bcr_bot gz.launch.py
To view in rviz,
ros2 launch bcr_bot rviz.launch.py
Configuration
The launch file accepts multiple launch arguments,
ros2 launch bcr_bot gz.launch.py \
camera_enabled:=True \
stereo_camera_enabled:=False \
two_d_lidar_enabled:=True \
position_x:=0.0 \
position_y:=0.0 \
orientation_yaw:=0.0 \
odometry_source:=world \
world_file:=small_warehouse.sdf
Jazzy + Isaac Sim (Ubuntu 24.04)
Dependencies
In addition to ROS2 Humble Isaac Sim installation with ROS2 extension is required. Remainder of bcr_bot specific dependencies can be installed with rosdep
# From the root directory of the workspace. This will install everything mentioned in package.xml
rosdep install --from-paths src --ignore-src -r -y
Build
colcon build --packages-select bcr_bot
Run
To launch the robot in Isaac Sim:
Open Isaac Sim and load the
warehouse_scene.usdorscene.usdfrom here.Add in extra viewports for different camera views.
Start the Simulation: Run the simulation directly within Isaac Sim.
The following USDs are included in the package: -
warehouse_scene.usd- Warehouse scene with a robot. -scene.usd- Scene with a robot in a empty world. -bcr_bot.usd- Robot model that can be imported into any scene. -ActionGraphFull.usd- Action graph for the robot to publish all the required topics.
To view in rviz:
ros2 launch bcr_bot rviz.launch.py
NOTE: The command to run mapping and navigation is common between all versions of gazebo and Isaac sim see here.
Mapping with SLAM Toolbox
SLAM Toolbox is an open-source package designed to map the environment using laser scans and odometry, generating a map for autonomous navigation.
NOTE: The command to run mapping is common between all versions of gazebo.
To start mapping:
ros2 launch bcr_bot mapping.launch.py
Use the teleop twist keyboard to control the robot and map the area:
ros2 run teleop_twist_keyboard teleop_twist_keyboard cmd_vel:=/bcr_bot/cmd_vel
To save the map:
cd src/bcr_bot/config
ros2 run nav2_map_server map_saver_cli -f bcr_map
Simulation and Visualization
Gz Sim (Ignition Gazebo) (small_warehouse World):

Isaac Sim:

Rviz (Depth camera) (small_warehouse World):
