运行时节点出现报错
1 | user@user:~/nav$ rosrun test test_node |
roscore报错
安装完ROS后,运行roscore报错1
Traceback (most recent call last): File "/opt/ros/groovy/lib/python2.7/dist-packages/roslaunch/__init__.py", line 230, in main write_pid_file(options.pid_fn, options.core, options.port) File "/opt/ros/groovy/lib/python2.7/dist-packages/roslaunch/__init__.py", line 106, in write_pid_file with open(pid_fn, "w") as f: IOError: [Errno 13] Permission denied: '/home/user/.ros/roscore-11311.pid'
注意rosdep update不要用sudo,解决方法:sudo rosdep fix-permissions,然后rosdep update
roscore报错 2
在一堆报错的最后是:1
InvalidURL: URL can't contain control characters. '192.168.1.35 ' (found at least ' ')
看上去是IP最后多了个空格,改了MASTER_URI不起作用,最后发现问题是ROS_IP 和 ROS_HOME,不要再写成hostname -I,写成192.168.1.35
roscore报错 3

原因是因为ROS1支持的是Python2.7,而我之前将Ubuntu自带的Python升级到了3.8,也就是默认版本改变了,所以导致了相关的错误。 解决方法
改回来之后,有些程序可能还是需要python3.8,这时运行python3.8 file.py,可能会报错no module named rospkg 和 no module named pydot,所以需要pip install rospkg pydot
rosbash出错

source setup.bash出现的错误,发现我用的是zsh,换了之后正常
Network communication failed
执行ROS命令结果报错 Network communication failed 
这可能是当前用户没有这个权限,切换到root再试试
rosdep init 报警

这是因为之前运行过了,可以无视这个问题
[rosrun] Couldn’t find executable named ……

rosrun出错

环境变量没设置好,应当是IP和端口组合
编译出错

对用到的某个文件没有给权限,找到执行chmod 755即可
rosnode list无结果
roscore和rosrun可以正常运行,但是rosnode list只有rosout,rostopic list没有任何话题。无法用命令对节点和话题操作,可能是通信问题。原因不明,重启电脑后正常。
编译rviz出错

没有安装yaml-cpp或者版本不对,因为rviz读取PersistentSettings文件时需要这个库,下载0.5.1版本的yaml,把之前安装的yaml删掉,重新编译安装。编译生成的几个文件在/usr/local/lib和/usr/local/include,如果找不全,就先用现在的版本再编译一遍就知道了
Lost sync with device, restarting

启动bringup.launch,偶尔会出现这个错误,这是下位机和ROS通讯失败造成的,报错在rosserial,很少发生
rqt报错

后来明白,原因是发布坐标系的节点在ubuntu 20.04,rqt在ubuntu 18
rqt_tf_tree运行失败
运行rqt_tf_tree,会出现 wait_for_service(/rqt_gui_py_node/tf2_frames), failed to contact ,will keep trying , rqt_tf_tree一直打不开。
原因是IP变动的问题,重新设置IP地址,最好主机与从机都设置为静态ip。
Rviz启动失败
一次没操作好,导致Rviz报错
这个文件是存在的,和其他电脑上正常的Rviz对应的文件路径相同。一直查不到原因,在网上查来查去,反复查ogre这个库是不是装的出问题了,还以为是OpenGL版本变高了,其实这是显卡决定的。最后终于发现链接的librviz.so不是官方路径的,而是我自己工作空间的。可以先用官方的替换
执行任何ROS命令报一堆错

硬盘空间耗尽
编译报错
1 | The build space at '/home/user/catkin_ws/build' was previously built by ''. Please remove the build space or pick a different build space. |
原因是硬盘空间耗尽
Unable to communicate with master
执行任何ROS命令都会报错 Unable to communicate with master
已经运行了ROS节点,结果发现什么ROS命令都会报这个错,后来终于发现,启动节点的环境变量是一套,后来改了,ROS命令都报这个错误。注意ROS_IP如果使用名称而不是数字,必须是/etc/hosts里定义的。
Rviz一个关于时间戳的报错,不必理会 Detected jump back in time of 0.223145s. Clearing TF buffer.
