为了方便后续遇到相关问题的小伙伴少走弯路,故写此教程,与人方便即方便自己
问题1:[rosrun] Couldn’t find executable
需要更改你所运行的文件属性,改为可执行文件
问题二:Kinetic和Melodic版本区别
问题三:加载新的工作包需要更新包依赖
安装相关包所需的依赖
$ cd ~/catkin_ws
$ rosdep install --from-paths src --ignore-src --rosdistro=melodic -y
编译并刷新环境
$ catkin_make
$ source ~/catkin_ws/devel/setup.bash
如果有:$ echo “source ~/catkin_ws/devel/setup.bash” >> ~/.bashrc
如果在您的 ~/.bashrc中已经有了以上语句,直接运行:
$ source ~/.bashrc
查看该文件:sudo gedit ~/.bashrc
问题四:关于Gazebo [Err] [REST.cc:205] Error in REST request 问题的解决
解决方案:
$ sudo gedit ~/.ignition/fuel/config.yaml
然后将 url : https://api.ignitionfuel.org 用 # 注释掉
添加 url: https://api.ignitionrobotics.org
问题五:gazebo: symbol lookup error
/usr/lib/x86_64-linux-gnu/libgazebo_common.so.9: undefined symbol: _ZN8ignition10fuel_tools12ClientConfig12SetUserAgentERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
解决方法:更新软件包
运行一下:sudo apt upgrade
查看环境变量
$ echo $ROS_PACKAGE_PATH
编译工作空间和包问题
编译指定包
catkin_make -DCATKIN_WHITELIST_PACKAGES=“package1;package2”
但是我之后想编译所有包的时候用catkin_make指令,但是这个时候还是只能编译我之前的指定包。
通过输入catkin_make -DCATKIN_WHITELIST_PACKAGES=""之后可以成功恢复编译所有包的配置。
catkin_make clean
将ros空间中的所有编译经过清空,相当与删除devel和build文件夹,在执行这个步骤前需要慎重。
ROS 多机通讯设置
主机设置
$ sudo nano /etc/hosts
在第三行添加 从机的IP地址 (cuser代表从机名 ip可通过ifconfig查看)
192.168.1.116 cuser
从机设置
$ sudo nano /etc/hosts
在第三行添加 主机的IP地址 (muser代表主机名 ip可通过ifconfig查看)
192.168.1.104 muser
主从机分别使用ping 命令测试网络
$ ping cuser
$ ping muser
检查网络通讯是否正常
主机设置ROS_IP
$ echo "export ROS_IP=192.168.1.104">> ~/.bashrc
从机设置ROS_IP和ROS_MASTER_URI
$ echo "export ROS_IP=192.168.1.116">> ~/.bashrc #设置从机名ip
$ echo "export ROS_MASTER_URI=http://muser:11311">> ~/.bashrc #muser代表主机名 配置为使用同一个master
rviz Error - Global Status 解决方法
Ubuntu18 下的rviz打开后,报错“rviz Error - Global Status”
解决方法,打开终端输入:
rosrun tf static_transform_publisher 0.0 0.0 0.0 0.0 0.0 0.0 map my_frame 100
但模型还是没出来,把rviz菜单栏中的Fixed Frame的map改为base_link
点击Add 选择RobotModel