ROS and DB1
 
Notifications
Clear all

ROS and DB1

24 Posts
7 Users
2 Likes
4,033 Views
robotBuilder
(@robotbuilder)
Member
Joined: 5 years ago
Posts: 2042
Topic starter  

So my understanding is that the DB1 project will be using ROS?

After some reading my understanding is that ROS is a meta operating system that rides over other operating systems like Ubuntu or Windows? You have to choose an OS and a programming language (C++ or Python) to decide what version of ROS to install? Then all your code must adhere to ROS protocols much like trying to program at the level of the Window's API rather than using Visual Basic? This involves a steep learning curve and lots of paper work just to control a simple two wheeled robot base?

https://forum.dronebotworkshop.com/ros/two-wheeled-robot-project-using-ros/

 


   
Quote
(@starnovice)
Member
Joined: 5 years ago
Posts: 110
 

It is not so much about "controlling" the robot as in making the wheels move so much as it is about reusing code for controlling where is the robot going, path following, map creation, interfacing to a wide variety of sensors, and numerous other capabilities.  Also the choice between C++ and Python is not mutually exclusive.  You can use both simultaneously because the Python is actually converted to C++ function calls. 

Pat Wicker (Portland, OR, USA)


   
ReplyQuote
Spyder
(@spyder)
Member
Joined: 5 years ago
Posts: 846
 

I'm not sure what's the best way to describe it

I think the way Bill is doing it is probably the best way, and the way it was pretty much intended anyway

See, the Arduino is going to basically control the motors, and the Pi doesn't have to worry about that, all the Pi has to do is send a signal to the Arduino that says "go that way", and it's up to the arduino to translate the motor commands and inputs from the sensors


   
ReplyQuote
Robo Pi
(@robo-pi)
Robotics Engineer
Joined: 5 years ago
Posts: 1669
 

I'm sitting on the edge of my chair waiting to see how Bill is going to create his programming architecture.  I'm not going to hold my breath though as that could prove to be fatal. 🤣   I've already been waiting for close to a year.

In any case, if Bill uses ROS I think that will be interesting.  The way Bill teaches he usually begins with an extremely simple overview to get things up and running with a nice simple example.   So if he can do this with ROS that will certainly pique my interest in using ROS.  Especially if he does this on a Raspberry P1 4.   Or even if he does it on a Jetson nano.  Either way I'm prepared to follow along in terms of hardware.

I've been holding off looking into ROS for two main reasons.

  1. First I haven't seen anyone do anything with ROS that I couldn't already do using simpler programming.
  2. Basically similar to #1.  It's hard for me to even imagine what I could do with ROS that I can't already do using Python or C, or C++, all three of which I am somewhat familiar with.

In any case, if Bill does any videos on ROS I'll definitely be tuning in for that.  I'll no doubt set up a reserved SD System card just for following that ROS tutorial.   I'd like to see him do it on a Raspberry Pi 4, if possible.  But if he has to move up to a Jetson Nano I'm prepared for that as well.

In the meantime I'm not holding my breath.  But I am having trouble breathing so I guess that counts a little bit. 😎 

DroneBot Workshop Robotics Engineer
James


   
ReplyQuote
(@starnovice)
Member
Joined: 5 years ago
Posts: 110
 
Posted by: @robo-pi

 

  1. First I haven't seen anyone do anything with ROS that I couldn't already do using simpler programming.
  2. Basically similar to #1.  It's hard for me to even imagine what I could do with ROS that I can't already do using Python or C, or C++, all three of which I am somewhat familiar with.

1. I am really interested in seeing your implementation of SLAM with simpler programming.

2. Saying you can't do anything in ROS you can't so is C, or C++ is funny since ROS is written in C, you would just be creating another version of ROS that probably would only work on your robot and nobody else's.  

Pat Wicker (Portland, OR, USA)


   
ReplyQuote
Robo Pi
(@robo-pi)
Robotics Engineer
Joined: 5 years ago
Posts: 1669
 
Posted by: @starnovice

1. I am really interested in seeing your implementation of SLAM with simpler programming.

SLAM = Simultaneous Localization and Mapping

SLAM is not unique to ROS.  It's just something that ROS makes available.  There are already SLAM programs available in Python.   Also, it's not that hard to write your own version of SLAM.   In fact, I would personally rather write my own my version of SLAM. 

 

Posted by: @starnovice

. Saying you can't do anything in ROS you can't so is C, or C++ is funny since ROS is written in C, you would just be creating another version of ROS that probably would only work on your robot and nobody else's.  

No, I would be creating my own version of SLAM, which would indeed be custom tailored to my specific robot.   And I would rather have my own SLAM designed specifically for my robot.

 

