repository: git://github.com/neobotix/neo_driver

This package is obsolete and will be replaced by cob_base_drive_chain

Neo Base Drive Can

This package is a ros interface for controlling multiple can-open motors via ros.

Topics to subscribe / publish and configuration parameters

Subscribed Topics

cmd_joint_traj (trajectory_msgs/JointTrajectory)
  • send drive commands to each drive

Published Topics

joint_states (sensor_msgs/JointState)
  • publishes the joint state of each drive

Parameters

PublishEffort ()
  • should the effort be published?
numberOfMotors ()
  • how many motors are connected to the can network?
maxDriveRate ()
  • how fast can the drives turn?
cycleRate ()
  • how often per second should the can network be queried
can ()
  • how is the computer connected to the can network?: [0: Dongle, 1: USB, 2: PCI ]
devicePath ()
  • what is the can device path ( for example /dev/pcanepp24 )
NetESD ()
  • network of esd cards? [0: no, 1: yes]
BaudrateVal ()
  • [0: 1000 kbit/s, 1: 500 kbit/s, 2: 250 kbit/s, 3: 125 kbit/s, 4: 50 kbit/s, 5: 20 kbit/s, 6: 10 kbit/s]
GenericBufferLen ()
  • the buffer length
drive*/control_type ()
  • the control_type of drive nr. * [velocity_control, position_control]
drive*/joint_name ()
  • what's the joint name of drive nr. * ( for example front_wheel_joint )
drive*/EncIncrPerRevMot ()
  • how many encoder increments are measured per revolution
drive*/VelMeasFrqHz ()
  • how many increments can be maximal returned per second?
drive*/GearRatio ()
  • the gear ratio
drive*/BeltRatio ()
  • the belt ratio
drive*/Sign ()
  • the direction of the motor [1, -1]
drive*/VelMaxEncIncrS ()
  • the maximal velocity of drive nr. *
drive*/AccIncrS ()
  • (has to be implemented)
drive*/DecIncrS ()
  • (has to be implemented)
drive*/Homing ()
  • (has to be implemented)
drive*/HomePos ()
  • (has to be implemented)
drive*/HomeVel ()
  • (has to be implemented)
drive*/HomeEvent ()
  • (has to be implemented)
drive*/HomeDigIn ()
  • (has to be implemented)
drive*/HomeTimeOut ()
  • (has to be implemented)
drive*/VelPModeEncIncrS ()
  • (has to be implemented)
drive*/CANId ()
  • the can identifier for motor nr * (for example 0 )

Troubleshooting

the neo_base_drive_can_node does not start properly

are the pcan modules are loaded properly?

  • lsmod | grep pcan cat /proc/pcan

if these modules are not loaded you can try:

  • # sudo modprobe pcan

or

  • #insmod /path/to/pcan.ko

if this still fails you've to rebuild the pcan drivers.

/proc/pcan exists but i fail to communicate with it

cat /proc/pcan should display your device (for example [dng] or [usb] ) if not you've to recompile the pcan driver with your modules included.

I don't receive any can message although I can send motor commands:

set the pcan net_dev compile flag to false and recompile the pcan driver

neo_base_drive_can fails to load the parameters for my drives

make sure that the configuration ( param: drive*/) exists for every drive ( param: numberOfMotors )

Add your own Problem and Solution here

Wiki: neo_base_drive_can (last edited 2012-03-30 07:56:36 by TimoHackel)