Welcome to ROSMASTER A1 PRO repository
7.FAQ
A1Pro Robot Common Problem Troubleshooting Guide
1. Bottom Hardware and Serial Communication Problems
Q1.1: Startup driver reports cannot find serial port (like /dev/myserial or /dev/ttyUSB0)
Phenomenon: Terminal error
could not open port /dev/myserial: [Errno 2] No such file or directory.Reasons:
Type-C/Micro-USB data cable is loose or has poor contact;
Bottom control board is not powered on;
udev serial alias rules have not taken effect.
Troubleshooting and resolution:
Check control board power switch and car battery voltage;
Run
ls /dev/ttyUSB*orls /dev/ttyACM*, see if the system recognizes the bottom serial port device;If device is recognized but no
/dev/myserialalias, rebind udev rules or temporarily specify serial port as actual device name in launch/parameters (such as/dev/ttyUSB0).
Q1.2: Driver reports insufficient serial port permissions (Permission denied)
Phenomenon:
[Errno 13] Permission denied: '/dev/...'.Solution: Grant read-write permissions to the serial port, or add current user to
dialoutgroup:sudo chmod 777 /dev/ttyUSB* /dev/myserial*# Or permanently add to group (need to logout and re-login to take effect):sudo usermod -aG dialout $USER
Q1.3: After publishing control command, chassis does not move / reports feedback unavailable
Phenomenon: Car has no action, driver terminal prints
Rejected motion: feedback unavailable or stop pending.Reasons:
Battery undervoltage protection (chassis communication board will refuse to drive motor when voltage is too low);
Chassis is in emergency stop or stop suspend state;
Publishing angular velocity when linear velocity is 0 (Ackerman car does not support in-place rotation, angular velocity is invalid at zero linear velocity).
Solution:
Check battery level, plug in adapter to charge;
Ensure published
cmd_velhas non-zerolinear.x; can print topic via ROS:ros2 topic echo /cmd_vel;Try restarting the driver node to reset status.
Q1.4: Car drifts left/right when driving straight
Reason: There is tiny deviation in the physical mechanical center of the Ackerman front wheel servo.
Solution: Refer to "4.A1Pro Front Wheel Servo Calibration" tutorial for center calibration.
2. Robotic Arm Control and Servo Problems (Including Robotic Arm Grasping Precautions)
Q2.1: Robotic arm droops weakly / cannot rotate via topic
Reason: Servo is in powered-off released state (Torque OFF).
Solution: Call service to restore servo power-on and lock:
xxxxxxxxxxros2 service call /arm_driver/set_torque std_srvs/srv/SetBool "{data: true}"
Q2.2: Gripper overheats or makes buzzing stall sound (emergency handling)
Danger warning: Servo long-term stall can easily overheat or even burn out the internal motor!
Solution and emergency handling:
When stall or abnormal sound occurs, immediately run the following command to release servo torque:
xxxxxxxxxxros2 service call /arm_driver/set_torque std_srvs/srv/SetBool "{data: false}"When grasping items, must set gripper angle based on actual item size, never blindly send 180° closing angle.
Q2.3: Robotic Arm Grasping Item Precautions and Gripper Angle Reference Table
Warning
When the robotic arm grasps items, must strictly control gripper angle! Angle too small cannot grasp firmly, angle too large will cause the gripper to close tightly, leading to sustained stall and potential damage to servo #6.
We have compiled a gripper angle corresponding table, recording the approximate servo angle values needed when grasping every 0.5 cm size of object. Please reasonably adjust the target angle in the grasping code according to this table:

