ArbotiX配置文件解读

ArbotiX是什么:

ArbotiX是含有一个差速驱动机器人的rviz模拟器,机器人运动及topic数据的3D显示,但不包含物理学引擎。使用ArbotiX控制机械臂非常便捷。

在讲ArbotiX配置文件之前我们来看看机器人模型

这是ros_by_example 2当中的机器人。主要由三部分组成:头部,机械臂和底座

头部关节由上下摇摆关节和左右转向关节组成

机械臂由以下几部分组成:肩关节,肘关节,前臂关节,腕关节,手掌右关节,手掌左关节和夹持器关节



现在我们来看看ArbotiX配置文件

第一部分是一些设置参数,像串行端口,波特率,读写设置和读写速率设置

portbaud

port: /dev/ttyUSB0port指控制器连接的串行端口

baud: 1000000 baud指波特率

rate: 100

sync_write: True 设置为true会使控制器把数据同时发给所有的伺服电机

sync_read: False True只会在ArbotiX控制器才奏效,如果使用的是USB2Dynamixel必须设置为false

read_rate: 20

write_rate: 20

下面是第二部分:使用joints设置伺服电机参数

joints: {

头部左右摇摆关节。id为伺服电机的Dynamixel硬件ID

当发布关节状态时,neutral值由arbotix驱动映射为0弧度。

 
 

max_angle:

head_pan_joint:{id: 1, neutral: 512, min_angle: -145, max_angle: 145},

head_tilt_joint:{id: 2, neutral: 512, min_angle: -90, max_angle: 90},

invert:一些电机将会被固定,这样增加的旋转角度在ROS-sense中会产生负的旋转


如果发现一个特定的伺服电机以一个在URDFTrue

right_arm_shoulder_roll_joint: {id: 3, neutral: 512, invert: True},

right_arm_elbow_flex_joint: {id: 4, neutral: 512, min_angle: -90,max_angle: 90},

right_arm_forearm_flex_joint: {id: 5, neutral: 512, min_angle: -90,max_angle: 90},

right_arm_wrist_flex_joint: {id: 6, neutral: 512, min_angle: -90,max_angle: 90},

 
 
 对于EXMX4096

right_arm_shoulder_pan_joint: {id: 7, ticks: 4096, neutral: 2048,min_angle: -100, max_angle: 100},

right_arm_shoulder_lift_joint: {id: 8, ticks: 4096, neutral: 1024,invert: True},

right_gripper_finger_joint: {id: 9, neutral: 512}

}

第三部分是我们的控制器部分

controllers: {

底座控制。只有当使用一个真实的ArbotiXcontroller来控制电动机驱动和一个差动齿轮驱动的底座的时候才会起作用

当使用一个模拟机器人的时候,最重要的参数是base_frame_id

base_controller:{type: diff_controller, base_frame_id: base_footprint, base_width:0.26, ticks_meter: 4100, Kp: 12, Kd: 12, Ki: 0, Ko: 50, accel_limit:1.0 },

手臂轨迹行为控制,控制多个关节

onboard:如果使用的是USB2Dynamixel控制器,这个参数就必须设置为FalseTrue只对ArbotiX控制器有效这个控制器

action_name:这个参数定义了关节轨迹行为控制器的命名空间。我们在控制器名字后面加上动作名字。就成了一个完整的名门

typearbotix节点包括2种控制器,这里的follow_controller是管理关节轨迹的

right_arm_controller: {onboard: False, action_name:right_arm_controller/follow_joint_trajectory, type:follow_controller, joints: [right_arm_shoulder_pan_joint,right_arm_shoulder_lift_joint, right_arm_shoulder_roll_joint,right_arm_elbow_flex_joint, right_arm_forearm_flex_joint,right_arm_wrist_flex_joint]},

看了手臂控制器部分,头部控制器部分也就差不多了

head_controller:{onboard: False, action_name:head_controller/follow_joint_trajectory, type: follow_controller,joints: [head_pan_joint, head_tilt_joint]}

}


以上就是ArbotiX配置文件的一些解读。配置好以后我们就能使用ArbotiX控制机器人了。

当然了有一点需要说明的是:在写配置文件时需要注意的是yaml语言不支持table,只能使用空格。


猜你喜欢

转载自blog.csdn.net/dzhongjie/article/details/80424995