小鱼 ROS 2 新书上线!点击链接查看, 新书配套视频点击链接查看。
提问前必看的发帖注意事项—— 提问前必看!不符合要求的问题拒绝回答!!
社区使用指南—如何添加标签修改密码
机械臂rviz+gazebo联合仿真报错
-
[ WARN] [1659344221.789122996, 31.156000000]: Controller arm_position_controller failed with error GOAL_TOLERANCE_VIOLATED:
[ WARN] [1659344221.789296032, 31.156000000]: Controller handle arm_position_controller reports status ABORTEDrviz始终运动不到指定的目标姿态,是模型文件配置的问题吗
-
@今天吃几顿 在 机械臂rviz+gazebo联合仿真报错 中说:
rviz始终运动不到指定的目标姿态,是模型文件配置的问题吗
你的机械臂模型可能导出错了,至于无法运动到目标状态,可能是参数配置问题,从下面这个错误可以看出
@今天吃几顿 在 机械臂rviz+gazebo联合仿真报错 中说:
Controller arm_position_controller failed with error GOAL_TOLERANCE_VIOLATED:
-
@小鱼 那我应该修改什么参数呢?质量吗
-
@今天吃几顿 参考这个 - https://answers.ros.org/question/312123/goal_tolerance_violated-gazebomoveit/
修改
stopped_velocity_tolerance
参数值为0arm_controller: type: velocity_controllers/JointTrajectoryController joints: - shoulder_pan_joint - shoulder_lift_joint - elbow_joint - wrist_1_joint - wrist_2_joint - wrist_3_joint constraints: goal_time: 0.6 # vel_tolerance is 0 for due to the movegroup/follow_joint_trajectory/goal tolerance is empty stopped_velocity_tolerance: 0 shoulder_pan_joint: {trajectory: 0.1, goal: 0.1} shoulder_lift_joint: {trajectory: 0.1, goal: 0.1} elbow_joint: {trajectory: 0.1, goal: 0.1} wrist_1_joint: {trajectory: 0.1, goal: 0.1} wrist_2_joint: {trajectory: 0.1, goal: 0.1} wrist_3_joint: {trajectory: 0.1, goal: 0.1} gains: shoulder_pan_joint: {p: 100, d: 1, i: 1, i_clamp: 1} shoulder_lift_joint: {p: 100, d: 1, i: 1, i_clamp: 1} elbow_joint: {p: 100, d: 1, i: 1, i_clamp: 1} wrist_1_joint: {p: 100, d: 1, i: 1, i_clamp: 1} wrist_2_joint: {p: 100, d: 1, i: 1, i_clamp: 1} wrist_3_joint: {p: 100, d: 1, i: 1, i_clamp: 1} stop_trajectory_duration: 0.5 state_publish_rate: 25 action_monitor_rate: 10```
-
@小鱼 网上的都看过,我没有这个文件参数啊…
-
@小鱼 明天我再试试吧
-
@今天吃几顿 如果是gazebo仿真,应该都是有的,ros_control的配置
-
@小鱼 行,明天我加上试试
-
@小鱼 # Simulation settings for using moveit_sim_controllers
moveit_sim_hw_interface:
joint_model_group: arm
joint_model_group_pose: homeSettings for ros_control_boilerplate control loop
generic_hw_control_loop:
loop_hz: 300
cycle_time_error_threshold: 0.01Settings for ros_control hardware interface
hardware_interface:
joints:
- joint1
- joint2
- joint3
- joint4
- joint5
- joint6
- joint7
sim_control_mode: 1 # 0: position, 1: velocityPublish all joint states
Creates the /joint_states topic necessary in ROS
joint_state_controller:
type: joint_state_controller/JointStateController
publish_rate: 50
controller_list:- name: arm_position_controller
action_ns: follow_joint_trajectory
type: FollowJointTrajectory
default: true
joints:- joint1
- joint2
- joint3
- joint4
- joint5
- joint6
- joint7
arm_position_controller:
type: position_controllers/JointTrajectoryController
joints: - joint1
- joint2
- joint3
- joint4
- joint5
- joint6
- joint7
/gazebo_ros_control:
pid_gains:
joint1:
p: 1
i: 1
d: 1
joint2:
p: 100
i: 0.1
d: 10
joint3:
p: 100
i: 0.1
d: 10
joint4:
p: 100
i: 0.1
d: 10
joint5:
p: 100
i: 0.1
d: 10
joint6:
p: 1
i: 1
d: 1
joint7:
p: 1
i: 1
d: 1
我没有那个参数呀,我要在上面添加一个吗
- name: arm_position_controller
-
@今天吃几顿 是的,你看上面答案就是添加参数
-
@小鱼 他报错了
[ERROR] [1659419912.885568104, 0.376000000]: Could not find joint 'joint1' in 'hardware_interface::VelocityJointInterface'.
[ERROR] [1659419912.885657559, 0.376000000]: Failed to initialize the controller
[ERROR] [1659419912.885677144, 0.376000000]: Initializing controller 'arm_velocity_controller' failed -
@小鱼 我想知道PositionJointInterface和VelocityJointInterface有什么区别呀 我加入VelocityJointInterface的时候PositionJointInterface就不好使了,是只能用一种控制方式吗
-
@今天吃几顿 你应该没搞清楚控制器和gazebo的关系,你要看gazebo仿真时给关节定义的控制器是什么,不能随便改类型。
-
@小鱼 我感觉就是ros controller文件配置错了,我应该怎么检查它错在哪里
-
@今天吃几顿 接口类型和gazebo里的要保持一直,具体你可以参考下ur机械臂的仿真配置。
-
@小鱼 搞定了 是pid参数没有调试好
-
@今天吃几顿 ok
-
@小鱼 小鱼,我现在想学一些机器人算法的知识,机械臂的控制算法之类的,除了读ros官方的函数文档,还有什么相关的推荐书籍嘛
-
@今天吃几顿 给你推荐两本
- 机器人学导论
- 现代机器人学
-
@小鱼 这两本我都学过一点点,我有个疑问,就是书上的相关算法,我应该怎么在ros中实现,应用相关函数吗,我不太明白我怎么把学到的知识应用到机器人上