ArbotiX是一款控制电机、舵机的控制板,并提供相应的ROS功能包,但是这个功能包不仅可以驱动真实的ArbotiX控制板,还提供了仿真控制器。这样的话,就可以基于ArbotiX+Rviz实现机器人的仿真,当然更加复杂的仿真,还是推荐ros_control+gazebo。
ArbotiX主要包含以下两个功能包:
arbotix_python
提供了两个控制器
differ_controller: 差速控制移动机器人,接收
/cmd_vel
,并更新odom → base_link
的坐标关系,典型配置如下:1
2
3controllers: {
base_controller: {type: diff_controller, base_width: 0.381, ticks_meter: 81807, Kp: 10, Kd: 0, Ki: 0, Ko: 25}
}follow_controller: 使用action交互的控制接口,可以当做moveit中FollowJointTrajectory这个action的server,典型的配置如下:
1
2
3
4
5
6
7
8
9
10
11
12joints: {
joint1: {id: 1, neutral: 205, max_angle: 169.6, min_angle: -169.6, max_speed: 90},
joint2: {id: 2, max_angle: 134.6, min_angle: -134.6, max_speed: 90},
joint3: {id: 3, max_angle: 150.1, min_angle: -150.1, max_speed: 90},
joint4: {id: 4, max_angle: 150.1, min_angle: -150.1, max_speed: 90},
joint5: {id: 5, max_angle: 150.1, min_angle: -150.1, max_speed: 90},
joint6: {id: 6, max_angle: 360, min_angle: -360, max_speed: 90},
finger_joint1: {id: 7, max_speed: 90},
}
controllers: {
arm_controller: {type: follow_controller, joints: [joint1, joint2, joint3, joint4, joint5, joint6], action_name: arm_controller/follow_joint_trajectory, onboard: False }
}
arbotix_controller
主要用来控制gripper,包含三种控制器,了解即可。
- one_side_gripper_controller.py
- parallel_gripper_controller.py
- parallel_single_servo_controller.py