Arm Mover: Launch and Interact

ARM 290浏览


先完成<上一篇>任务。

使用新服务启动项目

要获得arm_mover节点,并伴随着safe_move服务与其他所有节点一起启动,您将修改robot_spawn.launch

启动文件位于catkin包根目录的launch目录中。
simple_arm的启动文件位于~/catkin_ws/src/simple_arm/launch

要启动arm_mover节点,只需添加以下内容:

  <!-- The arm mover node -->
  <node name="arm_mover" type="arm_mover" pkg="simple_arm">
    <rosparam>
      min_joint_1_angle: 0
      max_joint_1_angle: 1.57
      min_joint_2_angle: 0
      max_joint_2_angle: 1.0
    </rosparam>
  </node>

有关启动文件格式的更多信息可以在这里找到。

测试新服务

现在您已经修改了启动文件,您已准备好测试所有内容。

为此,请启动simple_arm,确认arm_mover节点正在运行,并列出了safe_move服务:

注意:在重新启动之前,您需要确保退出之前的roslaunch会话。

cd ~/catkin_ws
catkin_make
source devel/setup.bash
roslaunch simple_arm robot_spawn.launch

然后,在一个新终端中,验证节点和服务确实已启动。

 rosnode list
 rosservice list

假设服务(/ arm_mover / safe_move)和节点(/ arm_mover)都按预期显示(如果他们没有,请检查roscore控制台中的日志),现在可以使用rosservice与服务交互。

要查看摄像机图像流,您可以使用命令rqt_image_view(您可以在此处了解有关rqt和相关工具的更多信息)

rqt_image_view /rgb_camera/image_raw

这里写图片描述

调整视图

相机正在显示灰色图像。 这是预料之中的,因为它是向上的,朝向我们的gazebo世界的灰色天空。

要将摄像机指向计数器顶部的编号块,我们需要将接点1和接点2旋转大约π/ 2弧度。 试一试吧:

rosservice call /arm_mover/safe_move "joint_1: 1.57
joint_2: 1.57"

注意:rosservice call可以tab完成请求消息,以便您不必担心手动写出请求消息。 另外,请确保在两个联合参数之间包含换行符。

输入命令后,您应该能够看到手臂移动并最终停止,并报告将手臂移动到控制台所花费的时间。 这是预期的。

不期望的是手臂的结果位置。看看roscore控制台,我们可以清楚地看到问题所在。关节2的要求角度超出了安全范围。我们要求1.57弧度,但最大关节角度设为1.0弧度。

通过在参数服务器上设置max_joint_2_angle设置,我们应该能够在下一次进行服务呼叫时查看块。 要增加关节2的最大角度,可以使用rosparam命令

rosparam set /arm_mover/max_joint_2_angle 1.57

现在,我们应该能够移动手臂,使所有的块都位于相机的视野范围内:

rosservice call /arm_mover/safe_move "joint_1: 1.57
joint_2: 1.57"

这里写图片描述

<上一篇>
<下一篇>