English original:10 BEST PROGRAMMING LANGUAGE FOR ROBOTICS: JAVA, C / C ++, PYTHON
Streaming programming language, Ironclad Java, C / C + +.
R & D artificial intelligence robot, what kind of programming language should choose?
This is an entry level thinking that many robotics experts will have in their careers. After all, when learning a programming language, it takes a great deal of time and energy. What is the point if you master the language without realizing its true value? But unfortunately, so far, no exact and direct answer has emerged.
If you are asking a robot expert or community forum like Stack Overflow, Quora, Trossen, Reddit or Research Gate "What is the best programming language for a robot? "Needless to say, you will receive different answers.
Electronic engineers give different answers to industrial robotics technicians. Most people will believe that "the best entry-level programming language" the answer is "which one will depend on". In fact, the most reasonable answer, it should be it depends on what type of software you want to develop, and what kind of system you are using. And for robotic scientists, the most crucial thing is to establish "programming thinking", rather than using a specific language to limit. In many ways, it is not important to learn which programming language first, and it is important to constantly improve your skills through programming thinking.
And return to the theme of this article, for the choice of the preferred programming language, there is no best answer, but in this article, we will introduce the programmers in the robot programming the ten most popular programming languages, and by comparing its advantages and disadvantages, I hope to give development Provide some reference, to make their own best choice.
Over 1500 programming languages in the world are available to learn. The ten most popular programming languages for robots are listed below. Each language has different advantages, according to the author's own development and practical experience, this article lists the top ten programming languages list from low to high priority.
10. BASIC / Pascal
BASIC and Pascal are the two major programming languages I've learned before, but that's not why I included it in this chart. In fact, they are well suited for programming industrial robots. BASIC is designed for beginners, making it a simple starter language for developers.
Pascal's aim at improving programming practice is to introduce some constructs like pointers that make it a cornerstone of other languages that have been promoted from BASIC to more advanced ones. Today, these two languages are somewhat outdated for the programming language "everyday applications." But if you're going to have some level of under-coding or need to be familiar with other industrial robot languages, understanding them will help.
9. Industrial robot language
In fact, every robot manufacturer has created its own proprietary, restricted robot programming language, which has been a problem in the field of industrial robots. By learning Pascal, you are familiar with some of them. However, when you start coding on another robotic platform, you also need to use a different programming language.
For example, ABB, a powerful robotics arm, uses a language system called RAPID. It comes from KUKA in Germany. KUKA is also called the language and company name. Comau uses PDL2. Yaskawa utilizes Advise and Kawasaki to leverage AS. At this point, the Fanuc robot leverages URScript with Karel, the Staubli robot using VAL3 and Widespread Robots.
Recently, the ROS industry has begun to offer programmers more standardized alternative language options. But if it is a technician, you are still more likely to have to use the manufacturer's programming language.
LISP is the second oldest programming language in the world (FORTRAN is older, but only one year behind it). Compared to many other programming languages mentioned in this article, it is not widely used. However, it is still quite important in the field of artificial intelligence programming. Part of ROS is written in LISP, although you do not need to know this to use ROS.
7. Hardware Description Language (HDL)
Hardware description language is generally used to describe the electrical programming. These languages are very common to some robotics experts because they are used to programming FPGAs (Field Programmable Gate Arrays). FPGAs allow you to develop electronic hardware without actually producing a silicon chip, which is a faster and easier option for some developers. If you do not develop electronic prototypes, you may never use HDLs.
Even so, it is necessary to understand this kind of programming language, because they and other programming languages vary greatly. One important point: All HDLs are concurrency, not sequential, based on the processor's programming language.
Assembly enables you to program in the "Level 1 and Level 0" programs. This is the lowest level of programming language. In the past, most of the underlying hardware needed to be programmed in the Assembly. With the rise of Arduino and other similar microcontrollers, you can now efficiently program at the bottom with C / C ++, which means that Assembly is clearly less important to average robot scientists.
MATLAB, and its associated open source languages such as Octave, are some of the most commonly used languages used by robot scientists to investigate data and create control systems.
In addition, there is a very famous MATLAB robot toolbox. If you need to analyze data, create advanced charts, or execute control systems, then you need to learn MATLAB.
C # / .NET
C # is a restrictive programming language provided by Microsoft. This is largely provided by Microsoft Robotics Studio Studio, which Microsoft Robotics Studio uses as its basic language. If you use this framework, you have to learn C #. However, learning C / C ++ is a good choice if you want to improve your coding skills over the long term.
As an electronics engineer, I am often surprised by the fact that some software engineering courses use Java as their first programming language.
Java programmers "cover up" the underlying storage capabilities, which makes Java requirements for the program lower than the C language requirements of the program, but this means that you understand the logic of the underlying code is relatively small. From the foundations of software engineering to exploring the future of robotics, you probably have already learned Java.
Like C # and MATLAB, Java is an interpreted language, which means it will not be compiled into machine code. Instead, the Java virtual machine interprets the instructions at runtime. Using Java, in theory, lets you run the same code on different machines thanks to the Java Virtual Machine. In practice, this is not always feasible, sometimes causing the code to run slowly. But Java is very popular in some robotics so you may need it.
Recently, especially in robotics, Python has undergone tremendous changes. One of the reasons is that Python (and C ++) are the two major programming languages in ROS.
Like Java, it is also an interpreted language. But unlike Java, Python's focus is ease of use. Python does not need a lot of time to do the usual things, such as defining and casting variable types. These are very common in programming. In addition, Python has a large number of free libraries, which means you do not have to "reinvent the wheel" when you need to do something basic. And because it's easy to bind with C / C ++ code, this means that the performance of the heavily loaded part can be implanted in these languages, thereby avoiding performance penalties.
As more and more electronics begin to support "out of the box" Python (along with RaspberryPi), we may see more Python in the bot.
1. C / C ++
Robot first programming language & mdash; C / C ++! Many people think C and C ++ are a good start for new robotic scientists.
The main reason is that today there are a large number of hardware libraries that use both languages. They are suitable for low-level hardware, allowing real-time performance, is a very mature programming language. You may now use C ++ far more than C, because C ++ is more useful. C + + is an extension of C language, you will also gain a lot from the foundation of C, especially when you find that a hardware library is written in C. However, hardware libraries written in C / C ++ are not as easy to use as Python or MATLAB. Using C to perform similar functions can take quite a long time and require more lines of code. However, because robots rely heavily on real-time performance, C and C ++ are the programming languages closest to what robot scientists call "standard language."
to sum up
This article lists ten hot robot programming language, but this does not mean that you need to fully grasp every door. The most important thing for every developer is to find a language that is natural to itself and suitable for your robotic hardware. You also need a language that allows you to create programs quickly and efficiently.
My personal advice is to learn Python first. Because Python is a very easy to understand language, there are many valid libraries for learning and powerful. I have heard and seen many (officially experienced) programmers can learn Python in a matter of days and quickly apply it to most programming needs. When you can use Python wisely, I would recommend learning C and pulling it in C ++. Because you need to interact with the huge leading interface of the robot's hardware driver.
Bianzhi: Su 宓