This repository contains a complete ROS 2 package and Yocto-enabled embedded build flow for autonomous corridor docking using Nav2, ArUco marker detection, and battery-aware mode switching.
GITHUB_ECON_DOCKING/
├── README.md
├── Technical_Manual.md
├── DEMO_Videos/
└── packages_ros2/
├── econ_docking/
│ ├── econ-docking_1.0.bb
│ └── files/econ_docking/
│ ├── CMakeLists.txt
│ ├── package.xml
│ ├── config/
│ ├── launch/econ_aruco_docking.launch.py
│ └── src/
│ ├── aruco_marker_detector.cpp
│ ├── battery_monitor_and_docking.cpp
│ ├── navigate_to_charging_dock_no_nav2.cpp
│ └── ...
└── econlidar/
├── econlidar_1.0.bb
└── files/econlidar/
├── CMakeLists.txt
├── package.xml
├── launch/battery_waypoint_docking_launch.py
└── src/battery_monitor_and_navigate_docking.cpp
E-Con Corridor Docking provides:
- Low-battery waypoint navigation and spawn-goal behavior
- Battery manager that switches systemd services between Nav and Dock
- ArUco-based docking approach and docking control service
- Automatic charge/dock/undock and resume navigation
- Yocto build support for embedded deployment
- Ubuntu 22.04
- ROS 2 Humble
- Nav2
- (if needed) Yocto build environment for embedded image generation
sudo apt update
sudo apt install ros-humble-desktopsudo apt update
sudo apt install ros-humble-navigation2cd <your_ros2_workspace>
source /opt/ros/humble/setup.bash
rosdep update
rosdep install --from-paths src --ignore-src -r -ycd <your_ros2_workspace>
colcon build --packages-select econ_docking econlidar
source install/setup.bashros2 launch econ_docking econ_aruco_docking.launch.pySee Technical_Manual.md for complete node and topic summary, parameters, and service details.
battery_monitor_and_navigate_docking: publishes/reached_spawn, launches waypoint goalsbattery_monitor_and_docking: manages service transitions, subscribes/battery_info,/reached_spawn,/docking_chargedaruco_marker_detector: publishes marker detection and offsetnavigate_to_charging_dock_no_nav2: generatescmd_vel, publishes/docking_charged
- Service names used by code:
econ-corridorrun_nav.service,econ-corridorrun_docking.service(and optionale-condocking.servicewrapper) - Configure thresholds and marker ID via launch parameters and config YAML
