robot_state_visualize - no transform rviz error
Hello everyone,
I have a question regarding the use of the robot_state_visualize launch file, provided by the ros industrial packages. Any help or and or feedback is greatly appreciated, thanks in advance!
My Setup:
I have a single Windows PC running Roboguide and a Linux Ubuntu VM. I am using the Fanuc M20IA35m Robot.
My Goal:
I want to use ROS to do trajectory planning around obstacles.
My Problem:
Since the M20IA35m Robot is not officially supported, I created my own moveit_configuration.
- Autogenerated demo.launch file - works
- Fanuc_driver in roboguide and connection to Linux system - works
The next step for me was to test the provided launch files from the fanuc repository on github. I adapted them to my robot by changing the names in the files according to my moveit config.
The interface_streaming.launch and the test.launch files work without issues. The robot_state_visualizer does not work. More concrete, Rviz does not have transforms for the joints. The model is not correctly loaded and every link appears in white and centers in the screen.
For every link I get:
No transform from [robot_base] to [link_1]
The solution from this and this threat (adding a joint state publisher) did not fix my problem. Also a point of confusion for me is that the joint state publisher is not a part of the interface streaming launch file, which works fine for me.
Here is the code of the robot_state_visualize launch file:
<launch>
<arg name="robot_ip" doc="IP of controller" />
<arg name="J23_factor" default="1" doc="Compensation factor for joint 2-3 coupling (-1, 0 or 1)" />
<arg name="use_bswap" default="true" doc="If true, robot driver will byte-swap all incoming and outgoing data" />
<rosparam command="load" file="$(find fanuc_m20ia35m_moveit_config)/config/joint_names_m20ia35m.yaml" />
<include file="$(find fanuc_driver)/launch/robot_state.launch">
<arg name="robot_ip" value="$(arg robot_ip)" />
<arg name="J23_factor" value="$(arg J23_factor)" />
<arg name="use_bswap" value="$(arg use_bswap)" />
</include>
<node name="robot_state_publisher" pkg="robot_state_publisher"
type="robot_state_publisher" />
<include file="$(find fanuc_m20ia35m_moveit_config)/launch/custom/load_m20ia.launch" />
<node name="rviz" pkg="rviz" type="rviz" args="-d $(find industrial_robot_client)/config/robot_state_visualize.rviz" required="true" />
</launch>
Further questions:
-> Moved to a new threat.
Edit:
For reference, here is my top level xacro file:
<?xml version="1.0" ?>
<robot name="fanuc_m20ia35m" xmlns:xacro="http://wiki.ros.org/xacro">
<!-- include macros for M-20iA35m and the eef model -->
<xacro:include filename="./m20ia35m_macro.xacro"/>
<xacro:include filename="./eef_description_macro.xacro"/>
<!-- create the robot + eef combo itself as a macro -->
<xacro:macro name="fanuc_m20ia35m_with_eef" params="prefix">
<!-- instantiate M-20iA35m and eef model -->
<xacro:fanuc_m20ia35m prefix="${prefix}robot_" />
<xacro:eef_description prefix="${prefix}eef_" />
<!-- attach eef to M-20iA35m model -->
<!-- Note: this assumes that the 'my_eef' macro defines a 'base_link' link which is the start of it's kinematic chain (if any) -->
<joint name="${prefix}robot_flange-${prefix}eef_base_link_gripper" type="fixed">
<origin xyz="0 0 0 ...
Seeing as you're German: are you using a German locale in your Ubuntu? What is the output of
echo $LC_NUMERIC
?This could be #q272692.
As to your other questions: please don't include multiple questions in a single post. It doesn't work very well with Askbot (which is what the underlying software is of ROS Answers).
Also: how are you starting that launch file? Which arguments do you pass it?
The output of
echo $LC_NUMERIC
is empty.I am starting the launch file this way:
The error you mention essentially means that
robot_state_publisher
is not publishing any TF frames. That typically happens if it doesn't receive anyJointState
messages.What is the output of
rostopic echo -n1 /joint_states
after you've started the launch file?LC_NUMERIC
being empty is unexpected. What is your systems locale configured as? German or English?Additionally: those
.launch
files are supposed to be hosted by robot support packages (ie:fanuc_m20ia_support
) not the MoveIt configuration packages.no need to get all hostile ;)
The output of
rostopic echo -n1 /joint_states
is:When I run
$ locale
I get this output:I'm slightly confused:
and:
that doesn't add up.
In any case, this does not appear to be a problem with a German locale.
So joint states are being published.
What is the currently configured
Fixed Frame
in RViz? Is that the root of your robot's model?Wasnt meant hostile! I am sorry if that came across this way. I thought I might just follow the guidelines and reedit my post. I very much appreciate the help :)