Skip to content

alphanome-ai/swarm_bringup

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

swarm_bringup

ROS 2 bringup and orchestration package for CHARS simulation workflows.

This package coordinates Gazebo worlds, robot spawning, TF setup, bridges, Nav2/MoveIt bringup, task action servers, gripper/object utilities, and the CHARS central allocator.

What This Package Provides

  • Launch orchestration for camera/world simulations and multi-agent bringup.
  • Agent-level bringup pipeline for mobile manipulators with staged startup.
  • Action server launches for navigation/manipulation task execution.
  • Central task allocator node for DAG-driven CHARS dispatch.
  • Utility nodes for box detach and object static/dynamic state control.

Package Layout

swarm_bringup/
    launch/
        bringup_ign.launch.py
        bringup_world_v2.launch.py
        agent_bringup.launch.py
        swarm3_bringup.launch.py
        single_arm_moveit.launch.py
        chars_central_allocator.launch.py
        mobman_task_action_server.launch.py
        jackal_nav_action_server.launch.py
        ur5_task_action_server.launch.py
        object_state_manager.launch.py
        simple_gripper.launch.py
        detach_all_boxes.launch.py
    swarm_bringup/
        chars_central_allocator.py
        mobman_task_action_server.py
        jackal_nav_action_server.py
        ur5_task_action_server.py
        object_state_manager.py
        simple_gripper_service.py
        detach_all_boxes.py
        trajectory_recorder.py
    config/
    worlds/
    maps/

Build

From your ROS 2 workspace root:

colcon build --packages-select swarm_bringup
source install/setup.bash

Main Launch Files

1) Camera and world bringup

ros2 launch swarm_bringup bringup_world_v2.launch.py

Starts Gazebo, resource path environment variables, camera robot publishers/spawners, ROS-Gazebo bridge, RViz, and object state manager.

2) Generic Ignition bringup

ros2 launch swarm_bringup bringup_ign.launch.py world_file:=/absolute/path/to/world.sdf

3) One mobile manipulator agent (full staged stack)

ros2 launch swarm_bringup agent_bringup.launch.py \
    robot_namespace:=agent1 pose_x:=1.0 pose_y:=-3.0 pose_z:=0.22

Staged startup (from launch timing):

  • t=0s: robot bringup
  • t=40s: Nav2
  • t=55s: MoveIt
  • t=60s: detach-all-boxes utility
  • t=70s: task action server + gripper service

4) Three-agent bringup

ros2 launch swarm_bringup swarm3_bringup.launch.py

Launches 3 agents with staggered startup via repeated agent_bringup.launch.py.

5) Single UR5 + MoveIt workflow

ros2 launch swarm_bringup single_arm_moveit.launch.py use_rviz:=true

CHARS Allocator

Launch central allocator:

ros2 launch swarm_bringup chars_central_allocator.launch.py

Important allocator interfaces:

  • Subscribes task DAG: /chars/task_dag
  • Publishes allocator status: /chars/allocator_status
  • Publishes DAG status: /chars/dag_status
  • Sends per-agent goals to /<agent_namespace>/task_control

Allocator modes:

  • agent_type:=mobman (homogeneous mobile manipulator fleet)
  • agent_type:=mixed (heterogeneous mode)

Console Executables

Installed entry points include:

  • chars_central_allocator
  • mobman_task_action_server
  • jackal_nav_action_server
  • ur5_task_action_server
  • object_state_manager
  • simple_gripper_service
  • detach_all_boxes
  • trajectory_recorder

Runtime Dependencies

Package-level dependencies (from package.xml) include:

  • ros_gz_sim, ros_gz_bridge, ros_gz_interfaces
  • robot_state_publisher, controller_manager, xacro
  • moveit_ros_move_group, moveit_configs_utils, rviz2
  • swarm_description, swarm_interfaces, ur5_moveit_config
  • tf_transformations, tf2_msgs, geometry_msgs

Notes for GitHub Publishing

  1. Some launch files set Gazebo model paths with machine-local absolute paths such as /home/viswa/Desktop/Gazebo_models. Convert these to portable path handling or setup instructions.
  2. package.xml and setup.py still contain placeholder metadata (TODO description/license). Update before release.
  3. bringup_ign.launch.py defaults to worlds/test_world_v4.sdf, but this file is not present in worlds/. Set world_file explicitly or update the default.

Quick Checks

# Inspect active topics
ros2 topic list

# Check allocator status stream
ros2 topic echo /chars/allocator_status

# Check task DAG status stream
ros2 topic echo /chars/dag_status

License

Set the final license in package.xml and setup.py before publishing.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages