-
Notifications
You must be signed in to change notification settings - Fork 395
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
rqt_joint_trajectory_controller crash #47
Comments
I've often seen this error when Or if the controller has not actually been configured properly with a set of joint names (or again: if Seeing as you write this:
it might be beneficial to show us that |
Here's my launch file: Here's the rosparam list: /controller_stopper/consistent_controllers |
I'm sorry, but the provided zip file does not contain any launch files, but some part of Clang documentation as it seems. |
Sorry wrong file, my bad. |
I'd just post it as a comment. It's not that long. Launch file: <?xml version="1.0"?>
<launch>
<arg name="debug" default="false" doc="Debug flag that will get passed on to ur_common.launch"/>
<arg name="robot_ip" default="192.168.0.113" doc="IP address by which the robot can be reached."/>
<arg name="tf_prefix" default="" doc="tf_prefix used for the robot."/>
<arg name="controllers" default="joint_state_controller scaled_pos_traj_controller speed_scaling_state_controller force_torque_sensor_controller" doc="Controllers that are activated by default."/>
<arg name="stopped_controllers" default="pos_traj_controller" doc="Controllers that are initally loaded, but not started."/>
<arg name="controller_config_file" default="$(find ur_robot_driver)/config/ur3e_controllers.yaml" doc="Config file used for defining the ROS-Control controllers."/>
<arg name="robot_description_file" default="$(find ur_e_description)/launch/ur3e_upload.launch" doc="Robot description launch file."/>
<arg name="kinematics_config" default="$(find bme_ur_launch)/etc/ur3e_calibration.yaml" doc="Kinematics config file used for calibration correction. This will be used to verify the robot's calibration is matching the robot_description."/>
<arg name="use_tool_communication" default="false" doc="On e-Series robots tool communication can be enabled with this argument"/>
<arg name="tool_voltage" default="0" doc="Tool voltage set at the beginning of the UR program. Only used, when `use_tool_communication` is set to true."/>
<arg name="tool_parity" default="0" doc="Parity configuration used for tool communication. Only used, when `use_tool_communication` is set to true."/>
<arg name="tool_baud_rate" default="115200" doc="Baud rate used for tool communication. Only used, when `use_tool_communication` is set to true."/>
<arg name="tool_stop_bits" default="1" doc="Number of stop bits used for tool communication. Only used, when `use_tool_communication` is set to true."/>
<arg name="tool_rx_idle_chars" default="1.5" doc="Number of idle chars in RX channel used for tool communication. Only used, when `use_tool_communication` is set to true."/>
<arg name="tool_tx_idle_chars" default="3.5" doc="Number of idle chars in TX channel used for tool communication. Only used, when `use_tool_communication` is set to true."/>
<arg name="tool_device_name" default="/tmp/ttyUR" doc="Local device name used for tool communication. Only used, when `use_tool_communication` is set to true."/>
<arg name="tool_tcp_port" default="54321" doc="Port on which the robot controller publishes the tool comm interface. Only used, when `use_tool_communication` is set to true."/>
<arg name="limited" default="false" doc="Use the description in limited mode (Every axis rotates from -PI to PI)"/>
<arg name="headless_mode" default="false" doc="Automatically send URScript to robot to execute. On e-Series this does require the robot to be in 'remote-control' mode. With this, the URCap is not needed on the robot."/>
<include file="$(find ur_robot_driver)/launch/ur_common.launch">
<arg name="debug" value="$(arg debug)"/>
<arg name="use_tool_communication" value="$(arg use_tool_communication)"/>
<arg name="controller_config_file" value="$(arg controller_config_file)"/>
<arg name="robot_description_file" value="$(arg robot_description_file)"/>
<arg name="kinematics_config" value="$(arg kinematics_config)"/>
<arg name="robot_ip" value="$(arg robot_ip)"/>
<arg name="limited" value="$(arg limited)"/>
<arg name="tf_prefix" value="$(arg tf_prefix)"/>
<arg name="controllers" value="$(arg controllers)"/>
<arg name="stopped_controllers" value="$(arg stopped_controllers)"/>
<arg name="headless_mode" value="$(arg headless_mode)"/>
<arg name="tool_voltage" value="$(arg tool_voltage)"/>
<arg name="tool_parity" value="$(arg tool_parity)"/>
<arg name="tool_baud_rate" value="$(arg tool_baud_rate)"/>
<arg name="tool_stop_bits" value="$(arg tool_stop_bits)"/>
<arg name="tool_rx_idle_chars" value="$(arg tool_rx_idle_chars)"/>
<arg name="tool_tx_idle_chars" value="$(arg tool_tx_idle_chars)"/>
<arg name="tool_device_name" value="$(arg tool_device_name)"/>
<arg name="tool_tcp_port" value="$(arg tool_tcp_port)"/>
</include>
</launch> |
Your launchfile seems to be the same as the included one except for the default values for the IP address and the kinematics config. Note that it might be better to actually include the base launch file and providing the arguments only: <?xml version="1.0"?>
<launch>
<arg name="robot_ip" default="192.168.0.113"/>
<arg name="kinematics_config" default="$(find bme_ur_launch)/etc/ur3e_calibration.yaml"/>
<include file="$(find ur_robot_driver)/launch/ur3e_bringup.launch">
<arg name="robot_ip" value="$(arg robot_ip)"/>
<arg name="kinematics_config" value="$(arg kinematics_config)"/>
</include>
</launch> This way your local launch files will remain small and if new features are added to the driver's launch files they will be included directly. But back to topic: There seems nothing to be obviously wrong with your setup. This means, we'll have to do further debugging. There could be something wrong in the calibration, thereby your kinematics config resulting in a faulty robot description. Could you please also provide
|
I'll change my launch file, thank you for your suggestion. Here are the requested lines Calibration: kinematics: robot_description: |
I really can't get behind what's going on. It might be necessary to throw in full debugging:
|
Rosbag: Usage: rosbag [options] [args] A bag is a file format in ROS for storing ROS message data. The rosbag command can record, replay and manipulate bags. Available subcommands: For additional information, see http://wiki.ros.org/rosbag |
For creating the rosbag, please do the following:
This will create a file named
The output should look similar to this:
Especially, the number of messages on each topic should be in the same magnitude. Then, please attach the generated |
Closing this in ~1week if no updates arise. |
Closing due to inactivity. Feel free to comment or reopen if anything new comes up. |
Summary
I created my own launch file following the tutorial. It runs perfectly. Then I open a new terminal source it. When I try to launch the rqt it shows up. I can set the controller manager ns and the controller, but when I hit the power button it crashes with the following error message. I use Ubuntu 18.04 LTS, ROS melodic
cmd: rosrun rqt_joint_trajectory_controller rqt_joint_trajectory_controller
error: Traceback (most recent call last):
File "/home/bodon/catkin_ws/src/ros_controllers/rqt_joint_trajectory_controller/src/rqt_joint_trajectory_controller/joint_trajectory_controller.py", line 416, in _update_cmd_cb
pos = self._joint_pos[name]['position']
KeyError: 'position'
Versions
Here's my launch file:
The text was updated successfully, but these errors were encountered: