Skip to content

9. Troubleshooting Interface Call Issues

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.

  1. Check if the corresponding IP is the correct x86 industrial PC IP and if it can be pinged.
  2. Check if the HTTP URL is correct; you can refer to the example scripts or interface documentation.
  3. Check if the corresponding service is started on the port. After SSHing into the x86, you can use the command lsof -i:xxxx in the terminal to check if the service is running on the port.
  4. If you get a “Connection Refused” error, it means the IP might not be reachable or the service on the port has not started.
  5. 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.
  1. 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.

  2. Check if you are using the ROS2 Humble with Fastdds version.

  3. Check if the local environment variables ROS_DOMAIN_ID=232 and ROS_LOCALHOST_ONLY=0 are 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 command env | grep ROS to view the relevant environment variable settings in the current terminal.

  4. Ensure that the QoS of the topic is consistent with the default QoS on the board.

    history: keep_last
    depth: 10
    reliability: best_effort
  5. After SSHing into the x86 industrial PC, execute aima em load-env (to load the ROS2 environment variables) and then use the ros2 topic command to check if the related topics are being sent or received by any modules.

  1. 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.
  2. If not connected to AimMaster, you can log in to the robot’s x86 industrial PC and execute the aima doctor command to quickly view health alert information.
  1. Why does calling the upper limb action interface or neck interface result in no response or severe shaking?

    1. First, confirm that the robot is in the corresponding Action mode, which should end with JOINT_SERVO.
    2. 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 '{}'
  2. Why does calling any motion playback only result in the right hand lifting action?

    1. This is the default action of the motion playback module. When the motion_id parameter is incorrect, it will default to this action.

    2. 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/双手挥手/双手挥手

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

  1. 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.
  2. 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.
  3. Please fill out all information carefully. Inconsistent or casually filled forms will be ignored.
  4. 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.