Dajiang Technical Director: How to become an all-round robot engineer in six years

The core issue of robotics is to interact with the physical world. In the mainstream robotics branch, the disciplines dealing with the interaction with the physical world are divided into three categories: sensors and processing algorithms; multi-rigid system dynamics control; robot autonomous movement.

Will intelligent robots become a disaster for the future world? Will research on robots or artificial intelligence help us better understand human beings? How will artificial intelligence affect our lives? Problems and articles such as these have long been commonplace. But how does robot control get started? How to become a qualified robotic engineer? There seems to be no comprehensive answer to this type of question. At the moment when robots become a hot topic, how do you develop an efficient and comprehensive robot learning program as a college student? Xiaobian recommended a "Robot Engineer Learning Plan" for the majority of "Robot Maniac Powder", Yang Shuo, Director of Intelligent Navigation Technology of Dajiang UAV, and perhaps reading this article will enable robot engineers to learn more with less!

Foreword Many friends have asked me personally about robots and artificial intelligence, how to start learning. Recently a little empty, I wrote my opinion.

Two years ago, I was skeptical [How to define "robot"? In the question of trying to make a more careful definition of the robot, I think the biggest difference between robot and artificial intelligence is whether to interact with the physical world. At the beginning of this year, in another answer, "Does robotics or artificial intelligence research help us better understand human beings?" In response, I said that sensors are the basis for interaction with the physical world. Later, I mentioned Moravec's paradox in the answer to the "quotes related to control, robotics, etc.", and talked about the recognized problem in robotics that is realized in the physical world. Human activity ability.

The previous answer was turned out to support the following point: The core issue of robotics is to interact with the physical world. In the mainstream robotics branch, the disciplines dealing with the interaction with the physical world are divided into three categories: sensors and processing algorithms (laser radar, multi-vision, fusion algorithms); multi-rigid system dynamics control (industrial robot dynamics control and Contact force control); robot autonomous movement (locomoTIon does not know how to translate, research on mobile robots such as wheel, foot, and flight). Students who are interested in robotics are advised to focus on these issues.

In addition, according to the curriculum classification of the Doctor of Robotics at the Carnegie Mellon University, the world's number one robot education institution (http://TIon/COSAug2016.pdf), robotics has four core areas:

1. Perception. Vision sensors, image sensors, tactile and force sensors, inertial navigation, etc.
2. Cognition. Artificial intelligence, knowledge representation, planning, task scheduling, machine learning, etc.
3. Behavior. Kinematics, dynamics, control, manipulaTIon and locomoTIon.
4. Mathematical basis. Optimal estimation, differential geometry, computational geometry, operations research, etc.

In combination with the core curriculum requirements of Carnegie Mellon University, I feel that the core problem of robotics I defined is basically not biased. The robotics projects mentioned later in this article are based on the above points and curriculum requirements.

Some controversial ideas: 1. Robotics is an activity of the rich. Although the industry is more and more developed, good development boards and motors are still very expensive. If you are determined to learn robotics and make physical things, you must find the funds to do the real thing. Either you spend money yourself, or you have to find a robot club in the school, or find someone who is willing to fund young people to learn. In addition, there is no complete book to teach you how to build a four-rotor air robot or a big dog robot. You need to refer to more than a dozen different textbooks. These books are expensive both in Chinese and English.

2, robotics is the technique of the dragon. This is what the founder of Ninebot said. Although in recent years, balancing vehicles, sweeping robots, and multi-rotor aircraft have allowed robotics to enter people's lives, there are few viable commercial applications, and existing robots and theories are still difficult to solve the interaction with the physical world. Something. So make sure you have the skills to go to other businesses on the road of robotics, such as programming, mechanical design and hardware design. Be mentally prepared to accept the fact that you may not be able to make something useful to society in the years after you learn the technique of killing dragons.

3. Based on the above-mentioned point of view, if you want to learn robots after you have already worked, it may be too late, because it is likely that interest will not be able to overcome objective constraints. If you study as an interest, you can only learn to do the patrol car and the steering gear robot arm, and may not be able to satisfy the creative desire of the second disease.

Personally, robotics is a tough road. It is a robotic engineer who wants to be a one-stop robot. It takes many years of theoretical and practical training. The process of theoretical study and hands-on practice must also schedule each other. It is often possible to achieve the best results by learning the most relevant theories while doing a practical project, but at the same time those less relevant theories will look very boring. How to properly arrange your own practice projects is also very important.

In this article, I plan to introduce a robotics program for electrical engineering, mechanical engineering, and computer science students from the first year of college to the second year of graduate school. This is basically a summary of my past learning style. Learning according to this method can become a robot engineer with comprehensive capabilities but slightly partial software. This six-year study plan is estimated to be spent 6-8 hours of study time per day throughout the year and in completing the course requirements. These time, on the one hand, are used to read English textbooks for course knowledge, on the one hand for reading. Textbooks in other disciplines are used on practical projects.

The positioning of robotic engineers in large projects is similar to the overall designer in an aircraft system. Compared with mechanical engineers, hardware engineers, software engineers, algorithm engineers, and control engineers, robot engineers spend less time on a specific technology, but can understand all the engineers' words and can be the coordinator of different modules. The entire team went to attack. Of course, if a robotic engineer can reach the level of excellence of an engineer in that field in a field, it is definitely better.

Due to the rush of time, coupled with limited personal standards, if there are any mistakes and mistakes in the article, I would like to ask the reader to point out, thank you. If the classmates still have any content and materials to know, please also welcome the message exchange.

Freshman

Just after you were a freshman, your robot career began. First look at the school's campus network can not overturn the wall, if you can not buy a VPN of more than 100 dollars a year, first make sure you can go to Google, do not feel bad about VPN money, this will allow you to post career Save tens of thousands of dollars. Then go to register a gmail account, then register the stackoverflow account, then register the github account, then register the CSDN account, register to log in and go shopping, don't ask why.

To a certain extent, the English level will be the limiting factor for the level of robotic engineers. English is a class that students should study hard at the university, and it is not only to be regarded as a lesson, but also as a skill, as part of life. When you start to study some advanced robot knowledge, it may be very difficult to find Chinese reference materials. If you can't keep the English information at this time, the speed and vision will be greatly affected. Therefore, when you are a freshman, you should take a look at the Red Book and see the American TV series.

No matter what professional background students, the first grade in college must be calculus and linear algebra. The importance of linear algebra requires special emphasis. In general, excellent engineers and scientists must learn at least five linear algebras in their careers, learn once in the first year, learn once when learning to optimize, learn once when learning linear systems, and learn once when learning machine learning... ...If you see the right book when you first learn it, and brush it to the right question, then the future study will be much easier.

There are a lot of discussions on how to learn linear algebra on the Internet, such as how to understand linear algebra. - Mathematics learning. The article of Matrix67 Great God: What kind of mathematics education do we need? Also very inspiring. My personal recommendation for learning linear algebra is two books, one called "Linear Algebra Done Right" and the other called "Linear Algebra Done Wrong" (https://~treil/papers/LADW/book.pdf). I like the book Done Wrong. The first one is free. The second one needs to read the first six chapters and two hundred pages. The third one has a large margin. There are a lot of blanks to do exercises. . Another good textbook is the MIT Open Class: Linear Algebra. In any case, learn linear algebra must use foreign textbooks, do not use domestic textbooks.啃 English books are very tired, but considering that you need to read more English books afterwards, linear algebra is already very good at getting started. You must kneel down and brush up enough after-school questions.

After learning linear algebra, a natural problem is how to use the computer to calculate the multiplication of the matrix, the multiplication of the vector, and the inner product of the vector. So introduced the learning of programming.

Regardless of the major of your classmates, be sure to start programming as early as possible in the first year of college. As for which language to start learning programming, I recommend Python. The better textbook is MIT Open Class: Introduction to Computer Science and Programming. The better Python development learning environment is Anacoda (http://). After getting familiar with Python, students can start playing Python's numerical calculation package Numpy. At this time, the linear algebra problem is basically the same, and Numpy can help solve the linear algebra problem.

For anyone, Python is a Swiss army knife, and you can do a lot with him, such as automatically replying to emails and automatically collecting information. But if you really want to build a robot, the right tool is not a Swiss army knife, but a simple and rough hammer and screwdriver-like tool like C/C++. When learning Python to a certain extent (such as when you hear something called cython), it's best to start learning C, and force yourself to practice using C's one-dimensional arrays and pointers to implement matrix addition, multiplication, and seeking. Reverse operation. The reason why there is advanced Python or Java (don't ask me where Java is advanced), we need to learn C in these languages, because the robot is not a complete computer, but a computationally limited embedded system, embedded System development can only be done in C or lower language.

Learning C I personally started with the "C++ Language Programming" published by Tsinghua University. Although the title of this book is C++, there is not much problem. However, there is a huge problem in the domestic C language textbooks that does not guide students to use Linux. A better textbook in recent years is http://songjinshan.com/akabook/zh/index.html. The textbook of this website is very good, because he educates students to use the Linux environment as a program compilation environment, and also introduces some computers. Introduction to the architecture.

IT industry programmers will argue which high-level and low-level languages ​​are good, Linux and Windows are good, and for robot engineers, C is the best language from now to the foreseeable future, Linux is the best operation. System, this is beyond doubt. Even for the Linux distribution, which one to choose, we are rarely questioned: Ubuntu. The reason is that the Android operating system ROS is based on Ubuntu and therefore runs most stable on Ubuntu. Note that Ubuntu has a Chinese version called Kylin. Personal feelings are relatively pitted. It is recommended that you do not install the Chinese version. As an open source operating system, Ubuntu is always in a fast iteration. The more stable versions in August 2016 are 14.04 and 16.04. It is recommended that students install 14.04.

When you learn C very much and start learning to write programs that contain multiple header files, be sure to learn the knowledge of makefiles at the same time. At this time, you should go online and search for the "Makefile Detailed" article.

I also learned HTML and Javascript when I was in the first year of college. By the end of my freshman year, I was able to use Javascript to write some dynamic pages. I personally think that HTML and Javascript are also essential skills for robotics engineers, not just software engineers. This is because web technology has actually penetrated into all aspects of programming. For example, json started as an object definition method in Javascript, but now it has become a very standard format for data interaction and parameter configuration. In addition, AJAX can help beginners understand certain network technology principles, and network technology is also a must-have skill for robot engineers. Furthermore, making a GUI (Graphical User Interface) is a common way to debug, and a popular trend in recent years has been to use webkit embedding programs with HTML and Javascript as the back end of the graphical interface, while in the Android operating system ROS (ROS.org | In Powering the world's robots, it is very convenient to pass the data of the robot program to the websocket through rosbridge. It doesn't matter if you don't understand it. Anyway, you know that learning HTML and Javascript is very important. More importantly, the DOM (Document Object Model) behind the HTML document profoundly reflects the object-oriented thinking. Object-oriented programming in universities generally speaks C++, and in my opinion should speak HTML and Javascript. This is not to be elaborated. If students learn HTML and Javascript, they will naturally understand it. The best way to learn HTML and Javascript is http://, and you can learn the "Learn HTML", "Learn CSS", "Learn Javascript" and "Learn JQuery" on the left side of the website. There are many fancy parts in other parts. Technology, there is no need to learn.

The knowledge points, books and materials mentioned above should be read all during the freshman year, and then use the summer vacation of the freshman year to consolidate this knowledge. For example, start to use HTML and Javascript to make a personal homepage, brush a programming topic, and learn to use Python's singularity (for example, to make a personal homepage). You can also take time to learn mathematics, such as starting to look at algebra and discrete mathematics. When I was a freshman, I saw two articles and realized the importance of mathematics. One was written by MIT's CV big cow Lin Dahua. The other is the mathematics beauty written by former Goolge researcher Dr. Wu Jun. (The beauty of mathematics (Douban)). At that time, Lin Dahua was still a Ph.D. student at MIT, and "The Beauty of Mathematics" has not yet been written. After reading the two articles, I felt that my whole person had a new level of understanding of mathematics. Since then, I have been paying attention to improving my mathematics level. In the following introduction, I will also emphasize the mathematics knowledge and corresponding textbooks that need to be learned many times.

Sophomore

When you were a sophomore, you already had basic programming knowledge and basic mathematics. Sophomore year should be invested in the learning of embedded systems, while continuing to expand its multi-faceted capabilities. The school's robot society, such as Robocon, RoboMasters team should be recruiting, hurry to join, with the guidance of the senior school sister and the spurs of peers, it should be faster.

Sophomore should master the skills: Solidworks draw basic mechanical diagram, basic digital circuit knowledge, digital-to-analog conversion, 51 single-chip microcomputer, AVR microcontroller, STM32 microcontroller principle, UART, SPI, I2C, CAN and other protocols and data transmission and reception, STM32 The use of the development board, the principle of motor rotation and drive, the principle of PID, the movement of the four-wheel robot chassis, the basic sensors such as gyroscope, code wheel, infrared, ultrasonic principle and reading mode, network knowledge such as configuration IP configuration Routers, etc., microelectronics welding, metalworking technology. I am acknowledging that if programmers learn a few different new technologies every day, what will people look like in the long run? - YY Shuo's answer said that the number of skills required by robot engineers is more than three times that of the IT industry's full stack of engineers. The foundation of these skills should be accumulated in the sophomore year.

If the students' majors are related to mechanical engineering, then in the sophomore year, you should study solidworks in depth and buy mechanical processing manuals to learn all kinds of mechanical skills. Your expertise is not enough to allow you to perform a meticulous analysis of stress, but you can do as much mechanical structure as possible to feel their fun.

If the students' majors are hardware and circuit related, then in the sophomore year, you should study Altium Designer to make drawings, plates, and welding plates. You need to accumulate a working record from now on, which can be a simple txt file, record the bugs, solutions, learned schematics, PCB layout notes, etc. that you have done on all boards. After many years of accumulation, your work record will be worth a lot of money.

The best way to learn these skills is to participate in the training and design of your own school robotics community. Generally speaking, after the school's robot society recruits new ones, there will be training and testing, so that the new people will be grouped to do robots. If you are willing to study hard in the process, you will improve quickly. If your university is a strong robot competition school, such as Xi'an Jiaotong University, University of Electronic Science and Technology, Harbin Institute of Technology, Huazhong University of Science and Technology, Northeastern University, etc. (I don't mention your name, I am sorry) Then you are very fortunate that your school's robotics community has a good accumulation and there are many resources to help you learn. Basically, as long as you soak the lab every day, make sure you only sleep 6-7 hours a day (but still have to go to run, swim to keep your body healthy), and diligently ask the seniors to ask for advice, then you will definitely improve quickly.

In the sophomore phase, special emphasis is placed on the development of hands-on skills, including machining of mechanical materials, circuit soldering, making wires and connectors, connecting routers, configuring networks, making network cables, and so on. Machining tools include screwdrivers, saws, drills, hammers, lathes, milling machines, drilling machines. Advanced players can learn about oxygen welding. This is dangerous. I have not tried it. The tools for circuit welding include welding machines, soldering, and washing water. , rosin, soldering device; tools for making wires are scissors, wire strippers, chuck pliers, cable clamps, various clamps; network configuration is connected to the router to plug in the network cable, but the configuration of the network under Linux system is sometimes very troublesome, must More accumulated knowledge in this area, because in the future, most of your robots will run around with a wireless router, and even some modules on the robot can set up a small local area network. The proficiency of these skills requires you to spend a lot of time doing real robots to practice.

For the choice of how to create a "real-use robot", the best choice is definitely the robot in the robot game. If you participate in Robocon, you will follow the masters and sisters to learn the huge machines that make people so high; if you participate in RoboMasters, you will learn to make robots that are more flexible than cars and fast-moving bodies. Other small games, such as Freescale smart cars, are also very good training, because Freescale smart cars have developed very maturely. The entries in this competition are enough to learn for a while, and you can get more after learning. Robot skills.

If there are not too many resources of the school robot community, the students also have some small competitions such as the Challenge Cup, the big game, etc., and they can participate in these competitions with a small team of three or five people. If the school where the classmate is located does not organize everyone to participate in these competitions, then they have to spend money. The domestic open source robot community has a lot of resources to learn, such as buying a variety of development kits for the Arduino STEM educational Robot kits Building Platform to make simple robots. The development environment of Arduino may be disliked by some people because it has a first-level encapsulation of the hardware. If you want to be exposed to the essence of the MCU, you can buy the STM32 development board yourself. As the saying goes, there is no embedded system that can't be implemented by STM32. If there is, use two. STM32 is the most widely used microcontroller in the ARM Cortex? M family. There are also many textbooks and development boards available on the Internet. In the well-known electronic forum STM32/8 sub-forum list (amoBBS Amo electronic forum), there are a lot of reference materials, there are problems can also be discussed here with everyone.

If you really want to participate in the robot competition, there are just a few like-minded friends around, but the school does not support it. It doesn't matter, come to me, I try to convince your school to support you to participate in RoboMasters through the relationship in Dajiang.

Although you are exploring robotics based on the robot competition, you should always remember that the theoretical training of the robot competition is very poor, and it will let you develop some bad habits. For example, everything wants to use some rough and fierce. Ways to solve. Since the entire team usually does not have much experience in project management, it will take some time to do the robot before the game. In many cases, the "cottage" method will be used to deal with the malfunction of the robot. For example, if a load-bearing structure is used for a long time, it will bend. In order to catch up with the progress of the game, the hammer will be straightened, and an auxiliary structure will be used next to it, without careful modeling, stress analysis, and thinking. What causes the load-bearing structure to deform. For example, if the PID parameter is adjusted, the dynamic range model of the robot is not used to estimate the approximate range of parameters.

During the sophomore summer vacation, it is possible that you followed some of the robotics teams in the school to participate in some robot competitions. This is a good time to reflect on the summary. Why did the robot team achieve such a result? How can the entire team be more efficient? How to continue recruiting next year? In the summer vacation, we should spend our time on technical accumulation. At this time, we can look back and think about how the problems solved in the rough and quick way before preparing for the competition can be solved in detail.

If you don't participate in a robot game during your sophomore summer vacation, you can make a steering robot, such as a 6-legged spider, such as a palletizing robot. The steering gear is a good friend of the robotic engineer and must be mastered.

In addition, your other aspects of ability can not fall. At the end of your sophomore year, your Linux should be very skilled. In addition to the makefile, you also use cmake. You should also begin to understand the meaning of Github, because you have already read a lot of other people's code, and you have put some of your course design and small projects on Github. In addition, the sophomore is basically some difficult basic courses in the major, such as automatic control principle, machine learning, probability statistics, materials and mechanics. Students will see the knowledge of linear algebra and calculus in these courses. And knowledge of modeling. At this time, you can look at the physical, linear algebra and calculus of the freshman.

Classmates' schools should have object-oriented programming for sophomores to juniors, usually taught in Java or C++. In the object-oriented program class, you must accumulate 3,000 lines of code development experience. The classic object-oriented programming exercises are usually written games, such as Tetris, Pac-Man, etc., you must be able to completely hand-write a complete project.

In addition, you can start learning the artifact Simulink in Matlab. In the year of your sophomore year, you may have used Matlab more or less in many courses. Suppose you have liked Python under my recommendation. You may think that Matlab's calculation tools are not much better than Python. If you like mathematica at the recommendation of others, you may feel like God of Mathematica. Compared with the language, Matlab is weak. However, it is important to note that Matlab's most powerful tool is Simulink, through which you can simulate almost all physical systems and control systems. I suggest that students can implement an inverted pendulum through Simulink and then understand the power of Matlab. Read and implement the contents of these two articles, students should have a deeper understanding of the inverted pendulum. Inverted pendulum is a very important model in robotics, because rockets, missiles, biped robots, and quadruped robots are basically deformations of inverted pendulum. The simulink model that you have implemented yourself must be saved, and you may take it out again in the future.

If you explore some HTML and Javascript techniques as I said before, then JQuery, bootstrap, AngularJS, you know more or less what is going on. Web backend technologies, such as PHP and MySQL, can also be understood, LAMP should learn how to configure. If a classmate is looking for you to help write a small website, try to help yourself. Helping others to do websites is a good exercise to improve their system programming skills. In the process of doing the website, you may also learn how to use Photoshop and Illustrator to make the website look more beautiful. These skills are the best, it doesn't matter if you don't study.

Communication Industrial Control Monitoring And Automation Connecting Line

Communication industrial control monitoring and automation connecting line:RJ11,RJ45,RF,M8,M12,Wire to Wire,DC JACK,Phone Jack,DISPLAYPORT CABLE,DIN

Industrial control harness: 1, according to customer requirements to provide different types of connector and enclosure suitable wire

2. Line color according to customer requirements

3. The joint meets the requirements of ipc-620

4. Assembling and testing equipment ensures correct wiring diagram and high efficiency of production line

5. 100% path short circuit test

6. 100% high voltage test



Industrial equipment harness



1: Application Industry: widely used in, instrumentation, automobile, machinery, electric vehicle, machine tool equipment, medical equipment, electronics, industrial automation, signal transmission, power control, and other high-tech electrical products.



2: It can be customized.



3: Product advantages: small batch can be done, processing equipment is perfect, testing equipment is perfect.

Communication industrial control monitoring and automation connecting line

ShenZhen Antenk Electronics Co,Ltd , https://www.antenkconn.com

Posted on