| Object Length / Width (cm) | Servo #6 Gripper Angle (degrees) | Grasping State Description |
|---|---|---|
| 0 (completely closed) | 180° | Empty grip / completely closed |
| 0.5 cm | 176° | Extremely thin object |
| 1.0 cm | 168° | Thin long object |
| 1.5 cm | 160° | Small size object |
| 2.0 cm | 152° | Standard small wooden block |
| 2.5 cm | 143° | Small-medium size wooden block |
| 3.0 cm | 134° | Standard 3cm cube (Recommended 134°) |
| 3.5 cm | 125° | Medium size |
| 4.0 cm | 115° | Standard 4cm wooden block |
| 4.5 cm | 105° | Larger object |
| 5.0 cm | 95° | Near palm width |
| 5.5 cm | 80° | Large opening angle |
| 6.0 cm | 57° | Extreme grasping width |
| 6.0 ~ 6.4 cm | 0° ~ 57° | Maximum opening angle range |
Grasping Example Description:
For example, the matching 3cm cube with length, width, and height all 3cm, set the servo angle to 134° in the program to firmly grasp, never set exceeding this value, otherwise it will cause motor stall.

Caution
Important Warning:
This product provides four different sizes and shapes of wooden blocks, must strictly follow the tutorial's labeled block sizes for grasping.
If the program sets grasping for 3cm cube (angle 134°), but actually places 4cm cube (corresponding to 115° required) for grasping, the gripper forcing to close will directly cause continuous stall and damage servo #6! Before grasping objects of different sizes, be sure to check the size and corresponding angle.

If stall occurs during grasping larger blocks, you can also modify the grasping angle at the following path:
xxxxxxxxxx~\yahboomcar_ros2_ws\dofbo_pro_ws\src\dofbot_pro_bringup\config\common.yaml

If stall occurs during grasping, decrease the angle (such as 140 or others); if the grip is not tight enough, you can increase it. After modification, compile to take effect:
xxxxxxxxxxcd ~/yahboomcar_ros2_ws\dofbo_pro_wscolcon build --packages-select dofbot_pro_bringup
3. LiDAR and Camera Vision Problems
Q3.1: Depth camera (HP60C) has no image or node crashes
Reasons:
Camera USB interface bandwidth is limited or is plugged into USB 2.0 port;
Environment variable
CAMERA_TYPEis not correctly specified;Another program is occupying the camera.
Solution:
Ensure it is plugged into USB 3.0 (blue) interface;
Check environment variable:
xxxxxxxxxxecho $CAMERA_TYPE# If using depth camera, ensure it is not forced to specify as usb:unset CAMERA_TYPEConfirm camera device node exists with
ls /dev/video*.
Q3.2: LiDAR does not rotate or no point cloud data (/scan topic has no message)
Binding port:
/dev/rplidarReasons:
Radar wiring is loose, power supply insufficient;
Radar serial port
/dev/rplidarhas insufficient permissions or device not recognized;Multiple nodes simultaneously grabbing radar serial port.
Solution:
Check if serial device exists:
ls -l /dev/rplidar, if not, check wiring or rebind udev rules;Check serial port permissions:
sudo chmod 777 /dev/rplidar;Execute
ros2 topic hz /scanto check if there is point cloud data frame rate;Check for residual radar nodes in background:
ps aux | grep lidar, kill extra processes and restart.
4. ROS 2 Communication and Environment Configuration Problems
Q4.1: Terminal command execution reports Package '...' not found
Reason: New terminal has not loaded ROS 2 and workspace environment variables.
Solution: Run in each new terminal (or write to
~/.bashrc):xxxxxxxxxxsource /opt/ros/humble/setup.bashsource ~/yahboomcar_ros2_ws/yahboomcar_ws/install/setup.bashsource ~/yahboomcar_ros2_ws/dofbot_pro_ws/install/setup.bash
Q4.2: PC cannot receive/display car's topics (cross-machine communication failure)
Troubleshooting steps:
Check same LAN: Car and PC must be connected to the same router/WiFi, try ping each other's IP addresses;
Check Domain ID:
ROS_DOMAIN_IDon both machines must be exactly the same:xxxxxxxxxxecho $ROS_DOMAIN_ID# If inconsistent, set both to the same value (such as 20):export ROS_DOMAIN_ID=20Firewall: Turn off PC system firewall or allow ROS 2 DDS UDP ports.
Q4.3: Starting node reports error Address already in use or serial port already occupied
Reason: Previous driver node was Ctrl+C in foreground, but background still has sub-threads or zombie processes that did not exit.
Solution: Directly clean up residual processes before starting:
xxxxxxxxxxpkill -f ros
5. Dify & OpenClaw Large Model and Voice Interaction Troubleshooting
Q5.1: Voice interaction module cannot find device / cannot wake up (binding port: /dev/myspeech)
Binding port:
/dev/myspeechPhenomenon: Starting
llm_agent_control.launch.pyreports error cannot open serial port or not detected recording device.Troubleshooting and solution:
Check if serial is recognized:
ls -l /dev/myspeech, if does not exist, unplug and replug voice module to reconnect;Check serial port permissions:
sudo chmod 777 /dev/myspeech;Wake-up test: Speaker should be about 0.5 meters from the car, clearly say wake-up word "Hi, yahboomm", after hearing "I'm here" then give control commands.
Q5.2: Microphone recording is overly sensitive (VAD fails to truncate) or insensitive (premature truncation)
Reason: Microphone input gain is too large or too small, ambient noise floor affects VAD (Voice Activity Detection).
Solution:
Open system audio settings, appropriately lower or raise the microphone input volume slider;
Avoid voice control in high-noise environment.
Q5.3: Dify local large model no response / connection timeout
Troubleshooting steps:
Confirm if Dify is started: Enter in host terminal
sh ~/bringup_dify.shto start;Check Docker container running status:
docker ps, confirm dify-related containers are all inUprunning state;Check network connection and API Key configuration are valid.
Q5.4: OpenClaw agent service exception / dialogue no reply
Troubleshooting commands:
Check gateway running status:
openclaw gateway status;Restart gateway service:
openclaw gateway restart;Check model access status:
openclaw models status; if prompted unauthorized or key expired, executeopenclaw configureto reconfigure API Key;View enabled skills:
openclaw skills list.
Q5.5: Dify, too many incorrect password attempts, need to wait 24 hours before trying correct password again to login to Dify

