English | 简体中文
Bubble is a ROS2-based open-source software stack made by the Birdiebot Team founded by the Mechanics and Science Innovation Base in Shanghai University of Engineering Science. Bubble provides a series of solution to the RMU related visual tasks.
Bubble documentation is maintained on the Bubble Documentation Page, follow the link for details.
Step-by-step execution and configuration walk-through could be found here。
# Install vcs tools
sudo apt-get install python3-vcstool
mkdir src
# Load source code
vcs import src < bubble.repos
# Build source code
colcon build --symlink-install
# Allow external applications to connect to the host's display
xhost +
# Run the Bubble Docker container
docker run -it --rm --net=host --runtime nvidia \
-e DISPLAY=$DISPLAY -v /tmp/.X11-unix/:/tmp/.X11-unix \
--device=/dev/bus/usb/ --device=/dev/ttyTHS0 \
-v /home/nvidia/Desktop/bubble:/home/bubble \
birdiebot/bubble-aarch64v8:v1.0-l4t-r32.7.1 /bin/bash
# Run project
ros2 launch bubble_bringup infantry_launch.py
# Using infantry role as example here
# For detailed information, please check the bubble_bringup repo
# Modifying the configuration file
gedit ./src/bubble_bringup/config/infantry_param.yaml
gedit ./src/bubble_bringup/launch/infantry_launch.py
# Run project
. install/setup.sh
ros2 launch bubble_bringup infantry_launch.py
Bubble uses a modular design. Each module is maintained with independent repositories and thus new features could be adapted swiftly into our ecosystem.
Here is the demonstartion of Bubble in action.
repos name | link | notes |
---|---|---|
bubble_core | bubble_core repo | Used for RMU communication protocol between MCU and onbord computer, contents of the protocol is documented in birdiebot communication protocol manual |
bubble_camera | bubble_camera repo | Maintains ROS packages for different cameras we used. main for common USB camera, hikrobot_camera for Hikrobot Industrial camera, and gxusb_camera for Daheng Industrial camera |
bubble_interface | bubble_interface repo | Bubble inter-package message type definition |
bubble_detector | bubble_detector repo | Visual module, visual uses traditional CV algorithms for armor detection, visual_SJTU package is a customized intergration of Shanghai Jiaotong University sentinel auto-aiming system with improved YOLOv5 network for armor detection, visual_rune package is for RMUC2019-2022 rune detection |
bubble_contrib | bubble_contrib repo | Package for RMU tasks. The aiming package for autoaiming (both armors and runes), and the decesion package for robot behavior contol using finite state machines (FSM) |
bubble_resouces | bubble_resouces repo | Resource files that may be needed in the project, including ROS Bag data for testing purpose |
bubble_navigation | bubble_navigation repo | Robot URDF |
bubble_bringup | bubble_bringup repo | Launch files and configuration of each robot role |
Birdiebot is a school-level tech-innovation team oprated under the office of Academic Affairs in Shanghai University of Engineering Science. Supported by the Mechanics Innovation Base of Student Science and Technology Innovation Center, Birdiebot is committed to conduct technology innovation activities in robotics related affiars. We hope our work will encourage and promote new engineers for the robotics industry in China.
Everyone is welcomed to join the Bubble project to further imporve this ecosystem for the RoboMaster competition. We have some future work plans and ideas listed here.
Questions could be raised through Issues page or in the RoboMaster forum. For Bubble related topics, you can also reach us at [email protected]. We are also open for forum and demonstration sessions with Robomaster participants, either online or offline. Feel free to contact us at [email protected].
Projects that Bubble's referenced or based on could be found here.
The Bubble project is licensed under the GNU AGPL3.0 License.
Copyright of Shanghai University of Engineering Science Birdiebot Team. All rights reserved.