Ask Your Question
0

can not roslaunch canopen_motor_node as it throws an instance

asked 2020-09-22 07:05:55 -0500

microbot gravatar image

updated 2020-09-24 04:00:28 -0500

Hello,

I am trying to control a synapticon cia402 servo node with canopen_motor_node. I have created a simple robot_description , canopen.yaml file and config.eds file as stated in the documentations.

My yaml file is as follows

bus:
   device: enp8s0
 sync:
    interval_ms: 10
    overflow: 0
 nodes:
     -name: node1
      id: 1
      eds_pkg: freemotor
      eds_file: "/config/my_config.eds"

Where as my my_config.eds file is as follows,

defaults: #optional, all defaults can be overwritten  per node
          motor_allocator: canopen::Motor402::Allocator #select allocator for motor layer
          #motor_layer: #settings passed to motor layer (plugin-specific)
          switching_State: 5
          pos_to_device: "rint(rad2deg(pos)*1000)" # rad -> mdeg
          pos_from_device: "deg2rad(obj6064)/1000" # actual position [mdeg] -> rad
          vel_to_device: "rint(rad2deg(vel)*1000)" # rad/s -> mdeg/s
          vel_from_device: "deg2rad(obj606C)/1000" # actual velocity [mdeg/s] -> rad/s
          eff_to_device: "rint(eff)" # just round to integer
          #eff_from_device: "0" # unset
          publish["6042"]

WHen running the launch , i get the following error

what(): /home/sganapa/catking_ws/src/freemotor/config/my_config.eds(1): '=' character not found in line

can anyone please help me with what exactly this error means, I am a beginner in using cia402 drive with ros and hence I am trying to move a single motor with a cia402 drive with ros by following the documentation.

edit retag flag offensive close merge delete

Comments

Did you mean to spell "defaults" as "defauls"?

JackB gravatar image JackB  ( 2020-09-22 07:42:48 -0500 )edit

yes, it was a typo. Sorry, i have corrected it now

microbot gravatar image microbot  ( 2020-09-24 04:00:45 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted
0

answered 2020-09-28 12:41:48 -0500

The contents of the eds file are incorrect. The eds file is usually provided by the manufacturer of the motor.

For example. https://www.researchgate.net/figure/E...

What you are describing in your eds file is what you would describe in canopen.yaml. As follows.

bus:
    device: enp8s0
sync:
    interval_ms: 10
    overflow: 0
nodes:
    - name: node1
      id: 1
      eds_pkg: freemotor
      eds_file: "/config/my_config.eds"

defaults: #optional, all defaults can be overwritten  per node
    motor_allocator: canopen::Motor402::Allocator #select allocator for motor layer
    motor_layer: #settings passed to motor layer (plugin-specific)
        switching_State: 5
    pos_to_device: "rint(rad2deg(pos)*1000)" # rad -> mdeg
    pos_from_device: "deg2rad(obj6064)/1000" # actual position [mdeg] -> rad
    vel_to_device: "rint(rad2deg(vel)*1000)" # rad/s -> mdeg/s
    vel_from_device: "deg2rad(obj606C)/1000" # actual velocity [mdeg/s] -> rad/s
    eff_to_device: "rint(eff)" # just round to integer
    #eff_from_device: "0" # unset
    publish["6042"]
edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

2 followers

Stats

Asked: 2020-09-22 07:05:55 -0500

Seen: 28 times

Last updated: Sep 24