earning(提高篇obilease)控制移动平台(ython编程)控制虚拟机器人的移动(精确的制定目标位置)oboir

我使用的虚拟机软件:VMware Workstation 11使用的Ubuntu系统:Ubuntu 14.04.4 LTSROS 版本:ROS Indigo

注意:1 . ROS 提高篇这个专栏的教学有门槛。2 . 如果你没有学习前面的教程,请想学习前面的 beginner_Tutorials 和 learning_tf 的ROS 相关教程。

在查看代码之前,我们先来启动这个节点,看看运行效果:

新开一个终端,执行下面的命令,启动一个虚拟的 TurtleBot 机器人:

再开一个终端,启动 RViz :

1 .

这里,我定义了一个角度的angular_tolerance (角度公差)。它的作用是:在真正的机器人上,很容易发生角度转多了或转少了。一个小小的角度误差会照成机器人远离了下一个位置。凭经验发现大约一个公差 2.5度给出可接受的结果。

2 .

为了获得机器人的位置和方向,如果你的机器人是 TurtleBot,那么我们需要 /odom 坐标系和 /base_footprint 坐标系之间的转换;如果你的机器人是 Pi Robot 和 Maxwell, 那么我们需要 /odom 坐标系和 /base_link 坐标系。

3 .

在一个航段的开始,我们调用 get_odom() 函数来记录下这个时候机器人的位置(tran)和角度(rot)。

4 .接下来让我们来理解 get_odom() 是如何工作:

get_odom()函数首先使用 tf_listener 对象查找当前 odometry 坐标系和 base(基础)坐标系之间的变换。如果查找出现问题,我们抛出异常。否则,我们返回一个用坐标表示的点和一个用四元数表示的旋转。

其中:return (Point(*trans), quat_to_angle(Quaternion(*rot))) 这段语句。在 python 中使用 “ * ” 修饰的trans 和 rot 变量,表示传给一个函数的形参是一个列表。我们这里的 trans 是 x、y、z 轴坐标值;rot是 x、y、z、w 四元数值。

5 .

现在在回到主函数:

这个循环是为了前进 1m。

6 .

这个循环是为了旋转 180度。

Q: 我们可能会有疑问:在上面的代码中,为什么我们要使用 TransformListener 来访问 odometry 信息,而不是仅仅订阅一个 /odom 话题。

A: 原因是:发布的 /odom 话题里的数据”不完整“。什么意思?举例说明:TurtleBot 机器人使用了一个单轴陀螺仪给机器人的旋转提供了一个额外的估量。robot_pose_ekf 节点(在 TurtleBot 的启动文件中被启动)将它和轮子编码器的数据相结合,目的是为了得到更好的旋转的估计,而不是使用单独源。

我为什么说 /odom 话题里的数据并不完整呢,是因为,robot_pose_ekf 节点并没有将它里面更好的数据传递给 /odom 话题里,/odom 话题里的转据是通过轮子编码器数据估计出来的。并且,它将它自己的数据发布到 /odom_combined 话题里。此外,被发布的数据也不再是 Odometry 消息类型了,而是 PoseWithCovarianceStamped 消息类型。然而,它提供了一个我们需要的信息,这个信息就是:/odom 坐标系与 /base_link (or /base_footprint ) 坐标系之间的转换。 所以结果通常是,使用 tf 去监视 /odom 坐标系与 /base_link ( or base_footprint ) 坐标系之间的转换要比依赖 /odom 话题要安全的多。

