机器人是个复杂的系统,包括感知、规划控制和电机驱动等多个模块,不可能一上来全部都掌握。做机器人到底要学习哪门编程语言,其实不在于这些语言谁强谁弱,而是你从哪一个模块开始入门。
对于算法研究党来说,Python是入门的不二之选;如果你是创新制作党,那么C语言肯定绕不开;对于硬核工程党,可以从C++开始;对于技术尝鲜党,Rust可能适合你的胃口。
Python的好处是写起来快,而且点击就能跑,这和我们做算法开发的特性非常符合。有经验的同学都知道,算法最费时间的就是调调改改,所以选Python能大大节约我们的时间。而且很多机器人开源项目也是python写的,我们想使用他人的算法的话可以无缝直接移植。
C语言和底层电机控制密不可分,正因为这个特性,如果你在做创新制作肯定绕不开它。创新制作往往不需要特别复杂的算法,但是要能直接让电机或者传感器跑起来。不管你用的是stm32、ESP32还是51单片机,C语言都能让你了解硬件的运行逻辑,并且形成良好的代码习惯。
C++是硬核系统工程的首选。拥有继承自C语言的高实时性,同时也有着高度的可扩展性,让C++编写的工程可靠稳定。但是C++所依赖的编译工具复杂,而且语法结构高度抽象,没有编程经验的小白可能看起来会一头雾水。如果你是其他行业的有经验的开发者,选择C++会让你可以直接做产品级机器人。
Rust近些年来风头不小,它的内存安全性直指C++最大的问题,让很多人青睐有加。但是不可否认的是,学习曲线的陡峭和开源社区的缺乏使得学习Rust的成本不低。如果你是喜爱造轮子的技术爱好者,Rust是一片没有开垦的处女地等待你发掘。
对于成熟的机器人产品来说,控制器开发一般是由C++/Python完成的,而驱动器一般是C语言完成的。对于控制器和驱动器的概念不清楚的同学可以通过我的另一篇文章了解清楚。
机器人是如何动起来的?了解控制器与驱动器
不管选择什么语言,最重要的是做起来,不能一直卡在入门的阶段,边做边学是技术开发的常态。如果大家对其他语言在机器人中的应用也感兴趣,欢迎在留言区讨论。