ROS has been released for the eighth anniversary, and it is very popular among foreign research institutions. It attracts the interest of several big scorpions headed by the Southwest Research Institute. They are constantly trying to apply ROS to industrial robots.
Brother's understanding of "ROS": different brands can unify "ROS" to write programs to solve programming differences between different brands! Although there are differences in the operation programming of different brands, the logic and functions are similar in structure. It is very fast to know KUKA to get started with MOTOMAN!
Application of ROS in industrial robots
First of all, the development systems of different industrial robots are basically different。 The teaching and programming methods are different。 An engineer who is skilled in using Motoman probably does not use the Kuka robot arm。 Even the same kind of robot, due to the update of the firmware version, may also cause program incompatibility。 This has greatly affected the popularization of robots。
△Left: Teacher for different robots; Right: UR firmware version is not compatible
江西11选5走势图In this regard, ROS can package robots in a unified way (URDF model + robot driver), users only need to write applications in ROS, and do not care about the robot's control method. If all robots adopt this approach, then the robot will be more widely used (the requirements for system integrators will be reduced).
Second, more and more robot manufacturers are now trying to use ROS, including the four major families of robots that occupy the most industrial market share and various popular research robots; even Baxter like Rethink can only use ROS control. If you study robots without learning ROS, you may face the problem of not using robots in the future.
△Robot using ROS
Furthermore, robots are a complex and highly involved discipline, from bottom to top including mechanical design, motor control, sensors, trajectory planning, kinematics and dynamics, motion planning, machine vision, positioning navigation, machine learning, advanced Smart and so on。 A graduate student is basically impossible in a few years。
I can find a lot of answers in this regard, but I can only practice this kind of thing by myself. I only give a few suggestions from my personal point of view.
The first step is to understand the basic architecture and development methods of ROS. I personally strongly recommend to look directly at the ROS/Tutorials BeginnerLevel of the ROS official website (see more than a few times), while fully using the ROS question and answer community ROSAnswers and the MailLists of each module, many basic problems may have been encountered before.
Secondly, after understanding the basic architecture and development methods of ROS, you can look at the parts you care about in a targeted manner. If you are a mobile robot, go to the Navigation tutorial; go to the ORK tutorial for object recognition; go to the MoveIt tutorial for sports planning. This step is best to practice with the actual robot (if not, use gazebo simulation). Since some modules are not clear enough (such as MoveIt), you must practice more, or even look at some of the source code, first make sure you will use ROS to achieve some functions.
For the connection between ROS and the actual robot, it is recommended to take a closer look at the action (write robot driver package), URDF (robot description file) tutorial (or ros_control). As shown below, I wrote the URDF file for the SDA5F robot and modified the action in motoman_driver to make the use of MoveIt to control the motion of the dual-arm robot in the ROS environment.
△SDA5F dual-arm robot and its URDF model
Finally, it is the advanced stage。 I want to emphasize that "ROS is just a tool", you will use ROS for SLAM and it does not mean that you will do SLAM。 For the content of my own research, I must sink to see the textbooks and papers, understand the principles behind each algorithm, know how to adjust the algorithm parameters, how to improve the algorithm, and finally be able to write some part of the code and replace the corresponding module of ROS (such as Write your own kinematics and positive solutions to replace KDL, etc。)。