底盘 ========================================== .. _chassis_connection_failed: 底盘连接不上 +++++++++++++++++++++++++++++++++++++++++++++++ 1. 检查急停 -------------------------------------------- 1. 松开所有 **急停按钮**。 2. 松开按钮后,需要使用HMI平板的 ``一键重连``。查看 max 的连接提示,根据连接提示操作。 3. 检查电机驱动器是否上电。 .. image:: image/motor_driver_light.png 如果电机驱动器都是有电的,灯有亮,但是看不到底盘的8个驱动器则是创博控制器的ethercat 网线插错了。 :ref:`检查底盘电机数目`。 如果电机驱动器都没亮灯,则下一步检查所有急停信号。 4. 手动检查 PLC(192.168.4.105) 所有急停信号是否有误。例如,PLC 158 状态应该是1表示没急停,如果松开急停状态仍未0,联系电气同事。 2. 检查是否与底盘通信是否正常 -------------------------------------------- .. code-block:: bash # 目前底盘 ip 为 192.168.4.10, 或 6.10 ping 192.168.4.10 ping 192.168.6.10 如果 ping 不通 1. 检查底盘是否正常开机 2. 检查上位机 ip 是否设置正确, 应为 192.168.4.50 或 192.168.6.50 3. 检查底盘网线是否插好 3. 检查底盘上位机驱动是否正常。 -------------------------------------------- 打开 MAX ``工具`` -> ``进程管理``,查看日志信息。 或者去 ``~/xyz_log/xyz_mobile_robot_driver_node`` 查看完整日志。 特别注意: not enabled 意思是电机没有上电。 .. image:: image/chassis_process_in_max.png .. _check_chassis_ethercat_slaves: 4. 检查创博控制器是否能连接电机驱动器 -------------------------------------------- .. code-block:: bash # 查看底盘驱动是否正常 cd max/share/xyz_mobile_robot_control/pyRocky python ethercat_slaves.py .. image:: image/chassis_ethercat_slaves.png 正常情况下,全是OP状态。如果找不到或者多个驱动器不是OP状态,表示底盘驱动异常。 理论上底盘电机应该识别到8个以上的驱动器,如果没有识别到,则直接拔控制器上的 ethercat 网线到某个电机驱动器上,排查是控制器问题、驱动器问题、线路问题。 如果能定位到哪一个电机,请联系电气同事,安排拆开车身外壳,找到对应的驱动器。 .. _check_chassis_error_code: 5. 检查电机错误码 -------------------------------------------- 1. 在上位机驱动、下位机驱动日志里找到 error_code。 - 上位机驱动日志路径: ~/xyz_log/xyz_mobile_robot_driver_node - 下位机驱动日志路径: ~/xyz_log/xyz_chassis/ 快速拷贝日志到工控机, 进入到 share/xyz_mobile_robot_control/pyRocky/, bash cp_chassis_log.bash - 系统日志,控制器下位机 /var/log 里有 kern.log,kern.log.* 。如果 ethercat 设备突然下线,系统日志会有一些信息。 2. 通过HMI一键重连进行重启尝试清错。 3. 如果不可清错,请联系底盘控制同事。 4. 另外,请确认上下位机版本一致,刷MAX对应的底盘版本。如果底盘重启了,也需要在进程管理手动重启底盘主控驱动。 特别: - :doc:`常见电机错误码解决方法 <../motor/index>` 针对xyz常见问题,提供解决方法。 - :ref:`电机驱动器手册` 1. rocky evt 底盘电机:步科电机 2. rocky one 底盘电机:清能电机 3. rocky light 底盘电机:鸣志电机 如有出入,请联系底盘控制同事补充修改。 6. 因底盘 yaml 文件缺失导致底盘无法连接 -------------------------------------------- 多见于新车或更换硬件,原因是旧版本底盘固件没有对应的yaml。 如何确认: .. code-block:: bash # 查看底盘驱动是否正常 ssh user@192.168.4.10 ssh user@192.168.6.10 sudo systemctl status DRNile.service 如果像下面的图片,则是因为yaml文件缺失 .. image:: image/chassis_yaml_missing.png .. _modify_chassis_config: 如何修改底盘配置:: .. code-block:: bash sudo systemctl show-environment 查看 base_type=* 配置的车型, 然后进到 /usr/share/controller/config/, sudo vim ~/xyz_log/xyz_chassis/controller_node.INFO 修改对应的yaml sudo vim config/suction_smc_d01.yaml sudo systemctl restart DRNile.service 比如 suction_tool_type 改为 xyz, xyz-analog .. image :: image/show-environment.png .. _chassis_not_move: 底盘无法移动 +++++++++++++++++++++++++++++++++++++++++++++++ 1. 先检查是否可以连接上底盘,如果连接不上,请查看 :ref:`底盘连接不上`。 -------------------------------------------------------------------------------------------------------------------- 2. 是不是由于碰撞检测不能动?导航移动是有考虑碰撞检测。 -------------------------------------------------------------------------------------------------------------------- - 如果 底盘上位机驱动收到指令,但是指令的速度非常小,小于 0.001m/s,可能是碰撞检测导致的。 - 如果底盘上位机驱动没有收到指令,可能是导航系统没有发出指令,请联系导航同事。 - 可以用 HMI 移动看是否可以移动?目前 HMI 没有考虑碰撞检测。 3. 看看底盘是否有错误码,如果有错误码,请查看 :ref:`检查电机错误码` -------------------------------------------------------------------------------------------------------------------- 4. 架起车身,仔细观察电机的旋转方向是否一致? -------------------------------------------------------------------------------------------------------------------- 如果不一致,可能是没有读到电机参数,请联系研发。 解决方法:联系生产同事、重新烧入电机参数。