ROBOTIS-GIT / ROBOTIS-OP2

ROS packages for the ROBOTIS OP2
Apache License 2.0
3 stars 6 forks source link

Communication protocol between Main controller and sub controller (CM 740) #10

Open akshaydave opened 3 years ago

akshaydave commented 3 years ago

Hey, Thanks for your help.

I am trying to find what is the communication method between Darwin op2 main computer and the CM740 board. I know the Darwin OP1 used USB protocol. From the website, it looks like OP2's sub-controller is a bit different.

ROBOTIS-Will commented 3 years ago

Hi @akshaydave OP2 use DYNAMIXEL protocol 1.0 to communicate with CM740. You can refer to the Protocol 1.0 section of eManual for more details while referring the memory address structure(Control Table) of CM740

The CM740 subcontroller is configured as ID 200 as shown in the code below. https://github.com/ROBOTIS-GIT/ROBOTIS-OP2/blob/master/op2_manager/src/op2_manager.cpp#L43

Thank you.

akshaydave commented 3 years ago

Thank you so much for your help. This was really helpful. I have one last question, did anyone tried to compile the Robotis op2 Ros package with Nvidia Jetson nano or raspberry pi?

ROBOTIS-Will commented 3 years ago

@akshaydave I haven't tried compiling the OP2 packages on other SBCs, but most likely you'll need to go through a complicated package installation process as described here.

akshaydave commented 3 years ago

Hey thanks for all your help. I was able to compile the code on raspberry pie 4 and jetson nano and once I’m done with my project I will share it so the community can have it. I have one last question. If I want to communicate with Cm 740 sub controller using a usb cable. Do you have any Suggestion for The cabling. I understand it uses dynamixel protocol 1.0 but how would i wire it up. Do i need a usb to dynamixel adapter. The sub controller has a five pin connector but i don’t know how i will be able convert into usb.

How does the current main controller sends data to that port. Does it send binary data.

On Sun, Jan 17, 2021 at 9:33 PM Will Son notifications@github.com wrote:

@akshaydave https://github.com/akshaydave I haven't tried compiling the OP2 packages on other SBCs, but most likely you'll need to go through a complicated package installation process as described here http://wiki.ros.org/ROSberryPi/Installing%20ROS%20Kinetic%20on%20the%20Raspberry%20Pi .

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/ROBOTIS-GIT/ROBOTIS-OP2/issues/10#issuecomment-761991631, or unsubscribe https://github.com/notifications/unsubscribe-auth/AEJYAHTI7FUEGQAN45BI3ZDS2PB2BANCNFSM4VP2QWHQ .

-- Akshay Dave Undergraduate researcher University of Nevada, Las Vegas [image: Image result for drones and autonomous system lab] http://www.daslhub.org/ [image: Image result for linkedin small logo] http://www.linkedin.com/in/akshay-dave-764050194

ROBOTIS-Will commented 3 years ago

Thank you for the update. Your would be very useful for other developers who might be building with their own configuration :) CM-740 has its own control table just like DYNAMIXEL and the OP2 SBC communicates with CM-740 using DYNAMIXEL Protocol. The OP2 SBC is connected to CM-740 with a custom USB cable and opens up a serial port using DYNAMIXEL SDK. Reading / writing to CM-740 is identical to that of communication with DYNAMIXEL. https://github.com/ROBOTIS-GIT/ROBOTIS-OP2/blob/master/op2_manager/src/op2_manager.cpp#L182

For the pinout of the USB molex connector, please refer to the 4-pin USB Connector section of the schematic image