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

How to control Faulhaber AES-4096 Motor by using ROS_CANopen?

asked 2019-12-17 03:36:37 -0600

nz gravatar image

updated 2019-12-18 07:36:26 -0600

Hello everyone, I'd like to control (initialize and send can messages) to the Faulhaber motors.

I've downloaded the ros_canopen package and I've build it successfully in ubuntu kinetic OS.

I've run in cmd the following commands: 1)sudo modprobe peak_usb 2)sudo modprobe peak_pci 3)sudo modprobe pcan 4)sudo modprobe esd_usb2 5)sudo ip link set can0 up type can bitrate 500000 in the first cmd window.

the following command: 1) rosrun socketcan_bridge socketcan_bridge_node in a second cmd window

and: 1)rostopic echo /received_messages in a last cmd window.

I try to use the frames to initiate the motors. I'm not sure though how I can send the messages in the can.

I've tried: -cansend can0 (123#1122334455667788) can_id#data format for the frame but in the third cmd window the received message is not right.

In the data field I send the bytes in HEX, in the way I want the motors to receive them, but the data are returned differently. The motors aren't initiated.

So, here are my questions:

1) Are EDS/DCF files necessary for only the motor?

2) Can anyone guide me so that I can send the frame message correctly?

3) What would be and how could I send the header?

4)Is a mask already by default running? If so, how do I have to send the data to initiate the motor?

5)Finally, the frame.id="", I know is the default value, but shouldn't I receive the frame I sent?

Thank you!

Thank you in advance! :)

edit retag flag offensive close merge delete

Comments

when this command was executed 'rosrun socketcan_interface socketcan_dump can0' errors popped out.

it would help readers here to know which particular errors you saw.

gvdhoorn gravatar image gvdhoorn  ( 2019-12-17 09:14:13 -0600 )edit

@gvdhoorn the errors were: ERROR: state=1 internal_error=0('OK') asio: system:0 ERROR: state=2 internal_error=0('OK') asio: system:0

nz gravatar image nz  ( 2019-12-17 09:35:56 -0600 )edit

This is not for me specifically. It's for people reading your question.

Please also copy-paste the errors verbatim into your original question. Use the edit button/link for that.

gvdhoorn gravatar image gvdhoorn  ( 2019-12-17 09:37:32 -0600 )edit

1 Answer

Sort by » oldest newest most voted
1

answered 2019-12-17 15:13:38 -0600

Mathias Lüdtke gravatar image

updated 2019-12-17 15:23:41 -0600

Actually, this is just a misleading output from https://github.com/ros-industrial/ros...

ERROR should better be STATE (I will fix that!).

In the first first line

ERROR: state=1 internal_error=0('OK') asio: system:0

state=1 means that the device was opened successfully.

And in the second line

ERROR: state=2 internal_error=0('OK') asio: system:0

the driver switches to ready and can therefore receive and transmit data.

edit flag offensive delete link more

Comments

okey! thank you for your answer

nz gravatar image nz  ( 2019-12-18 03:36:34 -0600 )edit

@Mathias could you please check my post again, as I've added some things and more specific questions?

nz gravatar image nz  ( 2019-12-18 09:49:02 -0600 )edit

Question Tools

2 followers

Stats

Asked: 2019-12-17 03:36:37 -0600

Seen: 586 times

Last updated: Dec 18 '19