一、ROS创建一个新的工作空间和功能包
mkdir -p ~/my_ws/src
cd ~/my_ws/src
catkin_init_workspace
catkin_create_pkg xxx roscpp rospy std_msgs
1、指定功能包编译:
括号里什么都不填的话就是文件夹整体编译
catkin_make这个缩句,一般会默认执行之前执行的命令
catkin_make -DCATKIN_WHITELIST_PACKAGES="功能包名"
2、解除指定功能包编译:
catkin_make -DCATKIN_WHITELIST_PACKAGES=""
3. 查看工作空间的目录结构
tree src
二、如何使用一个完整qt功能包
1、新建src目录,将功能包放入
2、在工作空间下编译
catkin_make
3.刷新环境变量
source ./devel/setup.bash
4.在qt中打开src下的cmakelist(与功能包同级别的)
三、编译时有文件缺失
执行命令
sudo apt install ros-melodic-<缺失的包>
四、将双系统下的VS包拷贝一个新的虚拟机后配置运行
报错1:libcurl: (51) SSL: no alternative certificate subject name matches target host name 'api.ignitionfuel.org'
解决:
sudo gedit ~/.ignition/fuel/config.yaml
将https://api.ignitionfuel.org
替换为https://fuel.ignitionrobotics.org
报错2:
UnicodeEncodeError: ‘ascii‘ codec can‘t encode characters in position 1101-1121: ordinal not in rang
解决:
参考ascii报错
报错3(虚拟机):无法运行ubuntu自带的gazebo仿真器报VMware: vmw_ioctl_command error 无效的参数
解决:
关闭虚拟机的加速3D,参考虚拟机上无法运行ubuntu自带的gazebo仿真器报VMware: vmw_ioctl_command error 无效的参数
报错4:测试ROS分布式通信后gazebo的launch文件无法启动 RLException: Unable to contact my own server at [http://192.168.1.110:45207/].
解决:
修改文件.bashrc中的内容,在末尾添加
export ROS_HOSTNAME=localhost
export ROS_MASTER_URI=http://localhost:11311
执行命令:source ./bashrc 更新 .bashrc
五、ROS刷新环境变量
1、在home文件夹下
source ~/.bashrc
2、在功能包下
source ./devel/setup.bash
六、常见编辑器的使用
1、vim编辑器
一开始进入 vim 编辑器不能直接修改文本内容的。
- 需要按下“i”切换成“insert”(文档的右下角),然后才可以输入;
- 按下“Esc”又切换回只读模式,在更改完文本需要退出时,切换回只读模式;
- 然后输入:(这里是需要输入一个冒号),再输入指令,其中“:q”是退出,“:wq”是保存然后退出。
(如果更改了内容但是想不保存退出是“:q!”,如果是正在使用的文件想强制保存退出是“:wq!”)
图1 退出vim编辑器
2、nano编辑器
nano 编辑器与 vim 编辑器不同,进入 nano 编辑器后是可以直接修改文本内容的。
- 修改完之后需要保存,按下“ctrl+o”,这时会显示文件名字,如果不修改文件名字就按下回车,这时文件已经保存好了
- 退出编辑器按“ctrl+x”
图 2 nano 编辑器提示保存的文件名
七、ubuntu卸载软件
1.软件安装
(1)deb文件安装
在deb文件所在文件夹下打开终端,运行以下命令,将其中的name替换为文件名
sudo dpkg -i name.deb
(2)文件操作
tar -xzvf name.tar.gz //解压tgz文件
2. 软件卸载
(1)apt-get 方式卸载
卸载mysql为例:
sudo apt-get remove mysql# 只是卸载,保留配置
sudo apt-get --purge remove mysql# 彻底清除,包括配置
sudo apt-get purge mysql# 彻底清除
(2)dpkg方式卸载
卸载mysql为例:
sudo dpkg -r mysql # 只是卸载,保留配置
sudo dpkg -r mysql# 彻底清除,包括配置
sudo dpkg --purge mysql# 彻底清除,包括配置
八、安装gazebo9.0.0
1、先卸载干净
sudo apt-get remove gazebo*
sudo apt-get remove libgazebo*
sudo apt-get remove ros-melodic-gazebo*
2、安装的特定依赖项版本
sudo apt update
sudo apt install gazebo9=9.0.0+dfsg5-3ubuntu1+ppa2 libgazebo9=9.0.0+dfsg5-3ubuntu1+ppa2 gazebo9-common=9.0.0+dfsg5-3ubuntu1+ppa2
九、安装protobuf3.0.0
1、先卸载干净
which protoc
# protoc: /usr/bin/protoc
rm -rf /usr/bin/protoc
sudo rm -rf /usr/include/google/protobuf #头文件
sudo rm -rf /usr/local/include/google/protobuf #头文件
sudo rm -rf /usr/lib/libproto* #库文件
sudo rm -rf /usr/local/lib/libproto* # 库文件
2、安装
git clone https://github.com/protocolbuffers/protobuf/tree/v3.0.0
cd protobuf-3.30
./autogen.sh #执行这一步会失败,原因是少个gmock-1.7.0.zip文件
2.1 解决文件缺失的问题
直接克隆下来
git clone https://github.com/paulsapps/gmock-1.7.0
将clone下来的文件夹改名为gmock,然后讲此文件夹复制到./autogen.sh同级目录下,并修改./autogen.sh文件
# 注释掉此部分,此部分内容就是下载文件->解压->修改文件夹名的步骤,上面已经做过了
# Check that gmock is present. Usually it is already there since the
# directory is set up as an SVN external.
#if test ! -e gmock; then
# echo "Google Mock not present. Fetching gmock-1.7.0 from the web..."
# curl $curlopts -O https://googlemock.googlecode.com/files/gmock-1.7.0.zip
# unzip -q gmock-1.7.0.zip
# rm gmock-1.7.0.zip
# mv gmock-1.7.0 gmock
#fi
2.2 继续进行编译
./autogen.sh
./configure CFLAGS="-fPIC" CXXFLAGS="-fPIC"
make
sudo make install
sudo ldconfig #更新动态链接缓存
3、查看版本号
protoc --version
十、文件夹操作
1.系统文件夹操作
以管理员权限打开文件管理器进行复制粘贴
sudo nautilus
2.复制文件
sudo cp -r /home/shangjia/xxx /usr/share/xxx
3.删除文件
sudo rm -r /usr/share/xxx
十二、清理垃圾
如何在Ubuntu上清理缓存和垃圾文件_ubuntu垃圾清理-CSDN博客
清理临时文件
sudo rm -rf /tmp/*
清理用户缓存
rm -rf ~/.cache/*
清理用户家目录下的缓存文件:
rm -rf ~/.cache/*
清理日志文件
sudo rm -rf /var/log/*.gz