Publishing the current state of the robot (Topic)
Publish robot state information to the /gbt_driver/feedback_states Topic. Includes connection status of the robotic arm, robot status, controller status, servo status, robotic arm soft mode status, robotic arm joint status, end-effector pose, robot alarm codes, and speed percentage. Subscribe to this topic to obtain real-time status information of the robotic arm.
Supported Robot Connections
This driver supports three types of robot connections:
- Real Robot - Physical robot connected via network IP (default:
10.27.1.254) - Virtual Controller - Simulated robot for testing (uses same default IP as real robot)
- AirBot Cloud Robot - Remote robot accessed through AirBot cloud service (requires registration)
Message Structure
gbt_interface/msg/FeedbackState.msg
The following is the message structure for robotic arm status information:
std_msgs/Header header
# Connection Status
bool is_connected # Whether connected to the robot
# Robot Status
string robot_type # Robot type
RobotStatus robot_status # Robot Status
ControllerStatus controller_status # Controller Status
ServoStatus servo_status # Servo Status
ArmSoftModeStatus arm_soft_mode_status # Arm Soft Mode Status
# Robot joint
sensor_msgs/JointState joint_states # Robot joint states
geometry_msgs/PoseStamped flange_pose # Robot flange pose
geometry_msgs/PoseStamped tool_pose # Robot tool pose
# alarm code
AlarmCode[] alarm_code_list # Robot alarm code
float32 overall_speed # Overall speed (%)
# IO
IOType[] io # TODO: IO status
bool is_error # TODO: implement error detection
uint8 error_code # TODO: assign proper error codes on failures
# coordinate system
int32 actived_uf_id # Activated user coordinate system ID
int32 actived_tf_id # Activated tool coordinate system IDKnown Limitation (IO)
- The
iofield in/gbt_driver/feedback_statesis not published by default. - The SDK currently supports batch reads for
DOonly; other IO types do not support batch read. - For IO read access, use per-port service calls via
/gbt_driver/service_server/io.
User Guide
Configure Robot Connection
Modify the robot connection in the gbt_driver/config/robot_config.yaml configuration file.
For Real Robot / Virtual Controller
Both real robot and virtual controller use the same default IP address:
robot_ip_address: "10.27.1.254" # Default IP for real robot and virtual controllerThe system will automatically connect to the virtual controller if the real robot is unavailable at this IP.
For AirBot Cloud Robot
Access remote robots through the AirBot cloud service:
- Visit http://airbot.sh-agilebot.com/ to register and apply for a cloud robot
- After registration, you will receive an assigned robot IP address
- Configure your assigned cloud robot address:
robot_ip_address: "YOUR_ASSIGNED_IP" # Replace with your assigned AirBot cloud robot IPStart ROS2 Driver Node
Launch the gbt_driver node in the terminal:
source install/setup.bash
ros2 launch gbt_driver gbt_feedback.launch.pyObtain Robotic Arm Status Information
After starting the gbt_driver node, the driver will automatically connect to the robotic arm and begin publishing status information to the following Topic:
/gbt_driver/feedback_states
By subscribing to this topic, you can obtain the following information:
- Robotic arm connection status
- Robot status
- Controller status
- Servo status
- Robotic arm soft mode status
- Robotic arm joint status
- End-effector pose
- Robot alarm codes
- Speed percentage
- UF coordinate system ID
- TF coordinate system ID
For example, you can use the following command to view the robotic arm's status information:
source install/setup.bash
ros2 topic echo /gbt_driver/feedback_states