Results 1 to 7 of 7

Thread: Phantom_Phoenix on OpenCM 9.04...

  1. #1

    Phantom_Phoenix on OpenCM 9.04...

    As I have mentioned in a couple of threads, I have been doing some playing around with the Robotis OpenCM9.04 boards and seeing how appropriate it would be to maybe move away from the Arbotix-m (8 bit 16mhz AVR) board over to the Robotis OpenCM9.04 boards which are ARM M3 that run at 72mhz...

    Threads: http://forums.trossenrobotics.com/sh...(or-MX)-servos and http://forums.trossenrobotics.com/sh...(or-MX)-servos

    There are several reasons for this, including 32 bit ARM vs 8 bit AVR, but also hopefully more support for the board. That is they have an Arduino board install for current versions of Arduino, plus they have libraries that are setup for Protocol 1 and 2...

    I won't repeat everything from those threads, but I still wonder about a few different things, like a preferred way to use the OpenCM to connect up to AX/MX servos and likewise the new XL430-250 (which I have 2 on order to play with).

    One method is to use the OpenCM9.04c board connected up to their OpenCM 485 expansion board(http://www.robotis.us/opencm-485-expansion-boar/) So far you are still forced to solder the expansion connector pins to the 904C board to plug into this, but does give you AX/MX type servo connections, plus a barrel power connector. However it is not perfect... That is, the AX/MX servos are on this board using the Serial3 object, the Serial1 object on the 904 board is more or less ignored unless you use the 4 xl connectors... The hole pattern of the board does not match the 1cm hole grid pattern of the PhantomX plates... Also using the 485 board, with normal break off pins to connect the 904 to the 485, you don't have access to any of the unused pins of the 904... On one of the 904 boards that I soldered up I used some extra long header pins from Sparkfun such that I had access to some of these pins from the top...

    Still wondering if you are not just as well off, simply using the standard 904 board without the 485 expansion. Probably use simple 3d printed adapter board to mount it to top deck of Robot. Probably use two of the AX/MX Power hubs. Need a custom cable to connect from the 904s XL cables to the two hubs. Maybe just one cable and use normal AX/MX cable to connect the two hubs (Two as 6 legs, maybe head, plus connect to 904) > 6... Since the 904 is not connected to anything you are free to solder in expansion pins and connect other pins as desired...

    User Interface Controllers: I am playing around with two different ones.

    Arbotix Commander with XBee: At OSHPark, I have made a couple of XBee adapters for this. The first one is real simple, It has only the 2 2mm XBee conectors and a 4 pin connector like the one that is on the 904, so hopefully you can simply find cable to connect... Actually have 2nd version of this one, where I made it have mounting holes on 1cm grid... I also made a second version, that I have not assembled yet, that tries a horizontal version of the connector and added 3 leds (RX, TX, connect)... So you can see if you are actually talking or not... Again with 1cm grid mounting.

    The other controller I have tried, is the Robotis RC-100 controller http://www.robotis.us/rc-100b/ connected up with their bluetooth setup... I have some real real basic stuff sortof working with this one, but for about $100 you end up with no joysticks, just 10 buttons... So prefer other solution. However with the Bluetooth you do have the option of maybe connecting to cell phone or tablet and maybe have control using those...

    As I mentioned above, one reason for all of this is Arduino Support. You can install their stuff, by using the Arduino board manager. You need to edit the Arduino preferences and add to the Additional Boards manager URLs:
    Code:
    https://raw.githubusercontent.com/ROBOTIS-GIT/OpenCM9.04/master/arduino/opencm_release/package_opencm9.04_index.json
    You can then bring up the board manager and install the support for this board.

    Current state of things: I have a WIP where I ported over my AX12 Test program as well as a version of the Phantom Phoenix code base over to the Robotis DynamixelSDK and OpenCM... Currently the test program appears to work and I have my Ver 3 PhantomX hooked up and it appears to walk... So far I have not tried running it on battery, but tried it with wall wart...

    Code is up at: https://github.com/KurtE/Open_CM904

    Will post more about this soon... Probably want to clean a few things up first.

  2. #2

    Re: Phantom_Phoenix on OpenCM 9.04...

    Quick update:

    As I mentioned earlier I have played around with a couple of quick and dirty test boards for the OpenCM904C to use on the PhantomX and probably other ways...

    First I wanted to start off still using XBees to control it as the Robotis Controller using Bluetooth was very limiting. So I did a quick and dirty XBee adapter:
    Click image for larger version. 

Name:	XBee.jpg 
Views:	29 
Size:	106.1 KB 
ID:	7164
    This one is real basic, the mounting holes are on CM spacing so can easily attach to top plate. I have another version I have not built yet that added LED lights for RX/TX...

    Also I did not think the OpenCM 485 expansion board added very much needed functionality other than Power connector and some AX/MX connectors. So I did a quick and dirty HUB, which still has 6 AX/MX connectors, plus I added one of the XL320 like connectors on it. The Idea is that I could use this HUB, and plug power into it, then use an XL320 jumper wire to connect the HUB to the 904C board which would power the board and carry the DXL signal back to the HUB... I have not tested with this one yet, still using the 485 board for testing. But will hopefully try it out soon. Will probably setup some 3d printed mounting plate for the 904C board.
    Click image for larger version. 

Name:	Hub.jpg 
Views:	31 
Size:	84.8 KB 
ID:	7165


    Over the last few days, I started to play around with a Hexapod Leg that was built with some of the XL430-W250 Servos. The 3 servos are connected to look very much like a standard PhantomX Leg, but not sure yet how I will attach the Coxa to existing robot body. So Right now I just have the leg sitting next to the robot...

    I have then started to update the Phantom_Phoenix code base I mentioned in previous posting, to allow support for both Protocol 1 and Protocol 2 servos. It also should support having some servos on Serial1 and some on Serial3... I have some of the Init code setup to pass in Port/Protocol pairs, up to 4 to be supported.

    During code startup, as well when it tries to read in the Current Positions tries to locate all of the servos specified in the config file. During this it tries to figure out which of the Port/Protocol pairs it is on, as well as if the servo is AX type or XL type... It maintains this information, to be used for several different things like:
    a) Translate what actual Register to use to read or write some register. Example to Read the current position, For the AX type servo we read (#define AX_PRESENT_POSITION_L 36) for two bytes. But or the XL430 we read: (#define DXL_X_PRESENT_POSITION 132) for 4 bytes

    b) When we wish to output a pose to the servos, normally it has been done by using one SYNC_WRITE for all of the servos. The code now may need to output multiple SYNC_WRITES, where we split up the Protocol1/2 (as well as servo type) and Port.

    c) The translation from Angles to Servo units: Before the main driver code was doing the translations. I moved this into the lower level code where it knows which type servo it is and does different Mapping of units.
    ...

    Anyway yesterday, I was able to do some initial tests with the mocked up leg taking over for the Right Rear leg (8, 10, 12) and it looked like the servos were moving appropriately . Obviously it would be a better test to actually have the leg attached and see how it moves. Hopefully will be able to try that at some point.

    Also note: The Phantom Phoenix code still does all of the interpolation for the servos. Maybe at some point when/if I have a Hex with all of the XL servos, will be able to experiment with having the Servos take care of most of this as well. That is at a minimum set both the Goal position as well as the Goal speed.

    Now back to experimenting...

  3. #3

    Re: Phantom_Phoenix on OpenCM 9.04...

    As I mentioned in previous posting, I was playing around with 3d parts to make a leg, that is more or less the same as PhantomX leg...

    Click image for larger version. 

