ros melodic控制真实机械臂之等周期输出插补点

        在上一节中,通过修改相关配置文件,使moveit能够输出真实的插补点,并可通过

control_msgs::FollowJointTrajectoryGoalConstPtr

获取轨迹信息,并将获取的插补点写进文件里面。但有个问题是,该插补点为等距而非等周期,且 1s之内输出的插补点个数极其有限,与实际工业控制中的机器人的控制周期(一般是2ms,甚至1ms)差距极为明显。

        通过查阅相关资料发现,可以通过Industrial_trajectory_filters包改善这种情况。根据该资料中的描述,其方法如下:

1、打开由moveit_setup_assistant生成的功能包中的ompl_planning_pipeline.launch.xml文件,在name=“planning_adapters”的value值中加入filter,并紧随其后指定参数值(sample_duration),添加后如下:

<!-- The request adapters (plugins) used when planning with OMPL.
       ORDER MATTERS -->
  <arg name="planning_adapters" value="
               industrial_trajectory_filters/UniformSampleFilter
               default_planner_request_adapters/AddTimeParameterization
				       default_planner_request_adapters/FixWorkspaceBounds
				       default_planner_request_adapters/FixStartStateBounds
				       default_planner_request_adapters/FixStartStateCollision
				       default_planner_request_adapters/FixStartStatePathConstraints" />

  <param name="sample_duration" value="0.004"/>

2、可修改各个轴的速度、加速度限制(可选), 打开由moveit_setup_assistant配置的功能包中config文件件下的joint_limits.ymal文件,如果在助手设置的时候没有进行相关设置,其has_velocity_limits、has_acceleration_limits参数应该为false,max_velocity、max_acceleration参数应该为0,根据实际需要进行设置,这里仅仅为举例,设置完成后内容如下:

# joint_limits.yaml allows the dynamics properties specified in the URDF to be overwritten or augmented as needed
# Specific joint properties can be changed with the keys [max_position, min_position, max_velocity, max_acceleration]
# Joint limits can be turned off with [has_velocity_limits, has_acceleration_limits]
joint_limits:
  joint1:
    has_velocity_limits: true
    max_velocity: 420
    has_acceleration_limits: true
    max_acceleration: 1600
  joint2:
    has_velocity_limits: true
    max_velocity: 420
    has_acceleration_limits: true
    max_acceleration: 1600
  joint3:
    has_velocity_limits: true
    max_velocity: 420
    has_acceleration_limits: true
    max_acceleration: 1600
  joint4:
    has_velocity_limits: true
    max_velocity: 420
    has_acceleration_limits: true
    max_acceleration: 1600
  joint5:
    has_velocity_limits: true
    max_velocity: 420
    has_acceleration_limits: true
    max_acceleration: 1600
  joint6:
    has_velocity_limits: true
    max_velocity: 420
    has_acceleration_limits: true
    max_acceleration: 1600

3、修改完成后,就可以使用该filter了。先打开通过上一节修改后的程序节点,用于接受插补点并输入文件,注意,在文件操作中fopen函数输入绝对路径更为可靠,用相对路径存在程序崩溃的情况。

rosrun trajectory_server cubicSpline_test

然后打开**_moveit_config功能包中的demo.launch文件,如下:

roslaunch csrobot_moveit_config demo.launch 

就会弹出自己的机器人模型,然后拖动末端小球,点击Plan & Excute。这里仅以J1轴为例子,形成的插补点文件内容如下:

0.000000,0.004000,0.008000,0.012000,0.016000,0.020000,0.024000,0.028000,0.032000,0.036000,0.040000,0.044000,0.048000,0.052000,0.056000,0.060000,0.064000,0.068000,0.072000,0.076000,0.080000,0.084000,0.088000,0.092000,0.096000,0.100000,
0.000000,0.008508,0.031574,0.069994,0.133243,0.213557,0.311100,0.423583,0.528749,0.616772,0.686561,0.735851,0.752813,0.760593,0.792597,0.855078,0.932860,0.998843,1.036645,1.045811,1.053848,1.091950,1.134949,1.155846,1.166266,1.167497,
0.000000,4.219867,7.106975,14.149067,17.942939,22.375410,26.570125,28.604643,24.108166,19.790137,15.161314,7.749884,1.459739,4.150592,13.226828,17.712687,18.399999,15.253648,5.250950,0.568299,4.781373,17.563799,6.720773,3.881950,1.293986,0.000000,
944.640841,931.287255,660.441550,1879.362077,749.157338,1208.360042,1146.323672,-1613.341556,-1120.832075,-1338.734795,89.320520,-1688.544459,-697.779219,1780.192490,3413.014350,1011.182244,-721.810792,-1853.932346,-1862.489525,-82.326113,1839.611648,1537.805861,-869.398796,-631.226688,-675.784472,-677.755254,

 分为4行,第一行为时间,第二行为position,第三行为velocity,第四行为accleration。

通过python程序绘制出图如下:

综上,从插补点可以看出,通过该filter之后的插补点为等周期插补点。

参考:

1、https://blog.csdn.net/shenyan0712/article/details/96997856

2、https://blog.csdn.net/lejou_lee/article/details/109676723

3、https://blog.csdn.net/qq_34935373/article/details/98482706

  • 1
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
你可以使用ROS-Melodic和MoveIt来进行UR5机械臂的仿真控制。以下是一个基本的步骤: 1. 安装ROS-Melodic:请根据ROS官方文档的说明安装ROS-Melodic。确保你的系统满足所有的依赖项。 2. 安装MoveIt:在终端中运行以下命令来安装MoveIt: ``` sudo apt-get install ros-melodic-moveit ``` 3. 配置工作空间:创建一个新的工作空间,并将其初始化为ROS工作空间。例如,你可以运行以下命令: ``` mkdir -p ~/catkin_ws/src cd ~/catkin_ws/ catkin_make ``` 4. 下载UR5机械臂包:在终端中运行以下命令来下载UR5机械臂ROS软件包: ``` cd ~/catkin_ws/src git clone https://github.com/ros-industrial/universal_robot.git ``` 5. 下载MoveIt配置文件:在终端中运行以下命令来下载MoveIt配置文件: ``` cd ~/catkin_ws/src git clone https://github.com/ros-planning/moveit_resources.git ``` 6. 构建和编译:在终端中运行以下命令来构建和编译你的工作空间: ``` cd ~/catkin_ws/ catkin_make ``` 7. 启动仿真环境:在终端中运行以下命令来启动UR5机械臂的仿真环境: ``` roslaunch ur_gazebo ur5.launch ``` 8. 启动MoveIt RViz:在终端中运行以下命令来启动MoveIt RViz界面: ``` roslaunch ur5_moveit_config moveit_rviz.launch config:=true ``` 9. 进行控制:在RViz界面中,你可以使用MoveIt插件来规划和控制UR5机械臂的运动。你可以设置目标位置、执行运动等。 这些是基本的步骤,可以帮助你开始使用ROS-Melodic和MoveIt进行UR5机械臂的仿真控制。你可以根据自己的需求进行进一步的定制和开发。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值