http://www.youtube.com/watch?v=fdam3BhB-dk&feature=youtu.be
Pointless Robot
Building a sophisticated robot scorpion
Sunday, 15 April 2012
First video!
I have posted the first video of the Scorpion walking and stinging under remote control on YouTube:
http://www.youtube.com/watch?v=fdam3BhB-dk&feature=youtu.be
http://www.youtube.com/watch?v=fdam3BhB-dk&feature=youtu.be
Friday, 13 April 2012
The Belly of the Beast
The first photos of the underneath of the finished (I hope) body. A high capacity 4500mAh lithium ion (Li-On) battery is slung underneath, providing 4.5 times the battery life of the Robotis Bioloid Premium 1000mAh battery. Black elastic cord is used to secure the battery but allow for quick change.
Tuesday, 13 March 2012
Octopod, not Hexapod!
The scorpion has the 8 legs it deserves now. My early experiments show it's easier to carry greater weight without straining the front and back legs if there are 8 legs and not 6.
So that's now 16 of AX-12A and 8 of AX-18A servos for the legs. The arms and tail use a further 7 servos (mixed AX-18A and AX-12A).
The main 'chassis' is made from 4 black 'CM5 adapter' parts from Trossen Robotics
So that's now 16 of AX-12A and 8 of AX-18A servos for the legs. The arms and tail use a further 7 servos (mixed AX-18A and AX-12A).
The main 'chassis' is made from 4 black 'CM5 adapter' parts from Trossen Robotics
The Comms and Display board
The ATMega2561-based CM-510 has the limitation of only two serial ports. One is used for the Dynamixel bus, leaving only one other for Zigbee or PC comms. The Scorpion needs several serial ports:
- Spektrum DX7s remote control
- µOLED-160-G1(GFX) OLED display
- PC logging
Broken legs - the work around
Even the weedier AX-12A Dynamixel servos used in the knee and hip joints have enough power to snap the weaker Bioloid frame parts - especially the F10 bracket.
The hexpod robot snapped two of these in early attempts at walking. I can blame my bad software, but it's not good when a software bug can cause a hardware failure...
So I've doubled up the F10 bracket, which should make it somewhere between 2 and 8 times stronger (the 8 times if the two layers are firmly clamped together and can't slide relative to each other). This seems to have done the trick. No more broken legs.
The hexpod robot snapped two of these in early attempts at walking. I can blame my bad software, but it's not good when a software bug can cause a hardware failure...
So I've doubled up the F10 bracket, which should make it somewhere between 2 and 8 times stronger (the 8 times if the two layers are firmly clamped together and can't slide relative to each other). This seems to have done the trick. No more broken legs.
Sunday, 4 March 2012
Controlling the legs: Inverse Kinematics
For my robot I'm developing an Inverse Kinematics (IK) engine from scratch. The purpose of the IK engine is to convert actions and positions from coordinate systems which makes sense for the complete robot (and the operator) into angular movements of the leg servos (see Wikipedia)
Although this is long since a 'solved' problem, it is nonetheless difficult to get right on an embedded platform because the equations are tough to solve symbolically or numerically. I'll be developing an approach where a workstation precomputes a number of tables which are downloaded with the robot firmware and then used by the robot in real time.
The first step is to get accurate positioning of a single leg. We wish to compute the three servo angles...
Although this is long since a 'solved' problem, it is nonetheless difficult to get right on an embedded platform because the equations are tough to solve symbolically or numerically. I'll be developing an approach where a workstation precomputes a number of tables which are downloaded with the robot firmware and then used by the robot in real time.
The first step is to get accurate positioning of a single leg. We wish to compute the three servo angles...
- theta S - Swing angle
- theta H - Hip angle
- theta K - Knee angle
- X - leg displacement forwards (horizontal)
- Y - leg displacement perpendicular to body (horizontal)
- Z - distance from hip to tip of foot (vertical)
Bioloid, Embedded-C and AVR Studio
Robotis generally includes pretty good instructions on how to use what they call 'Embedded C' - running compiled C code natively on the CM-510 or other controller. However no matter how many times I followed their instructions, AVR Studio (the GUI / build environment) could not find the compiler and make utility (provided in WinAVR).
The solution is to manually configure the path to WinAVR executables in the 'Custom Options' tab of the Project -> Configuration Options menu dialog. The image shows my example, where WinAVR was installed to e:\bioloid.
The solution is to manually configure the path to WinAVR executables in the 'Custom Options' tab of the Project -> Configuration Options menu dialog. The image shows my example, where WinAVR was installed to e:\bioloid.
Subscribe to:
Posts (Atom)