Coder Social home page Coder Social logo

jeremylebon / bcr_bot Goto Github PK

View Code? Open in Web Editor NEW

This project forked from blackcoffeerobotics/bcr_bot

0.0 0.0 0.0 9.62 MB

A Gazebo-ROS AMR robot with differential drive, depth camera, IMU and 2D LiDAR

Home Page: https://blackcoffeerobotics.com/blog/migration-from-gazebo-classic-to-ignition-with-ros-2

License: Apache License 2.0

Shell 4.98% Python 83.44% CMake 1.95% Dockerfile 9.63%

bcr_bot's Introduction

New BCR Robot

amr_showcase_navigation.mp4

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)

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

Build

catkin build --packages-select 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

Build

colcon build --packages-select 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

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

Simulation and Visualization

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

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.