Robotics StackExchange | Archived questions

Unknown arg attribute command

Hello,

I'm currently trying to launch and control a DENSO Arm robot. I recently reinstalled my workspace environment and now upon attempting to connect to the robot, I get the following issue:

    NODES
  /vs6577/
    controller_spawner (controller_manager/spawner)
    denso_robot_control (denso_robot_control/denso_robot_control)
  /
    joint_state_publisher (joint_state_publisher/joint_state_publisher)
    mongo_wrapper_ros_cerlabdesktop_Inspiron_5675_13757_8190475192658113537 (warehouse_ros/mongo_wrapper_ros.py)
    move_group (moveit_ros_move_group/move_group)
    robot_state_publisher (robot_state_publisher/robot_state_publisher)
    rviz_cerlabdesktop_Inspiron_5675_13757_5085224700695249472 (rviz/rviz)

WARNING: [/home/cerlabdesktop/Projects/depowdering/src/denso_robot_ros/denso_robot_control/launch/denso_robot_control.launch] unknown <arg> attribute 'command'
auto-starting new master
process[master]: started with pid [13770]
ROS_MASTER_URI=http://localhost:11311

setting /run_id to 1f029842-b239-11e9-bab1-541379941d11
process[rosout-1]: started with pid [13781]
started core service [/rosout]
process[joint_state_publisher-2]: started with pid [13788]
process[vs6577/denso_robot_control-3]: started with pid [13789]
process[vs6577/controller_spawner-4]: started with pid [13790]
process[robot_state_publisher-5]: started with pid [13791]
process[move_group-6]: started with pid [13792]
About to launch drobo
[ WARN] [1564429402.518510464]: Failed to get joint_6 parameter.
[ WARN] [1564429402.519254212]: It was assumed revolute type.
process[rviz_cerlabdesktop_Inspiron_5675_13757_5085224700695249472-7]: started with pid [13798]
ERROR: cannot launch node of type [warehouse_ros/mongo_wrapper_ros.py]: can't locate node [mongo_wrapper_ros.py] in package [warehouse_ros]
[ INFO] [1564429402.589052450]: Loading robot model 'vs6577'...
[ WARN] [1564429402.634981298]: Kinematics solver doesn't support #attempts anymore, but only a timeout.
Please remove the parameter '/robot_description_kinematics/arm/kinematics_solver_attempts' from your configuration.
[ INFO] [1564429402.637668065]: rviz version 1.13.3
[ INFO] [1564429402.637732619]: compiled against Qt version 5.9.5
[ INFO] [1564429402.637747277]: compiled against OGRE version 1.9.0 (Ghadamon)
[ INFO] [1564429402.720581380]: Publishing maintained planning scene on 'monitored_planning_scene'
[ INFO] [1564429402.722038477]: MoveGroup debug mode is OFF
Starting planning scene monitors...
[ INFO] [1564429402.722080208]: Starting planning scene monitor
[ INFO] [1564429402.723335016]: Listening to '/planning_scene'
[ INFO] [1564429402.723364834]: Starting world geometry update monitor for collision objects, attached objects, octomap updates.
[ INFO] [1564429402.724646093]: Listening to '/collision_object' using message notifier with target frame 'world '
[ INFO] [1564429402.725857248]: Listening to '/planning_scene_world' for planning scene world geometry
[ INFO] [1564429402.740451113]: Listening to '/attached_collision_object' for attached collision objects
Planning scene monitors started.
[ INFO] [1564429402.758359862]: Initializing OMPL interface using ROS parameters
[ INFO] [1564429402.773371720]: Using planning interface 'OMPL'
[ INFO] [1564429402.776770133]: Param 'default_workspace_bounds' was not set. Using default value: 10
[ INFO] [1564429402.777196953]: Param 'start_state_max_bounds_error' was set to 0.1
[ INFO] [1564429402.777496608]: Param 'start_state_max_dt' was not set. Using default value: 0.5
[ INFO] [1564429402.777799018]: Param 'start_state_max_dt' was not set. Using default value: 0.5
[ INFO] [1564429402.778077954]: Param 'jiggle_fraction' was set to 0.05
[ INFO] [1564429402.778364063]: Param 'max_sampling_attempts' was not set. Using default value: 100
[ INFO] [1564429402.778409250]: Using planning request adapter 'Add Time Parameterization'
[ INFO] [1564429402.778426763]: Using planning request adapter 'Fix Workspace Bounds'
[ INFO] [1564429402.778439398]: Using planning request adapter 'Fix Start State Bounds'
[ INFO] [1564429402.778454056]: Using planning request adapter 'Fix Start State In Collision'
[ INFO] [1564429402.778473423]: Using planning request adapter 'Fix Start State Path Constraints'
[INFO] [1564429402.858256]: Controller Spawner: Waiting for service controller_manager/load_controller
[ INFO] [1564429403.414946833]: Stereo is NOT SUPPORTED
[ INFO] [1564429403.415926173]: OpenGl version: 4.6 (GLSL 4.6).
[ERROR] [1564429404.308513243]: Failed to change to slave mode. (83501024)
[vs6577/denso_robot_control-3] process has finished cleanly
log file: /home/cerlabdesktop/.ros/log/1f029842-b239-11e9-bab1-541379941d11/vs6577-denso_robot_control-3*.log
^C[rviz_cerlabdesktop_Inspiron_5675_13757_5085224700695249472-7] killing on exit
[move_group-6] killing on exit
[robot_state_publisher-5] killing on exit
[vs6577/controller_spawner-4] killing on exit
[joint_state_publisher-2] killing on exit
[WARN] [1564429405.246003]: Controller Spawner couldn't find the expected controller_manager ROS interface.

