# dogtracker **Repository Path**: tryhardjackma/dogtracker ## Basic Information - **Project Name**: dogtracker - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-11 - **Last Updated**: 2026-06-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # GO2 RGB-D Person Following This project variant keeps only the pieces needed to deploy a vision-driven quadruped following algorithm: - Unitree GO2 Gazebo/CHAMP locomotion stack - RGB-D camera sensor on the robot model - Simulated people in the Gazebo environment - RT-DETR person detection - LiteTrack-style lightweight target association - Direct RGB-D target-to-`/cmd_vel` control LiDAR, SLAM Toolbox, Nav2 planning, costmaps, scan relay, and map-based navigation are no longer part of the default launch path. ## Runtime Flow ```mermaid graph TD CAM[GO2 RGB-D camera] DET[RT-DETR person detector] TRK[LiteTrack target association] CTRL[RGB-D person_follower_node] CMD[/cmd_vel] CHAMP[CHAMP quadruped controller] GO2[GO2 motion] CAM --> DET DET --> TRK TRK -->|/detector/target| CTRL CTRL --> CMD CMD --> CHAMP CHAMP --> GO2 ``` The controller uses the target position in `camera_color_optical_frame`: - `position.z`: forward depth to maintain `desired_distance_m` - `position.x`: lateral offset to turn the robot toward the person ## Key Files ```text go2_description/xacro/go2_robot.xacro GO2 model entry go2_description/xacro/camera.xacro RGB-D camera sensor go2_description/xacro/accessories.urdf.xacro IMU only; LiDAR removed from robot go2_yolo_detector/go2_yolo_detector/rtdetr_litetrack_node.py go2_yolo_navigator/go2_yolo_navigator/person_follower_node.py go2_yolo_bringup/launch/gazebo_launch.py Gazebo + GO2 + CHAMP go2_yolo_bringup/launch/yolo_nav_launch.py RT-DETR + LiteTrack + /cmd_vel go2_yolo_bringup/launch/advanced_demo_launch.py Simulated moving people go2_yolo_bringup/config/detector_params.yaml Perception/control parameters ``` Old training, evaluation, Nav2, SLAM, LiDAR, and YOLO files were moved under `legacy_unused/` so they do not participate in the Humble build. ## Dependencies Clone CHAMP next to this package in your ROS 2 workspace: ```bash git clone https://github.com/chvmp/champ.git git clone https://github.com/chvmp/champ_teleop.git ``` Install ROS and Python dependencies: ```bash sudo apt install \ ros-humble-robot-localization \ ros-humble-ros2-control \ ros-humble-ros2-controllers \ ros-humble-gazebo-ros2-control \ ros-humble-gazebo-ros-pkgs \ ros-humble-xacro \ ros-humble-joint-state-publisher \ ros-humble-tf2-ros pip install -r requirements.txt ``` ## Build ```bash mkdir -p ~/go2_follow_ws/src cd ~/go2_follow_ws/src git clone git clone https://github.com/chvmp/champ.git git clone https://github.com/chvmp/champ_teleop.git cd ~/go2_follow_ws rosdep install --from-paths src --ignore-src -r -y colcon build --symlink-install source install/setup.bash ``` ## Run Simulation Terminal 1: start Gazebo, GO2, RGB-D camera, and CHAMP control. ```bash source install/setup.bash ros2 launch go2_yolo_bringup gazebo_launch.py ``` Terminal 2: start RT-DETR + LiteTrack and direct following control. ```bash source install/setup.bash ros2 launch go2_yolo_bringup yolo_nav_launch.py \ model_path:=rtdetr-l.pt \ target_class:=person \ desired_distance_m:=1.2 ``` For the moving-person environment, launch Gazebo with the advanced world and then start the people manager. Detection still comes from the RGB-D camera through RT-DETR/LiteTrack: ```bash ros2 launch go2_yolo_bringup gazebo_launch.py \ world_file:=$(ros2 pkg prefix go2_yolo_bringup)/share/go2_yolo_bringup/worlds/advanced_demo_world.world ros2 launch go2_yolo_bringup advanced_demo_launch.py ``` ## Run On Robot The real robot launch assumes the GO2 locomotion stack already consumes `/cmd_vel`, and that the RGB-D camera publishes RealSense-style topics. ```bash source install/setup.bash ros2 launch go2_yolo_bringup real_robot_launch.py \ model_path:=/path/to/rtdetr_person.pt \ target_class:=person \ desired_distance_m:=1.2 ``` Adjust the camera remappings in `go2_yolo_bringup/launch/real_robot_launch.py` if your camera driver uses different topic names. ## Useful Topics ```bash ros2 topic echo /detector/target ros2 topic echo /follower/status ros2 topic echo /cmd_vel ros2 topic echo /detector/visualization ``` ## Control Parameters Important values in `go2_yolo_bringup/config/detector_params.yaml`: - `model_path`: RT-DETR weights - `target_class`: usually `person` - `confidence_threshold`: minimum detection confidence - `desired_distance_m`: stand-off distance from the person - `linear_kp`, `angular_kp`: proportional control gains - `max_linear_mps`, `max_angular_radps`: GO2 command limits - `target_timeout_s`: stop if no recent tracked target is available ## Notes - `go2_description/xacro/accessories.urdf.xacro` no longer instantiates the Hokuyo LiDAR. - `legacy_unused/` is a non-destructive archive of files removed from the active build path. - The retained `go2_yolo_msgs` messages still provide the common target interface between perception and control.