ROS Kit?

73 views
Skip to first unread message

thomas...@gmail.com

unread,
Sep 27, 2021, 3:44:59 AM9/27/21
to hbrob...@googlegroups.com

Hello Everyone,

 

I am trying to get a job writing ROS code and currently I have a very light understanding of ROS and an elementary ability to program in Python. Can someone please recommend a kit or a course that could give me the ability to get a job? And also can someone recommend a Coursara or Udemy course on top of that?

 

I have programmed Arduino and Basic Stamp for years and now it’s time to move up the line with the big boys.

 

Thanks,

 

Thomas

 

Chris Albertson

unread,
Sep 27, 2021, 1:49:47 PM9/27/21
to hbrob...@googlegroups.com
If you were to go to a university and study Computer Science full time, Going to lectures, reading textbooks and doing homework and being with others doing the same, then after four years you would be a rank-beginner.   You go to grad school to learn about robots and AI.   Be prepared to put in an equivalent amount of work.    You can not learn this from scratch in 6 months.

Yes, you can learn Python in a couple of months but that is different from learning to be a software developer.   It is like being a fiction writer, you need to know more than how to spell and use the word processor, you need to  have something to say that people like enough that they will pay for it.   It'she part about "having something to say" that is the difference between studying Python and Computer Science.

But you want to learn, and you can.  I wrote the above so you will not think you can watch 10 hours on Youtube and be competitive.  Entry-level programmers know a few basics.  Typically a couple programming languages (I recommend C++ and Python) and after that they have been through at least a "data structures" and "algorithms" classes.   They will have also done a few term-projects. All CS magors have taken basic science and basic math up to calculus and physics

How to get there, other than going back to school...

(1) Go to Packt.com and buy a $25 per month subscription.  This will allow you access to all their content.  They have both books and videos.   I'd start with the ones called "learning Python and Learning C++ and then progress to the more advanced ones.  Do all the exercises.  (Yes you need to know BOTH C++ and Python to get hired.  But do not worry, learn one first and the other will take 1/2 as long.  Start with Python)

If you don't know much about Linux, you need to learn.  The best way is to trash the Windows system and use Linux full time as your only system, don't keep it to the side.   You can run the few Windows programs you might need in a virtual PC on the Linux system.    Packt.com has many books and video on Linux.  All in your $25 subscription.

What holds people back is lack of foundational skills, math, computer science and Linux.   They try to jump ahead to Machine Learning or ROS and all they ever learn is how to cut and past example projects.  You can not skip the basics.

If your math skills are rusty go to Khan Academy.  They have very excellent and FREE online classes and study up to and including basic Calculus and also Linear Algebra and if needed any prerequisites.  You need not be an expert in this but you need the concepts.   Khan also has high school-level physics.  The "mechanics" section in there needs to be "second nature" to any professional roboticist. You need to know about torqu, vectors and forces and how to calculate them.  High school level is enough for that.   Khan covers this very well.

ROS is mostly useless until you know C++ and Python and a little about Linux.  So work on that first.   The look at these books on Pack.  I like the first one best.   Both of the lead you thought some projects and not just two wheel platforms.   The first one covers some ROS2. (I think ROS2 now what is used on all new projects)

1) ROS Robotics Projects - Second Edition  By Ramkumar Gandhinathan, Lentin Joseph
2) Hands-On ROS for Robotics Programming  By Bernardo Ronquillo Japón

Later you can study Computer Vision and Machine learning.  Or if you interests are the other direction study embedded real-time programming -- microcontrollers RTOS, C/C++ all that related "low-level control stuff".   I'm undecided which I like, I did the lower-level stuff for years at work but started study of AI when still in school back in the 1980's     It was useless then but now, finally is very widely used.

If you don't like Packt.com or you want more try https://www.udacity.com/nanodegree.  You can pay for them and get access to instructors or find the content free on-line and just do it on your own.    I wentthrrough their self-drive car nano degree and it was good, if not "dated".

