Welcome to Synthiam!

Program robots using technologies created from industry experts. ARC is our free-to-use robot programming software that makes features like vision recognition, navigation and artificial intelligence easy.

Get Started
Asked — Edited

Interface Ez-B To A Trossen Robotics Hr-Os1 Biped Robot

My HR-OS1 HR-OS1 robot (Oscar) is connected to my laptop through a Windows 'Putty terminal' via WiFi. It has it's own IP address.

The operating programs are open sourced C++, the platform is Linux.
The controller is an Intel Edison interfaced to an Arbotix-Pro sub controller that drives the AX-12 Dynamical servos.
There is a PS3 controller that uses Bluetooth to send commands.

I am not very proficient in C++ or Linux but, with help, I stumble along.

Is there a way to connect EZ-B4 to the Intel Edison through WiFi?

I suppose I could connect via a Bluetooth-to-UART and utilize the PS3 controller commands but that would be very limiting.

A USB to UART connection might work but the Edison has very limited USB connections and to date, there is no supporting code for that.

Replace the intel edison board with the ez-b?

Otherwise, use the UART on the EZ-B and ask for assistance on the Trossen forum for assistance using their C++ libraries on how to create a "UART listener" in their framework.

The Trossen path is a bit limited. They don't have a "DJ" to help customers out.
They do have a very active users forum but most of the questions/answers are very specific or way over my head.

I may have to go a step further. I'm thinking of replacing the Intel Edison/Arbotix-Pro with a Robotis CM-530. It controls all of the robots servos and the supporting software provides a friendly GUI for the development of task scripts and robot poses.

I have already made a UART interface between EZ-B4 and the CM-350.

You can mark this "resolved by DJ".

Thank you.
Have any plans for the intel edison?

If your planning on scrapping it I would be glad to pay the shipping for it.

I thought that I would have to give up the Robotis GUI interface to develop and control the robot's movements. There are 8 walking movements and 20 other actions already programmed in.
However, I think I will try to interface the EZ-B directly to the AX-12 servo chain.
(I might want to read from the chain for things like servo temperature, etc. later.)

The more I think about it, the more I like the idea. It will be a bit of a learning curve to set up the initial AutoPosition settings, frames, and actions, but the simplicity and added capabilities should be worth it.

I have already added the EZ "hands" to the HR-OS1. I'll replace the WebCam with an EZ Cam.

Again, thanks.

I'll keep the Intel for a while. It is a powerful controller.

An earlier version of ARC referenced servos as D0, D1, D2,... AX1, AX2, AX3,...
Now there is only D0... and V0...

Must I change all my servos (D1 through D18) to V1 through Vi8?
How do I do that ?

Is there a way to read servo positions?

Thanks, Alan.
I have installed the plug in, reviewed it's documentation. I have also created a Auto Position script with 20 servos positioned and ready to number.

I can not drive an AX-12A servo with the Dynamixel plugin. I have a single AX-12 servo with the ID = 5; TX connected to D5 of the EZ-B4. I am supplying 12V to the AX12s and 7.4V to the EZ-B.

I set the Dynamixel script to Type Protocol_1.
When I tried to Change ID I set original to V5 and the New ID to V5.
I hit Execute, was asked if I was sure, I said hit Yes then was told "Done". Of course nothing really happened because the original ID is not V5 but AZ-5.

My project is posted on the Cloud as "EZ Oscar 01-04-16".

I have glanced at the various scripts and programs in the Dynamical.zip unzipped folder. I saw no initialization of UART . If I need to initialize the UART, what bd rate should be used? (I could have overlooked this because I went through them fairly fast.)

Are there other details that I am overlooking?

Never mind! I initialized UART 1 to 115200 and now servo 5 works.

Now to hooking up the full 20 servo chain.

Ah - the dynamixel servos are 1,000,000 baud by default. I can add a selection to enter your own baud rate for the servos if they are different.

Did you change that baud rate, or is that how they came from trossen? trossen might have changed the baud rate because 1,000,000 causes flaky issues with unreliable data transmission. I can see why they would change it - specifically since 115,200 is still very fast for sending servo positioning. Consider the EZ-B v3 was only 9600:D
I think the default rate for dynamixel servos from Trossen is 1,000,000 and I was going to work my up from 115,200 if that had not worked. I'll see how things go when I start building the complete servo chain.

Is there a way to read data from the servos? I would like to build an 'input pose' array by manually posting the robot, then read those positions into the array.
When completed, I would write the positions into an 'action array' and put that data into the Auto Positioner.

Do you think that would work?

Thanks for the great plugin.
I haven't had time to work on a read function for the plugin. I did email robotis and gave them the source code if they wanted to implement a plugin - but they have yet to reply. If you know anyone interested at creating a robotis plugin, my plugin is open-source. So feel free to build off my example source code.
Dj, I'm having the same problem. I wish now I would invested in DJ.