Name:	Leg.jpg 
Views:	44 
Size:	108.0 KB 
ID:	7173

    took me a couple of attempts for each piece as I kept underestimating how much I needed to increase hole sizes to compensate for 3d print filling in...

    Not sure yet on how/if I will try connecting Coxa to robot body... Also interesting for the other Coxa joint, used two AX servo C brackets, but needed to print hub spacers to make it work correctly (fill in 3mm difference), Not sure what Robotis parts they would use for this?
    Maybe 2 of: http://www.robotis.us/fr12-h101k-set/ at $34 each? So a couple of the AX brackets at about $5 is probably not a bad choice

    Although maybe a slightly modified version would be better if it had more of a slot at top or like to run wires up through hubs...

  4. #4

    Re: Phantom_Phoenix on OpenCM 9.04...

    I've found that trying to print the full "U" shape of brackets ends up not being durable and stiff enough.
    I like the part where you use a stand-off and screws instead.
    Have you tried two flat parts, connected only with screws, for each segment? Or maybe that's what you're doing here? It's hard to see how the foot is constructed.
    I do this with aluminum and it works great, but I've never tried 3D printing entire frame sets.

  5. #5

    Re: Phantom_Phoenix on OpenCM 9.04...

    Thanks,

    I have not tried printing full U/C brackets, the ones I am using are some older Trossen C brackets... Would have used the Metal version, but did not find any in my spare parts... Again just experimenting to make it at least close to what Trossen Made or will make...

    The Tibia is similar to the current PhantomX builds with two Tibia pieces with a foot one connecting into slots and screws with nut in in foot...

    Click image for larger version. 

