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

Thread: Hexapod ROS revisited

  1. #1
    Join Date
    Jul 2014
    Location
    New Zealand
    Posts
    70
    Images
    3
    Rep Power
    17

    Hexapod ROS revisited

    After a couple of years of Hexapod sitting on the shelf (mainly because of a shortage of time on my part), a wet weekend provided the perfect opportunity to make a few "enhancements" and get it running again. A few hardware mods were added, most notably the small TFT screen with it's vital signs and a relay to enable the software to shut the servos down completely.

    I started with @KevinO's great work with ROS, updating it to run on Ubuntu 18.04 and ROS Melodic.

    The basics are mostly working, but a bit more work required on the gait (part of the problem in the video was caused by my IMU being loose and flopping around a bit too much).

    The break dancing at the end of the video was the result of my taking the constraints of the max angles - but does give the opportunity for you to hear soundplay kick in

    Last edited by CreedyNZ; 3 Weeks Ago at 05:03 AM.

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

    Re: Hexapod ROS revisited

    Looks great! I have a cut for Melodic as well. I should really push that back up. Let me know if you find anything broken or feel free to do a pull request.

  3. #3
    Join Date
    Jul 2014
    Location
    New Zealand
    Posts
    70
    Images
    3
    Rep Power
    17

    Re: Hexapod ROS revisited

    Hi Kevin,

    Most of the changes I needed to make were related to the navigation package. Now that I've got the IMU the right way up and have stopped what looked like the odom orbiting the base, I'm about 90% there - point clouds coming through and the tf outputs look OK. I'll aim to get that closer to 100% over the weekend then happy to initiate a pull request.

    I put a mic array on top, so hoping to get the hexapod to respond to the direction voice commands are coming from - that's the plan for this weekend anyway.

    I'm running RVIZ on a separate laptop and the RVIZ update is quite slow, so I might look at running a WIFI network connection from the Ethernet port rather than relying on the USB wifi dongle that I suspect may be bottlenecked by the USB host. The bot is running an Odroid N2 which has proven to be very stable and generally fast enough, but I think I'm pushing the limited USB hosts a little too far.

  4. #4

    Re: Hexapod ROS revisited

    I keep meaning to get back into ROS. I now have a Turtlebot3 (actually sort of two of them) and I did go through some of the stuff.

    But my next step is to then go to ROS2.

    And then I would like to revisit the Hexapod. At that point I will probably want to refactor where everything is. For example with the ROS2 stuff, a lot of the main control is on the OpenCR board, which handles a lot of the internals. Robotis was also working on some other refactoring where their lower level boards have their own Ethernet and they were looking into adding Wifi on them. So then these devices won't need to be slaved to to host board through USB...

    But currently I am still spending more of my time mucking around with the new Teensy T4 board. Plus getting back to working on the PhantomX with new servos and converting that code over to Robotis newer servo libraries...

  5. #5
    Join Date
    Jul 2014
    Location
    New Zealand
    Posts
    70
    Images
    3
    Rep Power
    17

    Re: Hexapod ROS revisited

    As an experiment I loaded the Phoenix code on the Arbotix M and feed it some very basic commands via rosserial. Reminded me how slick the Phoenix code looks.

    Got me thinking about options:

    1. Stick with the Arbotix-M rosserial link and increase the command set - relatively easy but expect I'll hit the limits of the Arbotix-M (especially the limited serial connections).

    2. Same as above, except load the Phoenix code on an Arduino Mega I have spare. Solves the serial port issue, but not sure I can run the AX 12s straight off the Mega? Though expect I could bridge a set of Rx Tx pins and create the half duplex?

    or

    3. Splash out on a Teensy or OpenCM9.04-C

    or

    4. Try and run the Phoenix Code directly off the XU4.

    Any thoughts appreciated....

  6. #6

    Re: Hexapod ROS revisited

    All of the above are valid options.

    However personally I would sort of shy away from 1. or 2. - They are workable and I have done both. Although I have not yet adapted them to ROS...

    3. - As you can probably tell, I like using Teensy boards, and will be playing around with some form of T4 board at some point soon. Still busy working on helping support that board with lots of other stuff, like currently with several different display boards/libraries...

    But if you are wanting a servo controller board that is supported by a company such as Robotis, the OpenCM board is not a bad choice. Likewise you can use their higher end board the OpenCR board...

    I have a version of the Phoenix code base that currently runs on these boards that was converted to use the Dynamixel SDK library up in the github project: https://github.com/KurtE/Open_CM_CR_Arduino_Sketches

    When I am not distracted playing with the T4, I am now trying to convert this code over to use their newer library DynamixelShield, which is setup for less overhead than the SDK/Workbench, but there are some current restrictions in the code that I need to get addressed.

    Hopefully I will get back to this soon.

    4. Likewise I have run the Phoenix code base on several different Linux boards, like the ODroid XU4. There are several versions of the code up in the: https://github.com/KurtE/Raspberry_Pi project. One of these years I should really clean out that project of lots of detritus in that project. I have it setup to talk to some servo controller to run the servos, which could be something like a Teensy, or OpenCM or USB2AX, U2D2...

    So lots of options

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

    Re: Hexapod ROS revisited

    With the latest restructure of my gait code and the addition of a ripple gait. With a few tweaks Creedy all the other gaits can be added....If that is what you are missing from the phoenix code.

  8. #8
    Join Date
    Jul 2014
    Location
    New Zealand
    Posts
    70
    Images
    3
    Rep Power
    17

    Re: Hexapod ROS revisited

    Quote Originally Posted by KevinO View Post
    With the latest restructure of my gait code and the addition of a ripple gait. With a few tweaks Creedy all the other gaits can be added....If that is what you are missing from the phoenix code.
    Hi,

    It is essentially the smoothness any variety of the gaits and the body transformations that I'm most interested in. I'm a little daunted by the thought of trying to add these to the ROS code, but your comments have encouraged me to have a go.

    I had understood, though might be wrong, that there were certain timing advantages from running the gait code on a micro controller as opposed to a single board computer like the XU4, but possibly those advantages are overstated. Interested in others views on their practical experience here?

    Will keep you posted on how things go. I sense a few evenings with Professor Google are in order to better understand gait calculations etc !

  9. #9
    Join Date
    Jul 2014
    Location
    New Zealand
    Posts
    70
    Images
    3
    Rep Power
    17

    Re: Hexapod ROS revisited

    Quote Originally Posted by KurtEck View Post
    All of the above are valid options.

    However personally I would sort of shy away from 1. or 2. - They are workable and I have done both. Although I have not yet adapted them to ROS...

    3. - As you can probably tell, I like using Teensy boards, and will be playing around with some form of T4 board at some point soon. Still busy working on helping support that board with lots of other stuff, like currently with several different display boards/libraries...

    But if you are wanting a servo controller board that is supported by a company such as Robotis, the OpenCM board is not a bad choice. Likewise you can use their higher end board the OpenCR board...

    I have a version of the Phoenix code base that currently runs on these boards that was converted to use the Dynamixel SDK library up in the github project: https://github.com/KurtE/Open_CM_CR_Arduino_Sketches

    When I am not distracted playing with the T4, I am now trying to convert this code over to use their newer library DynamixelShield, which is setup for less overhead than the SDK/Workbench, but there are some current restrictions in the code that I need to get addressed.

    Hopefully I will get back to this soon.

    4. Likewise I have run the Phoenix code base on several different Linux boards, like the ODroid XU4. There are several versions of the code up in the: https://github.com/KurtE/Raspberry_Pi project. One of these years I should really clean out that project of lots of detritus in that project. I have it setup to talk to some servo controller to run the servos, which could be something like a Teensy, or OpenCM or USB2AX, U2D2...

    So lots of options
    Thanks Kurt,

    Great practical advice as always.

    I'm encouraged by KevinO's comments to have a go add adding the extra gaits to his base ROS code. If that comes unstuck I'll have a go with an OpenCM or Teensy.

  10. #10

    Re: Hexapod ROS revisited

    Hi Kevin,

    Hope things are going well! Are you currently actively playing with the hexapod_ros code? The last changes I noticed where dated back to December?

    What I have been thinking about doing for awhile but keep getting side tracked, is to take another go at it. Probably this time with the Hexapod with XL430W250 servos.

    My thoughts have been to learn more about ROS, probably this time more going toward ROS2. So I have purchased Turtlebot3 waffle and also cobbled together most of a burger as well. Once I was comfortable enough with understanding the Turtlebot 3 code, that is up at: https://github.com/ROBOTIS-GIT/turtlebot3/tree/ros2

    I was thinking that I should be able to simply replace the code base that is specific to being a Rover, to instead have code specific to being a Hexapod... So with this, would have most of the Hexapod specific code in the secondary processor, which might either still be their OpenCR board or maybe a setup using their XEL nodules, or maybe a Teensy based setup.

    It will be interesting to experiment with different configrations, like does this secondary node still communicate with the main host (NUC, RPI4, ???), through USB and RosSerial? Or is it it's own network node, that runs completely independent?

    With this I would expect all of the Dynamixel control software to be using Robotis libraries, like Dynamixel Workbench or Dynamixel SDK or again maybe to their newer Dynamixel Shield library.

    Obviously how much of the Hexapod like features we can/should bring in is always an interesting question. Obviously could start off with something real simple like a fixed gait, very little hexapod capabilities... But could be fun to have it be able to for example raise/lower body and change height of stride if it finds it needs to do so, over or under things, likewise, I remember seeing a video that I think R3n33 pointed to, where a beta (kickstarter?) product, where they detected something like a door which in default configuration, the spider was too wide to get through, so it brought in it's legs closer in (and maybe rotated some of them?), such that it could make it through. At the time I think the demo was canned for it, but still might be interesting.

    But if or when I may ever get to playing with this again ???

    Again hoping you are doing well and having some fun!

Thread Information

Users Browsing this Thread

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

Posting Permissions

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