Hallo,
This Topic is Very Wide, but;
Although there are lots of tutorials, open source packages about how to make a navigating robot for beginners, according to my research for days, there are no guidelines or a complete tutorial or tutorial list about creating a well-developed ROS based navigating robot for the people who know about ROS. All the existing good packages and tutorials are either very old, or just very specific approach for what that robot is created for (like old open source commercial robots) or solving a specific problem with best practices (ros industrial tutorials)
Navigation is the heart of the ROS, more specifically the main part of the most ROS based robots. So it could be very nice to have a general complete guide on Creating a Navigating Robot Base from Zero to Industrial-ready Phase with Best Practices.
There is the Turtlebot3, supporting all the new features, ros1, ros2, including general example applications and tutorials, but frankly, it has the Raspberry Pie as a main computer: I doubt how it could possibly have the best approaches about solving real world problems. I understand that this problem doesn’t have a predefined solution list, and there isn’t a single, general way, so I’ll keep the parts as simple and as general as possible. My aim is to create a road-map-like list of things for writing a full guideline on this topic.
I have some bad answers to some of these, but I’m not an expert, so I expect experienced and helpful fellows to help with their answers to the numbered parts. Also I’d like to update this topic according to new area ideas to include since I can’t know all the real world problems.
-
Building the Hardware and Mechanics
a. Choosing the mechanics: wheel types, motor types, motor drive, driving style(omni-directional, differential drive, ackerman steering etc.),
b. Designing the mechanics: footprint optimization, structural optimization, design ideas to include safety considerations, material decisions etc.
c. Choosing the sensors: Laser scanner, IMU, camera-type sensors, must-have sensors for a good navigation capability etc.
d. Choosing the Computers and Communication Methods: microcontroller, high-level computer requirements, new communication methods and industry standards between hardware components and outside world devices -
Building the Software
a. The low level: low level controller code specifications, must-be-solved-in-low-level problems, existing solutions that are coming from the hardware manufacturers,
b. The high level computer with ROS: This part is the area of ROS and already well documented. In this guideline, the aim of this part could explain different solutions to different software/pc related real world problems and solutions; hardware specs/industrial standarts/ROS versions and distributions/OS decisions according to the continuous development of ROS.
c. Management approaches for multiple robot environments
d. Must-be-implemented-high-level-controllers: writing high level ROS drivers, sample well written node tutorials for mostly used hardware types, helpful links etc.
e. The Simulation: choosing the simulator software, creating realistic simulation environment, abstraction of the simulation software to run on sophisticated super computers / cloud servers
f. Containers: Although this is an unrelated topic, with the help of the containers like docker, spreading and managing the software can be automatized as you most probably know. -
Safety and Tests
a. Safety standards for low and high level: could just explain (for example)EU standarts, Industry 4.0 standarts, ROS Navigation related safety guides, must-be-in-the-low, must-be-in-the-high level safety standarts
b. Tests: Software testing for robotics, ready to use mocking softwares and development of mocking softwares
Why in the world, the community could possibly need this?
- Including the hardware and mechanics?: Even though, right now, ROS is an awesome middleware stack, I’ve seen lots of badly designed robots, both unsuccessful industrial ones and research oriented ones, which couldn’t benefit using these awesome libraries, tools, just because of the bad mechanical and hardware design.
- There are already lots of tutorials / guides / information about this: Yes. There are, but not organized and combined, and not for navigating base only, and not with the Best Practices. Some of the parts of this guide could directly show a helpful list of links. But The target of the existing tutorials are mostly for beginners or intermediate ROS users who doesn’t have the experience. This guide could be a way to advance in ROS based robots. Because writing guides like this for all ROS related things isn’t looking possible to me right now. But I think with a one with fully best practices on the navigation, It can also lead improving the other topics. Learning and using ROS for years makes the enthusiasts know lots of things about these topics. Still, no one can easily know all of these well.
- The truth about future of ROS2 based IoT Robots: Okay, even without this guide, IMHO, ROS will be the widest standard for the industry. Autonomous cars, drones, all types of vehicles will be using it in the future. My idea is, just like the time ROS created, a perfect, best practices oriented, industrial targeted, navigation related guide could really fasten this process. Let’s say, with the help of the experts, this guide is completed. And reached to lots of people, do you see any reason for ROS to not be the industry standard for all IoT devices?