How nuttawat-saepan/robot-buddy-python works
This repository provides ROS 2 control and navigation software for Unitree quadruped robots, plus C++ API clients and runnable examples. The apparent user-to-result workflow is to start a real or simulated robot, produce navigation or velocity commands, and send them to the robot; the file tree identifies these stages, but the Python control and launch wiring was not excerpted, so those links are left unverified. The excerpts do show C++ request/response clients and their ROS topics. The README is empty, and unsampled modules are represented only where their purpose is apparent from their names.
Main entry points: main.py Control Application · g1_audio_client.hpp G1 Audio · ros2_sport_client.h Sport Client · base_client.hpp Request Base Client
Components 23
Navigation and Control
- Control Application
src/go2_control/go2_control/main.py - April Localizer
src/go2_control/go2_control/april_localizer.py - Waypoint Generator
src/go2_control/go2_control/waypoint_gen.py - Goal Sender
src/go2_control/go2_control/send_goal.py
ROS Integration
- Velocity Node
src/go2_control/src/cmd_vel_node.cpp - Robot Launch Modes
src/go2_control/launch/real.launch.py - Simulation Launch
src/go2_control/launch/sim.launch.py
Robot API Clients
- Sport Client
src/go2_control/include/common/ros2_sport_client.h - B2 Sport Client
src/go2_control/include/common/ros2_b2_sport_client.h - Robot State Client
src/go2_control/include/common/ros2_robot_state_client.h - B2 Motion Switch
src/go2_control/include/b2/b2_motion_switch_client.hpp - G1 Locomotion
src/go2_control/include/g1/g1_loco_client.hpp - G1 Audio
src/go2_control/include/g1/g1_audio_client.hpp - Request Base Client
src/go2_control/include/common/base_client.hpp - B2 Base Client
src/go2_control/include/common/b2_base_client.hpp
Control Examples
- Go2 Sport Example
src/unitree_example/src/go2/go2_sport_client.cpp - Go2 State Example
src/unitree_example/src/go2/go2_robot_state_client.cpp - G1 Audio Example
src/unitree_example/src/g1/audio_client/g1_audio_client_example.cpp
Other components
- Operator
- Unitree Robot
- Sport Request Topic
- B2 Sport Request Topic
- Voice Request API
Connections 16
- Operator → Control Application: operates
- Control Application → April Localizer: uses
- Control Application → Waypoint Generator: uses
- Control Application → Goal Sender: dispatches goals
- Control Application → Velocity Node: sends commands
- Robot Launch Modes → Control Application: starts
- Simulation Launch → Unitree Robot: simulates
- Sport Client → Sport Request Topic: publishes requests
src/go2_control/include/common/ros2_sport_client.h - B2 Sport Client → B2 Sport Request Topic: publishes requests
src/go2_control/include/common/ros2_b2_sport_client.h - B2 Motion Switch → B2 Base Client: delegates calls
src/go2_control/include/b2/b2_motion_switch_client.hpp - G1 Locomotion → Request Base Client: delegates calls
src/go2_control/include/g1/g1_loco_client.hpp - G1 Audio → Request Base Client: delegates calls
src/go2_control/include/g1/g1_audio_client.hpp - G1 Audio → Voice Request API: requests voice actions
src/go2_control/include/g1/g1_audio_client.hpp - Go2 Sport Example → Sport Client: uses client
src/unitree_example/src/go2/go2_sport_client.cpp - Go2 State Example → Robot State Client: uses client
src/unitree_example/src/go2/go2_robot_state_client.cpp - G1 Audio Example → G1 Audio: uses client
src/unitree_example/src/g1/audio_client/g1_audio_client_example.cpp