locked
Newbee questions - should I spend time with MSRS? RRS feed

  • Question

  • This is my first post. I've been playing with MSRS, VBE and C# for about a week.

     

    Some background on me: I'm an Electrical Engineer who's been playing with microcontrollers for years. Hardware I love - software I tolerate.

     

    I began building a semi-autonomous submarine a few years ago. It is 99% complete, it uses 2 BS2s, 2 laptops and a ton of custom hardware to operate. One laptop and the 2 BS2s are on the sub, I connect with the sub using a floating antenna system (2.4GHz) and use "Remote Desktop" to control the sub, read sensors, view video etc. It works well. The reason I'm 99% finished and not 100% finished is I hate the GUI interface I created using "MicrGUI" software, it works but is amatureish looking. I also do not like having a $2000 laptop onboard the sub.

     

    I'm willing to take a few steps backward with my design if I can get a better GUI and more robust command and control.

     

    What I want: A nice looking and functional GUI (I love the sample joystick) and full control of 1 BS2PX. that will stay connected to a PC. I just need to send serial commands to and recieve serial commands from the BS2px - I can figure the rest, wireless comms etc.on my own.

     

    Like I said, I've been trying for a week, and I'm || this close to giving up on MSRS, I cant even establish comms with the BS2. MSRS agrees the sub does in fact exist but I'm either trying to turn on a simple LED on the STAMP or acknowledge a switch state with no joy. And yes I have read through the tutorials, they assume I'm using a BOEBOT with prewritten code. 

     

    Anyone have "hello world" PBASIC code and a smaple comms prog for MSRS? If I could establish simple comms I'd be very happy.

    Monday, September 8, 2008 8:48 PM

Answers

  • 1. MRDS would allow you to create pretty much any GUI you want. It would give you full winforms capabilities.

     

    2. It wouldn't really help get your laptop out of the submarine (I can't imagine what could go wrong). That isn't to say that you couldn't get the laptop out, it sort of depends on what you mean by "semi-autonomous". The BS2 is a great microcontroller but it can only do so much on its own.

     

    3. I too, have struggled getting started with MRDS. The tutorials are fine but they pretty much assume the existance of specific hardware. I too would love to see a set of tutorials starting at the "Here's how to turn an LED on and off", or just here's how to send a command to a serial port.

     

    4. The people on this forum have been extremely helpful, however, and I have finally managed to turn an LED on and off.

     

    5. There are other resources besides the tutorials. Here are a couple of books:

     

    http://www.amazon.com/Professional-Microsoft-Robotics-Developer-Programmer/dp/0470141077/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1220973853&sr=8-1

    Chapter two of this book was particularly helpful and one of the authors, Trevor Taylor, has been especially helpful on this forum.

     

    http://www.amazon.com/Programming-Microsoft%C2%AE-Robotics-Studio-Morgan/dp/0735624321/ref=pd_bbs_sr_2?ie=UTF8&s=books&qid=1220973853&sr=8-2

    A bit less detailed but it was still helpful.

     

    6. If you want to make your sub really autonomous then it might be worth re-writing the software using MRDS. If all you want to do is improve the UI I don't think so. If you do decide to use MRDS you are no longer 99% finished.

     

     

     

    Tuesday, September 9, 2008 3:29 PM

