乐聚社区

标题: bodyhub功能包 [打印本页]

作者: YorkFu    时间: 2020-5-6 18:59
标题: bodyhub功能包
本帖最后由 Ybot 于 2020-6-2 15:07 编辑

bodyhub Package


概述


bodyhub节点是上位机其他节点与下位机通信的中间节点,机器人的所有控制指令的发送和机器人数据的获取都通过此节点实施。

bodyhub实现了一个状态机来管理下位机,用bodyhub状态机管理下位机可确保如舵机这类执行器设备,在同一时刻只受一个上层节点控制,避免上层节点之间相互干扰导致控制异常。

bodyhub节点有两种运行模式,分别是普通模式和仿真模式。


如何运行


普通模式运行


在终端运行以下命令,回车后输入用户的密码确认,修改USB设备权限


sudo chmod 666 /dev/ttyUSB0

在终端运行以下命令,设置串口参数


setserial /dev/ttyUSB0 low_latency

在终端运行以下命令,以普通模式启动节点


roslaunch bodyhub bodyhub.launch

仿真模式运行


仿真模式下的仿真场景是在vrep里面运行的。

打开终端输入以下命令打开ros master


roscore

打开vrep仿真软件,并用软件打开*/bodyhub/vrep/Roban.ttt场景文件。

在新终端执行以下命令,以仿真模式启动节点


roslaunch bodyhub bodyhub.launch sim:=true

使用状态机


使用id为6的节点占用状态机,向/MediumSize/BodyHub/StateJump服务发送如下请求


rosservice call /MediumSize/BodyHub/StateJump "masterID: 6 
stateReq: 'setStatus'"

若返回以下内容,则占用成功


stateRes: 22

若返回其他内容,则占用失败。

释放对状态机的占用,/MediumSize/BodyHub/StateJump服务发送如下请求


rosservice call /MediumSize/BodyHub/StateJump "masterID: 6 
stateReq: 'reset'"

若返回以下内容,则释放成功


stateRes: 21

若返回其他内容,则释放失败。


订阅的话题













欢迎光临 乐聚社区 (https://bbs.lejurobot.com/) Powered by Discuz! X3.4