系列文章目录
麦轮小车的基本环境使用(1)
麦轮小车的基本环境使用(2)
麦轮小车的基本环境使用(3)
ROS空间移植记录(一)
ROS空间移植记录(二)
ROS空间移植记录(三)
ROS空间移植记录(四)
ROS空间移植记录(五)
文章目录
前言
本篇将延续上一篇继续讲述运行环境的搭建,如ROS核心自启动,开启键盘控制可能会出现的错误,以及一些可能会遇到的错误。
(因为是很久之前做的学习和移植记录,所以不够完备,欢迎讨论
一、ROS核心自启动
方便ROS工作空间的使用,不需要手动开启ROS核心。
方法一:开机自运行(推荐)
1.1.ROScore.sh
sudo nano ROScore.sh
在文件中写下内容:
#! /bin/bash
#将系统的ros环境变量加入
source /opt/ros/indigo(对应的ROS版本名称)/setup.bash
roscore
在桌面终端运行:
gnome-session-properties
点击添加Add,然后在name对应填空中输入任意名称
然后在command对应的填空填下sh文件的地址,然后add增加
图一
注意:需要把当前账号设置为自登录,在麦轮小车的基本环境使用(3)末尾片段之中有讲述,不在赘述。
方法二:
ROS官方方法实现开机启动
1.2.1安装(对应ROS版本,如:melodic版本)
cd catkin_ws/src
git clone https://github.com/clearpathrobotics/robot_upstart.git
cd …
catkin_make
1.2.2 设置某个Package的launch文件为开机启动
假设需要启动功能包myrobot_bringup下的base.launch文件,运行如下命令:
rosrun robot_upstart install myrobot_bringup/launch/base.launch
默认下次启动时生效。其中myrobot 会被自动识别为service名,示例中service名就是myrobot。
1.2.3.service 手动启动和停止
sudo service myrobot start #启动服务
sudo service myrobot stop #关闭服务
1.2.4 查看log
sudo tail /var/log/upstart/myrobot.log -n 30
参考:
博客(方法和描写都相似,过程操作说法略有不同,可以一起理解):
https://blog.csdn.net/qq_38441692/article/details/104187378(推荐先看)
https://blog.csdn.net/crp997576280/article/details/108272412
https://blog.csdn.net/weixin_53293018/article/details/117320108
二、可能遇到的问题
2.1.ModuleNotFoundError: No module named 'em’解决办法
解决方法:
pip install empy
2.2.catkin_make出现 No module named ‘catkin_pkg’
解决方法:
pip install --user catkin_pkg
pip install --user rosdep rosinstall_generator wstool rosinstall six vcstools
pip install --user pydot
2.3.roslaunch dlrobot_robot_rc keyboard_teleop.launch运行问题,即运行键盘控制可能出现问题
2.3.1 ModuleNotFoundError: No module named ‘yaml‘
解决方法:
pip install pyyaml
2.3.2 ModuleNotFoundError: No module named ‘rospkg‘
解决方法:
pip install rospkg
2.3.3 Cache entry deserialization failed, entry ignored
解决方法:
通过删除pip
缓存来解决
rm -rf ~/.cache/pip
2.3.4 ERROR: cannot launch node of type gmapping/slam_gmapping]: gmapping
解决方法:
sudo apt-get install ros-melodic(ROS相关版本)-gmapping
总结
以上就是今天要讲的内容,延续上一篇继续讲述运行环境的搭建,提供如搭建ROS核心自启动环境,开启键盘控制可能会出现的错误,以及一些可能会遇到的错误的解决方法。