Page 4 of 10 FirstFirst 12345678 ... LastLast
Results 31 to 40 of 95

Thread: ROS enabled PhantomX Hexapod

  1. Re: ROS enabled PhantomX Hexapod

    Quote Originally Posted by r3n33 View Post
    In those links you posted there is an image of a PhantomX rendering.. I see what looks like foot sensors? That is something I'm interested in playing with one day and I've been considering how I'd design such a sensor/switch. I'm curious if you or someone you know has already ventured down that avenue?
    Yes, they are redesigned feet to hold a force sensor, a FSR 400 actually. They were designed and one were 3D-printed but not tested on the hexapod. I will improve the design but I'm not sure yet if I will stay with the FSR 400, move to the larger FSR 402 or simply use switches. If someone has experience with one of those, I'm also interested.
    But before that, I want to try if I can use the compliant feature of the Dynamixel servos like others already did. Maybe it is enough and doesn't need extra components.
    - https://cyber.felk.cvut.cz/research/theses/papers/480.pdf
    - http://scholarcommons.usf.edu/cgi/vi...38&context=etd (here, they add an additional servo for the compliance)

  2. Re: ROS enabled PhantomX Hexapod

    Quote Originally Posted by r3n33 View Post
    Hey jwatte.. thank you! You led me down a good path with those compiler flags.

    These are what I went with on the Pi2:
    -O3 -mfloat-abi=hard -mfpu=neon-vfpv4 -mcpu=cortex-a7

    And now CPU usage looks much better! This is while walking with Depth Sensor off still.
    Hi,
    I'm interested in the optimizations with the compiler flags.
    Where do you set up those with catkin_make ?

    Romain

  3. #33
    Join Date
    Sep 2010
    Location
    ಠ_ಠ
    Posts
    2,173
    Images
    27
    Rep Power
    267

    Re: ROS enabled PhantomX Hexapod

    Quote Originally Posted by r3n33 View Post
    In those links you posted there is an image of a PhantomX rendering.. I see what looks like foot sensors? That is something I'm interested in playing with one day and I've been considering how I'd design such a sensor/switch. I'm curious if you or someone you know has already ventured down that avenue?
    I'm pretty sure that lynxmotion had made foot pegs for their crawlers that integrated a 0.2" FSR, but not sure how many people actually used them or how well they worked (KurtEck might know); think they may only have been usable by the lynxmotion controllers as simple contact switches instead of force sensors. The plastic feet of the Robotis kits have four slots+recesses in the bottom to accommodate 0.2" FSRs and Jon Hylands made some dynamixel device kits for them 5~6 years ago, but the 'rely on direct contact with the ground' bit made them prone to error and not terribly useful except in some very slow one-leg balance experiments with a Premium Type-A. The DARwIn-OP also has a version of the foot from Robotis with four 0.2" FSR sandwiched between the foot plate and the frame attached to the servos, but still not very accurate because of the flat, non-compliant contact surfaces and the spacer built into the FSR. With the plastic feet, I had to add multiple layers of tiny bits of duck tape to the FSRs to sort of calibrate them before coating the entire bottom in kapton to keep everything sort of protected; I'm thinking the kapton on some of the feet in the lab were then have been coated in another layer of duck tape for traction, but my memory of 2010~2012 is still fuzzy. I expect that someone has tried using flexiforce sensors instead of cheaper FSRs for greater accuracy, but they are also quite a bit more expensive and not sure they would actually provide much more useful information.

    Quote Originally Posted by Romain View Post
    But before that, I want to try if I can use the compliant feature of the Dynamixel servos like others already did. Maybe it is enough and doesn't need extra components.
    - https://cyber.felk.cvut.cz/research/theses/papers/480.pdf
    - http://scholarcommons.usf.edu/cgi/vi...38&context=etd (here, they add an additional servo for the compliance)
    Pretty cool papers, though my quick and sleep deprived skimming did not pick out how they dealt with the feet snagging on obstacles or hitting obstacles taller than the feet were raised during their non-support portion of the gait. Still much more impressive than anything I've done with the built-in compliance of dynamixels: a wireless marionette system with simple force/position feedback between two gerwalks. It worked, but not very well because I was limited to using only RoboPlus Task for programming both of the bots (limited variables, no arrays, limited RF comms, etc.).
    Please pardon the pedantry... and the profanity... and the convoluted speech pattern...
    "You have failed me, Brain!"
    bleh

  4. #34

    Re: ROS enabled PhantomX Hexapod

    Actually Kåre (Zenta) and/or Xan (not sure if he is ever up here) could probably answer some of this much better than I can.

    But yes, we were starting to do some experiments with feet sensors over at Lynxmotion. I know some of us started off playing with some FSRs and I personally never had any luck with them as they were pretty picky on exactly where the foot hits and the like. Looks like Roboshop (purchased Lynxmotion) still sells some: http://www.robotshop.com/en/lynxmoti...nsor-pair.html

    That is when some of us started playing with switches/switching circuits. The first set was with a bottom tube and foot piece that was pushed out by spring, and when pressed back in made contact... These two were very finicky and my attempts to use them on hexapod, only a few of them worked reasonably reliably. Jim then came up with a new designed leg switch for the T-Hex that enbeded a switch which worked pretty well. The early versions of the T-Hex came with these legs (minus the switch) as there was no released code to make use of them. I think later versions of the T-Hex they simplified the leg and they are no longer setup for this. Could go into more about this but...

    What I have been meaning to try is to see how much we can detect simply by monitoring the AX-12(18... MX) servos. To detect when it is stepping onto something. I know at Orion Robotics (Basic Micro) Nathan was experimenting some with this, with their own Servos, which are like modified Hitec HS-645mg servos (RC signals), that can provide feedback (special pulse width to servo, who responds with a pulse back whose width gives you their current position). He also had a way to calculate approximate torque, I think from where you told the servo to go, where it says it is, which direction is it turning... So with the torque information, the code base was starting to try to detect some uneven ground stuff, by seeing if/when torque (or power usage or...) changes when you are not expecting it to, and build that knowledge into the gait. Things like:

    When the leg is being lifted: probably don't need to check (maybe some checks later on if leg hits something above it).

    When the leg is lifted and being move foreword, check Ankle/Knee servos if goes up maybe running into something, maybe try lifting leg higher.

    when lowering leg again check to see if pressure goes up to some threshold, leg is probably down... Maybe stepping on to some thing... But unmodified this still did not detect divots, maybe walk gait should extend beyond where it thinks the ground should be and stop only when it hits something...

    Again what Nathan was trying out, looked interesting, but they never really completed the stuff and for the most part I think Orion Robotics/Basic Micro are gone and their owners now only work on the Roboclaw type stuff (ION control)... But I keep meaning to experiment with some of this on the Dynamixel servos, especially since now we are using processors with a lot more horsepower than before...

    Also a year or two ago Kåre did some interesting experiments with the PhantomX hexapod with uneven terrain walking. There is a thread up here somewhere, plus at least one youtube video (https://www.youtube.com/watch?v=byzP9QiFadI).
    He can explain it a lot better than I can, but instead of trying to monitor when the leg hits something coming down, you instead simply allow it to hit something and figure out where it is. Something like the above, but instead of monitoring the servos, you know in the gait when the leg is supposed to be lowering. You then modify the servo parameters to change the torque limit(?) to something real low, so when it lowers and the leg hits something the servos simply stop. When in the gait you think the lowering has completed, you ask the servos for their actual current positions, from this you can calculate the actual position (height) using FK...
    Again looking at his video you can see it worked pretty well!

    Sorry if I am a little too verbose or am off topic.

    Kurt

  5. #35
    Join Date
    Mar 2015
    Location
    Texas
    Posts
    342
    Images
    15
    Rep Power
    26

    Re: ROS enabled PhantomX Hexapod

    Wow cool these are some interesting views.. I'm glad I'm not the first to be looking into these things

    I was thinking along the line of mechanical switches but hadn't considered FSRs. Honestly, I don't know if I'll venture down floor sensing blvd or continue to work with the IMU and consider feedback from the servos. For now mapping and navigation is the goal and I'll take on as much extra as I can along the way especially if there is an opportunity to use the 3D printer.

    As far as adding the compiler flags goes I had to add them after the catkin build directory was created from a catkin_make. There may be another way to accomplish this but I've stopped looking since I'm satisfied with this method:

    Inside: [workspace]/build/CMakeCache.txt
    Find: //Flags used by the compiler during all build types.
    Change: CMAKE_CXX_FLAGS:STRING=-O3 -mfloat-abi=hard -mfpu=neon-vfpv4 -mcpu=cortex-a7

    Also, just for fun, here is a video I made last night where I play around with the IMU leveling:



    You might notice that I've replaced the little rubber pads (for the toes) from the PhantomX kit with beefy EcoFlex PLA pads that I printed since it only took a week to wear down the originals. This is one reason I know I'm going to want to put a little more time into the foot design
    Last edited by r3n33; 04-30-2015 at 10:20 AM. Reason: video not working?
    01001001001000000100110001101111011101100110010100 10000001010010011011110110001001101111011101000111 0011

    My Instagram
    My YouTube

  6. #36

    Re: ROS enabled PhantomX Hexapod

    Again looks great. As I mentioned it is inspiring me to hopefully finally get a handle on ROS, so soon I will install my second RPI2 on the PhantomX.

    (Sorry if off topic here, will create new thread soon!)
    Yesterday I received a 32gb SD card (lots of room for stuff). So far I have installed the later Raspberry Pi image and updated...

    I also downloaded my Raspberry Pi project (https://github.com/KurtE/Raspberry_Pi) which has a few different versions of my Phoenix software ported to Linux), and used the readme.md file in there to install all of the stuff like Espeak/portaudio... so I could compile the code. Soon up replace the Edison on the PhantomX with this board and see if this works (probably still with XBee) Will then try version with PS3 controller... Install camera... Then Try ROS version...

    But I am also in the process of installing ROS on this card. I am currently trying to do the steps in the web link: http://wiki.ros.org/ROSberryPi/Insta...Raspberry%20Pi

    One question/issue I have so far is: in the step to build liblz4-dev (apt-get source -b lz4) it appears like this step just hangs
    Code:
    LZ4_decompress_fast             :     18092 ->    69.4 MB/s
    LZ4_decompress_fast_withPrefix6 :     18092 ->    69.4 MB/s
    LZ4_decompress_fast_usingDict   :     18092 ->    68.2 MB/s
    LZ4_decompress_safe             :     18092 ->    65.1 MB/s
    LZ4_decompress_safe_withPrefix6 :     18092 ->    68.0 MB/s
    LZ4_decompress_safe_usingDict   :     18092 ->    64.6 MB/s
    LZ4_decompress_safe_partial     :     18092 ->    64.1 MB/s
    cc      -I.. -D_FORTIFY_SOURCE=2 -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -I. -std=c99 -Wall -Wextra -Wundef -Wshadow -Wstrict-prototypes -DLZ4_VERSION=\"r122\" -Wl,-z,relro ../lz4.c ../lz4hc.c xxhash.c fuzzer.c -o fuzzer
    ./fuzzer --no-prompt
    Starting LZ4 fuzzer (32-bits, r122)
    Seed = 0
    Overflow tests : high address not possible
          0 /  65536   -
    Did you run into this? Is so do you know the fix?
    EDIT: Update - I let this run for about two hours and it now finally completed

    Also on performance. I vaguely remember when I was earlier working on the RPI (not RPI2) that if I was running headless, I might have gotten better performance by reducing the amount of memory taken by the GPU. (raspi-config advanced options/memory split). I wonder if that still is valid with RPI2? Or does the camera stuff use the GPU? If so maybe it makes sense to give more memory? ... Just sort of wondering...

    Again sorry if hijack... But it looks like you are having fun and it might have been the gentle kick in the rear that I needed :lol:

    Kurt
    Last edited by KurtEck; 05-01-2015 at 10:49 AM.

  7. #37
    Join Date
    Mar 2015
    Location
    Texas
    Posts
    342
    Images
    15
    Rep Power
    26

    Re: ROS enabled PhantomX Hexapod

    Hey Kurt

    I'm thinking about trying some of those same instructions today to get ROS running on the Raspbian image. At the moment I've had the most luck with an unoffical RPi2 image of Linaro. Also, for reference, these are the instructions I've gone by for getting ROS installed on my setup: http://wiki.ros.org/indigo/Installation/Ubuntu

    So with BlueZ I went with these instructions and had good luck: http://blog.petrockblock.com/forums/...etooth-how-to/

    Funny thing just yesterday I started playing with the /boot/config.txt on the RPi2 and it all still seems to be valid. For quick reference here is the URL with the config details: https://www.raspberrypi.org/document.../config-txt.md

    It states the lowest value for gpu_mem is 16 and the default is 64 so there are a few megabytes to be recovered there if needed.

    Hope this helps
    01001001001000000100110001101111011101100110010100 10000001010010011011110110001001101111011101000111 0011

    My Instagram
    My YouTube

  8. #38

    Re: ROS enabled PhantomX Hexapod

    Thanks,

    I just finished building the ROS as mentioned in the tutorial I linked to in the previous posting. It takes a long time. And I had to patch up the code in a couple places. Also building RVIZ did fail, but actual fail was complete hang of RPI2. I rebooted, ran the specific individual makefile for it with the -j2 under sudo and it completed... Then ran the main make again which completed all 188 steps. Now later today I will try the next steps of installing all of the extra dependencies like sound and joystick drivers. Also check to see if I have OpenNI2 installed.

    I know with the ROS for ODroid (http://forum.odroid.com/viewtopic.ph...00d8784252320e) they also install pointcloud(pcl) for viewing stuff, not sure if that is needed here or not...

    But I have some non robotics stuff to do as well...

  9. #39
    Join Date
    Mar 2015
    Location
    Texas
    Posts
    342
    Images
    15
    Rep Power
    26

    Re: ROS enabled PhantomX Hexapod

    I did the same thing yesterday all the way up to installing all dependencies except for openni2 and it felt like I wasted my whole day. So I switched back to my Ubuntu 12.10 card and went back to hacking out my last issue, sound from the sound_play node.
    Once I figured out why the jack server wouldn't start I eventually discovered I had to max out the jack buffer size to gain the clarity you'd expect from an audio port. So today is the first day I have all the components running from the pi just the way I want them to, hooray! Backup complete

    I'll be looking into ROS on ODroid just as soon as they tell me the XU3 has shipped. I'm a bit excited about getting to play with this board and hopefully in the near future I'll know how well it handles the same task load.

    Non robotics stuff? Say it ain't so!
    Last edited by r3n33; 05-02-2015 at 11:03 AM.
    01001001001000000100110001101111011101100110010100 10000001010010011011110110001001101111011101000111 0011

    My Instagram
    My YouTube

  10. #40
    Join Date
    Dec 2012
    Location
    Los Angeles, CA
    Posts
    828
    Images
    25
    Rep Power
    79

    Re: ROS enabled PhantomX Hexapod

    Quote Originally Posted by KurtEck View Post
    Thanks,

    I just finished building the ROS as mentioned in the tutorial I linked to in the previous posting. It takes a long time. And I had to patch up the code in a couple places. Also check to see if I have OpenNI2 installed.

    I know with the ROS for ODroid (http://forum.odroid.com/viewtopic.ph...00d8784252320e) they also install pointcloud(pcl) for viewing stuff, not sure if that is needed here or not...
    Point clouds are absolutely needed plus many other packages. I feel you might be stacking the deck against yourself Kurt. Renee has had an easier run since she is working with a OS that has ROS already built. I'm slightly worried on the OpenNI2 front as well. ROS provides a already built package that is known to properly work. I don't want to put you off of this but building all of it on your own might bring issues we will have a hard time with giving assistance. Have you thought about Renee's route?

Thread Information

Users Browsing this Thread

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

Similar Threads

  1. PhantomX Hexapod Kit
    By SuperMiguel in forum Projects For Request and/or Sale
    Replies: 12
    Last Post: 12-29-2013, 09:36 PM
  2. Different servos in PhantomX hexapod (MX-64T...)
    By guruguhan in forum Humanoids, Walkers & Crawlers
    Replies: 4
    Last Post: 07-02-2013, 06:33 PM
  3. Question(s) PhantomX Hexapod with AX-18
    By Jim Cheong in forum Humanoids, Walkers & Crawlers
    Replies: 0
    Last Post: 06-19-2013, 07:57 PM
  4. For learning: PhantomX Hexapod vs PhantomX Quadruped
    By Leugim in forum Humanoids, Walkers & Crawlers
    Replies: 4
    Last Post: 10-26-2012, 08:50 AM
  5. My PhantomX Hexapod
    By Gilrock in forum Humanoids, Walkers & Crawlers
    Replies: 0
    Last Post: 09-26-2012, 02:23 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
  •