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

This package gets maintained by neobotix, for bugreports, support requests and contributing see this page

cob_base_drive_chain

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

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]
drive*/GearEfficiency ()
  • the efficiency of the gear (e.g. 0.9 )
CheckJointNames ()
  • check jointnames in the incomming joint trajectory [true/false]
HomeAllAtOnce ()
  • home all drives at the same time [true/false]
GenericBufferLen ()
  • the buffer length
drive*/control_type ()
  • the control_type of drive nr. * [2: velocity control, 1: position control, 0: torque 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 ()
  • the max. motor acceleration in increments per second^2
drive*/DecIncrS ()
  • ()
drive*/Homing ()
  • do you want to home this drive [true/false]
drive*/HomePos ()
  • the zero position offset in increments
drive*/HomeVelRadS ()
  • the home velocity in rad per second
drive*/HomeEvent ()
  • the type of home event
drive*/HomeDigIn ()
  • the homedigin
drive*/HomeTimeOut ()
  • after this time the homing procedure times out
drive*/HomeCoupleID ()
  • If this parameter is set, the parameter specifies the can id of a drive which should be coupled to the homed drive
drive*/HomeCoupleRadS ()
  • this parameter sets the velocity of the coupled drive
drive*/VelPModeEncIncrS ()
  • ()
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

or

  • 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/merged (last edited 2012-03-30 07:56:31 by TimoHackel)