moveit::planning_interface::MoveGroupInterface 类成员函数文档的翻译

序言

这篇博客的内容主要是对 moveit::planning_interface::MoveGroupInterface 的类成员函数进行翻译, moveit::planning_interface::MoveGroupInterface是moveit编程接口类,里面的成员函数几乎涵盖了所有控制机械臂的操作指令。这个类的成员函数分为C++和Python接口,我的C++用的比较多所以是翻译了C++接口的函数,如果是使用Python更多的朋友可以参考python接口的文档。这个文档并没有对函数进行详细的介绍,只是作为查阅这个函数的功能是什么,具体需要使用的话需要自行在下面这两个网址里面找到对应的函数,查看具体用法。
C++: http://docs.ros.org/en/melodic/api/moveit_ros_planning_interface/html/classmoveit_1_1planning__interface_1_1MoveGroupInterface.html#a26fec9db5d9fff980fdcab04b78382cf

Python:
http://docs.ros.org/en/melodic/api/moveit_commander/html/classmoveit__commander_1_1move__group_1_1MoveGroupCommander.html

moveit教程文档
http://docs.ros.org/en/melodic/api/moveit_tutorials/html/index.html
.
.

一些和机械臂相关的基础概念:

link:连杆
joint:关节
frame_id:tf坐标名,一般每节link都有他自己的frame_id
末端:一般是指机械臂末端夹爪的坐标
位姿pose:位姿=位置+姿态
位置position:空间上的坐标,xyz三轴的偏移值
姿态:可以用四元数(quaternion)或者欧拉角(RPY)表示
基坐标:一般是机械臂的底座的frame_id,作为整个机械臂的参考坐标
.
.

文档翻译

文档内容分为以下几个部分,可能有部分内容我没有翻译挂上来(我只把看的懂的翻译了),如果没有翻译的内容可以直接去官方文档里面找。

Public Member Functions : 公共的类成员函数
Setting a joint state target (goal): 设置关节状态目标
Setting a pose target (goal): 设置位姿目标
Planning a path from the start position to the Target (goal) position, and executing that plan: 规划从起始位置到目标位置的路径,并执行该计划
High level actions that trigger a sequence of plans and actions(暂不翻译)
Query current robot state: 查询机器人当前状态
Manage named joint configurations(暂不翻译)
Manage planning constraints(暂不翻译)
.
.
函数有三个部分:返回值,函数名,函数作用;
返回值如果带有一个vector,说明返回的是长度可变的数组
这里的函数数量很多,建议直接使用ctrl+F页面搜索
函数作用就是这个函数实现了什么功能

.
.

公共的类成员函数

Vector-String getActiveJoints () 只获取该实例操作的活动(驱动)关节

String getDefaultPlannerId() 获取该规划组的规划器

Double getGoalJointTolerance () 获取关节的容忍值,距离值

Double getGoalOrientationTolerance () 获取关节的方向(笛卡尔坐标)容忍值,弧度值

Double getGoalPositionTolerance () 获取关节的位置(笛卡尔坐标)容忍值,以半径为距离差

Bool getInterfaceDescription() 获取操作服务器加载的规划插件的描述

Vector-String getJointModelGroupNames() 获取可用的规划组名称

Vector-String getJointNames () 获取移动组中可用关节名称的向量

Vector-string getJoints () 获取该实例操作的所有关节(包括固定关节)

Vector-string getLinkNames () 获取移动组中可用关节的名称向量

String getName () 获取此实例所操作的组的名称

vector-string getNamedTargets () 获取可作为目标的已命名机器人状态的名称

Double getNamedTargetValues() 获取指定名称的目标的关节角度

Ros::NodeHandle getNodeHandle() 获取节点句柄

String getPlannerId() 获取当前的planner_id

String getPlannerParams() 获取规划器的参数给到组和planner_id

String getPlanningFrame() 获取机器人正在规划的frame_id的名称

Double getPlanningTime() 获取设置的秒数用于setPlanningTime()

robot_model::RobotModel getRobotModel() 获取RobotModel对象

Int getVariableCount() 获取用于描述该组状态的变量个数

Int MoveGroupInterface() 使用一组指定的选项opt(输入参数)构造一个MoveGroupInterface实例调用

Void setGoalJointTolerance() 设置用于达到目标的关节公差(每个关节)

Void setGoalOrientationTolerance() 设置用于达到目标的姿态公差(每个关节)

Void setGoalPositionTolerance() 设置用于达到目标的位置公差(每个关节)

Void setGoalTolerance 这个函数是等于对上面三个函数的调用(一个包含上面三个函数)

Void setMaxAccelerationScalingFactor() 设置一个比例因子,范围值是(0,1)。将机器人模型中指定的最大关节加速度乘以该因子(限制加速度)

