dual_aubo-i3_arm仿真与实际控制

dual_aubo-i3_arm仿真与实际控制(一)

一、文档下载

[源码下载](https://github.com/lg609/aubo_robot)
	用到的包:
		aubo_controller
		aubo_driver
		aubo_msgs

二、源码解读

2.1三个重要的节点:

1)/aubo_driver:底层控制节点,直接驱动机械臂并发送反馈信息,在aubo_diver包中;
2)/aubo_robot_simulator:仿真节点,在aubo_controller包中;
3)/aubo_joint_trajectory_action:服务端节点,向上连接moveit客户端,下连/aubo_robot_simulator
节点,在aubo_controller包中;

2.2节点解读:

2.2.1/aubo_driver节点

底层控制节点,直接控制机械臂的运动。
1、初始化过程中,发布机械臂实际的当前节点(/aubo_driver/real_pose)到(aubo_robot_simulator节点)
2、当机械臂处于保护停或者正常停过程中,发布(/aubo_driver/cancel_trajectory)消息到(aubo_robot_simulator节点);
3、在时间回调函数(timerCallback)中,不断的发送(rib_status)消息到(aubo_robot_simulator节点),包括缓冲区大小,控制模式(示教模式,发送目标点模式,真机与仿真同步模式);
4、在时间回调函数中,不断发送(/joint_states)消息(关节角度信息)消息类型为(sensor_msgs::JointState);
5、在时间回调函数中,不断发送真实机械臂的实时的反馈信息(/feedback_states),消息类型为
control_msgs::FollowJointTrajectoryFeedback;
6、接收trajectory_execution_event消息,设置正常停状态
7、接收aubo_robot_simulator节点发送的(/moveItController_cmd)消息,消息类型为
trajectory_msgs::JointTrajectoryPoint,记录了当前时刻的各个关节的角度、角速度、角加速度
,并压入到机械臂的状态组(buf_queue_),并在UateControlStatus()函数中调用setRobotJointsByMoveIt()取出状态组中当前轨迹点,调用robotServiceSetRobotPosData2Canbus
函数控制机械臂运动。updateControlStatus()在main函数中,通过while不断的调用。

2.2.2/aubo_robot_simulator节点

机械臂的仿真节点。
1、在时间回调函数中,不断发送仿真的状态反馈信息(/feedback_states),消息的类型为
control_msgs::FollowJointTrajectoryFeedback;
2、接收( aubo_joint_trajectory_action)服务端发送的(joint_path_commamd)消息,类型为trajectory_msgs::JointTrajectory记录了机械臂各个关节的一系列轨迹点(位置、速度、加速度、力),并将每个轨迹点通过addMotionWaypoint函数压入到motion_buffer_队列中,类型为
std::queue<trajectory_msgs::JointTrajectoryPoint> motion_buffer_通过发布 moveItController_cmd消息发布出去;
3、接收/aubo_driver发布的(/aubo_driver/real_pose)信息,更新仿真环境下的当前位置;
4、与gazebo连接后,在gazebo中进行实时显示;

2.2.3/aubo_joint_trajectory_action节点

动作的服务端节点,向上连接到moveit客户端,接收到moveit发送的/goal消息以及/cancel消息,在服务端内引发相应的回调函数。
1、/goal的回调函数为goalCB,在该函数内发布轨迹消息(joint_path_command),消息的类型为trajectory_msgs::JointTrajectory;
2、/cancel的回调函数为cancelCB,设定动作消息停止;
3、接收来自/aubo_driver以及/aubo_robot_simulator节点的(/feedback_states)消息,在controllerStateCB回调函数中向客户端返回结果,但并未向客户端发布反馈内容。

2.3通信架构:

在这里插入图片描述 moveit与真实机械臂之间的通信框架

2.4rqt_graph显示各个节点之间的消息发布:

目前实验室内只有AUBOI5机械臂,将其与电脑连接后,启动相应的launch文件,查看ros连接真实的机械臂后各个节点之间的消息发布,如图(2.1)所示。
在这里插入图片描述 图(2.1)节点之间的信息传递

未完待续!!!!!!!!!!!!!!!!!!!
欢迎批评指正!

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: mqtt_esp-12s_dio_32mbit_2.0.0_2020311.bin 是一个文件名,表示一个MQTT协议的固件文件。该文件适用于ESP-12S芯片,支持DIO引脚板,容量为32 Mbit。版本号为2.0.0,发布日期为2020年3月11日。 MQTT是一种轻量级的消息传输协议,它适用于物联网设备之间的通信。ESP-12S是一款Wi-Fi模块,它与MQTT协议结合能够方便地实现物联网设备的联网功能。 DIO引脚板是一种数字输入输出(Digital Input/Output)引脚板,能够用于接收和发送数字信号。通过与ESP-12S芯片结合,可以实现物联网设备与其他设备的数据交换和控制。 32 Mbit是指该模块的存储容量为32兆比特,用于存储固件程序和数据。 版本号2.0.0表示该固件的版本,用于标识固件的功能和升级情况。发布日期为2020年3月11日,表示该固件在该日期发布,可能包含了一些新的功能或修复了一些问题。 总之,mqtt_esp-12s_dio_32mbit_2.0.0_2020311.bin 是一款适用于ESP-12S芯片的MQTT固件文件,可以应用于物联网设备的通信和控制。 ### 回答2: mqtt_esp-12s_dio_32mbit_2.0.0_2020311.bin 是一个二进制文件,用于更新或烧录 ESP-12S 模块的固件版本。这个固件版本是为了支持 MQTT(Message Queuing Telemetry Transport)协议而设计的。 ESP-12S 是一款基于 ESP8266 芯片的 Wi-Fi 模块,它具有低功耗、高集成度和良好的无线网络连接能力。它被广泛应用于物联网领域,可以用于连接传感器、执行远程控制等应用。 DIO 代表此固件版本使用的 flash 接口是 DIO(Dual I/O),这种方式可以提供更高的传输速率和可靠性。 32mbit 表示此固件适用于 32Mbit(4MB)的 flash 存储器容量,也是 ESP-12S 最大支持的容量。这意味着它可以完全适配 ESP-12S 模块的闪存大小。 2.0.0 是固件的版本号,表明此版本为二点零。固件版本号通常用于指示固件的修改或更新情况。 2020311 是固件的发布日期,表示固件的发布日期为 2020 年 3 月 11 日。 因此,mqtt_esp-12s_dio_32mbit_2.0.0_2020311.bin 是一款用于 ESP-12S 模块的固件文件,支持 MQTT 协议,适用于具有 32Mbit(4MB)闪存容量的模块,并在 2020 年 3 月 11 日发布。它可以用于更新或烧录 ESP-12S 模块的固件,以提供更好的功能和性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值