-

bcr_bot package from bcr_bot repo

bcr_bot

Package Summary

Tags No category tags.
Version 1.0.2
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/blackcoffeerobotics/bcr_bot.git
VCS Type git
VCS Version ros2
Last Updated 2024-11-12
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

bcr_bot

Additional Links

No additional links.

Maintainers

  • Gaurav Gupta
  • Devanshu Sharma
  • Angelo Antu

Authors

No additional authors.

New BCR Robot

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. The primary contriution of this project is to support multiple ROS and Gazebo distros. Currently, the project supports the following versions -

  1. ROS Noetic + Gazebo Classic 11 (branch ros1)
  2. ROS2 Humble + Gazebo Classic 11 (branch ros2)
  3. ROS2 Humble + Gazebo Fortress (branch ros2)
  4. ROS2 Humble + Gazebo Harmonic (branch ros2)
  5. ROS2 Humble + Isaac Sim (branch ros2)

Each of the following sections describes depedencies, build and run instructions for each of the above combinations

Noetic + Classic (Ubuntu 20.04)

Dependencies

In addition to ROS1 Noetic and Gazebo Classic installations, the 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

Source Build

catkin build --packages-select bcr_bot

Binary Install

To install BCR bot in the binaries:

sudo apt-get install ros-noetic-bcr-bot

Run

To launch the robot in Gazebo,

roslaunch bcr_bot gazebo.launch

To view in rviz,

roslaunch bcr_bot rviz.launch

Configuration

The launch file accepts multiple launch arguments,

roslaunch bcr_bot gazebo.launch 
	camera_enabled:=True \
	two_d_lidar_enabled:=True \
	position_x:=0.0 \
	position_y:=0.0 \
	orientation_yaw:=0.0 \
	odometry_source:=world \
	world_file:=small_warehouse.world \
	robot_namespace:="bcr_bot"

Note: To use stereo_image_proc with the stereo images excute following command:

ROS_NAMESPACE=bcr_bot/stereo_camera rosrun stereo_image_proc stereo_image_proc

Humble + Classic (Ubuntu 22.04)

Dependencies

In addition to ROS2 Humble and Gazebo Classic installations, we need to manually install gazebo_ros_pkgs (since the same branch supports Classic and Fortress)

sudo apt-get install ros-humble-gazebo-ros-pkgs

Remainder of the 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

Source Build

colcon build --packages-select bcr_bot

Binary Install

To install BCR bot in the binaries:

sudo apt-get install ros-humble-bcr-bot

Run

To launch the robot in Gazebo,

ros2 launch bcr_bot gazebo.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 gazebo.launch.py \
	camera_enabled:=True \
	two_d_lidar_enabled:=True \
	stereo_camera_enabled:=False \
	position_x:=0.0 \
	position_y:=0.0 \
	orientation_yaw:=0.0 \
	odometry_source:=world \
	world_file:=small_warehouse.sdf \
	robot_namespace:="bcr_bot"

Note: To use stereo_image_proc with the stereo images excute following command:

ros2 launch stereo_image_proc stereo_image_proc.launch.py left_namespace:=bcr_bot/stereo_camera/left right_namespace:=bcr_bot/stereo_camera/right

Humble + Fortress (Ubuntu 22.04)

Dependencies

In addition to ROS2 Humble and Gazebo Fortress installations, we need to manually install interfaces between ROS2 and Gazebo sim as follows,

sudo apt-get install ros-humble-ros-gz-sim ros-humble-ros-gz-bridge ros-humble-ros-gz-interfaces 

Remainder of the 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

Source Build

colcon build --packages-select bcr_bot

Binary Install

To install BCR bot in the binaries:

sudo apt-get install ros-humble-bcr-bot

Run

To launch the robot in Gazebo,

ros2 launch bcr_bot ign.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 ign.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

Note: To use stereo_image_proc with the stereo images excute following command:

ros2 launch stereo_image_proc stereo_image_proc.launch.py left_namespace:=bcr_bot/stereo_camera/left right_namespace:=bcr_bot/stereo_camera/right

Humble + Harmonic (Ubuntu 22.04)

Dependencies

In addition to ROS2 Humble and Gazebo Harmonic installations, we need to manually install interfaces between ROS2 and Gazebo sim as follows,

sudo apt-get install ros-humble-ros-gzharmonic

Remainder of the 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 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

Note:

  1. To use stereo_image_proc with the stereo images excute following command:
ros2 launch stereo_image_proc stereo_image_proc.launch.py left_namespace:=bcr_bot/stereo_camera/left right_namespace:=bcr_bot/stereo_camera/right

  1. Harmonic support is not available in the bcr_bot binaries yet.

