I’ve been working on this project for a couple of weeks now. The project includes a A4WD1 Rover with a AL5B Arm mounted on top. The arm got a total of 6DOF controlled using IK.
I started out by stripping my phoenix code down to a single leg and added the wrist in the IK calculations. The arm IK is calculated in 2D and includes shoulder, elbow and wrist servos. The gripper, wrist rotate and base are directly controlled by the remote. I’ve also tried including the base in the IK to get 3D control but this wasn’t easy to control with a remote.
There is no SSC used in this project. The 6 servos are driven by a interrupt routine which makes it possible to do group moves and control both positions and speed with the BAP. Because the servos are controlled with the use of interrupts it is possible to drive the servos and do IK calculations at the same time. I used a program from Nathan (AcidTech) as example for the group move. Can’t find the link so I’ll post that later on.
Time for some pictures!
A video showing the current status can be found here.
EDIT: Build tutorial and software can be found here.
Well done! I’m pretty impressed. Although its a little jittery, the movements are very smooth. Did you use the standard servos that came with the kit or did you upgrade?
Great work with the code. I’m glad you solved the FACOS bug by making your own fixed point FACOS table. Also great news for those who wants to save some money or use the SSC32 for another project.
It seemed like you programmed a home position for the arm? Cool! 8) Also another preprogrammed sequences would be useful. I believe this would be rather easy since its IK controlled.
I posted a Q in another forum, did you consider using a FSR sensor on the gripper?
Thanks for the quick replies! I really appreciate it!
I’m using the standard servos from the package. I’m not thinking of upgrading at this moment. Although my girlfriend is starting to hate them, I keep adding beeps. They tell me which part of the robot I’m controlling and if I turned it on or off.
Oh man you should have seen me smile when I got it to work with the table. It took some time to get it to work nice but I’m happy with the end result.
Adding sequences shouldn’t be hard. IK let me control the position of the wrist servo. Making a seq should only include some positions and a few angles for rotating the wrist/gripper.
I think it’s a good idea and keeps the servo from overloading.
That’s the one! Although I think I got a newer version which was a bit longer. I should check that when I get home. Anyway, I used his program as base for the servo driver. It needed some changes to get both IK calculations and driving servos to run on the same time. Nathans program loads the next step without doing calculations. Doing IK and reading the remote input takes much more time. This resulted in stuttering movement. So I excluded the wait loop from the movement command. This makes it possible to start the movement do the reading from the remote and IK. If this is done, I start waiting for the previous move to finish.
No Idea if my story makes any sense
The software will be released at a later stadium so you can see what I did
The vid was shot using a PS2 remote. I want to hook up the DIY to get better control of the bot. It’s hard to do very precise movements with the PS2 remote.
Both you and the guys from TR gave me some good ideas. So I’ve spend most of the weekend adding stuff to my rover.
I’ve added a FSR to the gripper as described in this tutorial. The gripper now stops when it grabs something so I don’t need to worry if I hold the close button for to long.
Robologist at the TR forum asked me if I had plans to make it move stuff by itself. Well, now I do! So I’ve added a single servo on the front of the rover. The servo rotates a IR sensor to scan the front for objects. The servo divides the range in 40 steps. It measures the distance with the IR sensor. If the object is wide, it can’t be moved so the rover turns. If the object is narrow enough for the gripper. It tries to move it.
I’m also planning to add a IR sensor on the gripper to check the height from the object before it throws around my furniture.
With the IR sensor mounted the AL5B wouldn’t give me enough range to grab stuff from the round. I’ve replaced it with the AL5D. The looks massive and it gives me a huge range! 8)
I’ve also installed some power plugs to let me charge the batteries without removing the top plate every time.
Sorry, no pictures yet. I’ll post them soon.
It’s the first time that I’ve used digital servos. Do they always make so much noise? I’ve also noticed that they start holding there position when power is applied. Is it possible to free the digital servos?
Now that I have started to feel like I want to do something again, I thought it would be fun to convert my Rover from having the front gripper and a pan/tilt unit on top to have the arm instead. That way I might be able to play with and extend your code. One option would be the buy the arm kit, without servos and electronics, which would be the easy way, but I will end up with the electronics holder and another gripper that I don’t need (yet).
I am trying to figure out what parts I might need to do this, as I already have the gripper, several servos and brackets. So far I think my order would include:
Aluminum "C" Large Servo Bracket Two Pack ASB-202 $15.95 $15.95
Aluminum "L" Connector Bracket Two Pack ASB-06 $5.95 $5.95
Aluminum Multi-Purpose Servo Bracket Two Pack ASB-04 $11.95 $11.95
Aluminum Tubing - 1.50" AT-01 $1.50 $1.50
Aluminum Tubing Connector Hub (pair) HUB-08 $8.00 $8.00
Base Rotate Kit (no servos) BR-NS $19.95 $19.95
HS-755HB (183 oz. in.) Quarter Scale Servo S755HB $27.99 $27.99
Mechanical Dampener for Large Servo Brackets (Pair) MD-01 $3.95 $3.95
What I have not found yet, is the “Short C bracket” Is this sold seperatly? I may need a few more servos and servo cable extensions…
Xan, when I built mine earlier I used 2 2800mah 6v battery packs, that I wired in series for 12volts and then used one of the adjustable HD regulators to extract 6volts for running the batteries and servos. I wonder now which approach is better? I liked the idea I would only have to recharge one logical battery pack. ideas? Sure could use those extra inches of the soon to be newer version.
I’m happy to hear you’re getting better and want to pick up one of your projects again! The Rover is starting to be a growing process just like phoenix was and still is! I’m glad to hear that you want to participate!
From your updated pictures, looks like I need to upgrade to the bigger arm. Not sure about the front now. My earlier version, which is semi in pieces looked like: http://i416.photobucket.com/albums/pp245/Kurts_Robots/DSC03234.jpg
In this picture I had the second deck with two servos on the side with pings and/or SRF08s/10s. I had the pan/tilt with a little wireless camera.
Right now it is a jumble of wires as I did not have enough space inside with the two larger batteries plus the voltage reg plus the two encoders.
As you can see I had a BB2 and SSC-32 mounted on top. Will be nice to get rid of the SSC-32. I also was in the process of trying out the DIY transmitter as you can see all of the wires going into that.
However I wonder if I will have enough IO leads…
2 - motor controller - maybe I need to go to 1 with one of the serial modes
7 - DIY receiver
4 - Encoders - could go to 2 with less accuracy
5 - Arm with wrist rotate
1 - Speaker
1 - LCD?
? Sensors
+++
Looks like I maxed out When is the BAP Pro 40 coming out? Maybe I need to set up a few IO processors to handle some of this? I wonder about the new Basic Atom Pro 1-M For now I will piece it back togeather and try to gain back a few IOs…
If my guess is correct, if someone wants to add the AL5D arm onto the Rover they would need the following:
[code]Aluminum “C” Large Servo Bracket Two Pack ASB-202 $15.95 $15.95
Aluminum “C” Servo Bracket Two Pack ASB-03 $7.95 $7.95
Aluminum “L” Connector Bracket Two Pack ASB-06 $5.95 $5.95
Aluminum Multi-Purpose Large Servo Bracket Two Pack ASB-201 $15.95 $15.95
Aluminum Multi-Purpose Servo Bracket Two Pack ASB-04 $11.95 $11.95
Aluminum Tubing - 2.250" AT-05 $2.00 $2.00
Aluminum Tubing Connector Hub (pair) HUB-08 $8.00 $8.00
Base Rotate Kit (no servos) BR-NS $19.95 $19.95
HS-475HB (76 oz. in.) Standard Servo S475HB $17.99 $17.99
HS-645MG (133 oz. in.) Standard Servo S645MG $39.99 $39.99
HS-755HB (183 oz. in.) Quarter Scale Servo S755HB $27.99 $55.98
Little Grip Kit (with servos) LG-KT $40.98 $40.98
Load Balancing Spring - 1.5" 1.58lb SPR-01 $1.95 $5.85
Mechanical Dampener for Large Servo Brackets (Pair) MD-01 $3.95 $7.90
Servo Extender Cable - 12" SEA-02 $1.95 $7.80
Servo Extender Cable - 6" SEA-01 $1.95 $7.80
Wrist Rotate Upgrade (Heavy Duty) WRU-HD $41.74 $41.74
Promotion Code: Sub Total: $313.73
[/code]
Am I missing anything. My order will probably be for less stuff as I already have: (ASB-06,ASB-04, HUB-08 from old legs I had on my hex),
I also have 2 S645mg servos, as well as the little gripper LG-KT. I probably have a couple of C brackets(ASB-03) I could get off of the current, but may order another set anyway.
Sorry for somewhat hijacking your thread, but thought it might be nice to get a parts list in case anyone else wants to duplicate.
Without Wrist rotate kit:
Aluminum “C” Servo Bracket Two Pack $7.95
Little Grip Attachment Kit $5.95
Wrist Rotate Upgrade (light Weight) WRU-LW $33.84 (I’m using this one)
Wrist Rotate Upgrade (Heavy Duty) WRU-HD $41.74
Couple of servo extension wires
[/code]
Mechanical Dampener for Large Servo Brackets (Pair) MD-01 $3.95 $3.95 [/code]
What I have not found yet, is the “Short C bracket” Is this sold seperatly? I may need a few more servos and servo cable extensions…
This is what you’ll need for the AL5D:
[code] Base Rotate Kit (no servos) BR-NS $19.95
Aluminum Multi-Purpose Large Servo Bracket ABS-201 $15,95
Aluminum “C” Large Servo Bracket Two Pack ASB-203 $15.95
Mechanical Dampener for Large Servo Brackets (Pair) $3.95
2 Load Balancing Spring $1.95
Aluminum Multi-Purpose Servo Bracket Two Pack ASB-04 $11.95
Aluminum “L” Connector Bracket Two Pack ASB-06 $5.95
Aluminum Tubing - 6" AT-01 $3.60??? Not fully sure about the length…
Aluminum Tubing Connector Hub (pair) HUB-08 $8.00
Little Grip Kit (no servos) LG-NS $15.00
Without Wrist rotate kit:
Aluminum “C” Servo Bracket Two Pack $7.95
Little Grip Attachment Kit $5.95
Wrist Rotate Upgrade (light Weight) WRU-LW $33.84 (I’m using this one)
Wrist Rotate Upgrade (Heavy Duty) WRU-HD $41.74
Couple of servo extension wires
[/code]
Hope I didn’t forget something…
By looking at your picture I can tell you had some good time with your rover. It got a whole bunch of accessories on there. Together with some dust though… Let’s hope that will come off soon!
You’re totally right about this. The downside of dropping the SSC is that it will take a lot of I/O for only the arm. This is my current setup
2 – motor controller
6 – Arm (base, shoulder, elbow, wrist, gripper and optional wrist rotate)
4 – PS2 remote
1 – Speaker
1 – Servo for IR scanner
1 - analog input for IR scanner
1 – analog input for the gripper FSR
1 – analog input for the IR on the gripper (not mounted yet)
This leaves me with one spare analog input and 2 spare digital I/O. Not much I agree…
The BAP 1-M got a lot of instructions to play with! What about the IO’s? It’s only got a few pins but a module that would fit in the ABB2 socket would be great!
Happy to hear you’re joining me in my rover journey
Thanks! I thought you would like seeing them together!
As you noted, I think I ordered the wrong large scale servos, I sent email and hope they catch that before they ship my order. I also wonder about the tubing I orderd which was 2.5" long as that is what the instruction manual said…
What you think I should take some of the accessories off?
Yes, it sure is easy to max it out the IOs, so a 40 would be great with 12 more of them. but what would be fun with the Pro1M is if there was a simple small board, that maybe had 8 servo IO sets, that like the BB2 you could select either servo or +5v… then maybe we could develop some configureable code that you might use one to handle a set of encoders, another to maybe handle a PS2 or rc controller, and then have a set of standard interface code (I2C? SPI? …) that could tie them to each other… Later…
Yes it is fun to back to where I can start doing things again! Hard to decide on playing with rover or with with the hex!
Just an update, my package with the arm components should arrive today . It should have the right servos in it!
It is great to see that Lynxmotion now has a tutorial with installing the rover, which I will look at as I do the work to hopefully I don’t make too many mistakes. I am already in the process of reconfiguring my rover. I will configure it to be closer to yours and the one in the tutorial to start off with. That is I will start off with the PS2 interface before I later possibly convert it over to RC or DIY RC with maybe XBee which will only take one or two IOs to interface!. I also may experiment with converting the Sabertooth to using one of the Serial Interfaces to maybe save one IO line, but I think I will start off still in RC mode.
While the tutorial does not have a front sensor mounted on it, I will probably put one there as I do have the components. Have not decided yet if I will put on a Sharp IR sensor, or maybe I will try out the Maxbotix MaxSonar EZ1, that I have sitting around. If I go that route, I have not decided which input method to try yet (serial, analog, PWM), probably analog.
That is my favorite feature! After being in the middle of construction for two years everything keeps getting coated in dust. I have removed the tops now, also the SSC-32 and Bap and cleaned off the dust.
I am soon to start putting things back in one piece. I may see if Radio shack has some type of plug I could use for charging like what is used on the DIY receiver, such that I don’t have to leave a battery type connector hanging out the top. Currently I have one of the Battery type connectors hooked up to the other leg of a SPDT power switch as to only allow the robot to run or to be charged.
Also thinking of building some type of second cover to go over all or part of the first cover, to house the BB2, PS2 controller and the likes. I do have three sheets of the Lexan, that I can cut, but need to see if there is a good way to glue/weld the pieces to each other… Maybe I will take all of that up on a different thread.
I would like to again say you did a great job here!
Happy to hear you’ve got the right stuff coming up!
It would be fun to hookup the DIY RC one day. I hope I still have some free pins left Or I could use a co-BAP to convert the 7 channels from the receiver to a serial stream. Future plans…
Is it possible to convert the Sabertooth to a serial interface? Any link?
Tell me, did you found any forgotten accessories underneath the sheet of dust?
I had the same problem. That’s why I used 2 connectors for charging the batteries without the need of a screwdriver 8)
Love to see some pics. It’s good to have a cover over the BB2 because the wires from the arm travel real close over the board sometimes. BTW: I’ve got the ps2 controller placed in the body.
Thanks!
I’m happy you’re joining me on this journey!
Yes, I am thinking of maybe instead updating the DIY project to instead of using the RC transmitter/receiver, to use a set of XBEE/Zigbee modules. Then we may only need two IO pins to get as many channels as we wish to setup. There are several variations of these modules. I have some now, but need to figure out which way I want to go… But first play with standard rover. In this way maybe I will get back to my work on fully understanding the PS2s and make them more reliable…
I purchased my rover with this motor controller: lynxmotion.com/Product.aspx?productID=562&CategoryID=10. It has several different methods of controlling it. You can see it in the picture of the insides of my rover below.
Not really, other than remembering just how cramped mine is, with the extras in it. Here is the picture of the inside of my rover: http://i416.photobucket.com/albums/pp245/Kurts_Robots/DSC03236.jpg
In this picture you will see the two 6v battery packs that are wired in series for 12v. In the center is the motor controller. Above it is the voltage regulator. You may notice that the two front motors have encoders on it, with additional 4 wire cables coming off of them. All in All pretty cramped!
I did not need a screwdriver to recharge mine either, the plug with 12V marked on it can simply plug into the battery charger. I am simply thinking of making it look a little cleaner with a plug. I purchased some yesterday at radioshack and I think it is the type M plug that is on the DIY one. So I may match it also on my Rover although still will charge with different chargers.
Not sure what I am going to do here. It would be nice to use some form of spacers up above the current deck by maybe an 1.5 to 2.0 inches, to leave lots of room to place the BAP plus wires, plus … This is sort of like the add on decks they sell, except that I think I want it to only go out the same width as the current cover or outside framing of the rover and not exend over the wheels. Also would like side pieces to go down from this cover to the current one, except for maybe some air gaps and channels for running wires and the like. Also It would be nice if it was strong enough to mount the base of the arm to it. Not sure if a simple lexan panel held up with spacers will be strong enough to handle the 5D arm, especially if I start experimenting with seeing if the arm is strong enough to lift up the front of the rover. Who knows maybe we can use the arm to help the rover to go over some obsticals…
I have not made as much progress as I would like . Now that I am able to do things again and that we just finished building our house, there are lots of non-robot projects to be done, like building greenhouse, setting up gardens, moving outside pizza oven and the like…
But I did finally did build the arm, making many mistakes! The first one, luckily Xan found before my order was complete and that was to order the right large servos. My initial order was based off what was in the pictures of the assembly guide and not the ones mentioned in the text (I need to be more careful!).
The next problem I ran into was while I have a little gripper, I did not have the attachment plate. No problem, I did have 3 small sheets of the black lexan I ordered before, so I just needed to make one. That is when I relearned that you should probably not cut lexan with power miter saw with a general purpose wood blade. The pieces wanted to go flying . In the end I was able to hack up a mounting plate, which I will redo later with a proper saw blade!.
This morning I finally get all of the pieces plugged togeather, minus most of the dust . So next I try the roverosf program. The arm is not moving well to its initial centering offset location. But the big servos do make lots of noise!. Now to double check my wiring. Also I am now wondering if I need to rethink my battery powering. I am currently running two 2800mah batteries wired in series for the 12vs and then running an HD regulatorlynxmotion.com/Product.aspx?productID=470&CategoryID=48. This worked fine before when I was using the 6volts off it it for running the rover with just a couple of servos under no stress, but I wonder about it when trying to run the big arm… What do you think, should the HD regulator running with an input voltage of 12v be able to handle all 6 servos of the arm…