当前位置: 首页 > news >正文

神州网站制作可以建微信网站的

神州网站制作,可以建微信网站的,嵌入式软件开发培训班,雄安邯郸网站制作多少钱Webots支持C、C、Java、Python、Matlab这五种语言开发控制器#xff0c;没有直接支持C##xff0c;但有个同事已经用C#写了大量的机器人控制代码#xff0c;想在不把C#代码改写成C的情况下#xff0c;直接用webots仿真#xff0c;那就得想想办法。(不过#xff0c;让Chat…        Webots支持C、C、Java、Python、Matlab这五种语言开发控制器没有直接支持C#但有个同事已经用C#写了大量的机器人控制代码想在不把C#代码改写成C的情况下直接用webots仿真那就得想想办法。(不过让ChatGPT帮忙把一种语言的代码转成另外一种语言的代码还是挺方便的准确率很高。) 在Webots的安装路径下找到lib\controller文件夹里面有Controller.dll和Controller.lib文件对于C#我们只需要Controller.dll文件(C和C的开发就需要Controller.lib文件)把这个dll文件复制到C#程序编译输出exe的文件夹里通常是bin\x64\Debug\net8.0(注意是跟输出的exe文件放在同一文件夹里而不是跟C#的源代码放在同一文件夹里。既不需要也不能在VS解决方案中添加对Controller.dll的引用尝试添加它会报错。Controller.dll是64位的所以C#程序也要编译成64位的。)         Controller.dll实现了(或者说导出了)Webots\include\controller\c\webots文件夹中所有的头文件中声明的全部函数(共932个)比如最常用wb_robot_init(), wb_robot_step(),wb_motor_set_position(), wb_motor_set_velocity(), wb_motor_get_target_position()肯定都有的。而cpp的函数其实都是在调用c的函数看看\Webots\src\controller\cpp里面的cpp文件就明白了。如果你装了VS 2022可以打开开始菜单中Visual Studio 2022文件夹里的随便点开一个 xxx Command Prompt for VS 2022, 输入 dumpbin /exports E:\Program Files\Webots\lib\controller\Controller.dll 就能看到所有的导出函数了。 为了能使用Controller.dll在C#的cs文件中 using System.Runtime.InteropServices; 再去robot.h, motor.h等头文件中找你需要的函数的定义然后在一个C#的class里面加入大量类似下面的语句 [DllImport(Controller.dll)] public static extern void wb_robot_init(); 看.h文件中的函数定义一定会遇到WbDeviceTag可以在Webots\include\controller\c\webots\types.h中找到对WbDeviceTag的定义 typedef unsigned short WbDeviceTag; 对应到C#中就是ushort类型。遇到const char *就换成string. 把需要用到的函数都经过上面的声明后就能和在C语言中一样使用这些函数了。示例C#代码如下 using System.Runtime.InteropServices;public class Program {[DllImport(Controller.dll)]public static extern void wb_robot_init();[DllImport(Controller.dll)]public static extern void wb_robot_cleanup();[DllImport(Controller.dll)]public static extern void wb_robot_step(int duration);[DllImport(Controller.dll)]public static extern void wb_motor_set_position(ushort tag, double position);[DllImport(Controller.dll)]public static extern void wb_motor_set_velocity(ushort tag, double velocity);[DllImport(Controller.dll)]public static extern void wb_motor_get_target_position(ushort tag);[DllImport(Controller.dll)]public static extern ushort wb_robot_get_device(string name);public static void GetAllMotor(ref ushort[] motor){ motor[10] wb_robot_get_device(TA_joint_01);motor[9] wb_robot_get_device(TA_joint_02);motor[8] wb_robot_get_device(TA_joint_03);motor[7] wb_robot_get_device(TA_joint_04);motor[6] wb_robot_get_device(TA_joint_05);}public static void Main(){ wb_robot_init();ushort[] motor new ushort[11];GetAllMotor(ref motor);wb_motor_set_position(motor[10], Math.PI/2); wb_motor_set_position(motor[8], 3); // 单位是弧度 wb_robot_step(500);wb_robot_cleanup();Console.ReadKey();} } 启动C#程序后会看到如下报错暂未发现有什么不良影响还是能正常操作webots中的机器人。 Error: 找不到指定的模块。  (dynamic library) Error: failed to load E:/Program Files/Webots/resources/projects/plugins/robot_windows/generic/generic.dll library. generic.dll的路径是正确的然而即使把generic.dll跟Controller.dll放在一起也无法解决这个报错。
http://www.hkea.cn/news/14391387/

相关文章:

  • 嘉兴新站seo外包抖音代运营协议合同范本免费
  • 销售行业怎样做网站58同城宿迁二手房
  • 怎么采集网站内容html代码在线
  • 自己做的网站别人怎么访问建设部网站建造师管理号
  • 国外 作品集 网站酒店设计
  • 导购网站的seo怎么做烟台网站建设外贸
  • 苏州做网站公司哪家比较好杭州网站改版公司电话
  • 郑州影楼网站建设电商专业培训网站建设
  • 奇迹建站模板润才网站建设
  • 学网站制作多少钱wordpress 侧边悬浮框
  • 郑州网站建设炉石游戏网页设计模板图片
  • 包头网站建设兼职中国网站服务器哪个好
  • 网站恶意镜像 301网页小游戏推荐知乎
  • 电影网站怎么制作莆田网站制作企业
  • 推广网站的公司网站实名认证流程
  • 乌拉圭网站后缀怎么做软文代发平台网站
  • 石家庄模板建站行业解决方案wordpress时间云储存
  • 做电影网站免责声明有用吗网站建设 会计科目
  • 返利网站制作在线设计平台分析
  • 怎样上传网站到百度免费咨询女性妇科问题
  • 廊坊网站快速排名优化销量最高的wordpress模版
  • 网站开发需求分析中性能需求分析wordpress 链接 弹窗
  • dhl做单网站潮州移动网站建设
  • 行业网站开发费用icp网站 是什么意思
  • 手机怎么做网站免费的官方网站的域名
  • 网站建设哪个深圳建站模板公司
  • 网站 东莞长安Wordpress5主题破解版
  • 企业网站建设规划 论文8大营销工具
  • 无需下载的网站网站页脚的信息都有什么
  • 北京网站建设公司价格自己的网站怎么在百度上面推广