maxon epos4 ros1 two motors not working; only one does

asked 2022-07-22 04:57:58 -0500

TRobot gravatar image

Hey there!

Hardware:

  • Raspberry Pi 4b
  • PiCAN 3 Board
  • EPOS4 24/5 CAN

Software:

  • Ubuntu Server on the Rpi (Ubuntu 20.04.4 LTS)
  • ROS Noetic
  • canopen_master 0.8.5

I've been playing around with ros_canopen and the maxon EPOS4 motor control boards. I've been able to successfully adapt the given examples to my devices and control each of my two motors on the CAN bus separately. As soon as I combine my scripts and try to launch the two motors (on the same bus, previously working separately without changing anything in the hardware) at the same time, I get the following:

process[canopen_motor-1]: started with pid [1419]
process[controller_spawner-2]: started with pid [1420]
[ INFO] [1658481104.326658296]: Using fixed control period: 0.050000000
[ INFO] [1658481115.202202993]: Initializing...
[ INFO] [1658481115.203113197]: Current state: 1 device error: system:0 internal_error: 0 (OK)
[ INFO] [1658481115.203644624]: Current state: 2 device error: system:0 internal_error: 0 (OK)
[ERROR] [1658481118.629117595]: EMCY received: 82#2081100000000000
[ERROR] [1658481118.634400914]: EMCY received: 81#2081100000000000
[ERROR] [1658481120.716017331]: EMCY received: 82#0000000000000000
[ERROR] [1658481120.721144695]: EMCY received: 81#0000000000000000
[ERROR] [1658481120.769477629]: EMCY received: 81#2081100000000000
[ERROR] [1658481120.872514243]: EMCY received: 82#2081100000000000
[ERROR] [1658481120.914970249]: EMCY received: 82#0000000000000000
[ERROR] [1658481120.920146222]: EMCY received: 81#0000000000000000
[ERROR] [1658481121.269408115]: EMCY received: 81#2081100000000000
[ERROR] [1658481121.571188383]: EMCY received: 81#0000000000000000
[ERROR] [1658481121.619371003]: EMCY received: 81#2081100000000000
[ERROR] [1658481121.771225704]: EMCY received: 81#0000000000000000
[ERROR] [1658481121.872026909]: EMCY received: 81#2081100000000000
[ERROR] [1658481122.018661196]: EMCY received: 81#0000000000000000
[ERROR] [1658481122.069387587]: EMCY received: 81#2081100000000000
[ERROR] [1658481122.269712154]: EMCY received: 81#0000000000000000
[ERROR] [1658481122.274766616]: EMCY received: 82#2081100000000000
[ERROR] [1658481122.514578470]: EMCY received: 82#0000000000000000
[ERROR] [1658481122.854771367]: EMCY received: 81#0000000000000000
[ERROR] [1658481122.881717171]: EMCY received: 82#0000000000000000
[ INFO] [1658481122.885817557]: Initializing successful
Loaded '/canopen_motor/joint_state_controller'
Loaded '/canopen_motor/baserot_joint_position_controller'
Started ['/canopen_motor/joint_state_controller'] successfully
Started ['/canopen_motor/baserot_joint_position_controller'] successfully
[ERROR] [1658481123.721672724]: EMCY received: 81#2081100000000000
[ERROR] [1658481123.754417805]: Node has emergency error
[controller_spawner-2] process has finished cleanly
log file: /home/ubuntu/.ros/log/49704bc6-099b-11ed-94ca-072a3caf4f29/controller_spawner-2*.log
[ERROR] [1658481158.722504156]: EMCY received: 82#2081100000000000

The EMCY Errors mean "CAN passive Mode", which seems to be due to bad wiring. But, as I said, when controlling one of the motors separately, I don't even get buffer overflows anymore.

Question: What are other possible reasons for this? I've lowered my CAN-Bus bitrate to 50K, I set the joint_state_controller rate to 5Hz even...

Here are my config files: node_layer.yaml:

# struct syntax
nodes:
  node1:
    id: 1
    name: gelenk1_joint
    eds_pkg: gelenkarm_maxon # optionals package  name for relative path
    eds_file: "config/Gelenk.dcf" # path to EDS/DCF file
  node2:
    id: 2
    name: baserot_joint
    eds_pkg: gelenkarm_maxon # optionals package  name for relative path
    eds_file: "config/Base.dcf" # path to EDS/DCF file

defaults: # optional, all defaults can be overwritten per node
#  eds_pkg: my_config_package # optional package  name for relative path
#  eds_file: "my_config.dcf" # path to EDS/DCF file
#  dcf_overlay: # "ObjectID": "ParameterValue" (both as strings)
#    "60C2sub1": "10"
#    "6060": "1"
#    "6098": "0" # No homing ...
(more)
edit retag flag offensive close merge delete