All replies

  • Gigahertz,

     

    First off - I sympathize for your endeavor with MRDS.  It is not for the faint hearted.  That being said, if you are a purist (and I'm guessing by the sadist Electrical Engineering career choice, that you are ) then MRDS is still worth exploring.  However, trying to mate robotics and snazzy-fresh GUI's is like looking for a UNIX administrator that doesn't drag his knuckles when he walks.  But I digress...

     

    Sounds like a cool project you are working on.  I like the floating antenna idea.  I'm a Mechanical Engineer with commercial diving experience working on an underwater robot to assist with well, you guessed it --> commercial diving.  It transports tools to/from the diving platform (where it recharges), monitors via voice/video, has safety provisions, etc.

     

    Hope you can find a way to get the communications working for your device along with a slick GUI to boot!

     

    Best of luck!

     

    Tuesday, September 9, 2008 3:22 PM
    Moderator
  • 1. MRDS would allow you to create pretty much any GUI you want. It would give you full winforms capabilities.

     

    2. It wouldn't really help get your laptop out of the submarine (I can't imagine what could go wrong). That isn't to say that you couldn't get the laptop out, it sort of depends on what you mean by "semi-autonomous". The BS2 is a great microcontroller but it can only do so much on its own.

     

    3. I too, have struggled getting started with MRDS. The tutorials are fine but they pretty much assume the existance of specific hardware. I too would love to see a set of tutorials starting at the "Here's how to turn an LED on and off", or just here's how to send a command to a serial port.

     

    4. The people on this forum have been extremely helpful, however, and I have finally managed to turn an LED on and off.

     

    5. There are other resources besides the tutorials. Here are a couple of books:

     

    http://www.amazon.com/Professional-Microsoft-Robotics-Developer-Programmer/dp/0470141077/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1220973853&sr=8-1

    Chapter two of this book was particularly helpful and one of the authors, Trevor Taylor, has been especially helpful on this forum.

     

    http://www.amazon.com/Programming-Microsoft%C2%AE-Robotics-Studio-Morgan/dp/0735624321/ref=pd_bbs_sr_2?ie=UTF8&s=books&qid=1220973853&sr=8-2

    A bit less detailed but it was still helpful.

     

    6. If you want to make your sub really autonomous then it might be worth re-writing the software using MRDS. If all you want to do is improve the UI I don't think so. If you do decide to use MRDS you are no longer 99% finished.

     

     

     

    Tuesday, September 9, 2008 3:29 PM
  • Thanks for the detailed response Joe.

     

    I agree that there is a steep learning curve for MRDS. Of course I am biased, but I think it is worth it :-)

     

    As for turning on a single LED and communicating via a serial port, I tried to cover these in the hardware section of our book. The real problem is the wide variety of hardware out there. However, the book does talk about the Boe-Bot which is based on the BS2. I understand that this is a specific piece of hardware, but it should be possible to "translate" it to other hardware based on the BS2.

     

    I agree with Joe that a BS2 is not a very powerful device and it might not be enough to run a submarine. Even multiple BS2s might not do it, although it does raise the interesting concept of distributed computing. I would be trying to put a decent computer, i.e. a single board PC or maybe a PDA, into the computer if you want to remove the laptop. I've worked with microcontrollers in the past, and after a while you get tired of banging your head against a wall because of limited memory, no multi-tasking, no real user interface, etc. I might be getting old, but I prefer to have an operating system there to assist me.

     

    Trevor

    Tuesday, September 9, 2008 4:40 PM
  • I'm new to the robotics game but I write UIs all the time. I'm reasonably certain Joe's UI issues will go away as he gets more familiar with .Net (of course I think that was the idea behind this software - can't blame 'em) . I bought the Programming Microsoft Robotics Studio book. Only beef I had with it was that it had no VB samples.

    As far as hardware goes, I'd eye ball the Windows CE devices or those new mini notebooks. The question I have is how what devices would you use on a PDA or Windows CE device to control an automonous robot?

     

    Thursday, September 11, 2008 9:09 PM
  • Unfortunately there are no books on using VB with RDS yet, and a limited number of samples.

     

    You can use a PDA if you develop Compact Framework (CF) versions of your services. However, this is not for the faint-hearted. You need to use the Windows CE developer kit and there are some limitations in the CF environment that you have to account for.

     

    I have a service that runs on my PDA and allows me to control a Boe-Bot using Bluetooth. If the Boe-Bot was a bit bigger, I could mount the PDA on the robot. But! There are some issues --

    1. Memory in PDAs is limited and I regularly run out of memory unless I shut everthing down and delete all non-essential files.

    2. PDAs are still quite slow compared to laptops and desktop PCs. If you want to do some sophisticated processing (not just wandering at random using IR sensors to detect obstacles) then you might not have enough CPU power.

    3. There are no webcam services. I never finished my camera service for the FlyCam and I don't have time right now.

     

    However, on the plus side, a PDA has a screen so you can display messages. That is a BIG advantage over a single board computer that is embedded in the robot with no visual display device.

     

    Trevor

     

     

    Friday, September 12, 2008 4:48 PM
  • So I gotta learn C# and MSRS in one shot??????!!!! Ouch, then again..................... Love a challenge. Now on to my hardware idea. They're selling PCs with XP and Vista on them and they have up to 4GB on them. Doesn't work well for a micro robot but if I used some them larger, say lawn mower size, can envision having the robot use the mini PC and I'd control it with my PDA. What's the range of bluetooth? - Line of sight up to 40 ft maybe? So are there other transmitters that work in PDAs and Laptops? I'm not to worried about the RAM on the PDA unless the programs can't use the memory expansion slots.

     

    Friday, September 12, 2008 5:38 PM
  • I am biased of course, but try C# -- you might like it!

     

    We have a robot here that is based on the motors from an electric wheelchair. It can easily carry a laptop. For an on-board PC you would have to consider how you are going to supply power.

     

    Bluetooth works at up to 100 ft for line of sight -- I know because I have tried it. However, you don't usually have clear line of sight.

     

    Another alternative, especially if weight is not an issue, is to use WiFi. This has better range, but more importantly you can set up a network with access points strategically located to give good coverage.

     

    I have used WiFi from my PDA (Dell Axim v50) to control a robot with WiFi (Dr. Robot X80) and got pretty good range. However, I found that the PDA would only last 15 minutes before the battery ran out :-(

     

    Trevor

     

    Friday, September 12, 2008 7:14 PM
  •      15 Minutes on WIFI with your PDA?? Now there's a limitation. The Mini/micro PCs are looking better and better. As far as power goes, that what car chargers and wall sockets are for. On the robot itself, I'm leaning toward the car battery but smaller units need less weight. Old school 9 volt might work but I'm just kicking stuff around at this point. A real engineering problem that is.

         Some PDAs and minis have extra batteries or battery boosters to extended the battery life. Minis have the better battery life and you're not limited to using Compact Framework.

         For long period use, I'd want to design something that runs on an handheld mini that communicaties with a mini computer on the robot. For short time stuff, I'd use a PDA to connect to the same mini PC on the robot. The mini PCs come in some surprisingly small form factor with full OSes on them and 2GB of RAM to boot. For someone like me, that's plenty. My main thing now is how to work the connectivity angle.

         You mentioned WIFI. What about device to device say via direct wireless link or over the internet? I'm guessing that's possible because of the Internet cam example in my book. I'm just wonder about card to card connection without using an access point.

    Friday, September 12, 2008 10:16 PM
  • Found a 7 x 7 x 2 Mini PC with 3GB, a DC 90 W adapter, 320 GB hard drive, Vista Ultimate weighing 2.4 lbs.... weight and size problems solved for all but the smallest applications there. The heaviest thing now is the power source......

     

    Saturday, September 13, 2008 12:30 AM
  • hi, i am new to microsoft robotics studio,
    i have made a simulation which i want to run...
    whenever i try running it i receive the following message on teh console...after which the console shuts...


    ***initialization failed in DSS boot loader: could not create TCP Listener
    The two most common cause for this are:
    1.) you already have another program listening on the specified port
    2) you dont have permissions to listen to TCP requests
    Exception  message: only one usage of each socket
    address <protocol/ network address/port> is normally permitted


    please help
    Saturday, September 13, 2008 5:45 PM
  • Trevor,

    I just noticed this old post of yours where you mention that you did some work with a Dr. Robot X80.  I have an older version DR 8000 using Bluetooth.  Would you by chance have any code for MRDS that interfaces with DR?

     

    Dan.

    Monday, November 22, 2010 8:00 PM
    Moderator