本人Linux版本:Ubuntu 18.04LTS
ROS版本:Melodic
URDF代碼
<?xml version="1.0" ?> <robot name="mbot"> <link name="base_link"> <visual> <origin xyz=" 0 0 0" rpy="0 0 0" /> <geometry> <cylinder length="0.16" radius="0.20"/> </geometry> <material name="yellow"> <color rgba="1 0.4 0 1"/> <!--A代表透明度--> </material> </visual> </link> </robot>
launch文件
<launch> <param name="robot_description" textfile="$(find mbot_description)/urdf/mbot_base.urdf" /> <!-- 設置GUI參數,顯示關節控制插件 --> <param name="use_gui" value="true"/> <!-- 運行joint_state_publisher節點,發布機器人的關節狀態 --> <node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher" /> <!-- 運行robot_state_publisher節點,發布tf --> <node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" /> <!-- 運行rviz可視化界面 --> <node name="rviz" pkg="rviz" type="rviz" args="-d $(find mbot_description)/config/mbot_urdf.rviz" required="true" /> </launch>
會有以下報錯
[WARN] [1582867522.390661]: The 'use_gui' parameter was specified, which is deprecated. We'll attempt to find and run the GUI, but if this fails you should install the 'joint_state_publisher_gui' package instead and run that. This backwards compatibility option will be removed in Noetic. [ERROR] [1582867522.392212]: Could not find the GUI, install the 'joint_state_publisher_gui' package [joint_state_publisher-2] process has died [pid 9056, exit code 1, cmd /opt/ros/melodic/lib/joint_state_publisher/joint_state_publisher __name:=joint_state_publisher __log:=/home/vtas/.ros/log/b6cbe59e-59ea-11ea-b2f1-84ef181f5770/joint_state_publisher-2.log]. log file: /home/vtas/.ros/log/b6cbe59e-59ea-11ea-b2f1-84ef181f5770/joint_state_publisher-2*.log
主要解決辦法如下:
1、joint_state_publisher_gui是剛更新出來的包,需要把之前的joint_state_publisher換成joint_state_publisher_gui
sudo apt-get install ros-melodic-joint-state-publisher-gui
如果是kinetic版本的
sudo apt-get install ros-kinetic-joint-state-publisher-gui
2、URDF文件中不能有中文注釋,刪除掉中文注釋;
然后再運行就可以成功打開了。
但是還是存在一個warning
[WARN] [1582868994.395547]: The 'use_gui' parameter was specified, which is deprecated. We'll attempt to find and run the GUI, but if this fails you should install the 'joint_state_publisher_gui' package instead and run that. This backwards compatibility option will be removed in Noetic.
希望看到的人提供一個解決思路,不勝感激。
二更
編譯后不用再重復添加環境變量source的辦法
例如catkin_ws
在/home 文件夾下按ctrl+h顯示隱藏文件
打開 .bashrc
再最后輸入 source+路徑
source /home/vtas/catkin_ws/devel/setup.bash
之后就沒必要每次都source一下了