机器人编程趣味实践做个任务(行动)腾讯云开发者社区

这是ROS2中比服务更为复杂的基础模块。

白话一下:一个行动,可以时刻汇报进展,无法完成时可以变更或者取消,完成后会告知

具体应用案例,如导航行为树

这个后续细说,现在先从简单的入手吧。

本节目标通过基础案例掌握ROS2内部行动的基本使用。

行动是 ROS 2 中的又一种通信类型,用于长时间运行的任务,由三部分组成:目标、反馈和结果。行动建立在主题和服务上。 它们的功能类似于服务,但可以取消,还提供稳定的反馈,而不同于返回单一响应的服务。行动同样使用客户端-服务器模型,类似于发布者-订阅者模型(在主题教程中进行了描述)。 “行动客户端”节点向“动作服务器”节点发送目标,该节点确认目标并返回反馈过程流和结果。

运行如下两个节点 /turtlesim 和 /teleop_turtle :

可以看到右侧启动/teleop_turtle节点后,终端显示如下:

使用方向键移动机器人.使用 G|B|V|C|D|E|R|T 键使机器人转相应角度. 'F' 键取消旋转.

让我们专注于第二行,它对应于一个行动。 (第一条指令对应于“cmd_vel”主题,之前在主题教程中讨论过。)请注意,字母键 G|B|V|C|D|E|R|T 在美国 QWERTY 键盘上的 F 键周围形成一个“框”。 F 周围的每个键的位置对应于turtlesim 中的方向。 例如,E 会将海龟的方向旋转到左上角。

注意 /turtlesim 节点运行的终端。 每次按下其中一个键时,都会向作为 /turtlesim 节点一部分的动作服务器发送一个目标。 目标是旋转乌龟以使其朝向特定方向。 乌龟完成旋转后,应显示一条中继目标结果的消息:

[INFO] [1622462396.650765434] [turtlesim]: 开启二维机器人仿真节点 /turtlesim[INFO] [1622462396.735890281] [turtlesim]: Spawning turtle [turtle1] at x=[9.855556], y=[7.388889], theta=[0.000000][INFO] [1622462694.049672436] [turtlesim]: Rotation goal completed successfully

如上对应:

F 键将在执行过程中取消目标。

尝试按 B 键,然后在海龟完成旋转之前按 F 键。 在运行 /turtlesim 节点的终端中,将看到以下消息:

[INFO] [1622462850.641914700] [turtlesim]: Rotation goal canceled

如上对应:

客户端(在Teleop中的输入)不仅可以停止目标,而且服务器端(/turtlesim节点)也可以停止目标。 当服务器端选择停止处理一个目标时,称为“中止”该目标。 尝试按 D 键,然后在旋转完成之前按 G 键。 在运行 /turtlesim 节点的终端中,将看到以下消息:

[WARN] [1622462989.905265647] [turtlesim]: Rotation goal received before a previous goal finished. Aborting previous goal

如上对应:

该行动服务器选择中止第一个目标,因为有了新目标。 可以选择其他目标,例如拒绝新目标或在第一个目标完成后执行第二个目标。 不要假设每个行动服务器在获得新目标时都会选择中止当前目标。

/turtlesim

/teleop_turtle

显示如下:

/turtle1/rotate_absolute

显示如下:

/turtle1/rotate_absolute [turtlesim/action/RotateAbsolute]

显示结果如下:

Action: /turtle1/rotate_absoluteAction clients: 1/teleop_turtleAction servers: 1/turtlesim

显示如下:

# The desired heading in radiansfloat32 theta---# The angular displacement in radians to the starting positionfloat32 delta---# The remaining rotation in radiansfloat32 remaining

通用格式:

ros2 action send_goal <action_name> <action_type> <values>

具体应用:

ros2 action send_goal /turtle1/rotate_absolute turtlesim/action/RotateAbsolute "{theta: 1.57}"

显示结果如下:

Waiting for an action server to become available...Sending goal:theta: 1.57Goal accepted with ID: 9e134c1c6d3d41bbac1aa20038487d07Result:delta: 1.5520031452178955Goal finished with status: SUCCEEDED

注意,误差大约0.02。可以修改机器人PID转向提高精度留作思考题。

当然控制周期也可以好好研究一下哦^_^

如果需要看过程:

机器人系统可能会使用行动进行导航。 动作目标可以告诉机器人行进到一个位置。 机器人导航到该位置时,可以沿途发送更新(即反馈),一旦到达目的地,它就会发送最终结果消息。

turtlesim 有一个行动服务器,行动客户端可以将目标发送到旋转机器人。 在本教程中,学习行动 /turtle1/rotate_absolute,更好了解什么是行动以及它们如何工作。

