运用ros control,关节的位置控制方式(position controller)后,发送指令参数关节没有发生运动

原因:joint的类型应改为type="revolute">,本人用的continuous,改成revolute,并加上

<limit
        lower="-3.14"
        upper="3.14"
        effort="100"
        velocity="1" />

之后便恢复正常

### Gazebo 中实现关节运动控制的方法 在 Gazebo 中,为了使机器人模型能够按照预期的方式运动,通常需要配置 URDF 文件并加载合适的控制器来管理各个关节的动作。具体来说,在定义好机器人的物理结构之后,还需要通过 ROS 控制包(`ros_control`)为不同的关节指定相应的控制器类型。 对于提到的情况,存在三种不同类型的控制方式被应用到了特定的自由度上: - XY 平面内的平移采用力矩/推力控制; - 绕 Z 轴旋转的角度变化由速度 PID 控制器调节 (即偏航角 yaw 的调整); - 垂直方向上的升降则依赖于位置 PID 控制器来进行精确的高度定位[^1]。 下面是一个简单的例子展示如何在一个自定义的四轮差速驱动机器人中设置上述描述的关节控制器。假设该机器人具有两个主要部分:底盘和平板载具,其中平板可以沿垂直轴上下移动以及绕竖直轴转动。 #### 配置文件示例 (`robot_gazebo_config.yaml`) ```yaml controller_list: - name: "base_controller" joints: - joint_wheel_left - joint_wheel_right type: effort_controllers/JointEffortController - name: "yaw_velocity_controller" action_ns: follow_joint_trajectory default: true type: velocity_controllers/JointVelocityController joints: - joint_yaw - name: "height_position_controller" action_ns: follow_joint_trajectory default: true type: position_controllers/JointPositionController joints: - joint_height ``` 此 YAML 文件片段展示了如何针对三个独立的功能模块分别创建对应的控制器实例,并指定了它们各自关联的具体关节名称及其工作模式。需要注意的是,当涉及到实际部署时,还需确保所有必要的插件都已正确安装并且环境变量已经适当设置了。 另外,关于 PID 参数的选择至关重要。如果设定得太低,则可能导致系统响应不足甚至完全失效;相反地,过高的增益可能会引起不稳定现象或震荡行为。因此建议基于实验逐步优化这些参数直至获得满意的性能表现[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值