問題描述:
使用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>
新聞熱點
疑難解答