Results 1 to 10 of 10

Thread: PhantomX + CM9.04 but no Xbee!

  1. #1

    PhantomX + CM9.04 but no Xbee!

    ...was building up a CM9.04 to run my PhantomX, and it hit me...why can't we use a standard 16CH Sbus RC radio system, with a simple SBUS channel-to-data-value conversion in software as the triggers for hexapod modes and configuration ?

    The current world of quadcopters (uavs) has a massive amount of interefaces for FPV, autonomous ops, telemetry data and etc.... why not use SBUS channels to set walk modes, (rotate/up/dn/ camera turret rotation/ROS, etc)

    code for SBUS is already up on github (one example = seems it would be easy to set up an array as the selectors to control a hex as well as let something like a Pixhawk/CC2/NAZE32 etc run the show. I that far off base?


  2. #2

    Re: PhantomX + CM9.04 but no Xbee!

    I use iBus, but other than that, yes, it's totally possible, assuming that you can live with the controls that can generate that format.
    (I e, sometimes custom controllers, or game controller setups, are more appropriate than your typical flight sticks.)

    I use this, which is compact and has decent range, and outputs 10 channels of 1000-2000 range 16-bit values at 115200 bps, about 60 times a second:
    The only draw-back is that it takes AA batteries, not a LiPo battery pack. I glued a 10000 mAh power bank on the bottom and soldered in the appropriate power. YMMV.

  3. #3

    Unhappy Re: PhantomX + CM9.04 but no Xbee!

    I'ts not just the sticks.... the idea of switches to set 'states' and on the reciever side, hold a 'mode' while others are operating.

    My bigger issue is lacing reciever side set points into the 'Phoenix code'.... the 'un-interuptable' nature of the gaits becomes a problem.

    For the kinematics used, could a position read-back be laced into the gait?.... so could be switched at any time? ... with the leg then knowing the 'source position' from which to head to the next move? I realize every gait would have to know it might not be starting from the same position (jumpy/spasm upon switching possibly)...but surely this too could be overcome within the code space of the CM9.04 controller (fingers crossed?)

    Seems all I read (can find) is work on the gaits and IK, and not much on transitions and additions besides what was authored/included by those that did so much work porting it to the AX series servos.

    Last edited by ptegler; 12-10-2018 at 04:24 PM.

  4. #4

    Re: PhantomX + CM9.04 but no Xbee!

    It's code. Anything CAN be done. How much work it it? I don't use Phoenix, so I have no idea.

    In my own system, I have a number of input variables (amount of turn, amount of forward speed, amount of strafe, etc,) and a time that advances forward until it reaches two-pi, at which point it loops back to zero. I can adjust the relation between "seconds" and "cycle time." Given a set of input control signals, I can fully determine where I want the leg tips to be, using forward kinematics:
    (time, forward, turn, strafe) -> (legpoint0, legpoint1, legpoint2, legpoint3) (mine is a quad)
    This is the "gait engine" -- if I want to switch between ripple gait and zig-zag gait, for example, I'd switch out this function.
    Given the leg points, I can then determine the desired servo goal orientations:
    (legpoint0, legpoint1, legpoint2, legpoint3) -> (servoApos, servoBpos, ...)
    I then subtract the previous position of that joint, divide by time, and apply some min/max clamping to come up with the desired movement speed. I update and send this 60 (?) times a second.
    The remote inputs affect the three input signals.

    Now, if you want to do smoothing between different gaits, you could do it at many levels:
    input signals -- fast jerky motion could be smoothed out by applying a max slew rate to control inputs. I do some of this.
    Leg tip positions -- smoothing between different gait engines would let you get a smoother transition. I do none of this.
    Servo angles -- smoothing servo angles can reduce jerk in the frame/servos and may make a gait smoother. In practice, I let the servos figure this out on their own, with a small amount of help from the (min/max limited) goal speed parameter.
    Works for me.

    Now, I don't know how Phoenix does this. It may decide on a particular gait "step" everytime it cycles, and lock to that until it cycles again, perhaps? No idea. However, you should be able to extract the "time + control inputs -> desired leg positions" code, and the "desired leg positions -> servo angles" IK solver code, and put them together in the way that best suits you.

  5. #5

    Re: PhantomX + CM9.04 but no Xbee!

    ...pretty much as expected (which params to control and which to target for next move)
    Phoenix has a very complex and inclusive IK engine...and uses the 'NUKE' and/or 'PyPose' style pose generators....then uses saved 'sequences' to step through to the next saved 'pose' to perform various gates. Overall the result is a relatively smooth gate...can be see running (my current ops mode) in the vid That vid is still the stock Robotix-M controller. in the middle of swapping over to a CM9.04 for the code space.


  6. #6
    Join Date
    Sep 2010
    Rep Power

    Re: PhantomX + CM9.04 but no Xbee!

    The Phoenix code does not use NUKE or PyPose. Phoenix is a completely independent gait engine developed by several lynxmotion forum members for their hobby servo multi-leg robots and their multi-channel servo controllers. NUKE and PyPose were developed by a different forum member explicitly for dynamixel servos and an arduino-based controller.

    The dynamixel-fied version of the Phoenix gait engine did at some point reuse some of the dynamixel library from the arbotix/pypose, but it has been significantly upgraded by KurtE.
    Please pardon the pedantry... and the profanity... and the convoluted speech pattern...
    "You have failed me, Brain!"

  7. #7

    Re: PhantomX + CM9.04 but no Xbee!

    As Tician mentioned, the Phoenix code is not based on Pypose...

    The gaits and the like were originally developed by the member Zenta (back in Lynxmotion days),

    Which Kåre originally setup an Excel spreadsheet to figure out motions and the like, more details still up at:

    Then another Lynxmotion memember Xan wrote the original Phoenix code in Basic for the Basic Atom Pro controllers. Again more information including how the gaits are implemented up at:

    I helped work on some of these versions of basic code and then later converted the code to Arduino (as well as a Linux version)...

    The Phoenix code base could use some cleanup, but one of my main github projects for it is/was: Where it can be configured to use different servo controllers as well as different input controllers, like the XBee code, or RC code, or ...

    I then made a specific version of this set of code for the PhantomX as to make it easier to configure and lose some of the other stuff.

    I have also played around with the more OpenCM9.04 and OpenCR version, which is up at:

    With the OpenCM version, I had it working with stock PhantomX 3... I have it also partially setup to use the XL430 servos as well. When I did this, I thought there would be a version of the PhantomX with these servos and OpenCM... But I have not heard anything about this for several months now... Hopefully I will get back to this at some point soon.

    The code does handle inputs and change the gaits steps dynamically. The code is not great at converting from gait to gait in a fluid way.

    I know Zenta was working on a new set of code where the gaits were much more dynamic, but I am not sure what state that code is currently in. Hopefully we will see that at some point in the future.

    As mentioned the code is setup for different IO controllers. At one point I had a simple RC input version, But again specific to that controller, where for example a position of a knob might control which gait to use...

    Hope that helps

  8. #8

    Re: PhantomX + CM9.04 but no Xbee!

    Also, if you have two separate gaits stored as snapshots, you can still interpolate between them as long as you can index by "logical time" (as in, "how far into the full cycle are you?")

    That being said, not running the IK on the controller would be a significant draw-back. You can't do things like tilting the body while walking without it.

  9. #9

    Re: PhantomX + CM9.04 but no Xbee!

    correct (who uses what)
    The reference was to the style of gait and sequencing of leg positions (poses). I do realize I cannot use nuke or pypose to directly create header files full of native poses the Phoenix engine would (can) run .

    There are still ruminants though of GP_sequences' for quadraped) sprinkled in the Phoenix code.

    Kurte E.... your CM9.04 code is what is currently compiled and loaded on the CM9.04 right here in front of me .... just waiting on delivery of a couple parts to build up a replacement mount layout for the CM, an XBEE Exploxer board, home brew AX servo lead beakout board and other accouterments. I was looking at construction in a 'modular' format to simplify future 'playing around' with comms and controls....swappable blocks at a future date.

    OK... simplified... primary objective of this latest PhantomX work... autonomy climbing stairs with a Jevois camera on the pan/tilt for facial recognition and emotions inclusion.

    Hence all my questions about gate mods.... being able to adjust gate to handle stairs. It will do (well...almost) it now but VERY clumsily :-)


  10. #10

    Re: PhantomX + CM9.04 but no Xbee!

    freakin spell checker Doohl remnants breakout explorer swap-able


Thread Information

Users Browsing this Thread

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

Similar Threads

  1. XBee, GPS, ? Help!
    By blenz in forum Robotics General Discussion
    Replies: 2
    Last Post: 05-18-2013, 09:56 PM
  2. Question(s) PhantomX AX Quadruped Mark II PhantomX Robot Turret Equipped??
    By hwan we in forum Robotics General Discussion
    Replies: 1
    Last Post: 03-11-2013, 03:09 PM
  3. For learning: PhantomX Hexapod vs PhantomX Quadruped
    By Leugim in forum Humanoids, Walkers & Crawlers
    Replies: 4
    Last Post: 10-26-2012, 09:50 AM
  4. Question(s) Arduino- xbee -xbee-arduino - stepper motors
    By Icemonkey in forum Arbotix, Microcontrollers, Arduino
    Replies: 7
    Last Post: 06-04-2012, 01:35 PM
  5. Question(s) Xbee and its PWM out
    By rnpnick in forum Robotics General Discussion
    Replies: 1
    Last Post: 01-01-2011, 10:19 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