运行环境:VmWare虚拟机,ubuntu18.04环境,已经安装了ROS。
问题一:
第一次打开gazebo,运行rosrun gazebo_ros gazebo
后显示下面内容,并且gazebo黑屏闪退。
[ INFO] [1650682393.297890133]: Finished loading Gazebo ROS API Plugin.
[ INFO] [1650682393.298844095]: waitForService: Service [/gazebo/set_physics_properties] has not been advertised, waiting...
Error setting socket option (IP_ADD_MEMBERSHIP).
Error setting socket option (IP_ADD_MEMBERSHIP).
Error setting socket option (IP_ADD_MEMBERSHIP).
Error setting socket option (IP_ADD_MEMBERSHIP).
[ INFO] [1650682394.312187532, 0.002000000]: waitForService: Service [/gazebo/set_physics_properties] is now available.
[ INFO] [1650682394.326282592, 0.014000000]: Physics dynamic reconfigure ready.
VMware: vmw_ioctl_command error 无效的参数.
Aborted (core dumped)
解决方法:
第一步:
(好像不需要这一步)
原因:有文章说是gazebo中没有模型,会联网从官网上查找模型,但是联网一般会失败。直接将模型下载到本地即可解决。
方法:打开主文件夹下.gazebo
文件夹,新建文件夹models
,下载GitHub上的模型。
cd ~/.gazebo
mkdir -p models
cd models
git clone https://github.com/osrf/gazebo_models.git
第二步:
对于VMware: vmw_ioctl_command error 无效的参数.
的解决方法:
export SVGA_VGPU10=0
为了永久解决,也可以写入~/.bashrc
文件。
echo "export SVGA_VGPU10=0" >> ~/.bashrc
至此,第一次打开Gazebo黑屏和闪退问题已经解决。在终端输入gazebo
或rosrun gazebo_ros gazebo
都可以成果打开gazebo,也可以在里面放置模型。
问题二:
首次运行roslaunch gazebo_ros empty_world.launch
时,出现 [Err] [REST.cc:205] Error in REST request 的红色警告错误,如下图。
解决方法:
这里需要修改.ignition/fuel/config.yaml
文件,将该文件中的url : https://api.ignitionfuel.org
注释掉,添加url: https://api.ignitionrobotics.org
。如下图所示。
再次运行roslaunch gazebo_ros empty_world.launch
,gazebo可正常打开且不报错。
参考:https://blog.csdn.net/weixin_42237861/article/details/123975426
问题三
运行古月居编写的《ROS机器人开发实践》一书中的机器人模型代码时,运行roslaunch mrobot_description arbotix_mrobot_with_laser.launch
时,出现报错如下:
ERROR: cannot launch node of type [arbotix_python/arbotix_driver]: arbotix_python
ROS path [0]=/opt/ros/melodic/share/ros
ROS path [1]=/home/amov/Tony_Peng/huchunxu/ros-exploring/src
ROS path [2]=/home/amov/Prometheus/Modules/common/msgs
ROS path [3]=/home/amov/Prometheus/Modules/control
ROS path [4]=/home/amov/Prometheus/Modules/object_detection
ROS path [5]=/home/amov/Prometheus/Modules/mission
ROS path [6]=/home/amov/Prometheus/Modules/slam
ROS path [7]=/home/amov/Prometheus/Modules/planning
ROS path [8]=/home/amov/Prometheus/Modules/ground_station
ROS path [9]=/home/amov/Prometheus/Simulator/gazebo_simulator
ROS path [10]=/home/amov/Prometheus/Experiment
ROS path [11]=/home/amov/realsense_ws/src
ROS path [12]=/opt/ros/melodic/share
解决方法
原因:该launch
文件中添加了ArbotiX控制器,他是一款可以控制电机、舵机的控制板。
方法:安装ArbotiX。
sudo apt-get install ros-melodic-arbotix-*
重新启动launch
文件,可以成功运行。
问题四
运行键盘控制小车移动,即将键盘按键转化为/cmd_vel
话题发布,出现如下错误。
ERROR: cannot launch node of type [mrobot_teleop/mrobot_teleop.py]: Cannot locate node of type [mrobot_teleop.py] in package [mrobot_teleop]. Make sure file exists in package path and permission is set to executable (chmod +x)
解决方法
原因:文件mrbot_teleop.py
权限不够,无法打开。
方法:安装提示,予以权限。进入到mrbot_teleop.py
文件的目录中,输入:
chmod +x mrbot_teleop.py
重新运行launch
文件即可成功。