Chapter 18: Taking Your Robot Programming Skills Further

You've now learned some beginner building skills and some of the more exciting programming tricks we can use with robotics. However, this robot is only really suitable for a lab; it's not ready for competitions or touring, and this is only the start of your robotics journey. There is also a large community of robot builders and makers that come from many angles.

In this chapter, you will learn how to continue your journey, how to find communities, how to look for new challenges, and where to learn more robotics skills. You will learn what skill areas there are beyond this book, and why they will help you make more robots.

How can you be part of this? Let's find out!

In this chapter, we will cover the following topics:

  • Online robot building communities – forums and social media
  • Meeting robot builders – competitions, makerspaces, and meetups
  • Suggestions for further skills – 3D printing, soldering, PCB, and CNC
  • Finding more information on computer vision
  • Extending to machine learning

Online robot building communities – forums and social media

Robot building is a topic that shares a space with the general community of makers. Makers are everywhere. There are ham radio and electronics enthusiasts who are more connected to the electronics side of robot building, and there are artists who are using devices such as the Arduino and Raspberry Pi to bring their creations to life. Teachers are using these devices to show children the world of technology or teach other subjects to them. There are also people with problems to solve or brilliant and sometimes crazy ideas to try out.

Robotics is part of the maker community, which has a strong presence on Twitter, Instagram, and YouTube. Search for tags such as #raspberrypi (https://twitter.com/hashtag/RaspberryPi), #arduino (https://twitter.com/hashtag/Arduino), and #makersgonnamake (https://twitter.com/hashtag/makersgonnamake) to find these communities. A rallying point is the @GuildOfMakers (https://twitter.com/guildofmakers) account on Twitter. I talk about making robots on my account, @Orionrobots (https://twitter.com/orionrobots), from which I follow many robot communities and share what I have been making.

Another part of the robotics community is far more focused on the AI side of robotics, with specialist groups in visual processing, speech recognition and its various implementations, and more advanced topics such as neural networks, deep learning, and genetic algorithms. These communities may be close to universities and company research bodies. For speech processing, you can use the #mycroft (https://twitter.com/hashtag/mycroft) and #voiceassistant (https://twitter.com/hashtag/voiceassistant) Twitter tags. For visual processing, you can use the #computervision (https://twitter.com/hashtag/computervision) and #opencv (https://twitter.com/hashtag/opencv) tags to find relevant conversations and blogs. Searching for TensorFlow and machine learning will help.

