Shop OBEX P1 Docs P2 Docs Learn Events
S2 + ROS ala ChrisL8 and Arlo - Brainstorming Thread — Parallax Forums

S2 + ROS ala ChrisL8 and Arlo - Brainstorming Thread

WhitWhit Posts: 4,191
edited 2014-09-09 12:28 in Robotics
I've been giving more thought to combining ideas from these two threads - http://forums.parallax.com/showthrea...d-Hokuyo-Laser and http://forums.parallax.com/showthread.php/156644-Building-Arlo. You could use Chris' cheaper and smaller sensor (Kinect like) and the ROS with a S2 and a single board computer (Raspberry Pi?) or other small computer for a really inexpensive platform with lots of capability. I think that the S2 encoders and accuracy are good enough for this sort of work.

ChrisL8's work on connecting the robot's controller with the on board computer would have to be modified to combine the S2 to the ride along computer. If all these ideas could be integrated though - it seems like this would allow for some extremely powerful robotic possibilities for almost no money at all - say $400 to $500.

Any thoughts, suggestions or other ideas?

Comments

  • RsadeikaRsadeika Posts: 3,837
    edited 2014-08-29 05:33
    You could use Chris' cheaper and smaller sensor (Kinect like)...
    What is this "Kinect like" device? I looked at the ChrisL8 Arlo video, and he is using a real Kinect, I think.

    Ray
  • WhitWhit Posts: 4,191
    edited 2014-08-29 08:38
    Per ChrisL8's video, it is an ASUS Xtion - see here - http://www.asus.com/Multimedia/Xtion_PRO/ - similar to Kinect. Supposed to be smaller (18 X 3.5 X 5 cm) and cheaper - though you can get used Kinects that are very cheap, but I think they are 11 inches wide (newer versions are about 10 inches wide). The ASUS is about 7 inches wide which might work better on the S2, which is about 6.5 inches wide at the wheels.. Everything looks like it will play well with Linux too - which is the ROS standard, best I can tell so far. That was also the reason for suggesting the Pi for on-board computing - along with size.

    Re posting his video here... See about 3:15 for info.
  • WhitWhit Posts: 4,191
    edited 2014-08-29 08:58
    ROS info - http://www.ros.org/ - WARNING - you can get lost here a long time...Neat stuff!
  • Matt GillilandMatt Gilliland Posts: 1,406
    edited 2014-08-29 10:35
    I like the direction this is going...:thumb:

    If this worked, then there is a clearer migration path from the "little platform (s2) to a robust one (Arlo).

    This is one of the directions that we want to pursue - that of many small, inexpensive robots in a classroom environment (which we already do through Boe-Bot's and Activity-Bots). Then one (or a couple) large platforms (Arlo) - also in the classroom - that are robust enough to carry heavier payloads (and go "all terrain" - meaning parking lots, etc.) for "real world" exploration.

    Development and understanding on the table-top level with a direct migration path to a full-sized, challenging terrain capable platform.

    -Matt-an-Arlo-in-every-classroom-G
  • RsadeikaRsadeika Posts: 3,837
    edited 2014-08-29 11:44
    I did a quick check, Amazon sells an Asus Xtion Pro - $189.00. I also checked whether ROS would run on a Raspberry Pi, yes but it would be very limited in what could be done with it. You would also need probably a high capacity power pack to drive the Xtion, Raspberry Pi and WiFi module. I do not have an S2, so I am not sure if there would be enough surface to support that equipment without really getting into some sort of fancy platform scheme. Also not sure as to how the ROS would command the S2, does ROS assume that the device would recognize the commands sent to it?

    So, in theory, from your desktop computer, you could log into the Raspberry Pi using the WiFi, start up the ROS, and start controlling the S2. The biggest and ugliest problem could be in attaching the new equipment on the S2. Could be an interesting project for somebody that likes to work in tight conditions.

    Ray
  • WhitWhit Posts: 4,191
    edited 2014-08-29 11:45
    Matt,

    I do love the Arlo and want to continue my work with it (with ChrisL8's work with ROS especially) separately.

    But you also know that I really love and use Old Blue and the S2 in our club. Thought the ROS and S2 might be another path for really advanced work using the very inexpensive - but very well featured - S2 in a way that continued some of the ideas of the IPRE and Fluke used with the original Scribbler. Big robotics work software wise with a very cheap platform.

    As you said, Arlo could allow you to move up to a heavier, more robust platform. If you could start similar work with the S2 - you could start playing - cheap! As our pal, erco, reminds us often. Cheap is good!
  • ratronicratronic Posts: 1,451
    edited 2014-08-29 12:00
    Whit as far as the Propeller is concerned it can receive input from a Raspberry Pi and from a laptop at the same time to a limit. I think you probably want to figure out what you are going

    to do with those sensor's output. The Kinect I have not played with but it must put out coordinate locations for recognized items. The S2 might do this if it was only big enough. The

    Arlo robot platform is more than big enough for everything you mentioned so far. I have not used ROS so I can't help there. But if you have any Spin/Asm questions I am willing to help.

    Have fun with this Whit!

    Edit: I have a WiFi USB dongle so I use WinSCP to transfer files/folders back and forth from Windows / Raspberry Pi and PuTTY for a terminal via ssh.
  • Bill HenningBill Henning Posts: 6,445
    edited 2014-08-29 12:01
    Hi Whit,

    Saw your message in another thread asking for input... so here I am :)

    The first thing I would do is find out how much extra mass the S2 can carry, as that will limit what you can add to it.

    Assuming you can fit all the goodies you want to add within the weight budget, I'd connect the Pi to the S2 via the hacker port on the S2, or simpler yet, a USB-Serial cable to the S2's serial port.

    SimpleIDE runs fine on the Raspberry Pi, and the latest version of heater's changes to propeller load works great!

    I'd use one of those USB power banks to power the Pi.

    Best Regards,

    Bill
    Whit wrote: »
    I've been giving more thought to combining ideas from these two threads - http://forums.parallax.com/showthrea...d-Hokuyo-Laser and http://forums.parallax.com/showthread.php/156644-Building-Arlo. You could use Chris' cheaper and smaller sensor (Kinect like) and the ROS with a S2 and a single board computer (Raspberry Pi?) or other small computer for a really inexpensive platform with lots of capability. I think that the S2 encoders and accuracy are good enough for this sort of work.

    ChrisL8's work on connecting the robot's controller with the on board computer would have to be modified to combine the S2 to the ride along computer. If all these ideas could be integrated though - it seems like this would allow for some extremely powerful robotic possibilities for almost no money at all - say $400 to $500.

    Any thoughts, suggestions or other ideas?
  • Matt GillilandMatt Gilliland Posts: 1,406
    edited 2014-08-29 12:20
    Thought the ROS and S2 might be another path for really advanced work using the very inexpensive - but very well featured - S2
    We could try out a few scribbler mounting expansion ideas...
    Hey Ken! Can you buy me a few parts to play with? , all in the name of "Research" of course :thumb:
    If you could start similar work with the S2 - you could start playing - cheap
    exactly...

    I've always thought it would be really cool to have a promotion like "buy a classroom-full of Scribblers and get an Arlo System for free, or 50% off, or something like that.

    Student's write, run, and test their code for their scribbler, and then they get to try it out on the Main Event (Arlo).

    question is can the S2 carry what you want it to?
    -MattG
  • WhitWhit Posts: 4,191
    edited 2014-08-29 14:50
    @ Ray, Dave and Matt - Thanks so much for checking in and for the input, thoughts, comments and help!

    Ray and Bill - I will study ChrisL8's stuff at bit more, but I am guessing that I would be using the S2's Propeller to process the S2's sensor and especially encoder info. I think the Pi (like the laptop on ChrisL8's Arlo) is running ROS or is receiving info from another computer running ROS and then communicating with the Propeller which controls Arlo (in our case the S2).

    The old IPRE Fluke used the Blue Scribbler as a drone/slave that followed instructions sent from a Computer running a Python based control program. The Fluke and a dongle on the compuer were the connecting pieces. The Fluke included a camera too.

    As regards the weight on the S2, the S2 would carry only the PI and ASUS Xtion (Kinect like device). Don't know the weight of the USB power bank that Bill suggests. Wonder if power could come from the S2 hacker port?. Not sure how to power the Xtion, yet (might mean more weight). It would also have to carry the USB/Serial adapter and a cable to connect the Pi to the S2 (though I have to figure how how communication works back and forth). I don't think it would be much more weight than the S2 is carrying in the other thread reference above that Ken posted about the engineering student's project using the Laser scanner.

    I think if will be pretty easy to communicate between my Laptop ant the Pi using SSH and PuTTy (been playing with that already). Not sure if the Pi could run ROS or if that would happen on the Laptop and then communicate back and forth with the Pi.

    Matt, seems like the Pen port could support a mount for the Xtion or provide a mounting connection for a base where you could mount mount the Pi, Xtion and other stuff!

    Lots to do and figure out, but it seems possible... or at least worth a shot!

    Ray - I will have fun!

    Edit - Other thoughts - Wonder if it wouldn't be easier have the S2 carry only the Xtion and an Xbee? Then you could just pass info back and forth with a computer running ROS. The S2 would sort of become a smart-slave to external processing and programming. Sounds like that is what the other S2 project is doing. In this case - then innovation would be using ROS to control the S2 and using the Xtion as the added sensor...

    Thanks again to you all!
  • RsadeikaRsadeika Posts: 3,837
    edited 2014-08-30 08:24
    Wonder if it wouldn't be easier have the S2 carry only the Xtion and an Xbee?
    I believe the Xtion is powered through the USB cable, therefore you would need the Raspberry Pi USB port. So, while it is plugged in there you might as well have it run the ROS. I am still not sold on the idea of having the Raspberry Pi running the ROS, I think it is underpowered, for the job, and you will probably be disappointed with the results. In your new project, always keep in mind the power necessities, or else you might end up with a less than one minute run time before you have to get to a charger station.

    Ray
  • WhitWhit Posts: 4,191
    edited 2014-08-31 18:36
    Thanks for the replies all! I think I will dive into ROS a bit...
  • ChrisL8ChrisL8 Posts: 129
    edited 2014-09-02 14:39
    Hi guys, sorry I've been so busy between work and play that I haven't been keeping up. I'll try to skim the thread later and reply to any questions.

    The first thing I noticed was talk about using the S2. The main problem I see with that is that ROS is geared toward powerful CPUs. The primary development platform is the PR2 which has Two Quad-Core i7 Xeon Processors (8 cores) on board! The fact that it can run on a "lowly" i5 laptop is amazing. Trying to do all of the heavy lifting of SLAM on an ARM platform or similar mobile type processor is tough. No one is really trying very hard because it would just take so much time away from the more interesting stuff.

    I'll try to read the thread later and answer more questions now that I'm onto it. :)
  • ChrisL8ChrisL8 Posts: 129
    edited 2014-09-02 14:59
    Regarding the 3D sensor. I am using an Asus XTION PRO LIVE. It is MORE expensive than an XBox Kinect off of Ebay, BUT it runs off of USB power. The Kinect will require you to get a special splitter cord (or buy an AC adaptor for $7 from Amazon and cut it up) and provide it with 12 volts of power in addition to the USB connection to the computer.

    I believe that the Asus XTION PRO LIVE is required for ROS. I do not think that the non "LIVE" version will work. The difference is about $100, so do your research. Here is the link I have about it:
    https://groups.google.com/forum/#!searchin/ros-by-example/asus$20xtion$20live/ros-by-example/0HJZ7dcJoTE/Vd0UfmDmQkwJ
    and the text:
    "it is important to get the Pro Live version rather than just the Pro version as only the Live version has RGB as well as depth."
    This is where I bought mine:
    http://www.newegg.com/Product/Product.aspx?Item=N82E16826785030&cm_re=asus_xtion_pro_live-_-26-785-030-_-Product
    It seems to come and go form stock. Some people say ASUS has discontinued it. I'm not sure. I was able to get it pretty quickly. The price stays right at about $170, though free shipping can be had sometimes.

    The Asus XTION PRO LIVE is also smaller and lighter than the Kinect, but when your robot already has to carry around a laptop, that doesn't mean a lot, other than making it easier to mount.

    The primary reason I went with the Asus XTION PRO LIVE was that the Arlo power distribution board wasn't available yet, and I wanted something easy to integrate without having to mess with providing the Kinect with a clean 12v power source.
    I think Parallax is already familiar with how to power the Kinect due to their EddieBot, so I would look to them for expertise on that.

    Ultimately the Asus XTION PRO LIVE is smaller, lighter and easier to integrate because of being powered from USB, but it is MORE expensive than grabbing an Kinect off of Ebay and cutting up an AC power cord from Amazon.

    P.S. If you are running ROS with an Activity Bot where you are walking around behind the thing with a laptop, the Asus XTION PRO LIVE is easier to use too. :) I do not recommend this method, but it is a way to get your feet wet with ROS and under $300 worth of equipment. The problem is that your ASUS Xtion costs more than your Activity Bot! So if you can find a Kinect that happens to be plugged into your kid's Xbox and buy a $7 cord from Amazon, you just do that and walk around with a laptop AND an extension cord behind the Activity Bot!

    Poor ActivityBot.jpg
    Kinect on ActivityBot.jpg


    Yes, I really did this, though I admit these particular pictures are staged, otherwise you'd also see the USB cable from the Actiivty Board going to the laptop.

    P.S. There is some confusion about the Kinect too. The Xbox version is cheaper than the Windows "developer" version by a lot! The only two differences are:
    1. The Windows version comes with the power adapter that you can buy for $7 anyway.
    2. The Windows version comes with licensing to use it with Windows. I have no idea what this "licensing" buys you. Since ROS is on Ubuntu Linux anyway, it really doesn't matter.

    So here you go:
    $65 - Brand new Kinect for Xbox: http://www.amazon.com/Kinect-Sensor-Adventures-Xbox-360/dp/B002BSA298/ref=sr_1_1?ie=UTF8&qid=undefined&sr=8-1&keywords=kinect+sensor
    $
    8 - AC Power adpater: http://www.amazon.com/Power-Supply-Cable-Kinect-xbox-360/dp/B004S7GA46/ref=sr_1_12?ie=UTF8&qid=1409695710&sr=8-12&keywords=kinect+sensor
    v.s. Kinect for Windows:
    $216 - http://www.amazon.com/Microsoft-L6M-00001-Kinect-for-Windows/dp/B006UIS53K/ref=sr_1_10?ie=UTF8&qid=1409695710&sr=8-10&keywords=kinect+sensor

    So I can see why the ASUS Xtion LIVE is alternately considered cheaper and more expensive. :)
    but it isn't. ;)
    1024 x 680 - 81K
    1024 x 680 - 72K
  • ChrisL8ChrisL8 Posts: 129
    edited 2014-09-02 15:17
    So Whitt, is your idea to send ALL of the data over a wireless connection back to a computer running ROS? That way the Pi actually does not have to run ROS?

    Hmm . . . Since that is kind of what happens anyway, except that it runs over serial to a local computer versus over the air . . . seems like it could work in theory . . . I wonder if the latency would be too much? ROS kind of relies on real time interaction . . .

    It would not be hard to strap a battery powered Pi to an Activity Bot and try to stream the data over to ROS and write a "node" for ROS that makes ROS thinks that data is local. I could do that with the equipment I have.
    Do I really want to be distracted again?! :)

    The xBee idea sounds intriguing just because I wonder if that would provide a faster connection? You could literally have serial data coming right off of the Activity Board into the computer, via the xBee interface. It would be very easy to modify my existing code to do that. In fact it might not have to be modified if the xBee USB serial data stream looked very similar to the stream coming directly from the Activity Board's USB port!
    I wonder how the speed of xBee compares to USB for serial data?
    Again, it seems like leaving the Pi out would reduce latency, not to mention complexity.

    I need an xBee setup . . . :)

    P.S. Oh, but how do we get the 3D sensor data to the computer? We might need the Pi there. I believe that the 3D data is a LOT of data and ROS kind of relies on it being fast, since it is converting a 3D image into a fake 3D laser scan.
  • NikosGNikosG Posts: 705
    edited 2014-09-03 12:42
    .............
    Student's write, run, and test their code for their scribbler, and then they get to try it out on the Main Event (Arlo).

    -MattG

    This is the coolest educational robotic scenario I can imagine!
  • WhitWhit Posts: 4,191
    edited 2014-09-03 18:12
    ChrisL8,

    Thanks for the very detailed response. I had figured out that you were using the Asus XTION PRO LIVE - you mentioned the Asus XTION in the video and I went searching and I just guessed it was the PRO LIVE.

    I had not see your Activity Bot setup till I visited your get-hub. This really answers the super cheap way to play with ROS that I was hoping to achieve. Thought I might try something like it with the S2. The original Scribbler was used by the IPRE - see here -
    http://wiki.roboteducation.org/Myro_Hardware The Scribbler became a slave and the Fluke (plug in to the Serial Port with Bluetooth and camera) was used to connect the Scribbler with a PC running software that allowed students to program in Python that sent instruction back and forth to the Scribbler. The S2 included the Serial Port to allow the S2 to use the Fluke - It never really seemed to pan out though.

    I guess I was wondering if something similar could be done with ROS and a cheaper platform. I do have and Arlo (basically - it was a MadeUSA). So I could try to do exactly what your done and develop that, but I was looking for an alternative idea that might be more accessible cost wise.

    Thanks for your help and answers. It's great to see what you are doing.
  • ChrisL8ChrisL8 Posts: 129
    edited 2014-09-04 08:53
    Whit,

    I like the idea. I think it would be fun to perfect the idea of an extremely inexpensive platform demonstrating ROS.

    My biggest hangup is that that the 3D sensor does not seem inexpensive enough. At $170, the ASUS Xtion Pro LIVE costs more than either an Activity Bot or an S2.

    Do you think that a $300 robot that still has to be followed around with a cord and laptop is something schools would be excited about?

    If so, then I think it is very doable to create an Activity Bot with 3D sensor for classroom use. Or an S2. I don't have an S2 so I don't know much about it, but I assume it can be programmed similarly to the Activity Bot?

    One thing I do want to stress is that the odometry on the Activity Bot, and my guess is the S2, is useless on rotation on anything but a VERY well controlled surface. It only gets worse if you are holding onto it with a cable! A gyro seems to be able to compensate for that very well, but that is another $30, although it will add more interest to the robot development for students. :)
  • WhitWhit Posts: 4,191
    edited 2014-09-04 18:48
    ChrisL8 wrote: »
    My biggest hangup is that that the 3D sensor does not seem inexpensive enough. At $170, the ASUS Xtion Pro LIVE costs more than either an Activity Bot or an S2.

    I agree that the ASUS XTION Pro LIVE is a bit expensive - but the ability to map as you demonstrated is seriously cool. Ken's post of the engineering students work had a Laser Scanner on a S2 - so the XTION starts to look like a bargain! ;-)
    ChrisL8 wrote: »
    Do you think that a $300 robot that still has to be followed around with a cord and laptop is something schools would be excited about? If so, then I think it is very doable to create an Activity Bot with 3D sensor for classroom use. Or an S2. I don't have an S2 so I don't know much about it, but I assume it can be programmed similarly to the Activity Bot?

    Probably not - I would like to try to find a better way if possible. If I can't - I think it makes more sense to move to the Arlo. Might there be alternatives to the XTION that are more Activity Bot or S2 friendly?

    We REALLY need to get you and S2! Whether this idea works or not - I think you would find it a lot of fun and way more robot than you would imagine for its price (The hardware is the work of the Parallax team and Ben Wirz). The GUI and S2 Object and its documentation are amazing. Beginners can program the using the GUI and the have access to the Spin in the S2 Object with exhaustive examples and instruction when they are ready. That part is the work of Forum member Phil Pilgrim. You can find a review of the S2 here by yours truly - http://www.botmag.com/parallaxs-red-hot-scribbler-2-robot/
    ChrisL8 wrote: »
    One thing I do want to stress is that the odometry on the Activity Bot, and my guess is the S2, is useless on rotation on anything but a VERY well controlled surface. It only gets worse if you are holding onto it with a cable! A gyro seems to be able to compensate for that very well, but that is another $30, although it will add more interest to the robot development for students. :)

    Lastly the S2 is a great robot with very good encoders. It really is just for smooth surfaces, but in a class room - I think it would be accurate enough. See these...

    Thanks again for your thoughtful comments and interest!
  • ChrisL8ChrisL8 Posts: 129
    edited 2014-09-09 06:43
    Whit,
    As we saw in another thread someone is using a B
    eaglebone to run a laser scanner. The Beaglebone is an ARM CPU board like the Pi. The laser scanner, however, is simpler than the Kinect/ASUS usage at the cost of, well, money. It just spits out a steady (if fast) stream of numbers that could be used by any computer or streamed over any wireless interface. I doubt there is even a need for much of a driver, perhaps the FTDI driver at most.

    To use the Kinect or ASUS on the Beaglebone or the Pi we would need to compile the OpenNI driver for ARM. I've been doing some digging on that. I don't have a Beaglebone, but I do have a Pi I can play with. This page seems to indicate success at running an ASUS off of an ARM board:
    http://www.kinecthesia.com/2012/02/lights-camera-xtion-getting-asus-xtion.html

    There is still the matter of getting the data to ROS, but I'll stick with baby steps. :)

    I will let you know if I make any progress. I'm not really focusing on it, but I can type a few commands on the side while I work and let the Pi compile code.
  • WhitWhit Posts: 4,191
    edited 2014-09-09 12:28
    Thanks ChrisL8! Interesting info about the Laser Scanner - guess that money gets some cool features.. ;-)
Sign In or Register to comment.