问题描述:
使用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>
新闻热点
疑难解答