ROS2学习
ROS1和ROS2的选择
小车型号是HUNTER SE,给的官方教程是使用ROS1操作,但是安装教程过于陈旧,需要使用ubuntu16版本,和ROS KENICT版本,网上说ROS2是兼容ROS1的,而且有更好的性能,所以选择ROS2。
配置ROS2环境记录
环境:ubuntu22.04+vscode
一、安装必要的ROS2工具
网上教程很丰富,采用了直接进入官网下载安装包本地安装,选择代号为rolling的最新版本。
二、配置vscode环境
考虑使用cmake+ament_cmake+colcon构建。
可以使用教程中的ros2 pkg命令创建新的项目,参数可以问chatgpt。
需要的包和工具:
- cmake是多文件编译的基本工具,可以根据CMakeLists.txt自动生成MakeFile文件
- ament_cmake用于辅助ROS2的项目构建,注意这个包不会随着ROS工具集一起下载,需要使用apt-get命令单独安装。
- colcon用于管理ros2的package的工作空间。这个工具是一个vscode插件。colcon基于CMake工作,在调试过程中,可单独使用CMake运行项目,在最终完成项目时,按下ctrl+shift+B,使用colcon build进行package的安装。
需要注意的坑
坑1:装好ROS相关工具之后,无法在命令行使用
- 解决1:每次打开shell前,需要运行命令 可以通过修改shell配置的方法,使得每次打开shell时自动运行该命令。
source /opt/ros/rolling.setup.bash
在文件的末尾加入该命令。vim ~/.bashrc
坑2:ztrl+shift+P,输入Edit Config,配置好c_cpp_preproperties的第三方引用路径之后,代码提示中还是报错,找不到头文件。
- 解决2:在CmakeLists.txt文件中,使用include_directories语句,将需要使用的头文件地址引用。注意,这个语句不会进行递归搜索,所以需要写清楚引用头文件的相对路径。
坑3:习惯性的想使用External consoler,但是launch.json文件配置不成功
- 解决3:没什么办法,想要使用外部终端,只能在外面打开一个新的shell了
坑4:CMake编译运行成功之后,没有install的输出
- 解决4:install的默认路径中的lib,是 $CMAKE_INSTALL_PREFIX的相对路径,需要单独使用make install命令才会有输出。注意需要在cmake ..之后使用,即在CMakeLists.txt的子目录下进行使用。
坑5:CMake编译运行成功,但是使用ros2 run命令找不到package
- 解决5:没有理解colcon的作用,需要先使用colcon build构建工作空间,然后必须运行source install/setup.bat,之后才能找到自定义的package。package的名称,可以在package.pom中设置,executable_name可以在CMakeLists.txt中设置,即导出文件的名称。
ROS2工作原理的初步理解
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.