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

Getting Ther, But I Need Some Expert Assistance

Hi there ezroboter's!

I'e been a lurker for quite awhile and fairly recently got my developer's kit. I'm having blast so far! I posted some months ago to inquire of the ez-b v4 board would support my Kobuki base which i received as part of a Turtlebot 2. It's a supercharged iRoomba/create (no vacuum parts, but quite a bit more power, lots of connections. Bigger battery, etc.).

Folks assistance in those early days is much appreciated as it allowed me to move forward, but I appear to continue to hit a wall. The Kobuki base is reportedly electrically compatible to the iCreate, however, I can't get the ice-robot Roomba project to connect.

If you look at the user's manual on page 10, you'll see the wiring diagram for the db25 serial port (linked below). The major difference between the iCreate and the Kobuki is that there's no ps/2 connector like the one is the video tutorial. I've got a servo (3 wire) plugged into D0 of my ez-b and disconnected the power wire. I've got ground going to pin 25 and the signal wire going to the pin 1(serial rx) on the kobuki. I have a suspicion that I should have my signal wire going to to the Kobuki's D10 which is its pin 3.

I figured I'd solicit the community's advice before moving forward. I have managed to get two arm's constructed from A12's Dynamixel's and a few other items integrated but this one worries me simply due to the cost of the Kobuki:)

Kobuki Userguide

#1  
Your URL link is bad and will not load. The pins you mention are the same as what is used with the iRobot Create DB25 connector.
Trinidad/Tobago
#2  
@Robot-Doc The link just had some unnecessary characters so this is the working one.
Kobuki UserGuide

From what i understand from reading that guide you would need to change the firmware mode to Arduino/Embedded Board Support Mode
Then connect these pins to the EZ-B to be able to receive bumper info as well as control the movement. It seems that you need to use the analogue ports to control the wheel speed, so I would try them on the EZ-B v4's analogue ports.

- DO0: Bumper left (pressed/released)
- DO1: Bumper centre (pressed/released)
- DO2: Bumper right (pressed/released)
- DO3: Wheel drop sensors (at least one wheel is dropped / none is dropped)
- AI0: Wheel speed right (0V ­ full speed backward, 3.3V ­ full speed forward)
- AI1: Wheel speed left (0V ­ full speed backward, 3.3V ­ full speed forward)

It also says to enable motors press button B0.

What are the capabilities of the Kobuki that you are trying to utilize?
#3  
I thought the ADC ports were incoming only. How would you vary outgoing voltage on those? Wouldn't you achieve the same effect by using PWM on a digital port?

Alan
Trinidad/Tobago
#4  
Well from what I understand if you plug the AI0 and AI1 ports into a digital port on the EZ-B you will damage the speed controller, unless you use some type of voltage regulation. The digital ports are unregulated so whatever voltage the battery supplies, is what it outputs and for full speed forward they specify 3.3V.

I don't think it's currently possible to vary outgoing voltage on the analogue ports, as you said it only reads incomming, so then I would use a PWM on a digital port with a voltage regulator down to 3.3V:) but it might be a little weird having the 0V as full reverse, since i guess as you set it up it would automatically start off in full reverse:D
#5  

Quote:

Well from what I understand if you plug the AI0 and AI1 ports into a digital port on the EZ-B you will damage the device unless you use some type of voltage regulation. The digital ports are unregulated so whatever voltage the battery supplies, is what it outputs and for full speed forward they specify 3.3V.

I'm not sure if it's possible to vary outgoing voltage on the analogue ports so if it isn't then I would use a PWM on a digital port with a voltage regulator down to 3.3V Smile


The V+ pin on the digital ports is unregulated, but the signal pin outputs 0-3.3v variable through a PWM control or script command. So you would connect A10 and A11 to the signal pins on 2 digital ports. All the ports would/could share one ground.

Alan
Trinidad/Tobago
#6  
@Alan How would you setup a stop value for the motors without having to disable and re-enable them? Would it simply be 50% on the pwm control:)
#7  
you would need to experiment with the PWM value to find the stop point. Disabling would be the same as 0, so full reverse, certainly not what you want. I haven't read the whole manual, so not sure how you would power it down, and what the start-up order should be. I would assume start up and initialize the positions of the EZ-B first, then power up the robot.

Alan
United Kingdom
#8  
A quick look at the user guide and the protocol (the first thing to look at really) indicates it uses a serial interface at 115200 baud rate. See page 11 of the user guide.

Details for the serial interface can be found at http://yujinrobot.github.io/kobuki/doxygen/enAppendixProtocolSpecification.html

It looks to me the easiest method of control is through the serial interface, connect the RX of the EZ-B UART port to pin 1 of the DB25 connector and connect the TX of the EZ-B UART port to pin 2 of the DB25 connector. See page 9 of the user guide.
#9  
I'm not going to mark as resolved yet, but there are multiple approaches. I'll look into them this weekend and report back!

Thanks for everyones time and ideas!
#10  
Happy Saturday!

I finally got my replacement Kobuki base, turns out the first one was defective. I've tried both of the above approaches with differing results... Neither proved absolutely successful but I am making progress.

The UART solution just didn't work. Im fairly certain I could get it to work with enough time.

I also tried connecting D0's signal pin to AI0 and D1's signal to AI1. I didn't connect either of the digital ports power or ground and instead connected another pins ground to the rs232's ground pin. I confirmed voltages from 0.0 to 3.3 on the signal wires. So this is really promising. To be clear, I only have D0 and D1's signal wire attached and a ground connection attached to the platforms RS232 port. Nothing else.

The bummer is that when I enable the motors by pressing B0 button, both wheels just spin regardless of the PWM slider. I do here the wheels reacting to movement of the PWM slider but it almost feels like its affecting torque and not speed, or something.

I couldn't find any place to set the baud rate within ARC but on page 11 of the linked doc above it notes the following are required..

Baudrate: 115200 BPS
Electronic protocol: USB / RS232 (@ DB25 connector)

I feel like I'm missing something obvious:) Are there different types of PWM outside of the digital pins signal being increased or decreased? Do I have to connect the tx and/or rx pins to the RS232?
#11  
One new key finding.. The voltage for pwm is a signed int 0.0 to 3.3 volts. Negative volts causes motors to run in reverse.
#12  
Such a frustrating day... On the Kobuki mailing list they are stating I am likely not connecting ground to a common ground between the EZB and the Kobuki base...

I've reduced the problem to only attempting to control a single wheel. EZB v4's D2 signal wire to AI1 and D2's ground to D25. I'm measuring 1.65V which is reportedly the exact voltage needed to get the wheels to stop spinning...

No luck still. They claim the UART/Serial interface is much better, but I haven't been able to decipher the protocol enough to create a working example.