Thursday, December 31, 2009
What, no heated seats??? You're just not trying hard enough.
Tuesday, December 29, 2009
My favorite post from this year was the stuff that superbird28 posted back in 2008. I looked back and I realized that I missed possibly the best of his creations. For your viewing pleasure... Brickline 1
Monday, December 28, 2009
Saturday, December 26, 2009
Friday, December 25, 2009
It’s a good question, and I wondered for a long time as well. Then I discovered why, and it's actually pretty simple. It’s because of the Pythagorean Theorem. You know,
Remember that the Pythagorean Theorem only works for right triangles, so the formula works out to be
I know that once I figured this out, life got much better and I began to use these oddball beams a whole lot more often. The 3-4-5 right triangle is very useful in engineering and especially useful in building with Lego. I have used it several times, and I hope to share some constructions with you soon.
Tuesday, December 22, 2009
Monday, December 21, 2009
Friday, December 18, 2009
“In our tests, we found downloads on this site that some people consider adware, spyware or other potentially unwanted programs.” There is also other feedback from others saying they had no problems, and I had no problems. I have my security set pretty high.
Here’s another Lego game that I found fun too. It starts out pretty easy, but over 40 or so challenges, it gets harder. It's called Lego Junkbot.
Thursday, December 17, 2009
Pretty nifty, but interpreting the sensor output takes some thought. First, when both wheels are turning, the readings are twice as fast as if only one wheel is turning. This is because of the nature of the differential gear. Not really a big deal as long as the programming takes that into account. Second, if the wheels are turning in opposite directions as in a “zero radius turn,” the reading will not change because the axles on the differential gear are turning in opposite directions. Again, you have to take that into account with your programming. Third, if both motors are turning at different speeds, the reading doesn’t make sense. I think that this condition can be avoided most of the time. So for a general reading of straight forward and reverse, left and right, this crude solution should work just fine.
I like this solution for a few reasons. It means that the driving wheels can be controlled by the NXT and the HiTechnic IRLink. You will have used only two input ports while leaving three motor ports open for other tasks! They can also be controlled by the IR remote control although the sensor readings won’t make sense. So you have an intelligent robot that can drive itself and you also have a robot that you can drive remotely without making any hardware changes.
Wednesday, December 16, 2009
Tuesday, December 15, 2009
Basically, it is a computer controlled machine that builds parts out of material by adding several layers over and over until a 3 dimensional “thing” is produced. It’s pretty cool stuff and it is becoming more and more popular among scientists, engineers and professionals. It used to be very expensive and not many people knew how to use it. With the popularity and ease of use of many 3D solid software packages and off-the-shelf electronics, it is becoming much friendlier to the hobbyist. The MakerBot retails for under $1000.
In fact, some futurists believe that one day, rather than going to the store to buy certain things, you can go to your machine and “print out” what you need. That technology is far off in the future, but here is an example of someone using their MakerBot to create Lego pieces.
Here's a video of the machine in action.
Monday, December 14, 2009
First of all, Festo BionicTripod mit FinGripper. It resembles a parallel robot.
Then there’s the CyberKite. Just in case you have become too lazy to go fly a kite.
But don’t forget the Festo Molecubes...
And then finally, the Air Ray.
There’s more too. Just go to the FestoHQ channel on YouTube.
Sunday, December 13, 2009
The unique part of the game is that it can be played with more than one person and more than one NXT. Using a little bit of algebra and the Bluetooth capability, two people (or more) could battle each other. I have conjured up my best MS Paint skills to illustrate the idea.
I am a builder and not so much of a programmer, so I thought I might share this idea with the hope of inspiring someone.
I should have known. Somebody has done it already.
Saturday, December 12, 2009
Friday, December 11, 2009
Thursday, December 10, 2009
On the same note, Lego has started running this commercial. I have been in this position...exactly.
Wednesday, December 9, 2009
Movement is sloppy because of the PF motors. I want to try to build this using servo motors, but mounting the huge motors is a problem.
Here is what a well built Stewart Platform should look like...
Sunday, December 6, 2009
The first thing I found was Xander Soldaat’s “HTSMUX-Tutorial-LATEST.pdf” file found linked on the HiTechnic site. Reading this file actually scared me because it gets into the internals of the SMUX. This document does little more than confuse the lightweight programmer, but if you are a heavyweight, this document is for you. I am not a programmer, so I just look for the easiest way to use the code and hardware.
Then I downloaded the RobotC Drivers and Examples found on the HiTechnic downloads page. I spent some time looking at the SMUX examples and felt a heavy relief. All of the hard core programming has been set up in drivers, and the sample programs do a great job of showing how to access and use the drivers. Xander has done a great job of making the sample programs easy to understand. All of the programs are very similar, so switching back and forth for different sensors is pretty easy once you figure out his methods. There is also a great video showing how to set up the drivers so they can be easily accessed within your RobotC programming environment.
The only real problem that I encountered was some of the timing issues. I hooked up four sensors; an acceleration sensor, an ultrasonic sensor, a sound sensor, and a light sensor. I put them all in a loop and took readings from all of them every 50ms and had great success. The problem that I encountered was initializing a couple of the sensors. I tried to set the light sensor in both Active and Inactive modes (light on and light off). I found that I had to put a 200ms WAIT statement after changing the mode. If I didn’t do that, the light wouldn’t respond and the previous mode would be used. No big deal, but it took some work to figure it out. The sound sensor has a mode selection of dB and dBA. Knowing that the light sensor had an issue, I assumed that the sound sensor would be similar and I added the same 200ms WAIT statement.
UPDATE: I discovered that this problem is an issue that currently exists in RobotC 2.0 and not with the SMUX and drivers. I found that I was modifying the code, but new program was not being properly downloaded, thus the Light sensor was not getting the updated program to toggle the light on the sensor. Xander has been gracious enough to work with me to identify the problem.
RobotC has issued the following statement on the subject:
There is one primary known issue that we are working on, involving the "Compile and Download" command. The issue seems to be caused by ROBOTC incrementally downloading the program to the NXT and a memory issue on the PC-side where it is not recognizing changes in the program. We're close to a fix and an updated release - but in the mean time, try a suggested work around:HiTechnic has not released NXT-G blocks yet, and I look forward to seeing how they work. I hope it will give me even more insight that I can carry over to RobotC.
1. Open or modify your program inside of ROBOTC.
2. Save your program by going to "File - Save" (or use ctrl-S keyboard shortcut)
3. Go to "Robot - Compile Program" (or the F7 keyboard shortcut) - This step forces ROBOTC to regenerate the code from scratch.
4. Now go to "Robot - Compile and Download" (or the F5 keyboard shortcut) to download your program to the NXT.
5. Repeat these steps whenever you make modifications to your code.
None of the legacy sensors are supported on the SMUX. The HiTechnic IRLink is not supported because you cannot send commands though the SMUX, but that is not necessarily a bad thing since you still have three other ports available.
In an earlier post, I mentioned that there is an indicator light on the battery box. I was wrong. There are actually two indicator lights and they are actually on the SMUX. The green indicator shows that the battery box on/off switch is on and the red light shows that the NXT is turned on and connected. The SMUX will not operate unless both lights are on. Both lights turn off when the NXT is powered down. It’s actually a pretty handy feature.
Overall, I like the HiTechnic SMUX. I would recommend it, at least if you are a RobotC user.
I have designed a standard base that I keep all my NXT bricks on all the time. It works great, it’s very stable, and allows easy access to all the ports. The NXT can be easily pulled off to change batteries. The best part is that it puts the NXT screen at an angle that makes the screen easy to read when working at the computer.
If you look at my Flexpicker, you will see that I used a similar mount to hold the bricks.
Saturday, December 5, 2009
The first thing I noticed is that it is slightly bigger than I imagined. No big deal, I just imagined it to be a little smaller. It’s about 2 ¼ inches square and about 1 inch high or 7 studs square by 3 studs high. It is built to standard Lego dimensions so it will easily fit into your mounting.
HiTechnic carefully avoided infringing upon the Lego stud design my making all the protrusions and the distance between them one stud wide so a standard beam fits between them. You cannot snap the SMUX into your project so it must be captured between regular elements.
The second thing I noticed is that it has an external power source of a 9 volt battery box. There is a rather small red and black wire about six inches long connecting the battery box to the SMUX. I didn’t realize it required an external source because I was using the Touch SMUX as a reference which does not have the battery box requirement and I guess I didn’t look closely at the picture on the HiTechnic web site.
There is an indicator light on the battery box which has some functions related to the state of the SMUX and I will get into that more when I start to program it. There is a small on/off switch to turn the SMUX on during operation. You must use a small screwdriver to install the battery.
The battery box isn’t built to Lego dimensions, which makes mounting a little more cumbersome, but not overly difficult. The best way to mount is right now is probably using a couple of rubber bands and strapping it to other Lego elements. Personally, I wish that the battery box was incorporated into the SMUX. That way all the mounting could be done at the same time and I wouldn’t have to worry about breaking the small wires connecting the two during construction.
The distance between the ports on the SMUX are just wide enough for a beam to fit between them, but it is tight.
Wednesday, December 2, 2009
I did receive my HiTechnic Sensor Multiplexer today. I haven't tried it yet, but I definitely have some comments I want to share about it. I hope to do that this weekend.
Tuesday, December 1, 2009
Monday, November 30, 2009
Then I get on YouTube, a natural source for learning and ideas. I didn’t find any real good “How To” videos, but I did find one interesting video. Someone actually turned the task of dipping candles into a sort of kinetic art.
Sunday, November 29, 2009
RobotC is my preferred programming environment when I need more power than can be found in NXT-G. I always recommend it, but the only real drawback I can say is that they don’t support Bluetooth communications between more than 2 NXTs. I am getting ready to download and install it, so I can’t really speak too much about the upgrade. In the past I have been pretty happy with updates, so moving up to 2.0 should be pretty easy and rewarding.
The upgrade can be done through this link.
From the RobotC website.
ROBOTC, a C-Based programming language for robotics
ROBOTC is the premiere language for educational robotics. It is a C Programming Language with an Easy-to-Use Development environment. It supports several different robotics platforms, including popular platforms such as the LEGO MINDSTORMS NXT and Innovation FIRST VEX. Download its blazing fast, High Performance Firmware to your robot. Using its Interactive Run-Time Debugger, you can easily pinpoint the problems in your programs. Try it out today by going to the Downloads section and choosing your platform.
Incredibly, they have posted 4,251 videos. Most are one hour classes on different college level classes covering 117 different topics. Basically, it is a full college education on video free for everyone. All the videos are surprisingly in English, but the professors are Indian. Some are done very well, others not so much.
The list of topics looks just like a syllabus from any university. They include Electrical, Mechanical, and Civil Engineering, Mathematics, Physics, Computer Science, Electronics, and on and on. I have a couple that I am particularly interested in; Mechanical Robotics and Mechanical - Kinematics of Machines.
Here is the playlist for the entire program. Very impressive. To give you a taste, this is the video for Introduction to Robotics.
Friday, November 27, 2009
Thursday, November 26, 2009
The best part is the builder gets shot at by his own creation.
Monday, November 23, 2009
Very generally speaking, the pendulum, the weight and the escapement work together to create the power of the clock. The weight pulls on a drum which turns the escapement wheel. The escapement wheel transfers very small impulses of force to the pendulum to keep it swinging. The pendulum will always swing at a constant pace or period, thus a pendulum is a great way to keep accurate time.
The tricky part is creating an escapement that will work regularly, have enough power to keep the pendulum swinging, and not too much so the pendulum is over powered and swings wildly. YouTube user BenVanDeWaal seems to have this problem licked. It seems he has devoted his entire Lego building existence to building escapements, and I might say he has done a very nice job. He has several videos of several escapement types, but here are a few of my favs:
There are many more, and if you like these, go visit BenVanDeWaal's site.
Wednesday, November 18, 2009
Friday, November 13, 2009
Building this out of Lego would be pretty cool, and the best part is that we could make it with many, many more functions.
Thursday, November 12, 2009
Much of the applied course was devoted to linkages and mechanisms. There are several classes of linkages and probably hundreds of named linkage arrangements. I own several books which verbally and mathematically describe many of the linkages. I get a kick out of looking at a machine and finding a linkage or mechanism that I recognize.
But I have a feeling that many of the linkages and mechanisms will be replaced by more mechanically simple servo motors and linear actuators. If you look at old machinery, you will find all kinds of cool movements generated by cams, levers, mechanisms and linkages, but with robotics and complex mathematics, some of those devices are obsolete. But they will never go away, and even more complicated linkages are being developed which I really like.
You can find tons of videos of many of linkages on YouTube.com and similar sites. One of my favorites is of course Theo Jansen’s Strandbeest.
The Strandbeest has been duplicated in several mediums including Lego. I’m not going to link to any of those videos out of respect for the artist, but some of those are quite impressive as well. If you are not familiar with Jansen and the Strandbeest, I highly recommend visiting the link.
I have found several really interesting pages devoted to sharing linkage and mechanism designs and graphics. Here are a few;
RoyMech. This is a detailed page including all kinds of engineering resources, but my favorite is Mechanisms.
KMODDL. “KMODDL is a collection of mechanical models and related resources for teaching the principles of kinematics--the geometry of pure motion. The core of KMODDL is the Reuleaux Collection of Mechanisms and Machines, an important collection of 19th-century machine elements held by Cornell's Sibley School of Mechanical and Aerospace Engineering.”
Brock Institute for Advanced Studies. This page shows animated graphics for several linkages.
Kanagawa Prefecture’s Linkage mechanism simulator is a downloadable linkage simulator.
Tuesday, November 10, 2009
It would be way over my head to program, but nonetheless, fun to think about building with a full set of NXTs.
Sunday, November 8, 2009
A Common Nomenclature for Lego Families
Saturday, November 7, 2009
The description reads as follows;
The HiTechnic IR RC Car features the new HiTechnic Infrared Receiver. This sensor makes it easy for you to control your creations using a LEGO Power Functions Remote.
This model is based on the LEGO Mindstorms 1.0 set. It also requires a LEGO differential and that is not part of the Mindstorms set. If you do not have a LEGO differential, you can go to bricklink.com and search for "Gear Differential", the part number is 6573.
Remote control - Using the HiTechnic Infrared Receiver and LEGO Power Functions Remote
Steering uses a PID controller Both NXT-G and NXC sample programs implement a PID controller to steer to a specified target position.
Ackerman steering - Which means that it has a steering geometry so that in a turn the inside front wheel turns sharper than the outside wheel.
Geared up to differential - Geared up 3:5. The drive motor has a 40 tooth gear driving the 24 tooth side of the differential.
Building instructions and sample programs can be downloaded from http://www.hitechnic.com/
Friday, November 6, 2009
There have been a couple of computer generated versions that generated a little buzz.
But my favorite by far is one that was actually built. It was also done on very large scale apparently as an advertisement for Absolut Vodka. It’s a version that uses mostly flying balls, but also a little percussion and some wine glasses.
Obviously this would be an incredibly difficult build. One would have to not only know Lego robotics, but music and some physics as well. But I think it would extremely impressive.
Wednesday, November 4, 2009
I don't see many projects using the sound sensor, so this one is pretty special. Just keep those batteries charged, or keep your key handy.
Monday, November 2, 2009
It was a fun build, and I think I will be able to use it in future projects.
Sunday, November 1, 2009
If anyone does this, I would love to show it off, so let me know.
Update: I have already built one of these. It turned out pretty well. Am working on a video now and I expect to have it in a day or two.
Friday, October 30, 2009
There have been a few artists and companies that have actually commercialized this and create wonderful works of art. Here is another link to a different company.
Make Magazine recently did an article on some of the mathematics that is required to make some really impressive textures on some walls.
I have tinkered with some of the math, and it is pretty detailed. I hope to get into this project in the future (get in line, buddy). If I do get into this project I would probably use something like dominos or home made wooden bricks to mimic the bricks and I think a gantry style robot will be much easier to construct and program.
Wednesday, October 28, 2009
A few of my personal favorites (with links to Lego tags) are Make Magazine, Gizmodo, Boing Boing Gadgets, Wired Magazine, BotJunkie, Engadget, Singularity Hub and Robot Dreams. (Don't forget to come back!)
I would love to know if anyone else has found any good ones.
Tuesday, October 27, 2009
This is the pallet. The pallet is pushed along the conveyor by a lug on the belt. The pallet actually slides on the smooth plates on the side.
The stop is used to position the front of the pallet. A device yet to be developed will push the pallet from the back into the stop. The conveyor will only get the pallet near the station. It will not put the pallet in the final location.
This is the downstream view of a cell. The grey bars on the side are where the pallet will rest. The pallet rides up on them as it enters the cell.
Saturday, October 24, 2009
Somebody please do something to help!
Five bucks says that Mindstorms won't get much air time. Just a hunch.
Friday, October 23, 2009
Thursday, October 22, 2009
I wish I could say that I have as many bricks and Mindstorms parts as shown in the two videos below. I have far less, so I am going to have to be efficient in mimicking them. I have 4 NXTs, 2 RCXs, loads of sensors, and quite a few PF motors and accessories, lots of pneumatic stuff, and lots of 9V stuff. Every good project starts with a good plan.
Here are just a few ways I plan to be efficient;
1. I will build several cars at the same time.
I don’t want to be limited to building only one car at a time. I will have a continuous stream of cars going through the factory. At each cell, another piece will be added. All cells will work simultaneously and when all cells are complete, the process will cycle to the next car.
2. I will use a single stream to construct the vehicle.
On both of these video, you see grippers picking up assemblies and moving them to a different operation. I will be using a single long conveyor belt. Any construction to the vehicle will be done on that conveyor belt. This will force me to standardize, which will make constructing the whole factory easier.
3. All vehicles will be built on a pallet.
As the vehicle construction happens, each car will be placed on its own pallet or sled to move through the factory. This will mean that each cell will locate the pallet exactly the same way following a standardized system.
4. I will use a common pneumatic compressor.
I will build a large air compressor that powers all pneumatic actuators. This will have a standard pressure switch that will be used to turn the compressor on and off. The switch and motor do not use any control ports of the microprocessors.
5. I will excessively use PF motors and the HiTechnic IRLink.
Not all motions will need to have precise locations. I can use a PF motor much like a pneumatic cylinder. I will use a clutch gear and timing in the program to shift the motor from Point A to Point B.
6. I will use a single pneumatic interlocking pusher system.
In the videos, they show several locations where a motor is connected to a spur gear that drives a pusher down to interlock the Lego pieces. I will use a single air system that will push down at all cells at the same time after all parts are laid in place on all cells. This will use one motor to flip the switch.
7. I will use a single system to lock all pallets in place.
This will more than likely be a pneumatic system. As a pallet arrives at a cell, perfect alignment of all pallets at their cells would impossible. I will create a pneumatic system the will lightly push each pallet exactly into place and hold it while the robots work on the car. This will use one motor to flip the switch.
8. I will use a card system to input car details.
In the videos, the user chooses each car color by pushing a series of buttons. I will be creating some sort of card reader that will tell the factory which colors or details to place. This will use one motor and one sensor.
I think I have prepared a plan that will allow me to build a large factory with four to six cells. I have researched some automated car factories and my system mimics their facilities. I think what you will see if this plan works is an orchestra of moving parts. It’s going to take a pretty good conductor, and I hope I am up to the challenge.
Now the plan is in place, time to build. That’s fun part.
Tuesday, October 20, 2009
I haven’t posted in a few days because I have been thinking about tackling a project that I have wanted to do for a long, long time. Here are two videos that I have watched dozens of times.
These are great; they show lots of creativity and teamwork. It looks to me like an individual or small team constructed a station or cell and then all the cells are brought together to form one large construction.
I am going to give this a try. I think that both can be done with fewer processes and bricks, although I am truly impressed by the massive overbuilding of some components.
I am now trying to construct a vehicle that can be relatively easily mass produced. I am inventorying my wheels and other vehicle components. I don’t really want to purchase a bunch of parts that won’t be used in other projects, so I am trying to stick with what I have on hand.
Over the next few days, I will share some of the engineering choices I have made and why. I have put a lot of thought into this already, and I have some ideas that some of you may be interested in seeing.
By the way, this is a great team project and I am willing to work with others to expand!
Friday, October 16, 2009
I had a great time with this build. I got tons of links from several big blogs and websites and was even invited to take it to an ABB Robotics show in Michigan. Check out this video and you will see the Lego robot at about 5:50
Then I found videos from superbird28 on YouTube.com. This person is a mechanical God in my mind. Their creations absolutely mesmerize me. I will link to just one, but I strongly recommend that you check out all of this persons work. It is amazing.
Wednesday, October 14, 2009
Monday, October 12, 2009
Another name for a Lego universal joint is a Cardan joint. One of the drawbacks of a Cardan joint is that even when the input axle rotates at a constant velocity, the output shaft rotates at a variable speed. This can cause vibration in shafts that turn fast and inaccuracy in precision machinery. It’s not typically noticed with Lego because of several reasons. There is not a good way to very precisely measure rotational velocity and angle, there is torsion (twist) in the shafts and the gearing has a lot of backlash or slop, so we don’t see it or even care.
One way to partially overcome this error is to align the hinges on the universal joint as shown on Shaft A (90 degrees apart) and align the input and output shafts so that they are parallel. This is called a Double Cardan Shaft. This arrangement will result in an almost constant velocity in the output shaft.
Sunday, October 11, 2009
DominoBot lays dominoes in a pattern to spell out a message. The basic premise is the same as a very very slow dot matix printer.
DominoBot uses one NXT, two servos to drive, one servo to open and close the gate, and eight medium PF motors controlled with the HiTechnic IRLink to push dominoes out of the magazine. The code is written in RobotC and the pattern and array are created in MS Excel.
Inspiration for this project, as I mentioned was Chalkbot. I considered several different mediums to spell out the message including spray paint, bricks, water and finger paint. I chose dominoes because I have two very large sets of dominoes (272 dominoes total), and it would be easy to pick up and reload.
DominoBot needed to be able steer and the wheels have to be extremely robust. I devised two pivoting trucks with four wheels each connected by a differential gear. The differential gear allowed a very wide base for each driving motor while still allowing it to turn.
I may have to replace that 20 year old clock radio that is currently at my design table. You know, just to maintain continuity.
Saturday, October 10, 2009
It works pretty well, so all I need to do is set it up and take some video.
Another teaser...my inspiration was Chalkbot. Well, maybe that was too much of a hint.
Friday, October 9, 2009
This is on my list of future projects. The only thing I am worried about is what to do with all the products created during the testing phase. I have a feeling that my testing periods won’t last much longer than about 30 minutes.
My only problem is that they haven't released a way to communicate via Bluetooth between more than 2 NXTs. I am fortunate enough to have 4 NXTs. If I choose a project that uses all of them, I have to be very creative and figure out a way to communicate between them. Yes, I know NXT-G does it really well, but I find that things start to go bad when I create very large programs with lots of decisions and loops.
Thursday, October 8, 2009
It looks pretty cool, and they claim you can have multiple multiplexers on a single NXT, so you can have up to sixteen sensors on one controller (WOW!). Throw in an IRLink to control some PF motors and an RCX and you have incredible power and control from a single NXT.
I already have several HiTechnic products and I find them to be very reliable. I have contacted them about technical support and they are great and usually get back to you quickly.
The drawback I see is that there are no NXT-G blocks to download yet, but they will be supporting LabVIEW 2009 and RobotC soon.
Now where did I put my wallet.....
Wednesday, October 7, 2009
I watch a lot of videos, mostly on YouTube.com. There are usually dozens of NXT videos loaded daily and I try to look at the most interesting ones nearly every day. There are some incredible people with incredible ideas out there, and I thank God that we have such a utility to share. I always walk away from watching videos inspired.
But one thing that is a turn off is watching a robot with too many "wait-time" blocks. The Great Apes are fascinated by shiny things, my loving wife loves expensive things, my kids love noisy things and robotisists love moving things. Don't get me wrong, the "wait-time" block is great for debugging, but not good for final runs that will be recorded and put out for public consumption. The attention span shortens when watching an outstanding robot doing nothing.
Plus, you can sign up for a free catalog. There's nothing like getting a Lego Robotics catalog in the mail and keeping it on the coffee table for perusing when not building.
A way to get a good speed and lots of power is to use a differential gear in a different way. Everybody is familiar with using a differential gear to power the both driving wheels of a vehicle so the wheels will be powered while turning a different speed. The same can be done with motors. Rather than attaching wheels to the differential, attach motors. Then the motors can be run either independently or together. When only one motor is running, there is a gear ratio of 2:1, when together there is a 1:1 ratio with twice the power.
There are some drawbacks to this;
- Power will always travel path of least resistance. This means that if you have a high load and only one motor is turned on, you will likely just turn the rotor of the other motor. This means that you may be required to run both motors at all times. Another solution is to incorporate worm gears on each motor, giving you an extremely powerful but slow gear box.
- To maximize power, each motor should have its own power supply, so you should double up on battery boxes and controls.
- You may end up with extremely high power, so you might want to consider beefing up some of the power transmission elements. Two XL PF motors could easily twist and break an axle under a high load condition.
I have used this technique a few times, and once I connected four 9v motors to drive a very large heavy wheel. It works great, but can be a space hog.