By the way, I already have my own version of "ROS" (a Robot Operating System).  Although I called mine "Robot Overseer".   And again, I prefer to have my own robot overseer program.

Posted by: @starnovice

would only work on your robot and nobody else's.  

That's ok.  I'm not in the business of writing generic software for others to use.  I recognize that ROS is really good for commercial robotics industries precisely because it basically forces everyone to get on the same page (whether that page is all that great or not).

But in other ways it discourages individual creativity since everyone starts depending on "canned software".  Software they don't even need to know how it works.

There's a time and place for everything.

I consider myself to be a robotic "Researcher", not a factory worker who has to stick with using what the company demands.  Having said that, I can understand why commercial industries would prefer to keep all their people on the same page.   That's fine.  Just not my thing.

~~~~

If you use the SLAM that's available with ROS then your stuck with that "black-box" program.   You may or may not be pleased with its performance.  If you are, then more power to you.  It's all good! 🥂 

But no, SLAM does not belong to ROS, nor it is the only place you can find SLAM algorithms.

ROS just employs SLAM as one of the features it offers.   And like I say, you're kind of stuck with however well (or not well) it works.

I wouldn't encourage anyone against learning ROS.  Especially younger people who might be looking into a career in industrial robotics.  In fact, for them I would say that learning ROS is basically mandatory because employers in that field are going to expect potential employees to be able to use ROS if their company wants to implement it.

So I highly recommend learning ROS to younger people.  For me, it would just be a hobby no matter what.  I'm 70 years old.  I'm never going to be applying for a job in industrial robotics. 😊 

Those days are over for me.

DroneBot Workshop Robotics Engineer
James


   
byron reacted
ReplyQuote
byron
(@byron)
No Title
Joined: 5 years ago
Posts: 1122
 

@robo-pi

you put the ROS wariness well, and I remember @twobits and others endeavours to get a successful install on an Rpi which did not end well as far as I recall.   I also want to play with the raw code myself and I don't think there's any need to get it all working from day 1.  PIDs and SLAMs and even motor controller code with Emergency Stops will emerge in time.  However I do note that @dronebot-workshop indicated that the coding was not his favourite activity so maybe he will prefer a more pre-baked option.  Of course a ROS based solution would still be of interest, though I do not intent to follow that path for my bot.


   
ReplyQuote
robotBuilder
(@robotbuilder)
Member
Joined: 5 years ago
Posts: 2042
Topic starter  

If I could install ROS the same way I just installed a copy of Windows 10 and there was a simple tutorial on how to use it with a simple robot then it would be interesting. As it stands now all the "tutorials" I have attempted to read on ROS have left me with not following what they were talking about and thus not knowing how to use it. When I first learn something I need to start simple, so what is the "hello world" version of ROS?

At this stage I am in the same camp as Robo Pi and byron when it comes to ROS.

I am not going to use KINECT or a LIDAR and I know how to write code for the sensors I intend to use and that should keep me busy.  It has been four months since I last worked on the robot hardware and code but after the break I feel I might be ready to start again.

 


   
ReplyQuote
(@starnovice)
Member
Joined: 5 years ago
Posts: 110
 
Posted by: @robo-pi

So I highly recommend learning ROS to younger people.  For me, it would just be a hobby no matter what.  I'm 70 years old.  I'm never going to be applying for a job in industrial robotics. 😊 

Those days are over for me.

I guess I am the opposite.  I have been writing code since about 1967 when I got my first Apple II.  During the time I coded professionally, up to about 2005, there was very little code available for reuse so pretty much everything had to be written from scratch for one reason or another. So, today, at 70, I am more then happy to reuse an existing application so maybe I can get it done before I am done. 🙂 

Also, just to be clear I am not arguing about who is right or wrong.  This is a discussion of preferences and desires.  I say that because so often in forum posts the nuances of communication get lost.

Pat Wicker (Portland, OR, USA)


   
ReplyQuote
byron
(@byron)
No Title
Joined: 5 years ago
Posts: 1122
 
Posted by: @starnovice

so maybe I can get it done before I am done. 🙂 

A good point.  I do wonder just how many forum bots will be trundling along in a years time.  Even if one wants to code all the navigation stuff for oneself, theres a lot to be said for using a ROS system at least to get going with.  This is assuming that the ROS implementation can actually be installed and got to work without too much grief.  My impression is that the ROS world is somewhat chaotic and not so well supported, at least for the beginners.  Happy to have my assumptions corrected and see a DB1 with ROS of course, even if I don't go down that route myself.


   
ReplyQuote
Robo Pi
(@robo-pi)
Robotics Engineer
Joined: 5 years ago
Posts: 1669
 
Posted by: @byron

Of course a ROS based solution would still be of interest, though I do not intent to follow that path for my bot.