Q5.6: If OpenClaw or Dify voice synthesis reports the error shown below, it is because the official has taken the model offline. You can solve this by changing the voice synthesis model.

Go to this path to modify the voice synthesis model and voice,
xxxxxxxxxx~\yahboomcar_ros2_ws\dofbo_pro_ws\src\dofbot_pro_bringup\config\common.yaml
Scroll to the end, find the highlighted area and modify according to the reference.

After modification, compile to take effect,
xxxxxxxxxxcd ~/yahboomcar_ros2_ws\dofbo_pro_wscolcon build --packages-select dofbot_pro_bringup
Q5.7: If Dify shows voice module busy, check if there is a background process occupying the sound card
xxxxxxxxxxpgrep -af common_service
If you see residual processes, use the command kill -9 pid to delete them. PID is the corresponding process number.
6. High-Frequency Troubleshooting "Three Board Axe" Quick Reference Commands
| Troubleshooting Target | Practical Commands |
|---|---|
| Check all hardware serial ports | ls -l /dev/myserial* /dev/rplidar* /dev/myspeech* /dev/video* |
| Check serial port device permissions | sudo chmod 777 /dev/myserial* /dev/rplidar* /dev/myspeech* |
| Check currently active nodes | ros2 node list |
| Check all current topics | ros2 topic list |
| Measure topic publishing frequency | ros2 topic hz /scan or ros2 topic hz /arm_status/arm_joint |
| Real-time print topic content | ros2 topic echo /arm_status/arm_joint |
| Check interface definition | ros2 interface show dofbot_pro_interface/msg/ArmJoints |
| Check Dify container status | docker ps |
| Check OpenClaw gateway | openclaw gateway status |
| Kill bottom driver residual | killall -9 Ackman_driver_A1P |
| Kill residual processes | pkill -f ros |