Name:	Leg-Tibia-3D.jpg 
Views:	31 
Size:	58.6 KB 
ID:	7176Click image for larger version. 

Name:	Leg-Foot-3d.jpg 
Views:	30 
Size:	18.2 KB 
ID:	7177

    I am not very good at Fusion 360, so for I mainly do simple sketches with Push/Pull...

    The 45 degree offset brackets I am currently doing as two parts each side with the main part that screws onto the servo horn and then a spacer on the other side that is the same with as the servo horns... If I were doing more, I would probably build the offset into the main part and print a left one and a right one...

  6. #6

    Re: Phantom_Phoenix on OpenCM 9.04...

    Gotcha!

    I've found that the nice thing with 3D printed plastic is that you can print the "drilled" holes at a size where screws will self-form. That means that the typical nut-and-bolt T-shape you get from a laser cut part (as you can see towards the bottom of the sides of that toe part) can be closed up. I don't know how well those self-formed threads will hold up to the significant stress of toes in walking, though.

    Btw: I also like Fusion! I used to use inventor, but actually prefer Fusion. (Both of my Mechanical Engineering friends look at me sideways when I say that.)

  7. Re: Phantom_Phoenix on OpenCM 9.04...

    Great work Kurt. I'm following on your coattails, mostly observing. Its all a bit overwhelming. I just want to control a couple dynamixels from my pc via serial. I am weary . I wish somehow there was a comprehensive, central source of info for simple remote control of these (obviously ) powerful, expensive motors. So many libraries, IDE's, boards, hard to wade thru what is EOL, DOA, relevant.

Thread Information

Users Browsing this Thread

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

Similar Threads

  1. OpenCM 9.04 iwdg
    By lpala in forum Arbotix, Microcontrollers, Arduino
    Replies: 0
    Last Post: 07-28-2017, 12:32 PM
  2. OpenCM 9.04, best way to beep?
    By jwatte in forum DYNAMIXEL & Robot Actuators
    Replies: 10
    Last Post: 04-09-2017, 12:11 PM
  3. Question(s) Is my OpenCM 9.04 dead? Or do are my AX-12A servos?
    By corot in forum DYNAMIXEL & Robot Actuators
    Replies: 4
    Last Post: 10-31-2016, 04:54 PM
  4. Acceleration implementation on OpenCM?
    By jomo in forum DYNAMIXEL & Robot Actuators
    Replies: 4
    Last Post: 05-19-2016, 07:18 AM
  5. OpenCM IDE (Ubuntu 14.04)
    By rasheinstein in forum Arbotix, Microcontrollers, Arduino
    Replies: 2
    Last Post: 04-12-2016, 12:47 PM

Posting Permissions

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