Finally one other thing I've noticed is self-driving cars.  MUCH money and work has gone into this fieldand the results are spilling over big-time to other robot projects.   I'd say if you don't know about this you are left behind.

There is a HUGE gap between hoby-level and profesional-level software development.  And mostly is is bridged "on the job" by recent graduates.   Interviewers will use some basic questions to see that you are competent.   May beginners try and study a set on "interview questions" as shortcut to actually learning.  The interviewers ar on to this.   

They will make up a problem and have you solve it on a white board.  You goal is to be able to hear a problem that is "pure computer science" like for example "Please show us how you would code an algorithm to sort a binary tree"   They hand you a dry erase pen and you do it while they watch.   This should've easy for you. This is what they look for. Mistakes are OK but they look to seethat you can jump right onto such a well defined protect as tree sorting.

That is allthey expect from an entry level programmer, the ability to jump right in on a WELL DEFINED project.  

Finally.    I will be interested to read what others say.    But do remember PROFESIONAL LEVEL skills are different from hoby-level and you really cannot get there in a few months

Also if there is a community calage near you, sign up. THAT would be the best place to learn basic math, science and programming.

--
You received this message because you are subscribed to the Google Groups "HomeBrew Robotics Club" group.
To unsubscribe from this group and stop receiving emails from it, send an email to hbrobotics+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/hbrobotics/009501d7b373%2490bebff0%24b23c3fd0%24%40gmail.com.


--

Chris Albertson
Redondo Beach, California

Chris Albertson

