Package Summary
Tags | No category tags. |
Version | 0.0.1 |
License | Apache-2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | ROS 1 & 2 repos based on Mini Pupper legged robots from MangDang |
Checkout URI | https://github.com/mangdangroboticsclub/mini_pupper_ros.git |
VCS Type | git |
VCS Version | ros2-dev |
Last Updated | 2025-09-26 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- kishan
Authors
Mini Pupper Fleet Control System
This ROS 2 package enables multi-robot operation for a group of Mini Pupper 2 robots, with centralized command distribution and individual robot pose estimation.
The system combines fleet-level command coordination, IMU-based Extended Kalman Filter (EKF) pose estimation with attitude correction, and individual robot behaviour control to enable scalable multi-robot deployments.
Features
-
Centralized Fleet Control with
/cmd_vel
to distributed robot commands - SE(3) Extended Kalman Filter for robust pose estimation with IMU attitude correction
- Individual Robot Behaviour with heading control and velocity regulation
- Scalable Architecture supporting 1 to N robots with namespace isolation
- Real-time Control at 66.7 Hz with configurable parameters
Quick Start
Multi-Robot Fleet - 3 robot example
Robot Terminals (SSH to each robot individually):
# Robot 1 SSH Terminal
source ~/ros2_ws/install/setup.bash
ros2 launch mini_pupper_bringup bringup_with_stanford_controller.launch.py multi_robot:=true robot_namespace:=robot1
# Robot 2 SSH Terminal
source ~/ros2_ws/install/setup.bash
ros2 launch mini_pupper_bringup bringup_with_stanford_controller.launch.py multi_robot:=true robot_namespace:=robot2
# Robot 3 SSH Terminal
source ~/ros2_ws/install/setup.bash
ros2 launch mini_pupper_bringup bringup_with_stanford_controller.launch.py multi_robot:=true robot_namespace:=robot3
Host PC Terminal 1 - Fleet Controller:
source ~/ros2_ws/install/setup.bash
ros2 launch mini_pupper_fleet fleet_controller.launch.py robot_count:=3
Host PC Terminal 2 - Teleop:
source ~/ros2_ws/install/setup.bash
ros2 run teleop_twist_keyboard teleop_twist_keyboard
Total Terminal Count: 5 terminals (3 robot SSH + 2 host PC)
This scales to any number of Mini Puppers: run the Stanford bringup on an SSH terminal for each robot, then pass the number of robots you wish to control to the fleet controller.
If you want a Mini Pupper to be independent of the fleet, the fleet controller creates nodes for namespaces robot1
..robotN
(based on robot_count
). Give any independent robot a namespace greater than N
(e.g., robot4
or higher when robot_count:=3
).
Complete Node Hierarchy
After launching, the system hierarchy looks like:
Host PC:
├── fleet_controller_node (global)
├── robot1/imu_ekf_node
├── robot1/robot_behaviour_node
├── robot2/imu_ekf_node
├── robot2/robot_behaviour_node
├── robot3/imu_ekf_node
├── robot3/robot_behaviour_node
└── teleop_twist_keyboard (global)
Robot 1:
└── robot1/ (Stanford Controller)
Robot 2:
└── robot2/ (Stanford Controller)
Robot 3:
└── robot3/ (Stanford Controller)
Architecture Overview
A simple hierarchy separates fleet-level coordination from per-robot control:
Global Command Input (/cmd_vel)
v
Fleet Controller (no namespace)
v
/fleet_command
v
robot1/: imu_ekf_node + robot_behaviour_node -> robot_command
robot2/: imu_ekf_node + robot_behaviour_node -> robot_command
robot3/: imu_ekf_node + robot_behaviour_node -> robot_command
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
ament_lint_auto | |
ament_lint_common | |
rclcpp | |
sensor_msgs | |
geometry_msgs | |
tf2 | |
mini_pupper_interfaces |
System Dependencies
Name |
---|
eigen |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged mini_pupper_fleet at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.0.1 |
License | Apache-2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | ROS 1 & 2 repos based on Mini Pupper legged robots from MangDang |
Checkout URI | https://github.com/mangdangroboticsclub/mini_pupper_ros.git |
VCS Type | git |
VCS Version | ros2-dev |
Last Updated | 2025-09-26 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- kishan
Authors
Mini Pupper Fleet Control System
This ROS 2 package enables multi-robot operation for a group of Mini Pupper 2 robots, with centralized command distribution and individual robot pose estimation.
The system combines fleet-level command coordination, IMU-based Extended Kalman Filter (EKF) pose estimation with attitude correction, and individual robot behaviour control to enable scalable multi-robot deployments.
Features
-
Centralized Fleet Control with
/cmd_vel
to distributed robot commands - SE(3) Extended Kalman Filter for robust pose estimation with IMU attitude correction
- Individual Robot Behaviour with heading control and velocity regulation
- Scalable Architecture supporting 1 to N robots with namespace isolation
- Real-time Control at 66.7 Hz with configurable parameters
Quick Start
Multi-Robot Fleet - 3 robot example
Robot Terminals (SSH to each robot individually):
# Robot 1 SSH Terminal
source ~/ros2_ws/install/setup.bash
ros2 launch mini_pupper_bringup bringup_with_stanford_controller.launch.py multi_robot:=true robot_namespace:=robot1
# Robot 2 SSH Terminal
source ~/ros2_ws/install/setup.bash
ros2 launch mini_pupper_bringup bringup_with_stanford_controller.launch.py multi_robot:=true robot_namespace:=robot2
# Robot 3 SSH Terminal
source ~/ros2_ws/install/setup.bash
ros2 launch mini_pupper_bringup bringup_with_stanford_controller.launch.py multi_robot:=true robot_namespace:=robot3
Host PC Terminal 1 - Fleet Controller:
source ~/ros2_ws/install/setup.bash
ros2 launch mini_pupper_fleet fleet_controller.launch.py robot_count:=3
Host PC Terminal 2 - Teleop:
source ~/ros2_ws/install/setup.bash
ros2 run teleop_twist_keyboard teleop_twist_keyboard
Total Terminal Count: 5 terminals (3 robot SSH + 2 host PC)
This scales to any number of Mini Puppers: run the Stanford bringup on an SSH terminal for each robot, then pass the number of robots you wish to control to the fleet controller.
If you want a Mini Pupper to be independent of the fleet, the fleet controller creates nodes for namespaces robot1
..robotN
(based on robot_count
). Give any independent robot a namespace greater than N
(e.g., robot4
or higher when robot_count:=3
).
Complete Node Hierarchy
After launching, the system hierarchy looks like:
Host PC:
├── fleet_controller_node (global)
├── robot1/imu_ekf_node
├── robot1/robot_behaviour_node
├── robot2/imu_ekf_node
├── robot2/robot_behaviour_node
├── robot3/imu_ekf_node
├── robot3/robot_behaviour_node
└── teleop_twist_keyboard (global)
Robot 1:
└── robot1/ (Stanford Controller)
Robot 2:
└── robot2/ (Stanford Controller)
Robot 3:
└── robot3/ (Stanford Controller)
Architecture Overview
A simple hierarchy separates fleet-level coordination from per-robot control:
Global Command Input (/cmd_vel)
v
Fleet Controller (no namespace)
v
/fleet_command
v
robot1/: imu_ekf_node + robot_behaviour_node -> robot_command
robot2/: imu_ekf_node + robot_behaviour_node -> robot_command
robot3/: imu_ekf_node + robot_behaviour_node -> robot_command
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
ament_lint_auto | |
ament_lint_common | |
rclcpp | |
sensor_msgs | |
geometry_msgs | |
tf2 | |
mini_pupper_interfaces |
System Dependencies
Name |
---|
eigen |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged mini_pupper_fleet at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.0.1 |
License | Apache-2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | ROS 1 & 2 repos based on Mini Pupper legged robots from MangDang |
Checkout URI | https://github.com/mangdangroboticsclub/mini_pupper_ros.git |
VCS Type | git |
VCS Version | ros2-dev |
Last Updated | 2025-09-26 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- kishan
Authors
Mini Pupper Fleet Control System
This ROS 2 package enables multi-robot operation for a group of Mini Pupper 2 robots, with centralized command distribution and individual robot pose estimation.
The system combines fleet-level command coordination, IMU-based Extended Kalman Filter (EKF) pose estimation with attitude correction, and individual robot behaviour control to enable scalable multi-robot deployments.
Features
-
Centralized Fleet Control with
/cmd_vel
to distributed robot commands - SE(3) Extended Kalman Filter for robust pose estimation with IMU attitude correction
- Individual Robot Behaviour with heading control and velocity regulation
- Scalable Architecture supporting 1 to N robots with namespace isolation
- Real-time Control at 66.7 Hz with configurable parameters
Quick Start
Multi-Robot Fleet - 3 robot example
Robot Terminals (SSH to each robot individually):
# Robot 1 SSH Terminal
source ~/ros2_ws/install/setup.bash
ros2 launch mini_pupper_bringup bringup_with_stanford_controller.launch.py multi_robot:=true robot_namespace:=robot1
# Robot 2 SSH Terminal
source ~/ros2_ws/install/setup.bash
ros2 launch mini_pupper_bringup bringup_with_stanford_controller.launch.py multi_robot:=true robot_namespace:=robot2
# Robot 3 SSH Terminal
source ~/ros2_ws/install/setup.bash
ros2 launch mini_pupper_bringup bringup_with_stanford_controller.launch.py multi_robot:=true robot_namespace:=robot3
Host PC Terminal 1 - Fleet Controller:
source ~/ros2_ws/install/setup.bash
ros2 launch mini_pupper_fleet fleet_controller.launch.py robot_count:=3
Host PC Terminal 2 - Teleop:
source ~/ros2_ws/install/setup.bash
ros2 run teleop_twist_keyboard teleop_twist_keyboard
Total Terminal Count: 5 terminals (3 robot SSH + 2 host PC)
This scales to any number of Mini Puppers: run the Stanford bringup on an SSH terminal for each robot, then pass the number of robots you wish to control to the fleet controller.
If you want a Mini Pupper to be independent of the fleet, the fleet controller creates nodes for namespaces robot1
..robotN
(based on robot_count
). Give any independent robot a namespace greater than N
(e.g., robot4
or higher when robot_count:=3
).
Complete Node Hierarchy
After launching, the system hierarchy looks like:
Host PC:
├── fleet_controller_node (global)
├── robot1/imu_ekf_node
├── robot1/robot_behaviour_node
├── robot2/imu_ekf_node
├── robot2/robot_behaviour_node
├── robot3/imu_ekf_node
├── robot3/robot_behaviour_node
└── teleop_twist_keyboard (global)
Robot 1:
└── robot1/ (Stanford Controller)
Robot 2:
└── robot2/ (Stanford Controller)
Robot 3:
└── robot3/ (Stanford Controller)
Architecture Overview
A simple hierarchy separates fleet-level coordination from per-robot control:
Global Command Input (/cmd_vel)
v
Fleet Controller (no namespace)
v
/fleet_command
v
robot1/: imu_ekf_node + robot_behaviour_node -> robot_command
robot2/: imu_ekf_node + robot_behaviour_node -> robot_command
robot3/: imu_ekf_node + robot_behaviour_node -> robot_command
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
ament_lint_auto | |
ament_lint_common | |
rclcpp | |
sensor_msgs | |
geometry_msgs | |
tf2 | |
mini_pupper_interfaces |
System Dependencies
Name |
---|
eigen |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged mini_pupper_fleet at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.0.1 |
License | Apache-2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | ROS 1 & 2 repos based on Mini Pupper legged robots from MangDang |
Checkout URI | https://github.com/mangdangroboticsclub/mini_pupper_ros.git |
VCS Type | git |
VCS Version | ros2-dev |
Last Updated | 2025-09-26 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- kishan
Authors
Mini Pupper Fleet Control System
This ROS 2 package enables multi-robot operation for a group of Mini Pupper 2 robots, with centralized command distribution and individual robot pose estimation.
The system combines fleet-level command coordination, IMU-based Extended Kalman Filter (EKF) pose estimation with attitude correction, and individual robot behaviour control to enable scalable multi-robot deployments.
Features
-
Centralized Fleet Control with
/cmd_vel
to distributed robot commands - SE(3) Extended Kalman Filter for robust pose estimation with IMU attitude correction
- Individual Robot Behaviour with heading control and velocity regulation
- Scalable Architecture supporting 1 to N robots with namespace isolation
- Real-time Control at 66.7 Hz with configurable parameters
Quick Start
Multi-Robot Fleet - 3 robot example
Robot Terminals (SSH to each robot individually):
# Robot 1 SSH Terminal
source ~/ros2_ws/install/setup.bash
ros2 launch mini_pupper_bringup bringup_with_stanford_controller.launch.py multi_robot:=true robot_namespace:=robot1
# Robot 2 SSH Terminal
source ~/ros2_ws/install/setup.bash
ros2 launch mini_pupper_bringup bringup_with_stanford_controller.launch.py multi_robot:=true robot_namespace:=robot2
# Robot 3 SSH Terminal
source ~/ros2_ws/install/setup.bash
ros2 launch mini_pupper_bringup bringup_with_stanford_controller.launch.py multi_robot:=true robot_namespace:=robot3
Host PC Terminal 1 - Fleet Controller:
source ~/ros2_ws/install/setup.bash
ros2 launch mini_pupper_fleet fleet_controller.launch.py robot_count:=3
Host PC Terminal 2 - Teleop:
source ~/ros2_ws/install/setup.bash
ros2 run teleop_twist_keyboard teleop_twist_keyboard
Total Terminal Count: 5 terminals (3 robot SSH + 2 host PC)
This scales to any number of Mini Puppers: run the Stanford bringup on an SSH terminal for each robot, then pass the number of robots you wish to control to the fleet controller.
If you want a Mini Pupper to be independent of the fleet, the fleet controller creates nodes for namespaces robot1
..robotN
(based on robot_count
). Give any independent robot a namespace greater than N
(e.g., robot4
or higher when robot_count:=3
).
Complete Node Hierarchy
After launching, the system hierarchy looks like:
Host PC:
├── fleet_controller_node (global)
├── robot1/imu_ekf_node
├── robot1/robot_behaviour_node
├── robot2/imu_ekf_node
├── robot2/robot_behaviour_node
├── robot3/imu_ekf_node
├── robot3/robot_behaviour_node
└── teleop_twist_keyboard (global)
Robot 1:
└── robot1/ (Stanford Controller)
Robot 2:
└── robot2/ (Stanford Controller)
Robot 3:
└── robot3/ (Stanford Controller)
Architecture Overview
A simple hierarchy separates fleet-level coordination from per-robot control:
Global Command Input (/cmd_vel)
v
Fleet Controller (no namespace)
v
/fleet_command
v
robot1/: imu_ekf_node + robot_behaviour_node -> robot_command
robot2/: imu_ekf_node + robot_behaviour_node -> robot_command
robot3/: imu_ekf_node + robot_behaviour_node -> robot_command
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
ament_lint_auto | |
ament_lint_common | |
rclcpp | |
sensor_msgs | |
geometry_msgs | |
tf2 | |
mini_pupper_interfaces |
System Dependencies
Name |
---|
eigen |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged mini_pupper_fleet at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.0.1 |
License | Apache-2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | ROS 1 & 2 repos based on Mini Pupper legged robots from MangDang |
Checkout URI | https://github.com/mangdangroboticsclub/mini_pupper_ros.git |
VCS Type | git |
VCS Version | ros2-dev |
Last Updated | 2025-09-26 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- kishan
Authors
Mini Pupper Fleet Control System
This ROS 2 package enables multi-robot operation for a group of Mini Pupper 2 robots, with centralized command distribution and individual robot pose estimation.
The system combines fleet-level command coordination, IMU-based Extended Kalman Filter (EKF) pose estimation with attitude correction, and individual robot behaviour control to enable scalable multi-robot deployments.
Features
-
Centralized Fleet Control with
/cmd_vel
to distributed robot commands - SE(3) Extended Kalman Filter for robust pose estimation with IMU attitude correction
- Individual Robot Behaviour with heading control and velocity regulation
- Scalable Architecture supporting 1 to N robots with namespace isolation
- Real-time Control at 66.7 Hz with configurable parameters
Quick Start
Multi-Robot Fleet - 3 robot example
Robot Terminals (SSH to each robot individually):
# Robot 1 SSH Terminal
source ~/ros2_ws/install/setup.bash
ros2 launch mini_pupper_bringup bringup_with_stanford_controller.launch.py multi_robot:=true robot_namespace:=robot1
# Robot 2 SSH Terminal
source ~/ros2_ws/install/setup.bash
ros2 launch mini_pupper_bringup bringup_with_stanford_controller.launch.py multi_robot:=true robot_namespace:=robot2
# Robot 3 SSH Terminal
source ~/ros2_ws/install/setup.bash
ros2 launch mini_pupper_bringup bringup_with_stanford_controller.launch.py multi_robot:=true robot_namespace:=robot3
Host PC Terminal 1 - Fleet Controller:
source ~/ros2_ws/install/setup.bash
ros2 launch mini_pupper_fleet fleet_controller.launch.py robot_count:=3
Host PC Terminal 2 - Teleop:
source ~/ros2_ws/install/setup.bash
ros2 run teleop_twist_keyboard teleop_twist_keyboard
Total Terminal Count: 5 terminals (3 robot SSH + 2 host PC)
This scales to any number of Mini Puppers: run the Stanford bringup on an SSH terminal for each robot, then pass the number of robots you wish to control to the fleet controller.
If you want a Mini Pupper to be independent of the fleet, the fleet controller creates nodes for namespaces robot1
..robotN
(based on robot_count
). Give any independent robot a namespace greater than N
(e.g., robot4
or higher when robot_count:=3
).
Complete Node Hierarchy
After launching, the system hierarchy looks like:
Host PC:
├── fleet_controller_node (global)
├── robot1/imu_ekf_node
├── robot1/robot_behaviour_node
├── robot2/imu_ekf_node
├── robot2/robot_behaviour_node
├── robot3/imu_ekf_node
├── robot3/robot_behaviour_node
└── teleop_twist_keyboard (global)
Robot 1:
└── robot1/ (Stanford Controller)
Robot 2:
└── robot2/ (Stanford Controller)
Robot 3:
└── robot3/ (Stanford Controller)
Architecture Overview
A simple hierarchy separates fleet-level coordination from per-robot control:
Global Command Input (/cmd_vel)
v
Fleet Controller (no namespace)
v
/fleet_command
v
robot1/: imu_ekf_node + robot_behaviour_node -> robot_command
robot2/: imu_ekf_node + robot_behaviour_node -> robot_command
robot3/: imu_ekf_node + robot_behaviour_node -> robot_command
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
ament_lint_auto | |
ament_lint_common | |
rclcpp | |
sensor_msgs | |
geometry_msgs | |
tf2 | |
mini_pupper_interfaces |
System Dependencies
Name |
---|
eigen |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged mini_pupper_fleet at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.0.1 |
License | Apache-2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | ROS 1 & 2 repos based on Mini Pupper legged robots from MangDang |
Checkout URI | https://github.com/mangdangroboticsclub/mini_pupper_ros.git |
VCS Type | git |
VCS Version | ros2-dev |
Last Updated | 2025-09-26 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- kishan
Authors
Mini Pupper Fleet Control System
This ROS 2 package enables multi-robot operation for a group of Mini Pupper 2 robots, with centralized command distribution and individual robot pose estimation.
The system combines fleet-level command coordination, IMU-based Extended Kalman Filter (EKF) pose estimation with attitude correction, and individual robot behaviour control to enable scalable multi-robot deployments.
Features
-
Centralized Fleet Control with
/cmd_vel
to distributed robot commands - SE(3) Extended Kalman Filter for robust pose estimation with IMU attitude correction
- Individual Robot Behaviour with heading control and velocity regulation
- Scalable Architecture supporting 1 to N robots with namespace isolation
- Real-time Control at 66.7 Hz with configurable parameters
Quick Start
Multi-Robot Fleet - 3 robot example
Robot Terminals (SSH to each robot individually):
# Robot 1 SSH Terminal
source ~/ros2_ws/install/setup.bash
ros2 launch mini_pupper_bringup bringup_with_stanford_controller.launch.py multi_robot:=true robot_namespace:=robot1
# Robot 2 SSH Terminal
source ~/ros2_ws/install/setup.bash
ros2 launch mini_pupper_bringup bringup_with_stanford_controller.launch.py multi_robot:=true robot_namespace:=robot2
# Robot 3 SSH Terminal
source ~/ros2_ws/install/setup.bash
ros2 launch mini_pupper_bringup bringup_with_stanford_controller.launch.py multi_robot:=true robot_namespace:=robot3
Host PC Terminal 1 - Fleet Controller:
source ~/ros2_ws/install/setup.bash
ros2 launch mini_pupper_fleet fleet_controller.launch.py robot_count:=3
Host PC Terminal 2 - Teleop:
source ~/ros2_ws/install/setup.bash
ros2 run teleop_twist_keyboard teleop_twist_keyboard
Total Terminal Count: 5 terminals (3 robot SSH + 2 host PC)
This scales to any number of Mini Puppers: run the Stanford bringup on an SSH terminal for each robot, then pass the number of robots you wish to control to the fleet controller.
If you want a Mini Pupper to be independent of the fleet, the fleet controller creates nodes for namespaces robot1
..robotN
(based on robot_count
). Give any independent robot a namespace greater than N
(e.g., robot4
or higher when robot_count:=3
).
Complete Node Hierarchy
After launching, the system hierarchy looks like:
Host PC:
├── fleet_controller_node (global)
├── robot1/imu_ekf_node
├── robot1/robot_behaviour_node
├── robot2/imu_ekf_node
├── robot2/robot_behaviour_node
├── robot3/imu_ekf_node
├── robot3/robot_behaviour_node
└── teleop_twist_keyboard (global)
Robot 1:
└── robot1/ (Stanford Controller)
Robot 2:
└── robot2/ (Stanford Controller)
Robot 3:
└── robot3/ (Stanford Controller)
Architecture Overview
A simple hierarchy separates fleet-level coordination from per-robot control:
Global Command Input (/cmd_vel)
v
Fleet Controller (no namespace)
v
/fleet_command
v
robot1/: imu_ekf_node + robot_behaviour_node -> robot_command
robot2/: imu_ekf_node + robot_behaviour_node -> robot_command
robot3/: imu_ekf_node + robot_behaviour_node -> robot_command
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
ament_lint_auto | |
ament_lint_common | |
rclcpp | |
sensor_msgs | |
geometry_msgs | |
tf2 | |
mini_pupper_interfaces |
System Dependencies
Name |
---|
eigen |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged mini_pupper_fleet at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.0.1 |
License | Apache-2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | ROS 1 & 2 repos based on Mini Pupper legged robots from MangDang |
Checkout URI | https://github.com/mangdangroboticsclub/mini_pupper_ros.git |
VCS Type | git |
VCS Version | ros2-dev |
Last Updated | 2025-09-26 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- kishan
Authors
Mini Pupper Fleet Control System
This ROS 2 package enables multi-robot operation for a group of Mini Pupper 2 robots, with centralized command distribution and individual robot pose estimation.
The system combines fleet-level command coordination, IMU-based Extended Kalman Filter (EKF) pose estimation with attitude correction, and individual robot behaviour control to enable scalable multi-robot deployments.
Features
-
Centralized Fleet Control with
/cmd_vel
to distributed robot commands - SE(3) Extended Kalman Filter for robust pose estimation with IMU attitude correction
- Individual Robot Behaviour with heading control and velocity regulation
- Scalable Architecture supporting 1 to N robots with namespace isolation
- Real-time Control at 66.7 Hz with configurable parameters
Quick Start
Multi-Robot Fleet - 3 robot example
Robot Terminals (SSH to each robot individually):
# Robot 1 SSH Terminal
source ~/ros2_ws/install/setup.bash
ros2 launch mini_pupper_bringup bringup_with_stanford_controller.launch.py multi_robot:=true robot_namespace:=robot1
# Robot 2 SSH Terminal
source ~/ros2_ws/install/setup.bash
ros2 launch mini_pupper_bringup bringup_with_stanford_controller.launch.py multi_robot:=true robot_namespace:=robot2
# Robot 3 SSH Terminal
source ~/ros2_ws/install/setup.bash
ros2 launch mini_pupper_bringup bringup_with_stanford_controller.launch.py multi_robot:=true robot_namespace:=robot3
Host PC Terminal 1 - Fleet Controller:
source ~/ros2_ws/install/setup.bash
ros2 launch mini_pupper_fleet fleet_controller.launch.py robot_count:=3
Host PC Terminal 2 - Teleop:
source ~/ros2_ws/install/setup.bash
ros2 run teleop_twist_keyboard teleop_twist_keyboard
Total Terminal Count: 5 terminals (3 robot SSH + 2 host PC)
This scales to any number of Mini Puppers: run the Stanford bringup on an SSH terminal for each robot, then pass the number of robots you wish to control to the fleet controller.
If you want a Mini Pupper to be independent of the fleet, the fleet controller creates nodes for namespaces robot1
..robotN
(based on robot_count
). Give any independent robot a namespace greater than N
(e.g., robot4
or higher when robot_count:=3
).
Complete Node Hierarchy
After launching, the system hierarchy looks like:
Host PC:
├── fleet_controller_node (global)
├── robot1/imu_ekf_node
├── robot1/robot_behaviour_node
├── robot2/imu_ekf_node
├── robot2/robot_behaviour_node
├── robot3/imu_ekf_node
├── robot3/robot_behaviour_node
└── teleop_twist_keyboard (global)
Robot 1:
└── robot1/ (Stanford Controller)
Robot 2:
└── robot2/ (Stanford Controller)
Robot 3:
└── robot3/ (Stanford Controller)
Architecture Overview
A simple hierarchy separates fleet-level coordination from per-robot control:
Global Command Input (/cmd_vel)
v
Fleet Controller (no namespace)
v
/fleet_command
v
robot1/: imu_ekf_node + robot_behaviour_node -> robot_command
robot2/: imu_ekf_node + robot_behaviour_node -> robot_command
robot3/: imu_ekf_node + robot_behaviour_node -> robot_command
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
ament_lint_auto | |
ament_lint_common | |
rclcpp | |
sensor_msgs | |
geometry_msgs | |
tf2 | |
mini_pupper_interfaces |
System Dependencies
Name |
---|
eigen |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged mini_pupper_fleet at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.0.1 |
License | Apache-2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | ROS 1 & 2 repos based on Mini Pupper legged robots from MangDang |
Checkout URI | https://github.com/mangdangroboticsclub/mini_pupper_ros.git |
VCS Type | git |
VCS Version | ros2-dev |
Last Updated | 2025-09-26 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- kishan
Authors
Mini Pupper Fleet Control System
This ROS 2 package enables multi-robot operation for a group of Mini Pupper 2 robots, with centralized command distribution and individual robot pose estimation.
The system combines fleet-level command coordination, IMU-based Extended Kalman Filter (EKF) pose estimation with attitude correction, and individual robot behaviour control to enable scalable multi-robot deployments.
Features
-
Centralized Fleet Control with
/cmd_vel
to distributed robot commands - SE(3) Extended Kalman Filter for robust pose estimation with IMU attitude correction
- Individual Robot Behaviour with heading control and velocity regulation
- Scalable Architecture supporting 1 to N robots with namespace isolation
- Real-time Control at 66.7 Hz with configurable parameters
Quick Start
Multi-Robot Fleet - 3 robot example
Robot Terminals (SSH to each robot individually):
# Robot 1 SSH Terminal
source ~/ros2_ws/install/setup.bash
ros2 launch mini_pupper_bringup bringup_with_stanford_controller.launch.py multi_robot:=true robot_namespace:=robot1
# Robot 2 SSH Terminal
source ~/ros2_ws/install/setup.bash
ros2 launch mini_pupper_bringup bringup_with_stanford_controller.launch.py multi_robot:=true robot_namespace:=robot2
# Robot 3 SSH Terminal
source ~/ros2_ws/install/setup.bash
ros2 launch mini_pupper_bringup bringup_with_stanford_controller.launch.py multi_robot:=true robot_namespace:=robot3
Host PC Terminal 1 - Fleet Controller:
source ~/ros2_ws/install/setup.bash
ros2 launch mini_pupper_fleet fleet_controller.launch.py robot_count:=3
Host PC Terminal 2 - Teleop:
source ~/ros2_ws/install/setup.bash
ros2 run teleop_twist_keyboard teleop_twist_keyboard
Total Terminal Count: 5 terminals (3 robot SSH + 2 host PC)
This scales to any number of Mini Puppers: run the Stanford bringup on an SSH terminal for each robot, then pass the number of robots you wish to control to the fleet controller.
If you want a Mini Pupper to be independent of the fleet, the fleet controller creates nodes for namespaces robot1
..robotN
(based on robot_count
). Give any independent robot a namespace greater than N
(e.g., robot4
or higher when robot_count:=3
).
Complete Node Hierarchy
After launching, the system hierarchy looks like:
Host PC:
├── fleet_controller_node (global)
├── robot1/imu_ekf_node
├── robot1/robot_behaviour_node
├── robot2/imu_ekf_node
├── robot2/robot_behaviour_node
├── robot3/imu_ekf_node
├── robot3/robot_behaviour_node
└── teleop_twist_keyboard (global)
Robot 1:
└── robot1/ (Stanford Controller)
Robot 2:
└── robot2/ (Stanford Controller)
Robot 3:
└── robot3/ (Stanford Controller)
Architecture Overview
A simple hierarchy separates fleet-level coordination from per-robot control:
Global Command Input (/cmd_vel)
v
Fleet Controller (no namespace)
v
/fleet_command
v
robot1/: imu_ekf_node + robot_behaviour_node -> robot_command
robot2/: imu_ekf_node + robot_behaviour_node -> robot_command
robot3/: imu_ekf_node + robot_behaviour_node -> robot_command
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
ament_lint_auto | |
ament_lint_common | |
rclcpp | |
sensor_msgs | |
geometry_msgs | |
tf2 | |
mini_pupper_interfaces |
System Dependencies
Name |
---|
eigen |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged mini_pupper_fleet at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.0.1 |
License | Apache-2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | ROS 1 & 2 repos based on Mini Pupper legged robots from MangDang |
Checkout URI | https://github.com/mangdangroboticsclub/mini_pupper_ros.git |
VCS Type | git |
VCS Version | ros2-dev |
Last Updated | 2025-09-26 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- kishan
Authors
Mini Pupper Fleet Control System
This ROS 2 package enables multi-robot operation for a group of Mini Pupper 2 robots, with centralized command distribution and individual robot pose estimation.
The system combines fleet-level command coordination, IMU-based Extended Kalman Filter (EKF) pose estimation with attitude correction, and individual robot behaviour control to enable scalable multi-robot deployments.
Features
-
Centralized Fleet Control with
/cmd_vel
to distributed robot commands - SE(3) Extended Kalman Filter for robust pose estimation with IMU attitude correction
- Individual Robot Behaviour with heading control and velocity regulation
- Scalable Architecture supporting 1 to N robots with namespace isolation
- Real-time Control at 66.7 Hz with configurable parameters
Quick Start
Multi-Robot Fleet - 3 robot example
Robot Terminals (SSH to each robot individually):
# Robot 1 SSH Terminal
source ~/ros2_ws/install/setup.bash
ros2 launch mini_pupper_bringup bringup_with_stanford_controller.launch.py multi_robot:=true robot_namespace:=robot1
# Robot 2 SSH Terminal
source ~/ros2_ws/install/setup.bash
ros2 launch mini_pupper_bringup bringup_with_stanford_controller.launch.py multi_robot:=true robot_namespace:=robot2
# Robot 3 SSH Terminal
source ~/ros2_ws/install/setup.bash
ros2 launch mini_pupper_bringup bringup_with_stanford_controller.launch.py multi_robot:=true robot_namespace:=robot3
Host PC Terminal 1 - Fleet Controller:
source ~/ros2_ws/install/setup.bash
ros2 launch mini_pupper_fleet fleet_controller.launch.py robot_count:=3
Host PC Terminal 2 - Teleop:
source ~/ros2_ws/install/setup.bash
ros2 run teleop_twist_keyboard teleop_twist_keyboard
Total Terminal Count: 5 terminals (3 robot SSH + 2 host PC)
This scales to any number of Mini Puppers: run the Stanford bringup on an SSH terminal for each robot, then pass the number of robots you wish to control to the fleet controller.
If you want a Mini Pupper to be independent of the fleet, the fleet controller creates nodes for namespaces robot1
..robotN
(based on robot_count
). Give any independent robot a namespace greater than N
(e.g., robot4
or higher when robot_count:=3
).
Complete Node Hierarchy
After launching, the system hierarchy looks like:
Host PC:
├── fleet_controller_node (global)
├── robot1/imu_ekf_node
├── robot1/robot_behaviour_node
├── robot2/imu_ekf_node
├── robot2/robot_behaviour_node
├── robot3/imu_ekf_node
├── robot3/robot_behaviour_node
└── teleop_twist_keyboard (global)
Robot 1:
└── robot1/ (Stanford Controller)
Robot 2:
└── robot2/ (Stanford Controller)
Robot 3:
└── robot3/ (Stanford Controller)
Architecture Overview
A simple hierarchy separates fleet-level coordination from per-robot control:
Global Command Input (/cmd_vel)
v
Fleet Controller (no namespace)
v
/fleet_command
v
robot1/: imu_ekf_node + robot_behaviour_node -> robot_command
robot2/: imu_ekf_node + robot_behaviour_node -> robot_command
robot3/: imu_ekf_node + robot_behaviour_node -> robot_command
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
ament_lint_auto | |
ament_lint_common | |
rclcpp | |
sensor_msgs | |
geometry_msgs | |
tf2 | |
mini_pupper_interfaces |
System Dependencies
Name |
---|
eigen |