
Dunning-Kruger
So, long story short I am learning/moving on to ROS (Robot Operating System)... Ez Robot is still the easiest and greatest software on the market especially for the beginner. I will always push it when people ask me "where should I start". However, I have hit the wall and want to go further, After seeing what Willow Garage's PR2, Xaxxon's ROV and ClearPath's TurtleBot can do using RVIZ and SLAM I am willing to undertake the steep learning curve to to accomplish the same (well as much as possible). Just google if you want to see what these bots are capable of. I have been messing with uBuntu and ROS for the last few weeks and I am beginning to make some serious progress with it...
One of my serious goals is 3d mapping and indoor navigation... ROS does this superbly... I have bought myself a ASUS Xtion Pro and I already have a laptop running uBunto and ROS and an iRobot Create. So now I have a cheap Turtlebot capable of 3d indoor mapping (real time), obstacle avoidance and target navigating...
Yes, I could have learned C# and written add on controls for EZ Robot, but there is no way I have the programming ability to come up with something like SLAM (simultaneous location and mapping). I just do not have the programming skills of guys like DJ and d,cochran,,,, So unless DJ has a rabbit up his sleeve regarding indoor nav the only way I am going to accomplish this is to torture myself learning ROS and do it myself... To be honest I have always felt a bit like a fraud using ez robot... I mean when people ask me or say "how did you do that" or "you really are smart, that's amazing".... I can't help but think in the back of my mind... this is not me, this is DJ Sures he's the real genius here...
Anyway, I feel like I hit a cross road and I have to take another route for a while... I am not leaving here and I will will keep my mouth shut about ROS as it has no place here... Besides, no one wants to listen to my ROS ramblings anyway So when I am one here it is all about ez robot and nothing else...
Not sure why I posted this... maybe just to make myself feel less guilty about moving to the dark side for while anyway... You never know, I'll probably get overwhelmed with ROS and come crawling back here with my head hung in shame...
ROS 2 beta V2 is out now. ROS 2 supposedly fixes all the issues with it not being secure and if roscore goes down then your entire system won't fail now. There is a learning curve to ROS for sure but it does give you great amounts of flexibility. I would love for their to be a publisher/subscriber node for communication between ROS and ARC.
Also I have not had great luck running ROS on the raspi. There are always dependency issues on the install and the board has a hard time handling all the processes. I am using the UDOO X86 to power my robot using ROS. Been having issues with the built in Arduino 101 pins but I think I got it worked out. The UP Board 2 looks pretty promising. Though my question with that is knowing that it uses the same GP-bus pin layout as the Raspi, then will it also have the same clocking issues you get with the Raspi when trying to run LEDs?
Here is the chicken and egg question...
I don't know why anyone would use ros - because you might as well just code everything yourself in c++ from scratch if you can use ros - haha... In my mind, technology should be making things easier, not more difficult. Seems backward to me for ROS to be in development. We might as well sell our PC's and GUI Window environments and replace them with mainframes and PDP toggle switches
. What's the advantage of taking 2 steps forward and 3 steps back? Other than if it's a line dancing song.
I don't like country music.
Anyway, if you want to use ros, because you like difficult things, then anyone who uses ros can easily make a plugin for ARC that subscribes as a node using tcpros: http://wiki.ros.org/ROS/TCPROS
Point is, even if ezrobot made a ros plugin, there's no point because anyone who can setup ros would already know how to subscribe ARC to it
Once we create a plugin, ros still needs to be compiled and configured to do "something". Aaaaaand, the plugin would somehow to magically know what your custom ros configuration is meant to do.
Ros shouldn't be called a robot operating system. It should be called c++, python and a bunch of poorly documented code that only runs on a difficult to use operating system. Hahaha
I mean it is a giant piece of work but you can get it to work and the robot simulations are very nice to debug your code before you upload it to your actual bot. It is extremely difficult to get a grasp of as a noob to codings but I have been able to write subscribing and publishing packages with little experience in coding.
I do think you make a good point as to why use ROS when you could write it all from scratch. You basically are writing the if else statements all yourself but importing the main functions of the robot through packages that are already written for you that would take an extremely long amount of time to write. Ex. Facial recognition, SLAM, speech recognition... Also RVIZ and Gazebo are a great debugging and simulator tool built right into ROS. The SLAM in ROS is a very powerful tool.
Learning ROS was definitely quite the venture when I first started because there was almost no documentation other than the ROS Wiki. Now there are a few books out and also online tutorials that are very helpful. I am using the Robot Ignite Academy to learn ROS. They have many great tutorials on there ranging from beginners to learning how to program a self driving car. (Also business like BMW are using ROS to build their self-driving cars. So it can't be too awful. Is it for people looking to plug and play without a VERY VERY steep learning curve? NO!)
p.s. I am in now way affiliated with ROS or Robot Ignite Academy. Just a big nerd that loves to learn
Hi All,
Just read through this thread and wanted to post my experiences in integrating ROS and EZB.
I have a Willow Garage Turtlebot 1 (old school robot, now in the 3rd iteration) running ROS Indigo, with some cool tweaks like a LIDAR from a Neato botvac, 60 LED addressable indicator strip, and a second kinect for 3D SLAM. I really wanted to integrate the EZ-robot software into the ROS environment to take advantage of the ARC's powerful and intuitive tools.
I wrote a very simple TCP client to communicate with ARC and then post messages to appropriate ROS topics. The client also sends relevant info back to EZB, like positional information, navigation confirmation, etc. I am mainly using the Microsoft Bing plugin to interpret spoken commands, and Microsoft Cognitive Vision to identify objects in a room, but I plan on adding some servos and using the Pandorabot plugin. At any rate, I highly recommend anyone who is interested in adding SLAM to their projects to give ROS a try-- just be sure you are willing to experience many, many hours of frustration as the learning curve is practically vertical. Eventually, once you get the hang of the system, it is very flexible and has some incredibly powerful functionality.
Ultimately I am planning to mount a Surface Pro tablet on a pan/tilt rig and mount it to the turtlebot to use as a face/touchscreen interface. But for now, I am just communicating with the turtlebot wirelessly through my desktop computer.
Thanks to DJ for making a really wonderful product. ARC is such a pleasure to use.
-G
@GBot, Thanks for the info
Regards, Frank