ROS1 常见问题与解决方案

在使用 ROS1 控制 MyCobot Pro 450 过程中,可能会遇到一些常见问题。以下列出常见报错及对应解决方案,便于快速排查。


1 环境相关问题

  • 问题 1:运行 roslaunch 报错 package 'mycobot_pro_450' not found
    • 原因:ROS 工作空间没有正确编译或环境变量未加载
    • 解决方式
      cd ~/catkin_ws
      catkin_make
      source devel/setup.bash
      

2 网络通信问题

  • 问题 1:报错 Trying to connect to real MyCobot Pro450... Timeout

    • 原因:PC 与机械臂未在同一网段,或 IP 地址设置错误

    • 解决方式

      • 确认机械臂默认 IP 为 192.168.0.232

      • 将 PC 网卡设置为同网段,例如 192.168.0.100

      • 测试连通性:

        ping 192.168.0.232
        

3 Python API/库问题

  • 问题 1运行时报错 ModuleNotFoundError: No module named 'pymycobot'

    • 原因:Python 环境中未安装 pymycobot

    • 解决方式

      pip3 install pymycobot
      
  • 问题 2运行时报错 ImportError: cannot import name 'Pro450Client' from 'pymycobot'

    • 原因:pymycobot 版本过低

    • 解决方式

      pip install -U pymycobot
      
  • 问题 3运行时报错 RuntimeError: The version of pymycobot library must be greater than 3.9.9 or higher. The current version is 3.9.7. Please upgrade the library version.

    • 原因:pymycobot 版本过低

    • 解决方式

      pip install -U pymycobot
      

      注意:版本需大于 4.0.0

4 ROS节点运行问题

  • 问题 1:rviz 打开后模型不显示

    • 原因1robot_description 未正确加载

    • 解决方式

      • 检查 roslaunch 命令是否完整
      • 在终端输入:

        rosparam list | grep robot_description
        

        若能看到 /robot_description 参数,说明模型已加载。

      • 请检查 joint_state_publisher 与 robot_state_publisher 是否已正常运行。

      • 通过 rostopic list 命令确认存在 /joint_states/tf/tf_static,这些是模型显示和运动的必要话题。
  • 问题 2:rviz 打开后模型显示不齐全,并且终端一直输出类似警告信息:Warning [Invalid frame ID "base" passed to canTransform argument target frame frame does not exist rviz] rviz- at line 133 in /tmp/binarydeb/ros-foxy-tf2-0.13.13/src/buffer core.cpp

    • 原因1:机械臂通信异常,无法正常读取角度坐标

    • 解决方式

      • joint_states 是否在发布(会打印消息)

        • 在终端输入:

          rostopic echo -n 5 /joint_states
          

          如果 /joint_states 没有输出,很大概率是机械臂通信或 mycobot 服务没获取到数据。

        • 请检查 joint_state_publisher 与 robot_state_publisher 是否已正常运行。

        • 通过 rostopic list 命令确认存在 /joint_states/tf/tf_static,这些是模型显示和运动的必要话题。
      • 检查机械臂的通信状态,具体查看 Python异常处理

      • 检查机械臂能否正常读取角度和坐标

          from pymycobot import Pro450Client
          mc = Pro450Client('192.168.0.232', 4500)
        
          if mc.is_power_on() !=1:
              mc.power_on()
        
          print(mc.get_angles(), mc.get_coords())
        
  • 问题 3:报错信息:[WARN]: Coordinate control disabled. Please press '2' first.

    • 解决方式:先在键盘控制界面输入 2,让机械臂回到初始点,再进行坐标控制

results matching ""

    No results matching ""