Warning: gz-harmonic cannot be installed alongside gazebo-classic (eg. gazebo11) since both use the gz command line tool.

Humble + Isaac Sim (Ubuntu 22.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.usd or scene.usd from 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

Using Nav2 with bcr_bot

Nav2 is an open-source navigation package that enables a robot to navigate through an environment easily. It takes laser scan and odometry data, along with the map of the environment, as inputs.

NOTE: The command to run navigation is common between all versions of gazebo and Isaac sim.

To run Nav2 on bcr_bot:

ros2 launch bcr_bot nav2.launch.py

Simulation and Visualization

  1. Gz Sim (Ignition Gazebo) (small_warehouse World):

  2. Isaac Sim:

  3. Rviz (Depth camera) (small_warehouse World):

CHANGELOG

Changelog for package bcr_bot

1.0.2 (2024-04-02)

  • Setting Gazebo resource paths through launch files
  • Modified launch files to dynamically spawn bcr_bot

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged bcr_bot at Robotics Stack Exchange

No version for distro jazzy. Known supported distros are highlighted in the buttons above.
No version for distro rolling. Known supported distros are highlighted in the buttons above.

bcr_bot package from bcr_bot repo

bcr_bot

Package Summary

Tags No category tags.
Version 0.0.2
License Apache License 2.0
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/blackcoffeerobotics/bcr_bot.git
VCS Type git
VCS Version ros1
Last Updated 2024-06-24
Dev Status DEVELOPED
CI status Continuous Integration : 0 / 0
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The bcr_bot package

Additional Links

No additional links.

Maintainers

  • Gaurav Gupta
  • Devanshu Sharma

Authors

No additional authors.

New BCR Robot

https://github.com/blackcoffeerobotics/bcr_bot/assets/13151010/0fc570a3-c70c-415b-8222-b9573d5911c8

About

This repository contains a Gazebo simulation for a differential drive robot, equipped with an IMU, a depth camera, stereo camera and a 2D LiDAR. The primary contriution of this project is to support multiple ROS and Gazebo distros. Currently, the project supports the following versions -

  1. ROS Noetic + Gazebo Classic 11 (branch ros1)
  2. ROS2 Humble + Gazebo Classic 11 (branch ros2)
  3. ROS2 Humble + Gazebo Fortress (branch ros2)
  4. ROS2 Humble + Gazebo Harmonic (branch ros2)

Each of the following sections describes depedencies, build and run instructions for each of the above combinations

Noetic + Classic (Ubuntu 20.04)

Dependencies

In addition to ROS1 Noetic and Gazebo Classic installations, the 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

Source Build

catkin build --packages-select bcr_bot

Binary Install

To install BCR bot in the binaries:

sudo apt-get install ros-noetic-bcr-bot

Run

To launch the robot in Gazebo,

roslaunch bcr_bot gazebo.launch

To view in rviz,

roslaunch bcr_bot rviz.launch

Configuration

The launch file accepts multiple launch arguments,

roslaunch bcr_bot gazebo.launch 
	camera_enabled:=True \
	two_d_lidar_enabled:=True \
	position_x:=0.0 \
	position_y:=0.0 \
	orientation_yaw:=0.0 \
	odometry_source:=world \
	world_file:=small_warehouse.world \
	robot_namespace:="bcr_bot"

Note: To use stereo_image_proc with the stereo images excute following command:

ROS_NAMESPACE=bcr_bot/stereo_camera rosrun stereo_image_proc stereo_image_proc

Humble + Classic (Ubuntu 22.04)

Dependencies

In addition to ROS2 Humble and Gazebo Classic installations, we need to manually install gazebo_ros_pkgs (since the same branch supports Classic and Fortress)

sudo apt-get install ros-humble-gazebo-ros-pkgs

Remainder of the 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

Source Build

colcon build --packages-select bcr_bot

Binary Install

To install BCR bot in the binaries:

sudo apt-get install ros-humble-bcr-bot

Run

To launch the robot in Gazebo,

ros2 launch bcr_bot gazebo.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 gazebo.launch.py \
	camera_enabled:=True \
	two_d_lidar_enabled:=True \
	stereo_camera_enabled:=False \
	position_x:=0.0 \
	position_y:=0.0 \
	orientation_yaw:=0.0 \
	odometry_source:=world \
	world_file:=small_warehouse.sdf \
	robot_namespace:="bcr_bot"

Note: To use stereo_image_proc with the stereo images excute following command:

ros2 launch stereo_image_proc stereo_image_proc.launch.py left_namespace:=bcr_bot/stereo_camera/left right_namespace:=bcr_bot/stereo_camera/right

Humble + Fortress (Ubuntu 22.04)

Dependencies

In addition to ROS2 Humble and Gazebo Fortress installations, we need to manually install interfaces between ROS2 and Gazebo sim as follows,

sudo apt-get install ros-humble-ros-gz-sim ros-humble-ros-gz-bridge ros-humble-ros-gz-interfaces 

Remainder of the 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

Source Build

colcon build --packages-select bcr_bot

Binary Install

To install BCR bot in the binaries:

sudo apt-get install ros-humble-bcr-bot

Run

To launch the robot in Gazebo,

ros2 launch bcr_bot ign.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 ign.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

Note: To use stereo_image_proc with the stereo images excute following command:

ros2 launch stereo_image_proc stereo_image_proc.launch.py left_namespace:=bcr_bot/stereo_camera/left right_namespace:=bcr_bot/stereo_camera/right

Humble + Harmonic (Ubuntu 22.04)

Dependencies

In addition to ROS2 Humble and Gazebo Harmonic installations, we need to manually install interfaces between ROS2 and Gazebo sim as follows,

sudo apt-get install ros-humble-ros-gzharmonic

Remainder of the 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 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

Note:

  1. To use stereo_image_proc with the stereo images excute following command:
ros2 launch stereo_image_proc stereo_image_proc.launch.py left_namespace:=bcr_bot/stereo_camera/left right_namespace:=bcr_bot/stereo_camera/right

  1. Harmonic support is not available in the bcr_bot binaries yet.

Warning: gz-harmonic cannot be installed alongside gazebo-classic (eg. gazebo11) since both use the gz command line tool.

Simulation and Visualization

  1. Gz Sim (Ignition Gazebo) (small_warehouse World):

  2. Rviz (Depth camera) (small_warehouse World):

CHANGELOG

Changelog for package bcr_bot

0.0.2 (2024-04-03)

  • Setting Gazebo resource paths through launch files
  • Modified launch files to dynamically spawn bcr_bot

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

  • launch/bcr_bot_spawn.launch
      • two_d_lidar_enabled [default: true]
      • camera_enabled [default: true]
      • stereo_camera_enabled [default: false]
      • wheel_odom_topic [default: odom]
      • publish_wheel_odom_tf [default: true]
      • conveyor_enabled [default: false]
      • ground_truth_frame [default: map]
      • robot_namespace [default: ]
      • position_x [default: 0.0]
      • position_y [default: 0.0]
      • orientation_yaw [default: 0.0]
      • odometry_source [default: world]
  • launch/gazebo.launch
      • world_name [default: $(find bcr_bot)/worlds/small_warehouse.world]
      • gazebo_gui_enabled [default: true]
      • two_d_lidar_enabled [default: true]
      • camera_enabled [default: true]
      • stereo_camera_enabled [default: false]
      • wheel_odom_topic [default: odom]
      • publish_wheel_odom_tf [default: true]
      • conveyor_enabled [default: false]
      • ground_truth_frame [default: map]
      • robot_namespace [default: ]
      • position_x [default: 0.0]
      • position_y [default: 0.0]
      • orientation_yaw [default: 0.0]
      • odometry_source [default: world]
  • launch/rviz.launch
      • rviz_config [default: entire_setup.rviz]
      • two_d_lidar_enabled [default: true]
      • camera_enabled [default: true]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged bcr_bot at Robotics Stack Exchange

No version for distro ardent. Known supported distros are highlighted in the buttons above.
No version for distro bouncy. Known supported distros are highlighted in the buttons above.
No version for distro crystal. Known supported distros are highlighted in the buttons above.
No version for distro eloquent. Known supported distros are highlighted in the buttons above.
No version for distro dashing. Known supported distros are highlighted in the buttons above.
No version for distro galactic. Known supported distros are highlighted in the buttons above.
No version for distro foxy. Known supported distros are highlighted in the buttons above.
No version for distro iron. Known supported distros are highlighted in the buttons above.
No version for distro lunar. Known supported distros are highlighted in the buttons above.
No version for distro jade. Known supported distros are highlighted in the buttons above.
No version for distro indigo. Known supported distros are highlighted in the buttons above.
No version for distro hydro. Known supported distros are highlighted in the buttons above.
No version for distro kinetic. Known supported distros are highlighted in the buttons above.
No version for distro melodic. Known supported distros are highlighted in the buttons above.