Here's the launch file I have for the robots:

<launch>
  <!-- Override ip_address argument -->
  <arg name="ip_address" default="192.168.0.1" />

  <!-- Override robot_name argument -->
  <arg name="robot_name" default="vs060" />

  <!-- Robot description argument -->
  <arg name="robot_description" value="$(arg robot_name)_description" />

  <!-- Send format -->
  <arg name="send_format" default="288" />

  <!-- Recieve format -->
  <arg name="recv_format" default="292" />

  <arg name="xacro" default="true" />

  <include ns="/$(arg robot_name)" file="$(find bcap_service)/launch/bcap_service.launch.xml">
    <arg name="ip_address" value="$(arg ip_address)" />
  </include>

  <include ns="/$(arg robot_name)" file="$(find denso_robot_core)/launch/denso_robot_core.launch.xml" />

  <include ns="/$(arg robot_name)" file="$(find denso_robot_control)/launch/denso_robot_control.launch.xml">
    <arg name="send_format" value="$(arg send_format)" />
    <arg name="recv_format" value="$(arg recv_format)" />
  </include>

  <!-- Load in xacro format, this path is also specific to the directory structure in the vs6577 description where the urdf files are located in a subfolder -->
  <group if="$(arg xacro)">
    <arg name="$(arg robot_description)" command="xacro '$(find depowdering_bringup)/urdf/depowdering_world.urdf.xacro'"/>
  </group>

  <!-- Load in normal URDF format, as used in the vs060 example. Would recommend xacro for more complicated robot descriptions later on down the line -->
  <group unless="$(arg xacro)">
    <arg name="$(arg robot_description)" textfile="$(find denso_robot_descriptions)/$(arg robot_name)_description/$(arg robot_name).urdf"/>
  </group>

  <!-- Controller -->
  <include ns="/$(arg robot_name)" file="$(find denso_robot_descriptions)/$(arg robot_description)/$(arg robot_name).launch.xml" />
  <node name="denso_robot_control" pkg="denso_robot_control" type="denso_robot_control" output="screen" ns="/$(arg robot_name)"/>

  <rosparam file="$(find denso_robot_descriptions)/$(arg robot_description)/denso_robot_control.yaml" command="load" />
  <node name="controller_spawner" pkg="controller_manager" type="spawner" respawn="false" output="screen"
   ns="/$(arg robot_name)" args="joint_state_controller arm_controller" />

  <node name="robot_state_publisher" pkg="robot_state_publisher" 
        type="robot_state_publisher" respawn="false" output="screen">
    <remap from="/joint_states" to="/$(arg robot_name)/joint_states" />
  </node>
</launch>

It seems to be upset about the line

  <!-- Load in xacro format, this path is also specific to the directory structure in the vs6577 description where the urdf files are located in a subfolder -->
  <group if="$(arg xacro)">
    <arg name="$(arg robot_description)" command="xacro '$(find depowdering_bringup)/urdf/depowdering_world.urdf.xacro'"/>
  </group>

I have this because there are a few robot configurations to choose from, and one of them is in Xacro format so I load it in differently. I use this in other launch files and it seems to work properly there, just not in the densorobotcontrol.launch file.

Asked by tswie on 2019-07-29 14:53:05 UTC

Comments

Answers

If you look here for the arg tag, you can see there are only certain attributes you can use inside of them: https://wiki.ros.org/roslaunch/XML/arg#Attributes. command is not one of them.

However, what you are trying to do here is use xacro to load the robot description. In this case, you want to use the <param> tag instead of <arg>. It should work then.

Asked by 404RobotNotFound on 2019-10-09 07:17:56 UTC

Comments