运行时节点出现报错
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.