ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

I don't know if you have already managed to control your motors but I will answer anyway. So...

The .eds/.dcf files should be provided by the manufacturer of my motor right? If not, can i write it by myself?

Normally this file is provided for the manufacturer to tell you which canopen objects are supported internally by the motors. Maybe you could write yourself one by using candump or cansend and listening all of the objects described by CiA in the standars and trying to find out which ones are supported by I wouldn't do that because is not worth it. Better to contact the manufacturer.

do I really need a robot_description for driving a single motor?

Yes you need one. It is used by ros_control to control the actuators. Even if you want to control a single motor it has like a hardware configuration so it is the way to tell ROS which is your hardware configuration in order to control it.

How do those ros_controller work, do i really need them? I would simply want my motor_node to subscribe to a topic where i can tell it target motor speeds. Is this possible?

canopen_motor_node implements an interface between ros_control and the ros_canopen pckages. It means it adapts the software of the driver (all the canopen protocols implementations) to your physical configuration (passed by the URDF) and allows you to control it. As you may see by doing rostopic list once you have launched the driver, you can find the corresponding topics to the controller you implemented. you could see topics like /your-controller-name/cmd_vel that allows you to send velocity commands to move your motor. I'm not sure if this topic appears for all the controllers but at least it is the case for DiffDriveController.