2

ROS编译和运行问题

 8 months ago
source link: https://charon-cheung.github.io/2023/12/20/ROS/ROS%20Kinetic%E7%9F%A5%E8%AF%86/ROS%E7%BC%96%E8%AF%91%E5%92%8C%E8%BF%90%E8%A1%8C%E9%97%AE%E9%A2%98/#Rviz%E5%90%AF%E5%8A%A8%E5%A4%B1%E8%B4%A5
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
ROS编译和运行问题
2023-12-20|ROSROS Kinetic知识|
Word count: 794|Reading time: 3 min

运行时节点出现报错

user@user:~/nav$ rosrun test test_node
/opt/ros/noetic/bin/rosrun: line 150: /home/isward/isward_ii_ws/devel/lib/test/test_node: Success

roscore报错

安装完ROS后,运行roscore报错

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

在一堆报错的最后是:

InvalidURL: URL can't contain control characters. '192.168.1.35 ' (found at least ' ')


看上去是IP最后多了个空格,改了MASTER_URI不起作用,最后发现问题是ROS_IPROS_HOME,不要再写成hostname -I,写成192.168.1.35

roscore报错 3

roscore启动失败


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

rosbash出错

rosbash出错


source setup.bash出现的错误,发现我用的是zsh,换了之后正常

rosdep init 报警

rosdep init


这是因为之前运行过了,可以无视这个问题

[rosrun] Couldn’t find executable named ……

30805780148_db59e627f5_b.jpg

rosrun出错

44676479061_f26db9633a_b.jpg


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

31877502238_b9bbbfaa4a_b.jpg


对用到的某个文件没有给权限,找到执行chmod 755即可

rosnode list无结果

roscorerosrun可以正常运行,但是rosnode list只有rosoutrostopic list没有任何话题。无法用命令对节点和话题操作,可能是通信问题。原因不明,重启电脑后正常。

编译rviz出错

46407510602_e90cfbd218_b.jpg


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

Lost sync with device, restarting

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

rqt报错

ajfGJtCEVAoMqrh.png
后来明白,原因是发布坐标系的节点在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报错

BbpQ7vYgKh2IuyL.png


这个文件是存在的,和其他电脑上正常的Rviz对应的文件路径相同。一直查不到原因,在网上查来查去,反复查ogre这个库是不是装的出问题了,还以为是OpenGL版本变高了,其实这是显卡决定的。最后终于发现链接的librviz.so不是官方路径的,而是我自己工作空间的。可以先用官方的替换


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK