• ROS机械臂 Movelt 学习笔记5 | MoveIt Commander Scripting



    前一讲python接口中提到moveit_commander 包。这个包提供了用于运动规划、笛卡尔路径计算以及拾取和放置的接口。

    moveit_commander 包还包括一个命令行接口程序moveit_commander_cmdline.py. 可以通过一些简单的命令来替代编程。

    1. 启动命令行工具

    先打开 panda 机械臂模型

    cd ARM/
     cd ws_moveit/
     source devel/setup.bash
    roslaunch panda_moveit_config demo.launch

    然后在新窗口中(可以不必切换到ws_moveit 包下)

    rosrun moveit_commander moveit_commander_cmdline.py

    就可以看到以下画面:

     

     

     

     

    2. 使用个命令行工具

    这个命令行工具可以启动move_group的一些运动示例。

    首先需要指定我们要控制的规划组:

    use panda_arm

    这会连接到指定的move_group 结点,接下来的命令都是在这个规划组上进行的。

    • 显示当前状态

      current
    • 记录某个状态并命名

      rec init
      #相当于把当前关节记为 init
      # 显示: Remembered current joint values under the name init
      ​
      #输入vars可以显示所有命名状态。

      这就相当于前面提到过的 move_group.getCurrentState(),然后就可以通过修改关节值来进行规划。

    • 进行运动规划 (正向运动学)

      最近偶然翻阅《ROS机器人进阶实例》P309,发现这种修改关节值的方式就是正向运动学,而另一种指定目标姿态的即逆向运动学

      goal = init
      goal[1] = 0.2
      go goal
      运动后的姿态如下:

       

       

      python接口 提到过,go()是 plan + execute,所以也可以用后者替代:

      goal[0] = 0.2
      goal[1] = 0.2
      plan goal
      execute

      看起来多了一步,但可视化了规划的过程,在某些时候会派上用场,比如分析机械臂的奇异解。

     

    更多的功能可以输入 help 来查阅。

    此外,关心这些功能如何实现,可以看一看moveit_commander_cmdline.py 的源码。

    最后,退出命令行工具可以输入 quit或者Ctrl+C

     

    3. 我最关心的

    这部分比较简单,就是几个命令而已。而且感觉不是很实用,我最关心的是,如何通过命令行工具的命令,快速让机械臂达到某个状态或者实现某个运动

    比如我写好了一个抓取瓶子的程序,如何将其封装成一个简单的命令呢?

    当然,可以给launch 文件写别名,但总感觉不如这个方便一点,可以在同窗口实现规划组的切换以及命令的切换。



  • 相关阅读:
    git 合并分支某次(commit)提交
    软考(高级)是否需要报班,大家有什么建议?
    基于springboot实现游戏分享网站系统项目【项目源码+论文说明】计算机毕业设计
    使用nvm实现多版本node自由切换
    element ui修改select选择框背景色和边框色
    apollo源码解读:/cyber/sysmo 模块
    你还在找淘宝商品信息查询的接口吗?
    react create-react-app 配置less
    Python算法——树的路径和算法
    【opencv-c++】读取视频文件或者直播码流
  • 原文地址:https://www.cnblogs.com/Roboduster/p/16577471.html