专栏系列文章如下:
一.开发记录之AHRS、惯导传感器SBG-Ellipse-N传感器配置和使用_goldqiu的博客-CSDN博客_sbg传感器数据格式
二.开发记录之派勤工控机远程使用和ubuntu和ROS环境配置_goldqiu的博客-CSDN博客
三.开发记录之移动硬盘装ubuntu系统的配置、环境、各类软件安装和备份等_goldqiu的博客-CSDN博客
这篇主要是讲在ubuntu18.04安装ros-melodic
安装ROS
选择清华源
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
sudo apt update
sudo apt install ros-melodic-desktop-full
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
sudo rosdep init
rosdep update
sudo rosdep init 出现
ERROR: cannot download default sources list from:
第一步:
首先进入
https://github.com/ros/rosdistrogithub.com/ros/rosdistro
去把这个包下载下来。
第二步:
修改这个包中rosdep/source.list.d/下的文件20-default.list,将这个文件中指向http://raw.githubusercontent.com的url地址全部修改为指向本地文件的地址,也就是该下载好的包的地址,以下是改好的样例:
# os-specific listings first
yaml file:///home/xxx/rosdistro/rosdep/osx-homebrew.yaml osx
# generic
yaml file:///home/xxx/rosdistro/rosdep/base.yaml
yaml file:///home/xxx/rosdistro/rosdep/python.yaml
yaml file:///home/xxx/rosdistro/rosdep/ruby.yaml
gbpdistro file:///home/xxx/rosdistro/releases/fuerte.yaml fuerte
# newer distributions (Groovy, Hydro, ...) must not be listed anymore, they are being fetched from the rosdistro index.yaml instead
注意:在py语言中:url本地文件地址格式是:file://+文件地址,后面更改其他文件中地址的时候也一样。
第三步:
修改/usr/lib/python2.7/dist-packages/rosdep2该文件夹下面的sources_list.py文件,如下:
# default file to download with 'init' command in order to bootstrap
# rosdep
DEFAULT_SOURCES_LIST_URL = 'file:///home/xxx/rosdistro/rosdep/sources.list.d/20-default.list'
# seconds to wait before aborting download of rosdep data
第四步
修改以下两个文件里面的代码:
/usr/lib/python2.7/dist-packages/rosdep2/rep3.py
/usr/lib/python2.7/dist-packages/rosdistro/init.py
下面是分别修改后的样例:
/usr/lib/python2.7/dist-packages/rosdep2/rep3.py文件:
# location of targets file for processing gbpdistro files
REP3_TARGETS_URL = 'file:///home/xxx/rosdistro/releases/targets.yaml'
# seconds to wait before aborting download of gbpdistro data
/usr/lib/python2.7/dist-packages/rosdistro/init.py的文件:
# index information
DEFAULT_INDEX_URL = 'file:///home/xxx/rosdistro/index-v4.yaml'
def get_index_url():
然后进行sudo rosdep init :
安装ros开发环境
官网下载deb
https://code.visualstudio.com/docs/?dv=linux64_deb
sudo dpkg -i xxxx.deb
安装这些插件
创建工作空间:
mkdir -p test_ws/src
cd test_ws/
catkin_make
code .
vscode 中编译 ros:
快捷键 ctrl + shift + B 调用编译,选择:catkin_make:build
或修改.vscode/tasks.json 文件
{
// 有关 tasks.json 格式的文档,请参见
// https://go.microsoft.com/fwlink/?LinkId=733558
"version": "2.0.0",
"tasks": [
{
"label": "catkin_make:debug", //代表提示的描述性信息
"type": "shell", //可以选择shell或者process,如果是shell代码是在shell里面运行一个命令,如果是process代表作为一个进程来运行
"command": "catkin_make",//这个是我们需要运行的命令
"args": [],//如果需要在命令后面加一些后缀,可以写在这里,比如-DCATKIN_WHITELIST_PACKAGES=“pac1;pac2”
"group": {"kind":"build","isDefault":true},
"presentation": {
"reveal": "always"//可选always或者silence,代表是否输出信息
},
"problemMatcher": "$msCompile"
}
]
}
创建 ROS 功能包
选定 src 右击 ---> create catkin package
设置包名 添加依赖
添加cpp
/*
控制台输出 HelloVSCode !!!
*/
#include "ros/ros.h"
int main(int argc, char *argv[])
{
setlocale(LC_ALL,"");
//执行节点初始化
ros::init(argc,argv,"HelloVSCode");
//输出日志
ROS_INFO("Hello VSCode!!!");
return 0;
}
如果没有代码提示:
修改 .vscode/c_cpp_properties.json
设置 "cppStandard": "c++17"
配置 CMakeLists.txt:
add_executable(节点名称
src/C++源文件名.cpp
)
target_link_libraries(节点名称
${catkin_LIBRARIES}
)
目前这里好像会出节点tab不到的情况,执行这一句后可以了
rospack list
后面单独出一个ROS或者cmake项目调试的,用QT、Vscode或clion。
QT更常用来qmake做UI,clion则是cmake,Vscode则是cmake和ros比较方便