OpenMANIPULATOR-x control issue using OpenCR

  1. What model are you using?
    OpenMANIPULATOR-X

  2. Describe your control environment. This includes the controller or interface, and any power source.
    SMPS 12V5A is connected to power connect on OpenCR and Openmanipulator-x is connected to OpenCR using TTL cable as instructed.

  3. Specify the operating mode for applicable models, and any firmware settings you are using.
    I’m trying to control OpenManipulator-x using openCR via Arduino and processing as instructed in the e-manual(OpenMANIPULATOR-X)

  4. Include pictures if possible.
    N/A

  5. Include a full description of the issue.
    I’m having issue with controlling openMANIPULATOR-x using OpenCR board and graphic GUI created by Processing(OpenMANIPULATOR-X).
    OpenCR works fine(I tested the openCR board using simple example codes) and all openMANIPULATOR joint torques has enabled after I push ‘reset’ button on OpenCR. In ‘joint space control’ tab in the GUI, openMANIPULATOR simulator follows well as I change each joint angle. However, when I click ‘send joint angle’ button, the physical real openMANIPULATOR-x never changes its configuration as I configured in the simulator. All other tabs in the GUI doesn’t work.

If you are familiar with this OpenMANIPULATOR-x please help me!

Thanks!

Hello @eskim90, thank you for your question and welcome to our Community Page!

As an initial item to check, can you confirm whether the DYNAMIXELs in this OpenManipulator-X have been set to ID#s 11, 12, 13, 14, 15 and baud rate 1,000,000 / 1M?

Regarding the OpenManipulator-X, allow me to tag some of our community members who can provide assistance with this issue. @Yogurt_Man and @Tech_Support, any further guidance you can provide regarding this issue with the unresponsive OpenManipulator-X would be greatly appreciated.

Hello @Jonathon,

where do I need to check the ID#s and baud rate?

For the baud rate, I didn’t touch the example Arduino code and Processing code.
In both codes, baud rate is set to 57600. Should I change that to 1M?

Hi @eskim90

You can use DYNAMIXEL Wizard 2.0 to check assigned IDs.

  1. Upload the firmware (usb_to_dxl) to the OpenCR 1.0.

image

  1. Scan DYNAMIXEL via DYNAMIXEL Wizard 2.0

  2. See ID (Addr: 7) on each DYNAMIXEL. If the ID is not properly set as Andrew mentioned, set the DYNAMIXEL ID properly.

  1. Also Confirm that the Baudrate(Addr 8) is set 1M bps. If not, set it properly.

Thanks @Yogurt_Man.

I follow your instruction and confirm that ID is properly set as Andrew mentioned and Baudrate is set 1Mbps as shown in the figure below.

And then I updated the firmware of dynamixels(‘Firmware update all’) to 45 since they were outdated.
After that, I’ve got another issue that dynamixel ID 13 is not scanned as shown in the figure below. I scanned it several times but dynamixel ID 13 is not detected by Dynamixel Wizard. Also when I push ‘reset’ button on OpenCR, the red light on the ID 13 dynamixel never turns on. How can I solve this scanning issue?

@eskim90

Firmware Recovery will resolve this issue.

Make sure to connect only one DYNAMIXEL in carrying out the recovery.

Thanks @Yogurt_Man.
I did firmware recovery and now all five dynamixels are detected as shown below.

I uploaded open-manipulator-chain code to openCR in Arduino and ran chain.pde file from Processing. As shown below graphic GUI works fine but still the real robot never responds.

All the connections are good and each dynamixel’ torque is on.

1 Like

When I implemented the Processing, it was working Okay with Processing 3.5.4

However, when I tested it with the latest Processing (4.0b, beta), the processing does not work properly. (and sadly, not sure what it makes it now. After the beta become stable. It needs to be tested again)

So, If you are using 4.x version, using 3.x version is recommended.

Make sure to set the arm as the following position.

In addition, confirm that the controller are mounted to a right port.

It should be "/dev/ttyACM*$TheNumberOfPort*

/*******************************************************************************
* Connect OpenCR
*******************************************************************************/
void connectOpenCR(int port_num)
{
  printArray(Serial.list());

  String port_name = Serial.list()[port_num];
  opencr_port = new Serial(this, port_name, 57600);
  opencr_port.bufferUntil('\n');
}

For your reference, to find the enabled port, use the following command if you are on Linux

$ ls /dev/ttyACM*
# Resulting Output of Mounted Port 
/dev/ttyACM1

Thanks @Yogurt_Man .

I tried Processing 3.5.4 on my Macbook and still it doesn’t work. When I run the chain.pde two windows pops up but the Openmanipulator simulation window doesn’t shows the simulator. It is just empty(controller windows pops up properly). I tried to control the robot using the controller anyway but the robot never responds to my command.

So I tried it on my Window PC and it works fine.

Do you have any clue why it doesn’t work with my Macbook? Macbook is my main laptop so it would be great if I can use it with my Mac…

Thank you

1 Like

@eskim90

What Macbook and OS are you using?

Have you confirmed the source code defines right port?

void connectOpenCR(int port_num)
{
  printArray(Serial.list());

  String port_name = Serial.list()[port_num];
// opencr_port = new Serial(this, port_name, 57600); // Change port_name as below
  opencr_port = new Serial(this, "/dev/ttyACM0", 57600); // *ttyACM$The_Number_of_Port*. Usually, "ttyACM0" or "ttyACM1" if port is busy. 
  opencr_port.bufferUntil('\n');
}

Thank you @Yogurt_Man.

I put the port number in the source code and now I can control openMANIPULATOR-X using the Processing GUI in my Macbook. But still the simulator isn’t show up properly as shown below.

Here is macbook specs
Screen Shot 2021-09-02 at 4.00.06 PM

Strange…

Haven’t the simulation been displayed before?

Not sure why the Processing itself hangs.

Have you installed ControlP5 library?

@Yogurt_Man .

With Processing 4 Beta version, the simulation was displayed without any issue.
Yes, I installed ControlP5 library.

@Yogurt_Man

I’m trying to control OpenMANIPULATOR-X using Arduino. I’m trying to find some resources to develop codes for it, but couldn’t find it.
Could you please guide me where I can find libraries and tutorials related to OpenCR using Arduino?

Thanks

@eskim90

#1. I am afraid that I am not sure the root cause.

But it would be worthy of uninstalling the current Processing version and its related as well. Then, reinstall it.

#2 See OpenCR Github

Hi @Yogurt_Man, @eskim90 I also am working on the control of OpenManipulator-x and facing similar problem as mentioned above. We followed everything upto uploading the usb_to_dxl code. However, even after uploading, the dyanmixel wizard 2 is not able to detect anything. The screenshot for the same is attached below. Please help us out!