问题1:No transform from [right_wheel] to [map]
原因是没有开启joint节点,但我查看错误发现,我两个节点(joint,robot)都没有开启。需要安装package,安装指令为:
sudo apt-get install ros-noetic-robot-state-publisher
sudo apt-get install ros-noetic-joint-state-publisher-gui
问题2:无法保存rviz配置文件
在unbuntu系统中,home主文件夹外的文件访问、修改等操作是需要权限的,而rviz配置文件default.rviz
建立在home主文件夹外,因此需要添加权限。
可以用ll
命令查看当前路径下的文件权限,信息如下:
我们需要赋予其他人的权限,可以使用如下命令增加权限,注意必须使用sudo
:
sudo chmod o=rwx default.rviz
u,g,o分别代表文件使用者、同组者和其他人。
问题3:无法显示joint_state_publisher_gui—滑块
查看安装包,使用命令rospack list | grep joint
,发现joint_state_publisher_gui
已经安装了,但同时也安装了joint_state_publisher
。猜想会不会系统仍然启动了后者,而不是前者。
使用ROS命令roslaunch ros_robotics ddrobot_rviz.launch model:=dd_robot5.urdf gui:=True
启动后,再使用命令rosnode list
,发现启动了以下节点:
/joint_state_publisher
/robot_state_publisher
/rosout
/rviz
显然,并没有启动/joint_state_publisher_gui
。
我们需要启动这个节点,因此需要在ddrobot_rviz.launch
的修改需要启动的节点。
只要把joint_state_publisher
修改为joint_state_publisher_gui
即可。修改之后,可以看到滑块已经出现了,说明joint_state_publisher_gui
正常启动。此时运行的节点为:
/joint_state_publisher_gui
/robot_state_publisher
/rosout
/rviz
问题4:找不到empty_world.launch文件
使用指令roslaunch gazebo_ros empty_world.launch
,使用失败,因为我根本没有这个文件。这个文件应该是在gazebo文件夹下的,其路径为/usr/share/gazebo-9/worlds
。
但不是上面的原因,问题在于"gazebo_ros",我没有安装必要的组件,须执行以下命令:
sudo apt install ros-noetic-gazebo-ros-pkgs
安装完后,“gazebo_ros”会出现在/opt/ros/noetic/share
。