Quad-Robot Visualizer

Hi everyone, this is my first post on the forum. I just want to share with you a project that I plan to implement, that is after I saved enough money. But so far most of my ideas are all on paper. Anyways, after looking at some of the amazing projects posted here, I have decided to make my own quad robot. I have all already decided on using the SES brackets for the legs, and each leg would have 3DOF. The reason I chose to use 3DOF per leg was to keep costs “relatively” low. Servos are expensive. Creating a hexapod would hurt my budget a lot. I have also decided to design my own chassis for the robot. To me, all of this is very exciting, however I was faced with the fact that I do not have a physical platform to try out some theories for my “future” quad. This is where QuadRV comes in.

http://i187.photobucket.com/albums/x228/ncabalos/QuadRVScreenshot.jpg

QuadRV stands for Quad-Robot Visualizer. The program was created by me using Java. The 3D graphics were implemented using Java OpenGL. The whole point of the program was for me to visualize the movement of my robot through the simulation of different gaits. (In the future, I hope to make my Quad walk using dynamic gaits). The program has an inverse kinematic engine, which I coded after studying up on IK and deriving my equations for my leg configuration, which by the way, took me 2 weeks to figure out how to do it. The program allows you to set the position of each foot (end effectors) at a certain location in space and the engine will compute the angles needed for the limbs. The program also allows you to position each foot by selecting and positioning the foot in the render window, that means you no longer need to type in numbers. All you need to do is click and drag. The simulation of the robots movement is done using key framing. You simply need to position the starting point of the leg, save the position as a key frame, then move the leg to the end point. When you play the simulation, the program automatically interpolates all the points between them. So far this is what the program does. I do have plans to create a servo sequence generator for it as well as a wireless connection to the robot. This means that after I have created my gait, I can convert it into the corresponding servo commands and send it to the robot, but ultimately, the robot will be autonomous. I plan to pursue this project as it keeps me busy and keeps me thinking. Anyways, I hope this is interesting for you as it was for me and I hope to hear some comments and suggestions you may have regarding my project. I could use all of your wisdom and expertise on this. Many Thanks.

Interesting program idea!

I would be interested in your program! I’m building a quadruped myself. I have 4DOF legs, but my chassis will take two versions of 3DOF legs as well.

Do you have parameters that can be set for the angle of the legs, and the length of the leg segments.

Let me know if you want to work on a chassis design.

Alan KM6VV

Hi, yes. The panel on the left allows you to change parameters of the robot such as link length and chassis dimensions. However, the parameters for one leg will be applied to all legs.

Having the parameters applied to all legs is probably OK. I had considered making up different leg lengths for an octopod robot, but it took too many servos, and got really heavy. The angles of the legs to the chassis would be important.

Alan KM6VV

Yes, that is one reason why I chose to make a quad. More servos = more weight = more powerful servos = higher budget. :laughing:

Here’s a screenshot that shows some of the possible angles of the legs.

http://i187.photobucket.com/albums/x228/ncabalos/legAngles.jpg

Here’s another screenshot that shows a quad with smaller legs and a smaller chassis.

http://i187.photobucket.com/albums/x228/ncabalos/smallQuad.jpg

Looks quite nice!

I see what appear to be “ball” joints, something that’s not often done in robotics. We can make the ball joints, but how does one power the joint?

I have designed a 4DOF leg, details on another thread.

lynxmotion.net/viewtopic.php?t=5370&highlight=

Can one choose the type of joints (plane of rotation) for each joint?

I’m looking forward to trying out your program, should you make it available.

Alan KM6VV

Hi, in the actual implementation, those aren’t ball joint. I just made them round in the 3D model. The leg model is just a representation of the following leg configuration that I plan to use.

http://i187.photobucket.com/albums/x228/ncabalos/legConfig.jpg

Also if you wanted to change the plane of rotation of the joints, the kinematic engine would have to be modified, as the equations for the leg configuration is “hardcoded”

Sure. Does the forum allow the posting of software?

If the source code is not very large you can always post it as part of a post, preferably in one or more code blocks. If it is larger than the current forum does not support attachments. They are in the process of converting to new forum software, but they have hit a few roadblocks, hopefully soon.

I and probably others have hoisting web servers that could handle your program, or I understand that LM will be able to provide hoisting for the forum real soon now!

Alan KM6VV

Here’s the program if you want to try it out. Sorry for the lack of documentation though. Just let me know if you need to know how to use it.

mediafire.com/file/zlwon2ufjln/QuadRV-win.zip

Just extract and double click the .bat file. Make sure you have Java installed properly on your computer (Java should be able to run from the command prompt).

Sorry! the zip doesn’t open for me. Can anyone else open it?

Nice 3D drawings! The leg model looks like a standard 3DOF “A” leg.

Alan KM6VV

Hi, I tried downloading the file and I could extract it successfully. I used Winrar to extract it.

The new server is installed and has the current version of the forum on it. They will be switching the DNS stuff later this week. After we are all pointing to the right box they will upgrade the software to PHBB V3.x. Finally!!! Sorry for the hijack. :wink:

Here’s an update of my project. Here’s a render of what my quad would look like. I also modified the IK and FK equations of my program to correspond to the quad robot.

http://i187.photobucket.com/albums/x228/ncabalos/QuadRender.jpg

Nice rendering!

Yeah, I’ve been working on re-figuring my IK as well. My 4DOF leg configurations on “Little Cat” do not correspond to the IK used for a hexapod!

And I can see that your legs and Felix’s legs do not either! So much for a quick start-up with Phoenix code! Or did I miss something?

Alan KM6VV

I had to redo the equations because the orientation of the joints are different. In my previous configuration, my coxa joint rotates about the X axis. In newest configuration, the coxa joint now rotates about the Y axis. Too bad there’s no easier way to solve for the IK equations, or maybe someone knows something I don’t.