ROS答疑(三)

问1:
关于多轨迹连续运动的内容,我想问问如果我在运动的中途,发布了一个新的目标位置,有办法做到不间断的运动过去吗?我现在可以做到在运动的中途去新的目标位置,但这中间存在1s左右的停顿。
在去目标A的过程中,让它停下来去目标B,类似于让你去拿一个杯子,但中途突然不需要了,让你去拿勺子。
答1:
这个用moveit就做不到了,得自己做整套规划算法了

问2:
用imu来控制机械臂的关节空间。在主函数里,初始化节点,接受imu数据然后在一个类里面初始化movegroup,写了一个循环,不断的把接收到的imu数据负值给set joint value target 函数里,然后用go执行。为什么一个py文件执行完就会退出来。机械臂也没法动
答2:

问3:
执行roslaunch ur_gazebo ur5 .launch的时候出现了错误ROS答疑(三)_第1张图片答3:
indigo版本比较老,有一些接口是不统一的,indigo里好像要把urdf里的hardware_interface这个前缀去掉

问4:
subscribe 消息,如果接收 pose这种多维的,要怎么写呀,这个是wiki上的例子,这里里面接收的是字符串。需要写一个节点接收数据,
ROS答疑(三)_第2张图片def callback(data): rospy.loginfo(rospy.get_caller_id() + "I heard %s", data.data)
答4:
那把接收的数据类型改一改就好了,因为数据类型pose定义的是这样的,应该是data.position.x
ROS答疑(三)_第3张图片问5:
用了rqt那个动态调整参数。请问怎么评价pid调整的是否理想呢
答5:
 把输出曲线画出来,对比分析

问6:
给scara机器人配置IKFAST,到生成插件的前一步时,我选的iktype是ray4d,然后我的urdf文件的关节变量初始状态全为0,生成文件的时候也报错,这就是奇异点么?
ROS答疑(三)_第4张图片
ROS答疑(三)_第5张图片
答6:
配置scara的时候用的是这个类型TranslationXAxisAngleZNorm4D ,初始位姿是奇异点的话很可能会报错的,换个初始姿态就好了,是要去修改urdf文件关节的初始状态。

问7:
还有,老师,我想在ROS-I的框架里面使用ethercat与机器人的伺服驱动器通讯。产品设计的初步想法是只用一块开发板,不接上位机,上层moveit轨迹规划和机器人控制器计算都在一个嵌入式arm板上完成,开发板与伺服驱动器通过ethercat通信,这样的方案用ROS-I的框架能够实现么?
答7:
可以的,ROS-I框架里的通信层可以是本地的

问8:
一个非ros节点的进程如何封装成ros的节点,或者说非ros的节点该如何获取ros中发布的话题消息?
答8:
调用ros的头文件,在程序里边创建发布者或者订阅者就可以的,把ros通信当成一个库调用即可

问9:
moveit_cartesian_demo笛卡尔空间走直线的时候,会先抬起来一些,然后再往下走,这没道理呀,程序中只是蒋初始位置的z减去0.2,怎么一开始会有往上抬的动作呢?
答9:
打印的笛卡尔程序里的第一个点start_pose,也就是获取的末端的位置信息,z是0.4537,但是实际上在home末端相对于base_link的z是0.4,相对于base_footprint的才是0.4537,这就是机械臂笛卡尔运动的时候会上抬的原因。获取的start_pose的z是0.4537,因为它是相对于base_footprint的,我们把这个0.4537放到了base_link里,而机械臂末端初始位姿相对于base_link的z是0.4,所以当开始会从0.4运动到0.4537(向上抬的原因)。把参考坐标系改成base_footprint机械臂就没有上抬的动作了

你可能感兴趣的:(ROS,ubuntu)