Finding Twitter feeds from universities involved, such as MIT Robotics (https://twitter.com/MITRobotics), CMU Robotics Institute (https://twitter.com/cmu_robotics), and The Standford Vision and Learning Lab at http://svl.stanford.edu/, will reveal some fantastic projects. Industrial robotics companies tend to be less helpful to makers but can be a source of inspiration.

Robot parts vendors online often have great projects, along with community influence. They also deliver internationally. In the UK, we have Pimoroni (https://blog.pimoroni.com/), 4Tronix (http://4tronix.co.uk/blog/), and Cool Components (https://coolcomponents.co.uk/blogs/news), to name a few. In the US, there is Adafruit (https://blog.adafruit.com/) and Sparkfun (https://www.sparkfun.com/news). Finding these vendors on social media will often reveal robotics and maker discussions with sources for parts and projects.

The online Instructables (https://www.instructables.com/) community shares many projects, including robotics builds and other things that will help a robot maker, either with experience or tooling. The Hackaday (https://hackaday.com/) website also has many great stories and tutorials.

Along with online websites, there are communities of robot builders on YouTube.

YouTube channels to get to know

First, there's my own: Orionrobots (https://www.youtube.com/orionrobots). I share many of my robot builds, experiments with sensors, and code on my channel. I put the code on GitHub with the intent that people can learn from and build on my ideas.

James Bruton (https://www.youtube.com/user/jamesbruton), also known as XRobots, makes very complicated and large 3D printed robotic builds and uses them to make creations that rival the great university robots, robotic costumes with real functionality, and self-balancing walkers.

The Ben Heck show (https://www.youtube.com/playlist?list=PLwO8CTSLTkijtGC2zFzQVbFnbmLY3AkIa) is less about robotics and more general making, including robotics. The show is far more focused on the maker side than the coding side but is an incredibly inspiring resource.

Computerphile (https://www.youtube.com/user/Computerphile) is a YouTube channel with great videos on programming, including aspects of robotics, visual processing, and artificial intelligence. It includes interviews with some of the significant figures still around in computing.

The Tested channel (https://www.youtube.com/user/testedcom) features Adam Savage from the the Mythbusters team, with very skilled makers doing in-depth builds and sharing their work and techniques.

The vendors Makezine (https://www.youtube.com/user/makemagazine), Adafruit (https://www.youtube.com/user/adafruit), Sparkfun (https://www.youtube.com/user/sparkfun), and Pimoroni (https://www.youtube.com/channel/UCuiDNTaTdPTGZZzHm0iriGQ) have YouTube channels (and websites) that are very tutorial-based and can help you get to know what is available.

These YouTube communities are good if you want to see what people are working on and see robot builders at work. There are also specific places on the internet to ask for help.

Technical questions – where to get help

For technical questions, Stack Exchange can help, with specialist areas for Raspberry Pi (https://raspberrypi.stackexchange.com/), Electronics (https://electronics.stackexchange.com/), Robotics (https://robotics.stackexchange.com/), and Stack Overflow (https://stackoverflow.com) for general programming help. Quora (https://hi.quora.com/) offers another question-and-answer community for technical questions. Raspberry Pi has a forum at https://www.raspberrypi.org/forums/, while Mycroft has a community forum at https://community.mycroft.ai/.

OpenCV has a forum for technical questions following the Stack Overflow style at http://answers.opencv.org/questions/.

Twitter is a more open format where you can ask technical questions. To do so, make sure you use hashtags for the subject matter and perhaps tag some influential Twitter robotics people to help you.

Video channels on the subject are good places to ask questions; of course, watch the video to see if the answer is there first.

A trick to finding alternative tech and solutions on search engines is to type the first technology you think of, then vs. (as in versus), and see what completions they suggest. The suggestions will give you new options and ways to solve problems.

While talking to people on the internet can help with many problems, nothing beats meeting real robot builders and talking things over with them. Where are they and how can you find them?

Meeting robot builders – competitions, makerspaces, and meetups

As you start to build more, meeting up with other makers is a must. First, you will gain from the experience and knowledge in the community, but there is also a great social aspect to this. Some events are free, but the larger ones will have fees associated with them.

Makerspaces

These spaces are for any kind of maker, be it robotics, crafting, arts, or radio specialists. They serve as tool collectives with a collection of tools any maker may need, along with space to use them.

You can expect to find a collection of Computer Numerical Control (CNC) machines such as 3D printers, laser cutters, lathes, and mills for cutting materials and drills. They also usually have a full electronics bench and many kinds of hand tools in these spaces.

Some have the materials for making Printed Circuit Boards (PCBs). Makerspaces also have a community of people using these tools for their projects. People are there for the community and are happy to share their experiences and knowledge with anyone.

Makerspaces are a great place to learn about making and practice skills. Some, such as the Cambridge Makerspace (https://twitter.com/cammakespace), have robot clubs.

There are Makerspaces in many cities and towns around the world. They are also known as maker collectives, Hackerspaces, and fab labs. For example, for South West London, there is the London Hackspace (https://london.hackspace.org.uk/), Richmond Makerlabs (https://richmondmakerlabs.uk/), and South London Makerspace (https://southlondonmakerspace.org/). Another example is Mumbai with Makers Asylum (https://www.makersasylum.com/). There is a Directory of Makerspaces at https://makerspaces.make.co, although searching Google Maps for makerspace and hackspace near you will probably yield results.

These spaces make themselves easy to find on search engines and social media. If there are none in your area, reaching out via social media to other makers may help you find like-minded individuals who can help you organize spaces like this. When you find a venue, be clear on what the venue allows, as, for instance, soldering can be a problem until you find a dedicated space with a large enough collective.

Maker Faires, Raspberry Jams, and Dojos

In terms of Maker Faires (https://makerfaire.com/), many countries host festivals based on making. This is where people gather to show and build things together, with robotics often being a part of such festivals. These can be 1-day events or camping festivals such as EmfCamp (https://www.emfcamp.org/) in the UK. These are places where you can get started learning new skills, show and tell things you've made, and see what others have been making.

Raspberry Jams (https://www.raspberrypi.org/jam/) and Coder Dojos (https://coderdojo.com/) are groups that get together to regularly exercise their programming and, sometimes, maker skills. A Coder Dojo is a community programming workshop. A Raspberry Jam is a similar event, closely related to Raspberry Pi. Some Raspberry Jams are aimed at adults, while others are aimed at kids, so find out what groups there are locally, if any, and what they are aiming at. Becoming a mentor for kids at a Dojo or Jam is a great way to get to know other interested makers and programmers.

The annual Raspberry Pi parties are a fun get-together, but the focus is much more on meeting and less on building together.

All these groups tend to have quite inspiring Twitter feeds.

Competitions

Robotics competitions are still relatively rare outside of academia. The FIRST (https://www.firstinspires.org/robotics/frc) engineering initiative in the US is about getting schools and colleges to build robots and compete, with a few sporadic FIRST teams outside the US. FIRST challenges can be autonomous and manually driven. Most countries do have some kind of Science Technology Engineering and Mathematics (STEM) organization, such as https://www.stem.org.uk/ in the UK. They sometimes host robotics competitions, which you will be able to find out about on their websites and newsletters; be sure to see if they are open to the general public or just schools.

In the UK, the PiWars (https://piwars.org/) competition is run annually and involves many autonomous and manual challenges set around the Cambridge University School of computing. It has a strong community element and is a great place to meet robot builders as a competitor or spectator. The #piwars (https://twitter.com/hashtag/PiWars) Twitter tag has quite an active community discussing this, particularly when robot makers gather to build and test robots before the event.

Another competition in the UK is Micromouse, http://www.micromouseonline.com/, which is about maze-solving robots, though other kinds of robots are exhibited by makers. Both competitions also have small robot markets.

The Robotex International (http://robotex.international) robotics exhibition is held in Estonia and combines lots of show and tell with days of competitions and serious prizes. They welcome robot builders working with electronics and Raspberry Pi, alongside Lego and other materials.

As these require travel, you should probably consider a large enough box, with bubble wrap or packing foam, to safely transport your robot(s) to and from such events.

I advise that you remove the batteries to reduce the possibility of a stray wire causing a short and pack them into a plastic bag to insulate them from any metal. Start considering cable routing in robot design; although this is outside the scope of this book, it makes robots far more robust.

I also recommend having a field repair kit at hand with a breadboard, wires, spare batteries, a charger, all the screwdriver types, replacement components for logic-level shifters, hook and loop tape, a standoff kit, and possibly a multimeter. Robots often need a little tuning and repair when arriving at an event.

In this section, you've learned about some of the places where you can meet robot makers, use tools, and find some competition. Next, let's look at more skills you can utilize to build your robot.

Suggestions for further skills – 3D printing, soldering, PCB, and CNC

As you build more robots, you will want to create more elaborate or customized systems.

To build a competition-grade robot, you will need more hardware building skills.

Design skills

We've used block diagrams and simple drawings throughout this book. However, to become more serious about robot building, you'll want to design parts or check that bought parts will integrate with your robot. You will want to create cases, chassis, sensor mounts, brackets, wheel types, and any number of parts, for which Computer-Aided Design (CAD) is key.

2D design for illustration and diagrams

For 2D design and illustration, I recommend Inkscape (https://inkscape.org/). Inkscape is more artistic than CAD-oriented, but it is handy if you wish to make logos and other designs. It is quite complicated, so I recommend a book such as Inkscape Beginner's Guide, Bethany Hiitola, Packt Publishing, to get started learning about it.

Draw.io (https://app.diagrams.net) is useful for creating diagrams like the ones in this book. You can combine these two systems using Inkscape to make new shapes that you can use in Draw.io. Inkscape allows more freedom in terms of shape manipulation, but Draw.io is better for placing shapes and connecting things.

3D CAD

It is thoroughly worth getting to know 3D CAD systems such as FreeCAD (https://www.freecadweb.org) and Fusion 360 (https://www.autodesk.com/campaigns/fusion-360-for-hobbyists). FreeCAD is free and open source; Fusion 360 has a free entry-level CAD system for makers.

3D CAD systems let you design parts and then create further designs so that you can test how to assemble them. You can also make drawings from these for hand tool usage or export them for 3D printing.

All of them will take some investment in time, so I recommend using tutorials and YouTube videos to get to grips with them. The Maker's Muse channel (https://www.youtube.com/channel/UCxQbYGpbdrh-b2ND-AfIybg) is a good place to get started with this.

The Thingiverse (https://www.thingiverse.com/) community share 3D designs for printing and making. One very effective technique can be to either draw inspiration from, reuse, or repurpose creations seen there. If you can, import a bracket into FreeCAD and add the particular holes/base or connectors you need; it could save you hours of work trying to draw the mount for a sensor from scratch. The community will also have tips on printing these. As you may not always find what you are looking for in Thingiverse, consider alternatives such as Pinshape (https://pinshape.com/) and GrabCad (https://grabcad.com/).

Once you have CAD drawings of parts, you can send them off to have them made or learn about techniques you can use to manufacture them yourself.

Skills for shaping and building

As a general recommendation, the MIT How To Make Almost Anything (http://fab.cba.mit.edu/classes/863.14/) course materials (which are updated annually) are a fantastic resource for finding ways to put things together – although they look plain, the links there are very useful. As we mentioned in Online robot building communities – forums and social media, YouTube and other channels are rich with practical examples and hands-on tutorials when it comes to making things.

Machine skills and tools

CNC milling, laser cutting, and 3D printing allow you to create solid parts and can give great results; however, each is a field of its own with many skills you must learn on the way. Laser cutting allows you to make flat parts, but with some ingenuity, flat parts can be assembled (like so many types of furniture) into sophisticated, solid 3D objects.

The YouTube channel NYC CNC (https://www.youtube.com/user/saunixcomp) covers a lot of CNC tips and usage; however, the online book Guerrilla guide to CNC machining, mold making, and resin casting, by Michal Zalewski is also a brilliant resource.

For these machining techniques, I would not suggest going out and buying your own, but to find out more about the local community Makerspaces we mentioned previously and use the facilities they have there. Some libraries are also getting into this and providing 3D printers and simple maker materials. Using these will be cheaper than buying your own; you will be among a community of others with experience, and it will be far easier than trying to do it alone.

If you just want the 3D printed or laser cut parts, there are places online that will make things for you. Ponoko (https://www.ponoko.com/), RazorLAB (https://razorlab.online), 3DIng (https://www.3ding.in/), Protolabs (https://www.protolabs.co.uk/), Shapeways (https://www.shapeways.com/), and 3D Hubs (https://www.3dhubs.com/) are some of the companies that offer such services. Looking for 3D printing and laser cutting services in your region via a search engine isn't difficult, but it will still help to gain some experience through a Makerspace to understand what is and isn't possible with these machines. Using the wrong machine for a job, or making the wrong design decisions, could lead to huge costs.

3D printers, laser cutters, and CNC machines require routine maintenance and upkeep tasks, such as leveling a 3D print bed or tramming the CNC chuck. They also require consumables such as stock (plastic filament, wood to mill or laser cut), replacement components, and bed adhesive materials. Unless you are printing a lot, it is rarely an economy to own your own when you have access to another via a Makerspace or an online market.

While machine skills will create very precise parts, hand skills are needed either to finish or modify these parts. Some parts will always be more suitable if they're made by hand for robot one-offs.

Hand skills and tools

Having some basic woodworking and crafting skills always comes in handy. Practicing these at a Makerspace will help you see how things can go together. With this comes knowing how to choose suitable wood as an unsuitable wood might be too soft, too heavy, or too irregular. Wood can be carved by hand or used in a CNC machine, as mentioned previously.

Learning modeling skills, such as using plasticard (styrene sheets), creating molds, and casting, are other ways to make 3D parts. Plasticard is an inexpensive, flexible material of varying thickness that can be easily cut by hand, perhaps using a printed template, and then assembled.

You can use woodworking to create molds and makeshift robot chassis. Molds allow you to make multiple copies or use materials in high-quality parts. Casting can be tricky, especially if you're dealing with bubbles, but there are good books on this subject. For this, I recommend the articles https://medium.com/jaycon-systems/the-complete-guide-to-diy-molding-resin-casting-4921301873ad, https://youtu.be/BwLGK-uqQ90, and the Guerilla Guide To CNC, which was mentioned in Machine skills and tools.

Further interesting material skills, such as working with metal, allow for even bigger robots. This means learning how to cut, shape, and weld metal parts.

Carbon fiber or Kevlar materials are useful in larger robots, fighting robots, or those needing to handle heavier materials.

The Instructables (https://www.instructables.com/) and Hackaday (https://hackaday.com) communities will help you learn skills like those mentioned in this section. They have practical instructions and tutorials on building things. You can either follow along with complete projects or just skim read for techniques to borrow from them. As well as looking for robots, look at modeling techniques (often similar), plasticard builds, woodwork, or metalwork tutorials. Makerspaces run lessons on these skills too.

With a pointer to where you can learn how to make the structural and mechanical parts, what about electrical parts?

Electronics skills

The next thing you must do is extend your electronic skills. We have been using Raspberry Pi hats and modules to build our robots. This is fine when we're starting out, but this starts to feel clumsy when there are many parts, with demands on space or fragile wiring making it far from ideal. You'll note that our wiring on the robot is very crowded.

Electronics principles

Learning more about the electronic components and common circuits' functions will help you understand your robot further, expand it, find ways to reduce its size, or eliminate problems on the robot.

Power electronics will give you a better understanding of your robot's motor controller and battery regulation circuits. Digital electronics will let you connect other logic devices, use new sensors, or aggregate them in useful ways. Analog electronics will also open up new types of sensors and actuators and give you tools to diagnose many electrical problems that can crop up.

For this, you should learn how to draw and read schematic circuits for the common parts. Online courses and YouTube channels teach electronics step by step, with books such as Make: Electronics, by Charles Platt giving a very hands-on learning path.

The EEVBlog (https://www.eevblog.com/episodes/) channel is less step by step but offers more general immersion in terms of electronic engineering concerns.

Taking soldering further

Although we've done a little soldering, it's just the bare minimum. There is far more stuff to learn about on the subject. Soldering is a skill that many makers use daily.

Some good places to start are the Raspberry Pi guide to soldering (https://www.raspberrypi.org/blog/getting-started-soldering/), The Adafruit Guide To Excellent Soldering (https://learn.adafruit.com/adafruit-guide-excellent-soldering), and the EEVBlog Soldering tutorial (https://www.youtube.com/watch?v=J5Sb21qbpEQ).

I recommend starting in a local Makerspace, where you will benefit from others and complete simple soldering projects. Soldering headers onto a module is a pretty basic way to start, along with using kits such as those made by Boltportclub (https://boldport.com) to stretch those skills a bit further. Soldering allows you to start thinking about creating boards or Raspberry Pi hats.

You will start off by soldering simple headers and what are known as through-hole components since they go through a hole in the board. This is the right type of construction you should be implementing to gain confidence with the technique.

As you become more confident, you will find kits that use surface mount soldering. Surface mount components do not have legs that go through holes but simple metal pads that are soldered directly onto the copper pads on the board. They take up far less space, allowing for smaller constructions, but they are also quite fiddly and eventually require fairly professional tools to be used. Some simple surface mount components, such as LEDs, resistors, and capacitors, can be soldered by hand. See the EEVBlog Surface Mount tutorial (https://www.youtube.com/watch?v=b9FC9fAlfQE) for a starting point.

Devices with tens of pins may not work and require solder ovens and solder paste. At that point, you may be making custom circuits, and a Printed Circuit Board and Assembly (PCBA) service might be the correct path to take.

Custom circuits

As you gain confidence with electronics and soldering, you will want to create more circuits and transfer them onto more professional-looking PCBs to save space and perhaps make them easier to wire. Breadboards are good for learning and experimenting, but they are not ideal for competing and quickly become bulky and untidy, while point-to-point wiring is fragile and prone to mistakes.

The first stage of custom, more permanent circuits is using stripboard or perfboard and soldering components onto them. This is a good further step from breadboards and will save space. They can still be a little bulky and messy, though. You may also want to use parts that are surface mounted or have irregularly laid out legs of different sizes that don't fit conveniently on perfboard or stripboard.

To take your circuits to the next level, you can learn to design PCBs. You will be able to save yet more space, have more robust circuits, and be able to use tiny surface mount parts. You could even design PCBs that are for light structural placement too.

For breadboards, you can use Fritzing (http://fritzing.org/home/), but I don't recommend it for schematic or PCB work. To design these, software such as KiCad (https://kicad.org) is a good hobbyist tool. I recommend the video course KiCad Like a Pro, Peter Dalmaris, Packt Publishing.

You can use facilities at local Makerspaces to make PCBs or send them to board houses to have them beautifully made, with fine tracks, lettering, and fancy colored solder masks (you'll see more such terminology in the field). Custom PCBs allow you to tune the layout to avoid any point-to-point wiring, work with tiny surface mount parts, add helpful text right on the board for some wiring, and get a professional look. Some even use this to make other parts for the robot, including structural parts and front panels, in PCB.

Finding more information on computer vision

We started looking at computer vision in Chapter 13, Robot Vision – Using a Pi Camera and OpenCV. We used OpenCV to track colored objects and faces but barely scratched the surface of computer vision.

Books

I recommend the book OpenCV with Python By Example, Prateek Joshi, Packt Publishing, if you wish to continue learning about OpenCV. This book uses computer vision to build augmented reality tools and to identify and track objects and takes you through different image transformations and checks, showing screenshots for each of them. It is also quite fun as it contains lots of hands-on code.

You can even extend computer vision further to 3D computer vision with the Xbox 360 Kinect sensor bar. Although they are no longer produced by Microsoft, they are extremely common and fairly cheap on eBay. Note that there is a modern Azure Connect device you can use for this, but at the time of writing, this is 20 times the price! The XBox 360 Kinect sensor bar has also been interfaced with the Raspberry Pi. The Kinect has a 3D sensing system that makes them valuable for use in robots. There is a section on connecting this to the Raspberry Pi in the book Raspberry Pi Robotic Projects, Dr. Richard Grimmett, Packt Publishing.

Online courses

PyImageSearch (https://www.pyimagesearch.com/) contains some of the best resources for learning OpenCV and experimenting with machine vision.

Learn Computer Vision with Python and OpenCV, Kathiravan Natarajan, Packt Publishing (https://www.packtpub.com/in/application-development/learn-computer-vision-python-and-opencv-video) dives in some depth into color tracking, feature detection and video analysis while using the excellent Jupyter tool to experiment with image transformations.

The TensorFlow Tutorials (https://www.tensorflow.org/tutorials/) website (a machine learning framework) contains tutorials specifically aimed at using TensorFlow in computer vision. Training machine learning systems to perform visual recognition can take a lot of time and sample data.

The video course Advanced Computer Vision Projects, Matthew Rever, Packt Publishing (https://www.packtpub.com/big-data-and-business-intelligence/advanced-computer-vision-projects-video) provides further computer vision projects, culminating in using the TensorFlow machine learning system to analyze human poses from camera input.

Social media

I mentioned the Twitter tags #computervision and #opencv in the Online robot building communities – forums and social media section, and they are a good place to ask questions or share your work about the subject.

Computerphile has a small computer vision playlist (https://www.youtube.com/watch?v=C_zFhWdM4ic&list=PLzH6n4zXuckoRdljSlM2k35BufTYXNNeF) that explains the concepts and theory of some visual processing algorithms, but does not tend to dive into any hands-on implementation.

With that, you've learned where you can find out more about computer vision. However, this leads to a more advanced robot subject: machine learning.

Extending to machine learning

Some of the smartest sounding types of robotics are those involved in machine learning. The code used throughout this book has not used machine learning and is instead used well-known algorithms. The Proportional Integral Derivative (PID) controller you used in this book is a system that makes adjustments to read a value, but it is not machine learning. However, optimizing PID values might come from a machine learning algorithm. We used Haar Cascade models to detect faces; this was also not machine learning, though OpenCV contributors probably used a machine learning system to generate these cascades.

Machine learning tends to be great at optimizing tasks and discovering and matching patterns, but poor at making fully formed intelligent-seeming behavior.

The basic overall idea of many machine learning systems involves having a set of starting examples, with some information on which are matches and which are not. The machine is expected to determine or learn rules based on what is or is not a match. These rules may be fitness scores based on learning rules to maximize such a score. This aspect is known as training the system.

For the PID control system, you could base fitness on settling to the set point in the fewest steps with little or no overshoot based on training values from data, such as machine variations, response times, and speed.

Once again, I recommend the Computerphile AI Video playlist (https://www.youtube.com/watch?v=tlS5Y2vm02c&list=PLzH6n4zXuckquVnQ0KlMDxyT5YE-sA8Ps) video series for getting to know the concepts around machine learning; it's not hands-on but is more focused on the ideas.

Machine learning can be quite focused on data and statistics, but the techniques you've learned throughout this book can be applied to sensor data to make this more relevant to robotics. There are many examples of the TensorFlow system being used to build object recognition systems. Genetic algorithm-evolving solutions have been used to great effect for robot gaits in multi-legged systems or finding fast ways to navigate a space.

Robot Operating System

Some of the robotics community make use of the Robot Operating System (ROS); see http://www.ros.org/. Robot builders use this to build common, cross-programming language abstractions between robot hardware and behaviors. It's intended to encourage common reusable code layers for robot builders. AI systems built on top of this can be mixed and matched with lower-level systems. The behaviors/robot layers we have built allow some reuse but are very simplified compared to ROS.

The book ROS Programming: Building Powerful Robots, Anil Mahtani, Packt Publishing covers linking the TensorFlow AI system to ROS-based robotics.

For a simpler introduction, Learning Robotics using Python, Lentin Joseph, Packt Publishing uses ROS with Python to build a smart AI robot using LIDAR.

Summary

In this chapter, you learned how to find out who else and where else robots like the ones we covered in this chapter are being made, as well as how to be part of those communities. Sharing knowledge with other robot builders will accelerate your journey.

You've also learned where to compete with a robot, where to get more advice, and how to find information to progress the different skills you've started building much further. This inspiration and direction should make it easy for you to keep growing your robot skills.

In the next chapter, we will summarize everything that we have learned throughout this book, with a view toward building your next robot.

Further reading

The following are further practical robotics books available that I enjoy:

  • Python Robotics Projects, Prof. Diwakar Vaish, Packt Publishing: This book offers more Raspberry Pi and Python robotics projects for you to practice with.
  • Robot Building for Beginners, David Cook, Apress: This book leads you through building sandwich, a scratch-built robot based on a lunchbox. It is a little more maker- and electronics-based, but it is quite a fun project to follow.
  • Learning Raspberry Pi, Samarth Shah, Packt Publishing: You can dig further into what can be done with a Raspberry Pi here and find inspiration for enhancing your robots within the sections of this book.
  • Robot Builder's Bonanza (5th Edition), Gordon McComb, McGraw-Hill Education TAB: This was an influential book and is quite extensive in terms of how to make a robot. This is the best book for going beyond buying kits and constructing bigger and more mechanically complicated robots.
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.129.210.17