THE END
0.小伙伴机器人编程课程1本节机器人课的主题是《事件与响应》 【1】复习知识 【2】设定主题《制作钢琴》 ①添加背景和角色 ②事件代码——当角色被点击 ③编写程序 ④运行程序 【3】认识简谱 【4】体验与互动 00:03 2.🎉🎉🎉尊敬的各位家长和亲爱的孩子们晚上好! 本节机器人课的主题是《制作钢琴》 【1】复习jvzquC41yy}/onnrkct/ew45dy8f7~y
1.编程代码图片大全编程代码高清图片下载科技信息技术代码程序背景图片 图像模糊的秘密电脑黑客程序员青年身穿帽衫与黑暗编程计算机代码背景,互联网犯罪概念 亚洲学生在家学习编程机器人汽车和电子板电缆的STEM, STEAM,数学工程科学技术计算机代码的机器人概念的孩子。 网站设计。开发编程和编码技术。 jvzquC41yy}/7:rk|0ipo8xq/v{qkjs177636?;0jvsm
2.机器人学代码实现机器人编程代码大全aAI运行代码python 利用列表字典定义DH表;DH表是用来表达机器人各个关节位置关系的方法;每个关节的坐标系都是根据DH表参考上一个坐标系而确定的;而最初的坐标系的位置可以自己定义。 theta:当前坐标系绕上一个关节的旋转轴旋转的角度;旋转方向符合右手法则! jvzquC41dnuh0lxfp0tfv8|gkzooa>:87:;478ftvkimg8igvcomu8665383898
3.《辐射4》合成人图鉴全机器人及合成人图鉴大全电视游戏新浪游戏今天小编给大家带来的是《辐射4》废土大图鉴,这次讲的是机器人、合成人篇,对合成人和机器人不了解的玩家,快跟小编一起来看看吧。 这次的是机器人与合成人(敌人)图鉴 机器人包括:眼球机、铁卫兵、打手先生、突袭者、保护者、自由至尊。 巧手先生因为敌人种类少就不加讲解了。大部分巧手先生都是特殊角色。 jvzquC41icsfu7xkpc4dqv3ep1z04968/27.2<4hzpizc{;45:8727xjvor
4.代码竞争机器人编程之战下载代码竞争机器人编程之战中文版下载代码竞争机器人编程之战(Code Rivals: Robot Programming Battle)是一款第三人称人工智能解谜自动化编程战斗游戏。游侠网分享代码竞争机器人编程之战下载,玩家需要编程你的机器人,按下执行,看它摧毁敌人。使用可视化节点编程,你将在几秒钟内学会真正的编程。jvzquC41fq}o0jqk439/pny1rembon4eqfkskfnutucq}utqixbovnpidguvuj0jvsm
5.基于G代码工业机器人自动编程.pdf工 并没有实物或是模型 就无法通过示教来实现 产生机器人代码并加以控制 这样 虽然具有很强的 因此 基于 系统的图形交互式离线编程 ≤⁄ ≤ 适用性 但是编码过程繁琐 工作量巨大 笔者结合 就成为了工业机器人发展的一个趋势 这两点考虑 提出利用 代码作为中转 实现机器人 德美日 法等工业发达国家从 世纪 年 jvzquC41oc~/dxtm33>/exr1jvsm1;5391682<433;?6:B>70unuo
6.python机器人编程入门教程(机器人编程python代码)python机器人编程入门教程(机器人编程python代码) 为了提高模块加载的速度,每个模块都会在__pycache__文件夹中放置该模块的预编译模块,命名为module.version.pyc,version是模块的预编译版本编码,一般都包含Python的版本号。例如在CPython 发行版3.4中,fibo.py文件的预编译文件就是:__pycache__/fibo.cpython-34.pycjvzquC41yy}/gxqkpm4dqv4pgyy0rxxv13<557mvon
7.杭州童程童美少儿精品编程课程介绍杭州童程童美少儿编程拥有3-18全龄段编程机器人学习系统,乐高搭建、乐高搭建+编程、代码编程。今天小编就为大家介绍部分我们杭州童程童美的少儿精品编程课程,供同学及家长们了解。 01 乐高机器人方向(中班及以上) 学龄前: 通过大颗粒教具与无屏幕实物化编程模块相结合,构建场景并通过编程完成任务挑战,做到手脑结合,jvzq<84uj0vnxt0eqs0ynsvk1zdvv4pgyy04B67984tj}rn
8.可生成、调试代码,谷歌为安卓开发者推出AI编程机器人StudioBotIT之家5 月 11 日消息,谷歌在 I / O 2023 开发者大会上,面向安卓开发者推出了 AI 编程机器人 Studio Bot。该工具可以生成代码、修复 BUG、以及回答关于安卓应用开发的相关问题。 谷歌表示该机器人建立在 Codey 模型基础上。Codey 是谷歌最新推出的基础编程模型,基于最新的 PaLM2 大型语言模型(LLM)。 jvzquC41yy}/k}mqog4dqv4218?21A:80jzn
9.安川机器人编程各指令详解!新闻中心安川机器人代理商手机版工博士智能工厂服务商,提供机器人及周边零部件,机械设备,AGV,AMR,PLC,变频器,传动伺服,减速机,触摸屏,仪表阀门,低压配电等MRO采购,打造专业的FA工业自动化及智能制造服务平台.jvzquC41o0mpppgqujo/exr1kpjfz7ujrAspf~qgkfC5(~xgtpgngF~cumgxchwqdqzje/fevkuo?wjyu(ougvnf?3728>5
10.工业机器人技术专业人才培养方案经过对福建地区典型中小企业调研分析,表明工业机器人技术类职业与其它职业相比,属于复合性的新型职业,要求具有较宽的理论和专业知识基础,具有娴熟的操作能力和解决问题能力,同时具有从事多重复杂性的工作能力。其专业职业面向如表4-1所示: 表4-1职业面向表 jvzquC41yy}/hshre0kew7hp1l~he87245518991e8:6cA=57:5qcpj0jvs