目前遇到的问题:
1 、包名大写会警告
包名不要出现大写
2、catkin_make前配置环境变量
尤其在更换终端时,一定要再配置一遍环境变量,常见的错误如下
基本上这个错误都是因为没有执行以下命令
source ~/catkinws/devel/setup.bash
3、调用spawn服务
出现报错,对着书敲得也出错了(3.7.1)
ERROR: Incompatible arguments to call service:
Not enough arguments:
正确的参数:
rosservice call /spawn '8.0' '8.0' '0.0' 'turtle2'
4、联机调试小乌龟
按照胡春旭教材的3.9.3,照抄是不行的,正确的命令输入方法
rostopic pub -r 10 /turtle1/cmd_vel geometry_msgs/Twist \
"linear:
x: 0.5
y: 0.0
z: 0.0
angular:
x: 0.0
y: 0.0
z: 0.5"
linear线速度,angular角速度
5、rosbag记录暂停
根据网上的教程,原因:这是由于 ROS tf 的发布时间晚于 topic 的时间,Rviz 在做 msg 的 tf 变换时,默认把过时的 msg 丢掉。为了解决这一问题,可以让系统以 msg 对应的 simulated time 运行,而不是实际的 wall-clock time.
#录制前
$ rosparam set /use_sim_time false
#播放时
$ rosparam set /use_sim_time true
6、ImportError: No module named ‘rospkg’
哪个文件报的错就去哪个文件找,按照网上的教程,这个错误是由于python解释器指定的不准确,打开这个文件会发现指定的是python3,具体是3点几没写明白,给他指定为当前使用的版本就好了
7、exit code 134
不知道什么原因,但这个方法好使
echo "export SVGA_VGPU10=0" >> ~/.bashrc
8、定义srv文件后编译报错
有可能是文件名首字母没有大写,其错误提醒是这样的
将文件名首字母改为大写后别忘记了改CMackelist。
9、Could not find a package configuration file provided by ‘tf2_sensor_msgs’
在编译navigation时提示找不到这个包,找不到有可能是没安装也可能是装了但环境变量不对导致找不到,两种情况都可以通过重新安装到正确位置来解决。以下命令可以安装
sudo apt install ros-melodic-tf2-sensor-msgs
如果这个命令提示无法定位这个包,就去ros官网找,在ros官方地址的后面添加这个包名,https://wiki.ros.org/tf2_sensor_msgs
,跳转到这个页面后能看到官方给出的源码地址,直接下载源码编译就好。