9. Troubleshooting Interface Call Issues
9. Troubleshooting Interface Call Issues
Section titled “9. Troubleshooting Interface Call Issues”9.1 Troubleshooting Approach
Section titled “9.1 Troubleshooting Approach”The general troubleshooting methods for HTTP JSON RPC and ROS2 Topic are different, but there are also some common troubleshooting methods for on-board issues.
9.1.1 HTTP JSON RPC
Section titled “9.1.1 HTTP JSON RPC”- Check if the corresponding IP is the correct x86 industrial PC IP and if it can be pinged.
- Check if the HTTP URL is correct; you can refer to the example scripts or interface documentation.
- Check if the corresponding service is started on the port. After SSHing into the x86, you can use the command
lsof -i:xxxxin the terminal to check if the service is running on the port. - If you get a “Connection Refused” error, it means the IP might not be reachable or the service on the port has not started.
- If you get an “HTTP deserialize failed” error, it means the JSON body fields might be incorrectly filled. You can refer to the example scripts or interface documentation for comparison.
9.1.2 ROS2 Topic
Section titled “9.1.2 ROS2 Topic”-
Check if the on-board ROS2 DDS configuration includes the IP of the network card being used. Ensure that both privileged and non-privileged configurations correctly add the network card IP. After adding, a full reboot is required.
-
Check if you are using the ROS2 Humble with Fastdds version.
-
Check if the local environment variables
ROS_DOMAIN_ID=232andROS_LOCALHOST_ONLY=0are loaded. The exported environment variables only take effect in the current terminal. A new terminal will need to re-export these variables. You can use the commandenv | grep ROSto view the relevant environment variable settings in the current terminal. -
Ensure that the QoS of the topic is consistent with the default QoS on the board.
history: keep_lastdepth: 10reliability: best_effort -
After SSHing into the x86 industrial PC, execute
aima em load-env(to load the ROS2 environment variables) and then use theros2 topiccommand to check if the related topics are being sent or received by any modules.
9.1.3 Common Troubleshooting Methods
Section titled “9.1.3 Common Troubleshooting Methods”- Use AimMaster to check if the robot has any health alerts. In the case of a robot fault, it may affect some interface calls. For example, if there is a joint fault, the motion control interface may not function properly.
- If not connected to AimMaster, you can log in to the robot’s x86 industrial PC and execute the
aima doctorcommand to quickly view health alert information.
9.2 Common Interface Questions
Section titled “9.2 Common Interface Questions”-
Why does calling the upper limb action interface or neck interface result in no response or severe shaking?
- First, confirm that the robot is in the corresponding Action mode, which should end with JOINT_SERVO.
- In the JOINT_SERVO mode, the control of the upper limbs and neck is preempted by the motion playback module. You need to call the DisableMotionPlayer interface to disable the control of the motion playback module before you can normally call the upper limb or neck control interfaces.
curl -i \-H 'content-type:application/json' \-H 'timeout: 1000' \-X POST http://127.0.0.1:56444/rpc/aimdk.protocol.MotionCommandService/DisableMotionPlayer \-d '{}' -
Why does calling any motion playback only result in the right hand lifting action?
-
This is the default action of the motion playback module. When the
motion_idparameter is incorrect, it will default to this action. -
A correct motion path should find the corresponding .db file and pass the complete path without the .db suffix, for example:
Terminal window /agibot/data/resources/default/motion/motion_player/default/双手挥手/双手挥手
-
9.3 Feedback Channels
Section titled “9.3 Feedback Channels”If you encounter bugs in secondary development interfaces, you can provide feedback through the following channels:
https://agirobot.feishu.cn/share/base/form/shrcndpGW6r8FIdt2mT3uX02z6k
Note
- This channel is only for answering questions or reporting bugs related to secondary development interfaces. For robot body faults or after-sales maintenance, please contact the delivery, operation, and after-sales teams directly. Unrelated issues will not be responded to.
- Please describe the problem in detail in the form, preferably providing reproducible steps. Clear and detailed problem descriptions will be given priority, while vague and general descriptions will have lower priority and may be ignored.
- Please fill out all information carefully. Inconsistent or casually filled forms will be ignored.
- Each ticket should focus on a single or similar issue. Do not mix multiple issues in one ticket, as this will significantly delay the processing time.