1.首先是安装ros2
这里建议大家在此之前不要安装anconda,anconda与ros总是会有很多的冲突,要调的话很麻烦,这里不建议安装anconda,如果一定要安,可以看一下解决他们冲突的解决办法,我的其他博客也有写。
安装ros2有很多种方法,我这里用的是鱼香ROS的一键安装
wget http://fishros.com/install -O fishros && . fishros
2.下载代码:
这里要感谢下古月居,这里使用的是这位大佬的代码
这里还有古月居的文档
这里十分建议大家直接去看古月居的视频,他带着你很详细的进行这些从ros2的介绍到实现他的项目,我这里更多的是提炼精简,很多详细的我都没有说到。
【古月居】古月·ROS2入门21讲 | 带你认识一个全新的机器人操作系统_哔哩哔哩_bilibili
3.安装插件
然后还需要在你的编程软件上下点插件,我这里用vscode举例,python,c++这些肯定要,还要安装些Ros,intellicode,markdown all in one等插件。
4.创建和编译工作空间
- src,代码空间,未来编写的代码、脚本,都需要人为的放置到这里;
- build,编译空间,保存编译过程中产生的中间文件;
- install,安装空间,放置编译得到的可执行文件和脚本;
- log,日志空间,编译和运行过程中,保存各种警告、错误、信息等日志。
1.创建工作空间
了解了工作空间的概念和结果,接下来我们可以使用如下命令创建一个工作空间,并且下载教程的代码:
$ mkdir -p ~/dev_ws/src
$ cd ~/dev_ws/src
$ git clone https://gitee.com/guyuehome/ros2_21_tutorials.git
2.自动安装依赖
我们从社区中下载的各种代码,多少都会有一些依赖,我们可以手动一个一个安装,也可以使用rosdep工具自动安装:
$ sudo apt install -y python3-pip
$ sudo pip3 install rosdepc
$ sudo rosdepc init
$ rosdepc update
$ cd ..
$ rosdepc install -i --from-path src --rosdistro humble -y
3.编译工作空间
依赖安装完成后,就可以使用如下命令编译工作空间啦,如果有缺少的依赖,或者代码有错误,编译过程中会有报错,否则编译过程应该不会出现任何错误:
$ sudo apt install python3-colcon-ros
$ cd ~/dev_ws/
$ colcon build
编译成功后,就可以在工作空间中看到自动生产的build、log、install文件夹了。
4.设置环境变量
编译成功后,为了让系统能够找到我们的功能包和可执行文件,还需要设置环境变量:
$ source install/local_setup.sh # 仅在当前终端生效
$ echo " source ~/dev_ws/install/local_setup.sh" >> ~/.bashrc # 所有终端均生效
至此,我们就完成了工作空间的创建、编译和配置。
这部分的内容强烈建议看一下古月居的第六节的部分,他有进行实际的操作,能带着你做。因为这部分使用命令的时候,要注意所在的目录,不然在build等地方的时候容易出错。
5.创建功能包
如何在ROS2中创建一个功能包呢?我们可以使用这个指令:
$ ros2 pkg create --build-type <build-type> <package_name>
ros2命令中:
- pkg:表示功能包相关的功能;
- create:表示创建功能包;
- build-type:表示新创建的功能包是C++还是Python的,如果使用C++或者C,那这里就跟ament_cmake,如果使用Python,就跟ament_python;
- package_name:新建功能包的名字。
比如在终端中分别创建C++和Python版本的功能包:
$ cd ~/dev_ws/src
$ ros2 pkg create --build-type ament_cmake learning_pkg_c # C++
$ ros2 pkg create --build-type ament_python learning_pkg_python # Python
编译功能包
在创建好的功能包中,我们可以继续完成代码的编写,之后需要编译和配置环境变量,才能正常运行:
$ cd ~/dev_ws
$ colcon build # 编译工作空间所有功能包
$ source install/local_setup.bash
6.后续步骤可以参考这位大佬的内容
ubutu下ros2实现小车仿真建模与目标检测_周杰纶的博客-CSDN博客
跟着往下接着做就行。