使用ROS对Kinova 初始化时1015错误的解决方法

来源:互联网 发布:jq 数组push键值对 编辑:程序博客网 时间:2024/06/05 06:22

问题描述:  

使用ROS控制Kinova机械臂,按照Kinova 官网Github的教程操作,在执行roslaunch kinova_bringup kinova-robot.launch 时,出现初始化1015错误,如图所示:


    而官网只有一个关于1015错误的说明:


    我在VMware和裸机上都试过,都有此错误。在网上查询此错误的解决方案也未果,然后查阅源码,分析错误原因。在~/catkin_ws/src/kinova-ros/kinova_driver/src/Kinova.API.CommLayerUbuntu.h 与 /opt/kinova/API/kinova_comm.cpp这两个文件中,给出了

    所以错误原因是:kinova_robot.launch文件中的node初始化实际机械臂,不能找到所需的设备。

    result=kinova_api_.initAPI() = ERROR_NO_DEVICE_FOUND = 1015

    kinova_robot.launch的node部分为:
 <node name="$(arg kinova_robotType)_driver" pkg="kinova_driver" type="kinova_arm_driver" output="screen" cwd="node" args="$(arg kinova_robotType)">    <!-- Set this parameter to use a specific arm on your system    -->     <!-- <param name="serial_number" value="PJ00000001030703130" /> -->  </node>

所以,此node是要建立实际机器人的节点,故在未连接机器人的情况下,初始化失败。

解决方案:

   

1.登录Kinova官网下载相关型号的机器人驱动并根据教程安装。

2.参照display_kinova_robot.launch更改kinova_robot.launch文件中的node即可。

<node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher"></node><node name="robot_state_publisher" pkg="robot_state_publisher" type="state_publisher" />


    修改后的kinova_robot.launch文件为:

<launch>  <arg name="use_urdf" default="true"/>  <arg name="kinova_robotType" default="j2n6a300" />  <group unless="$(arg use_urdf)">    <node name="$(arg kinova_robotType)_tf_updater" pkg="kinova_driver" type="kinova_tf_updater" output="screen" cwd="node" args="$(arg kinova_robotType)">      <remap from="/$(arg kinova_robotType)_tf_updater/in/joint_angles" to="/$(arg kinova_robotType)_driver/out/joint_angles"/>    </node>    <node name="$(arg kinova_robotType)_driver" pkg="kinova_driver" type="kinova_arm_driver" output="screen" cwd="node" args="$(arg kinova_robotType)"><!-- Set this parameter to use a specific arm on your system    --> <!-- <param name="serial_number" value="PJ00000001030703130" /> -->    </node>  </group>  <group if="$(arg use_urdf)">    <param name="robot_description" command="$(find xacro)/xacro.py '$(find kinova_description)/urdf/$(arg kinova_robotType)_standalone.xacro'" />    <node name="$(arg kinova_robotType)_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher">      <remap from="joint_states" to="/$(arg kinova_robotType)_driver/out/joint_state"/>    </node>    <node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher"></node>    <node name="robot_state_publisher" pkg="robot_state_publisher" type="state_publisher"></node>  </group></launch>

0 0
原创粉丝点击