unread,
Sep 27, 2021, 3:14:14 PM9/27/21
to hbrob...@googlegroups.com
I re-read what Thomas wrote.  I think MANY people could write exactly the same thing. (thanks, thomas for you quotes, I think it has universal appeal.

I am trying to get a job writing ROS code and currently I have a very light understanding of ROS and an elementary ability to program in Python. Can someone please recommend a kit or a course that could give me the ability to get a job?
 
I have programmed Arduino and Basic Stamp for years and now it’s time to move up the line with the big boys.

I just wrote something about how he could self-teach himself.   I re-read it and it is not an easy road.   I've been thinking about a more organized way.   But it requires a big group effort and also people with management skills I'm not good at. 

I have a possibly helpful background.   I was a "computer engineer" for a few decades then when back to grad school to study education and then had a short career teaching science.  I'm 100% retired now.

I've been thinking about people like Thomas who know a little, seem to be motivated, and would actually want to work on professional-level, state-of-the-art projects.  I wonder what kind of organization could best help.   My idea is a not-for-profit "co-op".   As it turns out most adults have a skill set and are experts in something but at the same time are total beginners at other things.

One of the things I learn in my education classes is that mixed-abilty groups work.  You give a group a project and if each member knows a little they can figure it out.   I've been thinking that a co-op is the way to facilitate this.

So what if there was an organization that had a goal to build a true state-of-the-art robot project Let's say an autonomous loader/backhoe that could be operated on Mars or the Moon and make roads and ditches with minimal human supervision.   This is obviously a very hard project.  But is the kind of thing you'd work on if you landed a job at one of the big companies near my house (Boeing, SpaceX, Raytheon, Northrup are all here)  But like all projects you break it down into little projects,  Some simple like a PCB design for a CAN bus based brushless motor driver or a vision system that can understand rocks and dirt.   The idea is to NOT build high school-level science projects.

The organization would accept "fellows" of all abilities and match them up with projects and all the projects lead to this way-hard goal of a machine that could build out infrastructure on Mars.   It would work a little lie a university lab where undergrads work with post-docs and lab directors are mostly doing management.

What is "co-op" in this context?   It is where you gain status and promotion based on the content you create and the help you give to others.   People somehow vote or rate the content.   This is like in academic where you papers are "voted" based on how many times they are cited in other papers.   In a co-you get back "stuff" in direct proportion to what you put in.  It operates as a break-even.

If the co-op's standards are kept high then those with high status will be known and will be finding job offers are easy to get.  High standards are needed so as to keep the co-ops reputation high. 

Can it be done as a "virtual university lab"?    People are now used to working at home and using Zoom.   Engineering is actually a very good candidate for virtual office work.  All the work products are source code and CAD files and live in version control.

"co-op" also means no one is taking the profit out of the organization.  it works at a break-even cost.   At some point, the co-op could sell its technology.  People would have to realize that anything they work on is the property of the group and any sales are plowed back in the group and that no one earns a dime. The reward is that you rise up and gain visibility and learn to work on projects as complex as an autonomous loader/backhoe.  Or something else at that level.


Why this?

I've worked with new engineering grads and interns.   They tend to be smart but have no idea how to work on non-trivial projects.   Everything they've done at school is a project that is (1) scoped, so it can be done in one semester by students and (2) VERY well-defined.   Professional projects are not at all like that.   

Also, MANY people, especially working adults can't quit their job and spend 6 years in school to learn a new field.

This COVID thing has a tiny silver lining,   It has taught many of us how to work remotely and that it almost works.

So in ending, could something like this work.  What start-up capital is needed and importantly how to manage it?  Notice the hard questions are non-technical, management and finance and marketing are the keys.    I've studied engineering and education.

Now for a concrete example of how this works:   My son is looking for a job in corporate Marketing.  His specialty is social media marketing and branding. Or actually, he wants to specialize in this.He is a recent graduate with a marketing degree and little experience.   So he might join to co-op and be given to task of "spreading the word". He make a plan and run it by the others, get their input, adjusts the plan and comes back in a month and share results.   If it worked he's have a good resume reference and could point at results he got. Same with want-a-be engineers.  they might point to a circuit board they designed for the co-op.  They would not have to point as some hobby project but could say "This project is gong to Mars (maybe, someday, I hope)      There are jobs for non-enginers, like markets and admin, web design and so on all at the highest professional levels

This co-op would NOT compete with coursia, Udemy or Packt or Yutube.  These places produce educational products, not projects.   Learning takes both.  There are enough classes in the world, what is lacking is a way to gain good experience.








On Mon, Sep 27, 2021 at 12:44 AM <thomas...@gmail.com> wrote:
--
You received this message because you are subscribed to the Google Groups "HomeBrew Robotics Club" group.
To unsubscribe from this group and stop receiving emails from it, send an email to hbrobotics+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/hbrobotics/009501d7b373%2490bebff0%24b23c3fd0%24%40gmail.com.

Sergei Grichine

unread,
Sep 27, 2021, 5:50:21 PM9/27/21
to hbrob...@googlegroups.com
Fun topic, indeed. Let me approach the question from a different angle - not how you become competent software developer, but "how to get that job".

Everybody who applies to a position or a gig has to pass three filters:
- HR who selects resumes / applications 
- a techie who asks competency questions 
- a boss who estimates personal qualities 
and the HR again, who may raise concerns after a deeper research and an in-person meeting. 

At a particular moment business need may override techie's judgment, a joke with HR lady can sink your chances, etc. It is the numbers game. I remember times when instantly all my friends' wives were hired as Basic developers, no previous experience. 

One's best chances to pass through the techie's and some good bosses is to show up for a tech interview with photos and videos of your robots. On your YouTube channel. Doing things that are complex and require good understanding of control theory, math, electronics and mechanics. In the ROS world, a turtle bot is, probably,  a minimal ticket (with SLAM demonstrated). Still, they normally would shake your knowledge tree with written and oral tests.

I wouldn't dare to advise on the HR part of the race, that can be wild in modern PC times.

Best Regards, 
-- Sergei Grichine
   

Gmail

unread,
Sep 27, 2021, 6:41:26 PM9/27/21
to hbrob...@googlegroups.com
Chris,

Thank you for your detailed answer. I will certainly look into your suggestions. 



Thomas

-
Want to learn more about ROBOTS?









On Sep 27, 2021, at 10:49 AM, Chris Albertson <alberts...@gmail.com> wrote:



Michael Wimble

unread,
Sep 27, 2021, 7:22:26 PM9/27/21
to hbrob...@googlegroups.com
When I was in the hiring chain, the things I was most interested were:
  • Personality fit. First and foremost, was there going to be tension between us all the time or would you be a social asset to the group?
  • Truthfulness. Did you hedge on the resume, did you not quite tell the truth in one of your stories? I need to know that I can believe what you say without subtlety.
  • Communication. Can you speak English well? Can you get your ideas across? Can you assert yourself? You need to be a contributor to the group that can understand what we say and the group can understand you.
  • Engineering skills
    • Can you write? In my group, comments in code almost always had to be complete English sentences with proper punctuation. Reports had to be well-written English.
    • Do you have a basic engineering background? This is of paramount importance second only to personality. Are you a silo of narrow information or can I dump a new problem onto you and, using basic engineering principles, can you figure it out without a lot of me pointing things out and me handholding you.
    • Specific job requirements. Generally these are fairly far down on the list. A lot of alphabet soup of acronyms and abbreviations is just really to get interest from people that might have related background so the learning time is reduced. But if you’re not advanced in your craft, I expect you to take at least 3 to 6 months to really become proficient at the job I hired you into (versus the job you grow into). For advanced positions, the soup matters a bit more—you will be thrown into the fire on the second week.
    • Judgement. Down on the list, but I want a sense that you know what is important and what is not.
    • Focus. Down on the list because your stories should convey whether or not you can focus and get things done, despite of all the screaming and the heat of many fires all around you.

What I don’t do, which others sometimes do, is ask you questions not relevant to the job. No “there are 12 geese and a fox and one rowboat” questions. No, “how many people are drinking coffee in this town right now” questions. If I ask you to tell me some project you worked on where you shined, it’s a test what you find interesting, what level of complexity you had experience in, how well you can communicate and how well you will fit into the group. Always come prepared to tell interesting stories. If I ask you to tell me about some situation where you struggled and how you got past the problem, it’s the same as above but I’m particularly looking for red flags.

Red flags are:
  • What are the gaps in your resume. Don’t lie. Don’t pad. Tell me what was going on in your life and in your mind.
  • Brags on a resume or story that you can’t back up. I don’t mind arrogance if you can back it up. I don’t like humbleness if it means I will have to pay a lot of attention to you to see if you are giving me bang for buck.
  • Not enough stories of conflict. I don’t want to see a whole sea of stories where people you worked with were the problem, but if you have never had a problem, especially with people, in your programming career, then you are not only not very interesting but probably not trying very hard.
  • Lack of passion. This is the third most important thing in my interview. You had better be able to get across what drives you, what you want to do, what is behind all your career moves. If you don’t care, I won’t.

Keep in mind that I usually know if I want to hire someone a small number of seconds into the interview. Like maybe 12 seconds. Really. Everything counts—breath, clothing, physical poise, accent, eye contact, how you shake hands, everything. The rest of the time is just gathering documentation to support my decision.

My teams are always groups that trust each other, know what the strengths and weakness are of each and are willing to use those to advantage, and know that we can turn our backs on each other to face outward to fight whatever problem we’re up against.

Gmail

unread,
Sep 27, 2021, 8:29:51 PM9/27/21
to hbrob...@googlegroups.com
And thank you for your suggestions as well. 




Thomas

-
Want to learn more about ROBOTS?









On Sep 27, 2021, at 4:22 PM, Michael Wimble <mwi...@gmail.com> wrote:

When I was in the hiring chain, the things I was most interested were:

Yousof Ebneddin

unread,
Sep 28, 2021, 12:33:35 AM9/28/21
to HomeBrew Robotics Club
You can get some free resources from O'reilly. You can get free access to O'reilly from some of the public libraries in bay area. I have access from Santa Clara County public library: https://sccld.org/resource/oreilly/

Library membership is also free: https://sccld.org/card/

They have nice books, videos and courses about software, ROS, robotics and more.

Yousof Ebneddin

unread,
Sep 28, 2021, 12:33:35 AM9/28/21
to HomeBrew Robotics Club
Another option for learning is to take university courses as non-matriculated students. You just take the course you think you need and not the whole degree. Recently I did "AI-based mobile robotics" at university of Washington by Dieter Fox (Co-author of Probabilistic Robotics book). It was quite expensive (USD 3600) but my employer reimbursed it. I enjoyed it a lot. We implemented FastSLAM, particle filter and more in python from scratch on a real robot: https://youtube.com/playlist?list=PLqQXIzuD289ZJsOj5e-wd5yXSTQCVPz9C

I am now taking the "Vision algorithm for mobile Robots" at university of Zurich to learn about visual odometry: http://rpg.ifi.uzh.ch/teaching.html. They call it "auditing a course" there. It is much cheaper there.

This COVID made everything online and a lot easier to take these university courses remotely.

Some more links: 
On Monday, September 27, 2021 at 12:44:59 AM UTC-7 thomas...@gmail.com wrote:

Gmail

unread,
Sep 28, 2021, 12:51:29 AM9/28/21
to hbrob...@googlegroups.com
Thanks. 




Thomas

-
Want to learn more about ROBOTS?









On Sep 27, 2021, at 9:33 PM, Yousof Ebneddin <youe...@gmail.com> wrote:

Another option for learning is to take university courses as non-matriculated students. You just take the course you think you need and not the whole degree. Recently I did "AI-based mobile robotics" at university of Washington by Dieter Fox (Co-author of Probabilistic Robotics book). It was quite expensive (USD 3600) but my employer reimbursed it. I enjoyed it a lot. We implemented FastSLAM, particle filter and more in python from scratch on a real robot: https://youtube.com/playlist?list=PLqQXIzuD289ZJsOj5e-wd5yXSTQCVPz9C
--
You received this message because you are subscribed to the Google Groups "HomeBrew Robotics Club" group.
To unsubscribe from this group and stop receiving emails from it, send an email to hbrobotics+...@googlegroups.com.

Gmail

unread,
Sep 28, 2021, 12:51:46 AM9/28/21
to hbrob...@googlegroups.com
Thanks. 



Thomas

-
Want to learn more about ROBOTS?









On Sep 27, 2021, at 9:33 PM, Yousof Ebneddin <youe...@gmail.com> wrote:

You can get some free resources from O'reilly. You can get free access to O'reilly from some of the public libraries in bay area. I have access from Santa Clara County public library: https://sccld.org/resource/oreilly/
--
You received this message because you are subscribed to the Google Groups "HomeBrew Robotics Club" group.
To unsubscribe from this group and stop receiving emails from it, send an email to hbrobotics+...@googlegroups.com.

Gmail

unread,
Sep 28, 2021, 1:05:15 AM9/28/21
to hbrob...@googlegroups.com
Thanks to everyone who has responded. Your replies were helpful but would someone answer my basic questions:

1. Can someone recommend any Udemy or Coursera courses for ROS?

2. Can someone recommend any ROS kits? (Amazon or EBay or some other online store. )

If I hear nothing back, I will just assume that no one thinks that there is nothing worthwhile out there. 


On Monday, September 27, 2021 at 12:44:59 AM UTC-7 thomas...@gmail.com wrote:

Hello Everyone,

 

I am trying to get a job writing ROS code and currently I have a very light understanding of ROS and an elementary ability to program in Python. Can someone please recommend a kit or a course that could give me the ability to get a job? And also can someone recommend a Coursara or Udemy course on top of that?

 

I have programmed Arduino and Basic Stamp for years and now it’s time to move up the line with the big boys.

 

Thanks,

 

Thomas

 

--

Yousof Ebneddin

unread,
Sep 28, 2021, 1:40:39 AM9/28/21
to HomeBrew Robotics Club
Duckiebot and Duckietown (https://www.duckietown.org/) are ROS1 and Jetson based platform. (The same robot I am using here for implementation of FASTSlam). They are using docker. So some familiarity with docker would be useful but not essential. Their command line interface (CLI) is pretty good. They have an edx course as well. I did not do the course. I am not sure how much they focus on the ROS itself. I think their focus is mostly on robotics concepts. They are originally from ETH Zurich. Here is the link to the course: https://www.edx.org/course/self-driving-cars-with-duckietown. About the robot, just to mention  some of my classmates had difficulties to set it up, like hardware problems but I did NOT have any issues. They have slack channel and private stackoverflow for support. After joining their slack channel you can get access to their stackoverflow.

The basics of ROS itself is not that much complicated. You can just do bunch of tutorials about ROS to learn the concepts like publisher, subscriber, service, topic, node, launch file, message types, CLI more here: http://wiki.ros.org/ROS/Tutorials

If you would like to learn about common open source packages or like navigation stack or more robotics concepts, you need to look for tutorials or documents separately. You would mostly download or/and compile open source packages and you would write launch files (xml files) to configure which node to run with which tuning parameters. It might not involve that much of C++/python development.

I just found a good list of ROS courses on the ROS webpage: http://wiki.ros.org/Courses

Jim DiNunzio

unread,
Sep 28, 2021, 1:41:25 AM9/28/21
to hbrob...@googlegroups.com

Thomas,

 

I see a bunch listed on Udemy, but have not looked at any of those.

 

If you are open to Udacity Nanodegrees, I took and liked this nanodegree from Udacity which features a very stable ROS-1, and is quite useful to educate you on the basic concepts which almost all apply to ROS2. It comes complete with hands on experience in a linux system (web based or downloadable VM), building virtual robots and simulation, no hardware required.  I completed it in 2 months on nights and weekends (instead of recommended 4).

Become a Robotics Software Engineer (udacity.com).  FYI, you can get discount codes and talk your way to down to $99/month for  nano degrees.

 

For ROS kits: (sorry, I don’t know of a simple once click and buy kit). The ones I know require multiple parts and/or 3d printing:

 

Nanosaur (ROS2: Foxy) https://nanosaur.ai/, a fully described open source 3d printable robot that requires the Jetson Nano that some on this list have built and like. Total cost is around $210 with the cheaper 2Gb Nano + 3d printed parts. Ask Ross Lunan for detailed review.

 

There are other non-kit DIYs like the Neato Botvac base supported by this very group! Ask Camp for details!

 

Hope this is helpful.

 

Jim

Message has been deleted

Yousof Ebneddin

unread,
Sep 28, 2021, 1:53:39 AM9/28/21
to HomeBrew Robotics Club
I forgot to say that the duckiebot comes in parts. You need to assemble it yourself. 

I also did the Robotics Udacity course. Here are the projects: https://github.com/yosoufe/RoboNDbetaTest In most of the projects, the coding work was very little. It was mostly downloading packages and writing launch files. And it had bunch of usage of gazebo, the ROS simulator. I agree that 2 month is enough for it.

Alan Federman

unread,
Sep 28, 2021, 11:55:18 AM9/28/21
to hbrob...@googlegroups.com, Yousof Ebneddin

 

The following online resources:

SV-ROS. Meetup group + GitHub

ROS by Example Vol. 1 (Goebel)  pdf book, git exists somewhere.

Ubiquityrobotics.com. Downloads for images, learn for instructions. They have a Raspberry Pi image with ROS.

Nvidia Jetson has ROS docker images 

Our own Camp Peavy hosts a weekly ROS discussion group.

IMHO the best way to learn ROS is to get a robot and program it, but hardware is expensive, typically over $1000 us for a basic Turtlebot from Clearpath. Some of us have built our own based on  Neato Botvac, or Roomba base, this can cost under $400 if you buy a used platform.

There is no easy way to learn ROS, Since there is no learning curve, there is a learning cliff!









Ralph Gnauck

unread,
Sep 28, 2021, 6:47:31 PM9/28/21
to hbrob...@googlegroups.com

I can't  recommend any courses but for 2 I suggest the turtle bots as a good ROS starter kit:


Ralph





Yousof Ebneddin

unread,
Oct 10, 2021, 2:28:23 PM10/10/21
to HomeBrew Robotics Club

Programming for Robotics (ROS) YouTube playlist
Reply all
Reply to author
Forward
0 new messages