|
diffbot repositorypython teensy robot cpp robotics ros drive gazebo raspberry smart diffbot chassis rviz ros-control differential differential-drive-robot jetson-nano navigation-stack gazebo-simulation noetic |
|
diffbot repositorypython teensy robot cpp robotics ros drive gazebo raspberry smart diffbot chassis rviz ros-control differential differential-drive-robot jetson-nano navigation-stack gazebo-simulation noetic |
|
diffbot repositorypython teensy robot cpp robotics ros drive gazebo raspberry smart diffbot chassis rviz ros-control differential differential-drive-robot jetson-nano navigation-stack gazebo-simulation noetic |
|
diffbot repositorypython teensy robot cpp robotics ros drive gazebo raspberry smart diffbot chassis rviz ros-control differential differential-drive-robot jetson-nano navigation-stack gazebo-simulation noetic |
|
diffbot repositorypython teensy robot cpp robotics ros drive gazebo raspberry smart diffbot chassis rviz ros-control differential differential-drive-robot jetson-nano navigation-stack gazebo-simulation noetic |
|
diffbot repositorypython teensy robot cpp robotics ros drive gazebo raspberry smart diffbot chassis rviz ros-control differential differential-drive-robot jetson-nano navigation-stack gazebo-simulation noetic |
|
diffbot repositorypython teensy robot cpp robotics ros drive gazebo raspberry smart diffbot chassis rviz ros-control differential differential-drive-robot jetson-nano navigation-stack gazebo-simulation noetic |
|
diffbot repositorypython teensy robot cpp robotics ros drive gazebo raspberry smart diffbot chassis rviz ros-control differential differential-drive-robot jetson-nano navigation-stack gazebo-simulation noetic |
|
diffbot repositorypython teensy robot cpp robotics ros drive gazebo raspberry smart diffbot chassis rviz ros-control differential differential-drive-robot jetson-nano navigation-stack gazebo-simulation noetic diffbot_base diffbot_bringup diffbot_control diffbot_description diffbot_gazebo diffbot_mbf diffbot_msgs diffbot_navigation diffbot_robot diffbot_slam |
Repository Summary
| Description | DiffBot is an autonomous 2wd differential drive robot using ROS Noetic on a Raspberry Pi 4 B. With its SLAMTEC Lidar and the ROS Control hardware interface it's capable of navigating in an environment using the ROS Navigation stack and making use of SLAM algorithms to create maps of unknown environments. |
| Checkout URI | https://github.com/ros-mobile-robots/diffbot.git |
| VCS Type | git |
| VCS Version | noetic-devel |
| Last Updated | 2024-04-02 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Tags | python teensy robot cpp robotics ros drive gazebo raspberry smart diffbot chassis rviz ros-control differential differential-drive-robot jetson-nano navigation-stack gazebo-simulation noetic |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| diffbot_base | 1.1.0 |
| diffbot_bringup | 1.1.0 |
| diffbot_control | 1.1.0 |
| diffbot_description | 1.1.0 |
| diffbot_gazebo | 1.1.0 |
| diffbot_mbf | 1.1.0 |
| diffbot_msgs | 1.1.0 |
| diffbot_navigation | 1.1.0 |
| diffbot_robot | 1.1.0 |
| diffbot_slam | 1.1.0 |
README
DiffBot
DiffBot is an autonomous differential drive robot with two wheels. Its main processing unit is a Raspberry Pi 4 B running Ubuntu Mate 20.04 and the ROS 1 (ROS Noetic) middleware. This respository contains ROS driver packages, ROS Control Hardware Interface for the real robot and configurations for simulating DiffBot. The formatted documentation can be found at: https://ros-mobile-robots.com.
| DiffBot | Lidar SLAMTEC RPLidar A2 |
|---|---|
![]() |
![]() |
If you are looking for a 3D printable modular base, see the remo_description repository. You can use it directly with the software of this diffbot repository.
| Remo | Gazebo Simulation | RViz |
|---|---|---|
![]() |
![]() |
![]() |
It provides mounts for different camera modules, such as Raspi Cam v2, OAK-1, OAK-D and you can even design your own if you like. There is also support for different single board computers (Raspberry Pi and Nvidia Jetson Nano) through two changable decks. You are agin free to create your own.
Demonstration
SLAM and Navigation
| Real robot | Gazebo Simulation |
|---|---|
![]() |
|
:package: Package Overview
-
diffbot_base: ROS Control hardware interface includingcontroller_managercontrol loop for the real robot. Thescriptsfolder of this package contains the low-levelbase_controllerthat is running on the Teensy microcontroller. -
diffbot_bringup: Launch files to bring up the hardware drivers (camera, lidar, imu, ultrasonic, …) for the real DiffBot robot. -
diffbot_control: Configurations for thediff_drive_controllerof ROS Control used in Gazebo simulation and the real robot. -
diffbot_description: URDF description of DiffBot including its sensors. -
diffbot_gazebo: Simulation specific launch and configuration files for DiffBot. -
diffbot_msgs: Message definitions specific to DiffBot, for example the message for encoder data. -
diffbot_navigation: Navigation based onmove_basepackage; launch and configuration files. -
diffbot_slam: Simultaneous localization and mapping using different implementations (e.g., gmapping) to create a map of the environment
Installation
The packages are written for and tested with ROS 1 Noetic on Ubuntu 20.04 Focal Fossa. For the real robot Ubuntu Mate 20.04 for arm64 is installed on the Raspberry Pi 4 B with 4GB. The communication between the mobile robot and the work pc is done by configuring the ROS Network, see also the documentation.
Dependencies
The required Ubuntu packages are listed in software package sections found in the documentation. Other ROS catkin packages such as rplidar_ros need to be cloned into the catkin workspace.
For an automated and simplified dependency installation process install the vcstool, which is used in the next steps.
sudo apt install python3-vcstool
:hammer: How to Build
To build the packages in this repository including the Remo robot follow these steps:
-
cdinto an existing ROS Noetic catkin workspace or create a new one:
mkdir -p catkin_ws/src
- Clone this repository in the
srcfolder of your ROS Noetic catkin workspace:
cd catkin_ws/src
git clone https://github.com/fjp/diffbot.git
- Execute the
vcs importcommand from the root of the catkin workspace and pipe in thediffbot_dev.reposorremo_robot.reposYAML file, depending on where you execute the command, either the development PC or the SBC of Remo to clone the listed dependencies. Run the following command only on your development machine:
vcs import < src/diffbot/diffbot_dev.repos
Run the next command on Remo robot’s SBC:
vcs import < src/diffbot/remo_robot.repos
- Install the requried binary dependencies of all packages in the catkin workspace using the following
rosdepcommand:
rosdep install --from-paths src --ignore-src -r -y
- After installing the required dependencies build the catkin workspace, either with
catkin_make:
catkin_ws$ catkin_make
or using catkin-tools:
catkin_ws$ catkin build
File truncated at 100 lines see the full file