Void setMaxVelocityScalingFactor() 设置一个比例因子,范围值是(0,1)。将机器人模型中指定的最大关节速度乘以该因子(限制速度)

Void setNumPlanningAttempts() 设置尝试求解次数,默认是1

Void setPlannerId() 指定要用于进一步规划的规划器、

Void setPlannerParams() 设置规划器参数:组和planner_id

Void setStartState() 设置机器人的初始状态(位置和姿态)

Void setStartStateToCurrentState() 将机器人当前的状态设置为初始初始状态

Void setSupportSurfaceName() 设置支撑面的名字,对于拾取/放置操作,支持面的名称用于指定附加对象允许接触支持面

Void setWorkspace() 如果你的机械臂是可以移动的话,需要设置相对于外界环境的坐标时需要用到这个函数
.
.
.

设置关节状态目标

Bool setJointValueTarget() 设置每个关节的目标值(可以是Position, Orientation, or Pose)

bool setApproximateJointValueTarget() 求解逆解

Bool setRandomTarget() 设置一个随机位置

Bool setNamedTarget() 将当前的关节位置值设置为以前记住的值,这个值由rememberJointValues()提供

robot_state::RobotState getJointValueTarget() 获取当前的关节目标
.
.
.

设置姿态目标

Bool setJointValueTarget() 设置每个关节的目标值(可以是Position, Orientation, or Pose)

Bool setPositionTarget() 设置机械臂的末端位置,输入参数是xyz三轴的偏移量

Bool setRPYTarget() 设置机械臂的末端姿态,输入参数是欧拉角(弧度值)

Bool setOrientationTarget() 设置机械臂的末端姿态,输入参数是四元数

Bool setPoseTarget() 设置机械臂的目标位置

Void setPoseReferenceFrame() 设置目标位置所使用的参考坐标系

Bool setEndEffectorLink() 设置机械臂的末端frame_id

Bool setEndEffector() 指定末端执行器

Void clearPoseTarget() 清除机械臂的末端目标位置

Void clearPoseTargets() 清除所有机械臂的末端目标位置

geometry_msgs::PoseStamped getPoseTarget() 获取机械臂末端的目标位置

Vector-geometry_msgs::PoseStamped getPoseTargets() 获取机械臂末端的目标位置

String getEndEffectorLink() 获取机械臂末端的link(frame_id)

String getEndEffector() 获取当前机械臂末端的名称

String getPoseReferenceFrame() 获取由setPoseReferenceFrame()所设置的参考坐标系
.
.
.

规划从起始位置到目标位置的路径,并执行该计划

moveit_msgs::MoveGroupAction getMoveGroupClient () 获取move_group操作客户端,该客户端由MoveGroupInterface使用

MoveItErrorCode move() 计划并执行一条轨迹,输入参数是机械臂的目标轨迹(路点) move()=plan()+execute()

MoveItErrorCode plan() 计划一条轨迹

MoveItErrorCode execute() 执行一条轨迹,轨迹由plan()获取

Double computeCartesianPath() 计划一条笛卡尔空间路径(机械臂末端),返回值如果是0-1表示路径成功的百分比,如果返回-1说明计划失败

Void stop() 停止任何轨迹执行

Void allowLooking() 指定是否允许机器人在移动之前四处查看(默认为true)

Void allowReplanning() 路径规划失败后是否允许重新规划

Void constructMotionPlanRequest() 构建将发送给带有plan()或move()的move_group操作的MotionPlanRequest,并将其存储在request中

moveit_msgs::PickupGoal constructPickupGoal() 为一个对象(函数的输入参数)创建一个PickupGoal,并将其存储在goal_out中

moveit_msgs::PlaceGoal constructPlaceGoal() 为一个对象(函数的输入参数)创建一个PlaceGoal,并将其存储在goal_out中

Vector—moveit_msgs::PlaceLocation posesToPlaceLocations() 将PoseStamped的向量转换为PlaceLocation的向量
.
.
.

查询机器人当前状态

Bool startStateMonitor() 在推断机器人的当前状态时,会自动构造一个CurrentStateMonitor实例

vector-double getCurrentJointValues() 获取计划的关节的当前关节值

robot_state::RobotStatePtr getCurrentState() 获取由wait(输入参数)指定的持续时间内,机器人的当前状态

geometry_msgs::PoseStamped getCurrentPose () 获取机械臂末端的位姿

vector-double getCurrentRPY() 获取机械臂末端的欧拉角

vector-double getRandomJointValues() 为计划的关节获取随机关节值

geometry_msgs::PoseStamped getRandomPose () 为机械臂末端获取一个随机的位姿
.
.
.

最后的最后

如果觉得这篇文章写得不错或者是有帮到了你,麻烦点个赞再走吧!

  • 10
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值