0%

ROS仿真:Arbotix控制器

ArbotiX是一款控制电机、舵机的控制板,并提供相应的ROS功能包,但是这个功能包不仅可以驱动真实的ArbotiX控制板,还提供了仿真控制器。这样的话,就可以基于ArbotiX+Rviz实现机器人的仿真,当然更加复杂的仿真,还是推荐ros_control+gazebo。

ArbotiX主要包含以下两个功能包:

arbotix_python

提供了两个控制器

  1. differ_controller: 差速控制移动机器人,接收/cmd_vel,并更新odom → base_link的坐标关系,典型配置如下:

    1
    2
    3
    controllers: {
    base_controller: {type: diff_controller, base_width: 0.381, ticks_meter: 81807, Kp: 10, Kd: 0, Ki: 0, Ko: 25}
    }
  2. follow_controller: 使用action交互的控制接口,可以当做moveit中FollowJointTrajectory这个action的server,典型的配置如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    joints: {
    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,包含三种控制器,了解即可。

  1. one_side_gripper_controller.py
  2. parallel_gripper_controller.py
  3. parallel_single_servo_controller.py