Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C或C++;为了一个机器人?_C++_C_Robotics - Fatal编程技术网

C++ C或C++;为了一个机器人?

C++ C或C++;为了一个机器人?,c++,c,robotics,C++,C,Robotics,您好 我正在为我的机器人决定C和C++之间的关系。我在VisualBasic.NET有5年以上的经验,但是我在这个机器人上使用Linux(Ubuntu),Linux和.NET框架之间存在兼容性问题。我想坚持使用我为所有项目选择的任何一种语言,因此我想确保为任务选择最合适的语言。 作为参考,我将描述我目前正在进行的机器人以及我将如何使用它。我正在建造一个全尺寸的R4天体机械(是的,我就是其中之一)。我已将一块PC主板与Intel Core 2.1 GHz处理器、1 GB RAM结合在一起。我将使用

您好

我正在为我的机器人决定C和C++之间的关系。我在VisualBasic.NET有5年以上的经验,但是我在这个机器人上使用Linux(Ubuntu),Linux和.NET框架之间存在兼容性问题。我想坚持使用我为所有项目选择的任何一种语言,因此我想确保为任务选择最合适的语言。 作为参考,我将描述我目前正在进行的机器人以及我将如何使用它。我正在建造一个全尺寸的R4天体机械(是的,我就是其中之一)。我已将一块PC主板与Intel Core 2.1 GHz处理器、1 GB RAM结合在一起。我将使用一个scratch构建的并行接口卡来控制驱动电机、头部电机,以及一个辅助并行接口卡(通向第二个并行端口),所有传感器(红外、超声波测距、通过网络摄像头的视觉识别等)都将使用该接口卡。命令将使用语音识别(目前有一个VB.NET scratch内置的识别程序,我将适应新语言)。 考虑到上面列出的规格和目标,我会用C或C++更好吗?我非常感谢您提出的任何建议。 谢谢
Thaskala

您所说的兼容性问题是什么意思?你看过吗?它是.NET库的开源实现。它面向C#而不是VB.NET,但如果您在.NET环境中更舒适,请使用它。速度在这里并不是一个真正的问题,因为Core2Duo对于您需要做的事情来说非常快


如果MNO不适合你,我建议C++。在C++中有更多的库(或者至少我更熟悉,例如),它也可以使用大多数的C库。使用C++没有真正的速度惩罚。虽然使用C本身并不坏,但是C++有一些好处,也没有缺点,所以它可能是更好的选择。

因为你在Linux上运行,我建议使用一种分割方法,在这里你做C(或C++)中较低级别(设备接口,你可能需要快速性能)的东西,以及C语言中的高级语言。(使用Mono)或Java,甚至Python

Python的表现力特别强,它有大量的库,并且有一个非常简单的C接口

用像C/C++这样的低级语言编写高级控制材料会很快变老(IMHO)。机器人应该很有趣!

你考虑过吗?这是一种相当新的语言,编译成本机代码,可以直接链接到C。(整个C标准库甚至可以从D中获得,到POSIX API的绑定包含在标准库中。)基本上,使用D中的任何C库所需做的就是使用C编译器编译它,并翻译头文件中的函数原型、常量声明等


D的级别足够低,可以编写一个实验内核,但它具有垃圾收集等现代功能(尽管仍然允许手动内存管理)构建字符串和数组,以及比C++更高级/更容易使用模板元编程工具。最大的缺点是缺少成熟的工具链和企业级的程序库,但对于你的目的来说可能没什么关系。BTW,如果你需要做一组矩阵操作和东西,那就是在LAPACK和BLAS上使用了精美的模板包装。

< P>使用C++。你有空间。你可以用它作为更好的C。首先,

C++是一个更大的工具包;为什么不需要使用所有的工具,但是C没有选择,最重要的是C++,你可以选择使用C和C++第三方库。NS管理器,以及一个大型的复杂机器人代码库,包括SLAM和其他关键机器人算法的多种实现。ROS还允许您使用多种语言编程,包括C语言、C++语言和Python语言,因此您不会被一种语言或另一种语言沿途所困扰。

< P>我也将推荐C++和.com。pany我们正在迁移到它,因为有太多的人在使用它,扩展它,并添加许多很酷的功能

这样,您就可以忘记实现大多数基本的底层内容,开始研究您想要研究的内容


<> P>很容易建立和开始开发。< /P> IHO,学习C比学习C++更容易。我会从那里开始。使用C++。你会发现面向对象的环境更熟悉,你将有更少的工作要做。如果你使用4MHz微控制器,你可能需要三思,但这里几乎不是问题。我几乎要去了。至于建议使用Java。@Hellfrost你对VB.net有什么问题?虽然我更喜欢C#,但这只是一种风格选择。哪种语言最适合这项任务?——当然是你知道的语言;除非你想在开始这项任务之前花几年时间学习一种新语言。Edwin的答案被删除了,但我想插话。是的,C++编译器在C代码上给出了更好的错误消息。抱怨模板错误消息表明你没有注意到这个点,C代码不会导致模板错误消息。C++编译器的改进型安全性(以及对精确函数原型的要求)C代码中有很多错误。OCH,调用C++非现代的。对,很抱歉。毕竟,它是在80年代设计的,它已经被多次更新了。最初的设计时间与现代无关,布尔代数最初是在1854描述的,我们的程序都是旧的!当然,甚至更新都受到后退的限制。相容性要求。我的观点是主观的,但我和之合作的大多数人都认为PythHn+Ruby和java +C是当前的化身。