THE END
0.VEXcodeVR:VEX虚拟机器人编程平台官方发布VR快速访问VEXcode VR: vr.vex-academy.com。 通过VEXcode VR,您可以使用图形化积木式编程和Python文本式编程,两种模式对虚拟机器人进行编码。VEXcode VR是100%基于Web的,无需安装。 V…jvzquC41yy}/xn}hqt{n0ls1v1zprrh182<4
1.VIRTUALKOOV通过在线机器人编程平台培养青少年创造力VIRTUAL KOOV是一个在线编程平台,索尼使用物理模拟器在虚拟空间中重现了摩擦力和重力,因此可以在应用程序的3D空间中以非常接近真实世界的形式进行机器人编程学习,不需要实体KOOV机器人套件。此次VIRTUAL KOOV 单元比赛不限年龄,不限设备,只需下载KOOV APP,找到VIRTUAL KOOV入口即可参与,期待大家一起来创造新的纪录。jvzquC41yy}/rluqr0ipo8ftvkimg8;979;477xjvor
2.ABB工业机器人虚拟仿真汇博机器人学堂《ABB工业机器人虚拟仿真》是工业机器人应用编程1+X职业技能等级考核配套虚拟仿真课程,课程基于工业机器人应用编程1+X实训及考核平台,从实用的角度出发,面向工业机器人技术等相关专业的中高职院校学生,通过以项目化、任务化形式整理教学内容,使学生在仿真应用中学会工业机器人的基本知识和操作编程技能。 jvzquC41yy}/txgqvzvmw|3ep1ipw{xg149
3.SKPMC16型工业机器人数字孪生教学平台教学平台采用实物套件+数字孪生+人机协作的设计理念,将可编程控制器技术、机器人技术、智能制造的控制技术以及数字化仿真技术虚实结合。 教学平台配套了多功能实训桌、可编程控制器实验箱(PLC+HMI)、机器人示教器、电脑、嵌入式显示器和数字孪生仿真教学资源,通过实验箱jvzq<84yyy4tgjpqp0ipo8utqf{dv8552;;257mvon
4.物联网人工智能国赛机器人嵌入式教学仪器无人机基于人工智能的虚拟仿真系统,是具有里程碑意义的教学平台。独有的、开创性的功能可开展理论教学、编程、实验模拟、成果展示、创新实验等一系列人工智能教学活动,有效解决人工智能教学过程中算法难、编程枯燥等系列专业建设问题。 1人工智能虚拟仿真实验平台将复杂的人工智能简化,将人工智能算法抽象出逻辑层,分化学生学习难度jvzq<84yyy4btv76324dqv4Ej1VsqmzevXofy7furAOE?B99
5.IOA虚拟工厂在线课程中心IOA数字孪生Input-Output-Automatic是以虚拟3D孪生技术与智能控制技术的融合,基于数字化双胞胎技术,建立1:1的虚拟数字化与物理信号控制的元宇宙,是国内自主AR+制造仿真系统,IOA数字孪生采用“以虚代实、以实控虚”的技术理念,让智能工厂的机电设计、电气控制、编程开发jvzquC41yy}/kxfqn0ipo8
6.IOA综合数字孪生实训平台介绍IOA系统仿真具有一套开源的MES系统,从设备层、控制层、数据层、应用层都具有对应开发及实践内容,通过PLC + 机器人 +计算机软件的模式提供一套完整的数字化产线的,建设、编程、电气再到上层控制的综合型开发平台。 IOA虚拟仿真按照实验室已有的真实化产线可1:1搭建虚拟化系统,并配套完整的从认知到产线应用的阶段化jvzquC41yy}/uwygej4dp8utqf{dvrshq1>95A>80jznn
7.虚拟工厂搭建,一键导入、即刻生产|大界RoBIMCLOUD云平台发布RoBIM Cloud 是一款云原生的智能机器人柔性生产平台,历时 3 年研发。大界基于几何算法与数值优化方法,结合 AI 技术,建立了模块化、低代码的算法库,并通过不断积累行业知识和工艺经验,为用户提供了低代码免编程的 「云平台」。 RoBIM Cloud核心技术底座:算法+数据+流程 jvzquC41yy}/5?5fqe4dp8ftvkimg8<452;:6@d32;:84@<390nuou
8.工业机器人(KEBA)仿真·IOAIOA数字孪生平台,是一套基于“以虚代实,以实控虚”的智能制造仿真、设计、以及实训的软件系统,几乎集成了市场上所有的控制系统软硬件,结合虚拟3D引擎以及工业模型库,可快速构建1:1的虚拟化智能工厂系统。jvzquC41yy}/mjsenq{e0ls1jcuyw‚fq1kub/:14873;@<
9.机器人程序训练平台v2.0机器人程序训练平台 v2.0b 新应用提示:分类器 - 计算思维训练平台首页|基础地图|轨迹地图|高级地图|成绩排名|使用帮助 注册|登录Base 基础地图 Trajectory 轨迹地图 Top 高级地图@最近比赛成绩用户 地图类型 地图名称 成绩 日期 匿名用户 [基础教程] 基础地图_03 61.3 2025-10-23 15:47:33 匿名用户 [基础教程]jvzq<84te0inp|thv0ipo8npfg~/rqu
10.智能制造虚拟仿真实验教学平台建设方案虚拟仿真实验教学平台可以模拟真实的工业生产环境,其分为教师演示和学生实操两部分。首先,教师按照虚拟仿真实验平台的工作流程进行一次完整的操作演示,并加以声情并茂的讲解,使学生充分认识和理解该平台的功能与操作过程。然后学生可以通过自己的终端设备进行各种智能制造设备的虚拟操作实践。例如,机器人编程、数控机床操作、jvzquC41yy}/nrsivw|s0lto1eunrjs{/pkxu8=4::4ivvq
11.机器人编程SprutCAM独特的机器人编程工作流程可加快工业机器人编程速度,并缩短学习时间。 工作流程: 1. 创建虚拟工作站:在电脑上配置好机器人、工具等 2. 导入零件的三维模型 3. 选取加工区域,生成运动轨迹 4. 仿真检查,一键解决碰撞、奇异点、超行程、不可达 5. 将机器人可直接读取和执行文件发送到机器人控制器 6. 在实jvzq<84yyy4tr{zvecs/ew4r/rghgh;0jvsmAjur?oh