I agree.  And Bill tends to like to do one-shot videos.  So I don't envision him changing his style for ROS and moving over to creating a multiple-video series on ROS.  Although that might be necessary.

My point is that if Bill makes a video on ROS he'll most likely break it down in a the simplest installation and setup possible.   And one that actually works!  😊 

So I would certainly look forward to that.  But what I've seen from what others are doing ROS does not loan itself to such easy and quick success.  So only time will tell on that one.  We'll see what Bill comes up with, if he does indeed go the ROS route.

Until then I'm not planning on playing with ROS myself.  Like you, I'd rather write my own code from scratch.  Coding is my strong point.  I've been coding since the late 1960's and I started coding in machine language using hex code and an list of CPU instructions.   I didn't' even have Assembly Language available to me at that time.  So coding computers is almost  my "First Language" so-to-speak.

DroneBot Workshop Robotics Engineer
James


   
ReplyQuote
Robo Pi
(@robo-pi)
Robotics Engineer
Joined: 5 years ago
Posts: 1669
 
Posted by: @casey

If I could install ROS the same way I just installed a copy of Windows 10 and there was a simple tutorial on how to use it with a simple robot then it would be interesting.

My thoughts as well.  This is why I would love to see Bill do a tutorial on ROS (if possible).  If anyone can make it crystal clear and simple, Bill's the man! 

DroneBot Workshop Robotics Engineer
James


   
ReplyQuote
Robo Pi
(@robo-pi)
Robotics Engineer
Joined: 5 years ago
Posts: 1669
 
Posted by: @byron

Happy to have my assumptions corrected and see a DB1 with ROS of course, even if I don't go down that route myself.

Same here.  I'm all for a crystal clear introduction to ROS.   I would imagine (and hope) that ROS is flexible enough that I could actually us a combination of ROS and my own code as well.

Although my current understanding of ROS is that it's a huge overhead of interfacing software created with the idea of offing as much interfacing capabilities as possible.  The problem I have with that is that it basically turns out to be "Bloatware" for me.   In other words, I end up with a huge underlying program on my SBC that contains tons of code for features and things I may never even use.

I'm not a fan of having a large amount of bloatware on my SBC that I'm never even going to use.   So until I see a situation where I actually "need" ROS to do something I can't otherwise do, then I just don't see it as being very attractive.

But like you, if someone can show me where my assumptions are wrong I'll be more than happy to discover this.  This is why I would love to see Bill do a video on ROS, and use it in DB1.  If he uses it and makes tutorial videos on it, you can bet your sweet bippy that he'll reduce it to the bare minimum in terms of instructions on how to get started with it efficiently. 

So when the video comes out I'll stand corrected in my assumptions. 😊 

And I'll definitely follow the tutorial and see where it leads.  But at the present time that's all future speculation that hasn't yet become a reality.

DroneBot Workshop Robotics Engineer
James


   
ReplyQuote
Robo Pi
(@robo-pi)
Robotics Engineer
Joined: 5 years ago
Posts: 1669
 

Just to pollute the thread with more Robo Pi comments I'll express the following thoughts:

From a realistic point of view (based on what I have seen and heart about ROS up to this point) I would think that an instruction tutorial on ROS would require more like something Paul McWhorter does.

Paul McWhorter basically makes very long series of videos that tackle a subject in excruciating detail over dozens of hour-long video lectures.  I could see Paul McWhorter taking on a video tutorial like ROS.  It would most likely turn out to be a 50 week course. 😊  Especially if he was hoping to cover everything ROS promises to be able to do.

If Bill does do a video on ROS, I would imagine that it's going to be very "short and sweet" using the simplest installation to get it up and running, and then explaining how to use it for a very simple specific task.  And that would be GREAT if Bill can do that.   To see it being implemented even on the most basic level would certainly be a tutorial worth watching.

I look forward to whatever reality holds in store for us. 😎 

DroneBot Workshop Robotics Engineer
James


   
ReplyQuote
robotBuilder
(@robotbuilder)
Member
Joined: 5 years ago
Posts: 2042
Topic starter  

I seem to remember Bill saying he didn't want to do this alone hoping for other experts to contribute to the DB1 project.

ROS for DB1 seemed to be going full steam ahead 11 months ago.
https://forum.dronebotworkshop.com/ros/robot-operating-system-for-the-dronebotworkshop-builders-part-0/#post-916

The Turtlebot is the ROS reference hardware. It was designed and built as an inexpensive platform for learning ROS. My understanding is the DB1 will be a kind of a Turtlebot.
https://twobits-git.github.io/db1_r1/design_goals/

What I imagined is that ROS would make it easier to implement LIDAR and KINECT on a robot assuming you intend to use those two pieces of hardware.

 


   
ReplyQuote
Page 1 / 2