Results 1 to 4 of 4

Thread: Using NUKE IK without PyPose for Arduino based hexapod

  1. Using NUKE IK without PyPose for Arduino based hexapod

    Hi all,

    Apologies if this is covered somewhere, I have spent a few hours hunting around to no avail although I believe its a straightforward enough question

    I am using a 3DOF hexapod robot (supplied by DFROBOT ) using an Atmega2560 controller and Uptech CDS55xx Servos. Now, whilst the servos are mostly compatible with the Dynamixel AX protocol, I am unable to communicate with them using tools like PyPose.

    I am hoping to get my hands on the NUKE Kinematics code generated for another 3DOF hexapod, so that I can adapt this to my own needs.

    I see that someone else has done a similar thing using someone elses NUKE code for a quadruped ( ) and adapted this to run on his Arduino. If I can obtain similar code for a Hexapod I plan to adapt it in a similar way.

    If someone has some code that they can share it would be fantastic, even if its just the basic framework exported straight from NUKE.

    Many thanks!

  2. #2

    Re: Using NUKE IK without PyPose for Arduino based hexapod

    My code base is not based off of NUKE or the like, but off of the original Lynxotion Phoenix code base that I later ported over to C and the Arduino environment. I have also ported most of it to Linux. This is talked about in several threads including:

    Code base is up on github: Actually two different projects up there now. - Is the main one for Arduino for many different processors, and different servos and different input controllers. - Is specific to the PhantomX with AX servos and Commander. For quite awhile this was way behind the other project, but I have updated it recently to the newest stuff.

    Note however the code for the PhantomX/AX12 assumes the Arbotix board. Or in particular, the the low level file AX12.cpp that is contained in the Bioloid library does. So you may need to modify this code to work with the Arduino Mega with the DFRobot AX12 adapter.

    Edit: Took a quick look through the library code that you can download from DFRobot to control these servos. The code in this library is such that if the servo ID is < 30 use one serial port and >30 use a different serial port. So you would need to emulalate this in the AX12 code in the Arbotix code base. Also looking at the DFRobot support library, it looks incomplete and not fully functional. For example their function to return a servos current position, always returns a value of 1 and simply prints out whatever bytes it received back from the servo. It will be interesting to see if the stock Arduino hardware serial port driver will work well enough for you. The Arbotix people wrote their own code to handle it on the Arbotix and processors running on both boards run at 16mhz.
    One of these days may try running one on a Arduino Mega with one of the DFRobot adapters, which I purchased earlier from RobotShop.

    Last edited by KurtEck; 11-19-2013 at 11:42 AM.

  3. #3
    Join Date
    Jun 2010
    Rep Power

    Re: Using NUKE IK without PyPose for Arduino based hexapod

    "Arbotix people"?
    He's not a people. He's a minor Deity in His own right.

  4. Re: Using NUKE IK without PyPose for Arduino based hexapod

    Thanks for the quick reply Kurt! Those links are great and I will have a read through your code when I'm next working on the bot.

    I agree the DFROBOT CDS55xx libraries are pretty average, and incomplete. I had to spend a fair bit of time fixing them up before they did what I needed them to do. There also isnt a lot of great documentation for the CSS55xx servos, but after I discovered they are an AX12 copy it certainly helped a lot. In hindsight I wish I had got the kit from somewhere like Trossen instead, as there were a lot of other fiddly things (like parts missing or wrong) that took a bit of time to resolve. But its good experience, and something new for me

    I was wondering why the CDS libraries use two different serial ports on the Arduino for the motors <30 and >30. For me that puts 9 motors on each serial port. I figured it was to reduce the amount of congestion on the serial interface. It does seem to be working. I have had to turn off the status replies from the servos though because that was generating a lot of traffic. But I havent done any complex/fast movements yet so it remains to be seen whether there is going to be an issue with the serial port speed.

    I should be able to port the equivalent functions from the AX12.cpp libraries into my CDSxx library so that the code written for the AX12 can function. While looking at the AX12 library I thought it was really clever to just have a couple of simple functions to read/write bytes into the control table and then use macros like this

    #define SetPosition(id, pos) (ax12SetRegister2(id, AX_GOAL_POSITION_L, pos))
    #define GetPosition(id) (ax12GetRegister(id, AX_PRESENT_POSITION_L, 2))

    This is so much cleaner than the approach I was taking. I'm going to use this idea instead I can see why Ferguson is a robotics Deity!

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. Sucessful users of PyPose/NUKE, how is your system configured?
    By escott76 in forum Software and Programming
    Replies: 54
    Last Post: 06-05-2013, 12:48 AM
  2. NUKE trouble
    By byi in forum Mech Warfare
    Replies: 3
    Last Post: 03-14-2013, 03:00 PM
  3. Question(s) Arduino PyPose Error
    By hwan we in forum Software and Programming
    Replies: 2
    Last Post: 01-29-2013, 07:55 AM
  4. PhantomX Hexapod with Nuke - Question on how I am using it
    By cdraptor in forum Humanoids, Walkers & Crawlers
    Replies: 4
    Last Post: 04-11-2012, 04:01 AM
  5. Project Axon Based Hexapod Control (with a SSC-32 helper)
    By WGhost9 in forum Project Showcase
    Replies: 1
    Last Post: 01-14-2010, 12:46 AM

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts