Page 1 of 2 12 LastLast
Results 1 to 10 of 11

Thread: EARL Hexapod

  1. #1
    Join Date
    Dec 2015
    Location
    San Antonio, TX
    Posts
    24
    Rep Power
    4

    EARL Hexapod

    Click image for larger version. 

Name:	EARL Draft.jpg 
Views:	85 
Size:	24.1 KB 
ID:	6471

    I decided that I would build a hexapod in order to show colleges what I can do. Now, I have realized the real potential of my robot. When I first began, I just wanted to make it walk, via a preprogrammed walking gait. Now, I am hoping to have my hexapod teach itself to walk in the next year. This is a thread about my progress, and about the challenges I face along the way.

    First, I had to do a lot of planning. This meant the costs, the hardware I wanted to use, and the software I needed to acquire. This part is really bring though, so I wont be putting much time towards talking about that.

    The main things to know, are that the plan was to use an Intel NUC 5th generation i7 with 16 gb. RAM, and 250 gb. M.2 SSD. I also planned to use a Point Grey Chameleon research camera and an Arbotix Pro sub-controller. In the end, I want to have incorporated MX motors, but I will be starting out with AX-18A motors.

    My first few designs were very rough...
    Click image for larger version. 

Name:	F-2.0.0.A.8.jpg 
Views:	57 
Size:	20.2 KB 
ID:	6469
    Then, they slowly became developed, as I printed and tested the parts.
    Click image for larger version. 

Name:	EARL_FEMUR.jpg 
Views:	66 
Size:	23.5 KB 
ID:	6470


    Lately, I have been focusing more of my time towards the actual programming, but I have been having trouble understanding how to incorporate the Intel Nuc into my robot, because I am not very familiar with Linux Ubuntu.

    The hardest part about the programming, though, is grasping the subject of serial communication. I understand how it works, but I just don't quite understand how to program with it. Is there a specific library that is default with the Arbotix Pro, or do I need to create my own? And if I need to create my own, how close to Assembly language, do I have to get? I have a sufficient knowledge of C++, but no clue how to run programs in Ubuntu, that work with the Pro. Maybe I will be able to find a tutorial on how to make a motor run, without using the Arduino IDE. I really do not want to use the Arduino IDE. Too easy.
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    03/01/16
    -------------
    Today, I have been working on understanding the Dynamixel SDK. I was advised that I learn about this, before I try to create my own. Having been told this by a well-respected friend, I feel that this is the best option for me. I have begun to understand platform porting, and what it means to be platform dependent and platform independent.

    As I work with Ubuntu, I continue to grow towards liking it much more than windows. I don't know why I would ever need to go back.

    Tomorrow, my USB2AX and Arbotix Pro arrive in the mail. My Chameleon research camera should arrive by the end of the week, too.
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    03/11/16
    -------------

    Sorry I have not posted in awhile. I have been super busy, and I just forgot to. I finally was able to get the tibia design just how I like t, and now I am working on printing all of them. The only downside is this: Out of over 15 attempts, I have only had one successful print, due to the fact that my printer is not that great(it is actually my school's 3D printer,but I am the only one with access to it.)

    If there is anyone out there who would be willing to print me 6 parts in black ABS, I would be extremely grateful. Each one is about 18cm(180mm) long. I need them in a reasonably high resolution.

    As of programming, I have been working on grasping the idea of serial programming. (In Linux, of course). I am just getting into learning about the termios.h library, as I feel like that is a good place to start. If anyone else has any suggestions on what I should be learning at first, please post it below, and I will respond and either take your suggestion, or I will Let you know that I have already developed a sufficient understanding of what it is that you suggested. Once again, there is so much to learn, so I am trying to take it one step at a time. I feel like I just need to slow down. By going slower, I think I will learn more, and in the long run, actually work faster. HMM, funny how that works. I did not bother to reread what I typed, due to lack of time, but I apologize for any errors.


    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    04/07/16
    -------------
    So here I am. I have decided to stray away from the Arbotix pro, due to the lightweight capabilities of the USB2AX. However, I am having trouble understanding something, so correct me if I am wrong...

    Assuming I am working in an IDE, in which the code is easily compiled for me, I am able to connect to the motors through the USB2AX, bu using the member 'dxl_initialize(0, 1);' correct? And from that point, I can write any code to the motors?
    Last edited by gregorio_626; 04-08-2016 at 11:08 AM. Reason: Update

  2. #2
    Join Date
    Dec 2012
    Location
    Los Angeles, CA
    Posts
    821
    Images
    25
    Rep Power
    78

    Re: EARL Hexapod

    Your design must be inspired by Matt Bunting's design he did for Intel. I believe he is still on the forums. I will send him a message and let him know he has a fan!

    Click image for larger version. 

Name:	hexapod_matt_bunting.jpg 
Views:	48 
Size:	84.4 KB 
ID:	6476


    My design Golem has similar specs to your design. I use the Pont Grey camera and Intel NUC with Linux as well. Although I use a Xevel's USB2AX since it is smaller and simple to implement. Linux should be very straight forward and in my opinion easier to work in than the bloated Windows OS you should be able to ramp up in no time. Kurt, Xevel, R3n33 and several others all have similar systems to what you described.

  3. #3
    Join Date
    Dec 2015
    Location
    San Antonio, TX
    Posts
    24
    Rep Power
    4

    Re: EARL Hexapod

    Yes, everything about Matt's robot was an inspiration to me. I really appreciate how well thought-out the design was. I also have a USB2AX coming in the mail with the pro.

    I have confirmed that one of my greatest problems is that I just really need to slow down, and break up my problems.

    I was talking to Matt for awhile, but I have not heard from him in a very very long time. Probably a good 4 - 6 months. He still owes me a skype meeting. lol

  4. #4

    Re: EARL Hexapod

    Quote Originally Posted by gregorio_626 View Post
    Lately, I have been focusing more of my time towards the actual programming, but I have been having trouble understanding how to incorporate the Intel Nuc into my robot, because I am not very familiar with Linux Ubuntu.

    The hardest part about the programming, though, is grasping the subject of serial communication. I understand how it works, but I just don't quite understand how to program with it. Is there a specific library that is default with the Arbotix Pro, or do I need to create my own? And if I need to create my own, how close to Assembly language, do I have to get? I have a sufficient knowledge of C++, but no clue how to run programs in Ubuntu, that work with the Pro. Maybe I will be able to find a tutorial on how to make a motor run, without using the Arduino IDE. I really do not want to use the Arduino IDE. Too easy.
    There are others up there like Kevin who are much more familiar with working with the NUC. I have an older less powerful NUC sitting around that I do some stuff with. Mainly as a secondary development system.

    I was also pretty green when it came to using Linux, but did got lots of help from others like Kevin when I tried my first linux box which was an Raspberry Pi.

    I have a project up on github: https://www.github.com/kurte/Raspberry_pi that was my notes on how to set things up to run on it. I kept adding some different notes along the way when I have tried out some other boards, like BeagleBone black, Odroids, Intel Edison, which is a semi jumble of notes in the main readme file.

    As with most things in linux you talk to the devices through the file system. They will be in the name space under /dev
    The Arbotix Pro uses an FTDI chip and will create a device with a name like: /dev/ttyUSB0 note the 0 is the first FTDI device if you have other ftdi devices it may be ttyUSB1... The USB2AX is an Atmega32u2 device whoes driver creates a name like:
    /dev/ttyACM0 (again 0 may be 1...). To send and receive data from these serial devices you use file io calls like read/write.
    However you will need to configure things properly, like baud rate. These are done through a system IOCTLS and termios.

    Not sure about tutorials and the like. Code wise I looked around and made my own versions. Example: I ported the Bioloid library into the Raspberry Pi project. In this I am playing around with hiding some of the differences between using the USB2AX from Arbotix Pro. There are differences in what IOCTLS work between the two drivers. Likewise working on supporting the Arbotix Pro over USB versus TTL serial. That part probably does not matter to you as you probably don't have a hardware serial port on your NUC?

    Documents for Arbotix Pro. I am not sure how much there is. Note: the Pro is 90+ percent like the old Robotis CM-730 controller, so take a look for documents for it.

    Once you have the basic communications working between the NUC and the Arbotix Pro, you talk to it in much the same way you talk to the servos. It has id=200 and a bunch of defined registers.

    Renee (r3n33) would probably also be able to say a lot more about this as I do believe she is using an Arbotix Pro with a NUC on her HR-OS5.

    Hope that helps (a little)
    Kurt

  5. #5
    Join Date
    Dec 2012
    Location
    Los Angeles, CA
    Posts
    821
    Images
    25
    Rep Power
    78

    Re: EARL Hexapod

    There is no serial port exposed on the NUC motherboard. There is a extra USB2 connector on the mother board that they didn't route to a port you but you will have to make your own cable for it.

  6. #6
    Join Date
    Dec 2015
    Location
    San Antonio, TX
    Posts
    24
    Rep Power
    4

    Re: EARL Hexapod

    I have been working with Andrew Dresner and Renee. Also, I have had help from Ben Greer. They have been very helpful, and I am extremly appreciative of their help. Andrew and I were talking today, and he suggested that I first learn serial com with the USB port, before I move to messing with those headers, to avoid unnecessary frustration, and to learn the basics. So far, my list of things to learn, are linux\serial.h, and termios.h

    I will take your advice, and contact r3n33 again, to get some help on this

  7. #7
    Join Date
    Dec 2012
    Location
    Los Angeles, CA
    Posts
    821
    Images
    25
    Rep Power
    78

    Re: EARL Hexapod

    If you decide to go the USB2AX route my ROS hexapod stack can be a simple example on how to use the USB2AX with a modified Dynamixel SDK. My stack example builds a sync_write packet so the pose stays timed. (Although there are several examples of sync_write out there.)

    https://github.com/KevinOchs/hexapod...rvo_driver.cpp

    It is ROS wrapped although it's C++ so no issue using it out of ROS.

    Ah Ben Greer! The overly dramatic hexapod trailer. Great gait on that.

  8. #8

    Re: EARL Hexapod

    Sounds like good advice, as I mentioned, It helped me to find examples of code that did some of this stuff.

    As I mentioned I have the Bioloid code, which is a modified version of what Xevel has which I believe comes from Robotis...

    Kevin's ROS Hexapod as well as the HR-OS1 code has more or less the same BIOLOID code. For example in Kevin's ROS code (which I will soon be playing with again), there is the file ~/hexapod_ros/dynamixel_sdk/src/dxl_hal.cpp, which has the porting code to adapt the bioloid library to the USB2AX. Note: This code will not work unmodified with the Arbotix Pro. First off it assumes /dev/ttyACM0.

    I have a hacked up version of this as part of my HROS1, which first tries for a hard coded name: \dev\ttyDXL
    I did this to allow me to use udev rules (or symbolic link) to handle the cases where you may have multiple FTDI devices or multiple ACM objects, which in my case is very possible as I may hook up secondary processor like Arduino Pro mini to do things like adding sensors and or neopixels.... I also use it now for other reasons like I may not be using an USB adapter.

    If it fails it then looks for /dev/ttyUSB0 and if that fails it looks for /dev/ttyACM0 (order may be reversed). I did this as I am experimenting with USB2AX and Arbotix Pro and Teensy Arbotix PRo and the later two with either USB or TTL serial and I hate having to change the code for every test... Soon will be doing the same with the hexapod code.

    There are other additional differences between the two serial controllers, but maybe better to wait until later to mention or on other threads.

    Also in my library folder has some other examples of serial, like a wrapper that emulates the Serial class, as well as code to read read in an Arbotix Commander...

  9. #9
    Join Date
    Dec 2015
    Location
    San Antonio, TX
    Posts
    24
    Rep Power
    4

    Re: EARL Hexapod

    Slow down. Half of the stuff you mentioned, I do not understand yet. You have to dumb things down

  10. #10

    Re: EARL Hexapod

    Oops, sorry,

    I was mainly trying to point you to several examples... When I started off, I also started off learning things like the Serial/Terminal, by doing simple examples: In my first case, I was updating my Lynxmotion T-Hex to an RPI. So I knew I had to do handle two serial port devices. An XBee to receive messages from Arbotix Commander (later from DIY Remote control) and to the SSC-32 servo controller.

    So I setup a couple of c++ classes for these in my RPI project in the library directory and built simple test apps. Not sure if I still have the commander test program as part of this project, I see I still have the SSC-32 test program.

    Again not sure if it helps, but the file: https://github.com/KurtE/Raspberry_P...ommanderEx.cpp
    has the Commander code, including all of the stuff to open the file, termios... Plus it creates a worker thread, who waits on the serial port for packets from the commander...

    Let me know if you have any questions, otherwise...

Thread Information

Users Browsing this Thread

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

Similar Threads

  1. Hexapod V1-TR
    By amorfy in forum Project Showcase
    Replies: 11
    Last Post: 05-27-2011, 02:11 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
  •