ARM技术论坛
直播中

张丽

7年用户 1500经验值
私信 关注
[经验]

教你一步步创建自己的ROS2工作空间应用

一、开发环境的搭建

请根据自己的情况完成X3派系统的安装、网络的配置以及TROS的部署,相关资料可以查阅官方文档,相信大家也都比较熟悉了。

1、以【root】身份SSH登录到X3派

登录密码为:root,IP地址替换为自己的实际IP地址。

ssh root@192.168.31.192

2、在X3派中执行下面的命令脚本进行系统的更新以及ROS2编译环境依赖安装

apt -y update && apt -y full-upgrade && apt-get install -y python3-catkin-pkg && pip install empy && pip install -U colcon-common-extensions

二、创建ROS2工作空间

知识点:在ROS中,一个工作空间可以包含很多的功能包。

1、通过下面的命令脚本创建工作空间,比如我希望把工作空间放到/opt/workspace/geek_tros路径

mkdir -p /opt/workspace/geek_tros

2、进入到刚刚创建好的工作空间中

cd /opt/workspace/geek_tros

3、加载启动ROS2环境

知识点:该命令的目的是将ROS2环境加入到bash中,可以理解为配置ROS2环境变量的过程,这样我们才能在后面正常使用ros2的相关命令。值得注意的是这个方式只在当前登录的命令行终端生效,当我们每次退出登录或者关闭命令行终端再次进入时都需要重新执行这条命令脚本。

source /opt/tros/setup.bash

三、创建一个ROS2功能包

1、通过下面命令创建名为example_package的功能包,通过这个功能包实现简单的人体检测功能

知识点:ros2 pkg create是创建功能包的命令,example_package为功能包的名称(可以自己取名),命令中的--build-type参数为功能包的编译方式,--dependencies参数为功能包关联的相关依赖库,其中rclcpp和sensor_msgs均为ROS2官方提供库,dnn_node为地平线的AI推理库。

ros2 pkg create example_package --build-type ament_cmake --dependencies rclcpp sensor_msgs dnn_node

2、通过下面的命令脚本创建功能包的程序文件:example.cpp,也可以自己取名

touch /opt/workspace/geek_tros/example_package/src/example.cpp

四、开发工具

接下来就是代码的编写工作了,这里使用CLion作为我们的后续的开发工具,我们将借助CLion的远程开发方式进行功能包的程序开发。

1、下载并安装Clion

2、再本地电脑中找一个位置用于存放功能包的源码

例如我的是【D:\GeekROS\geek_tros\】,使用Clion打开这个目录。

1.png

3、点击Clion的【File】->【Settings】

2.png

4、在弹出的窗口中依次选择【Toolchains】->【+】->【Remote Host】

3.png

5、选择【Remote Host】后的界面如下,其中【Name】自己取一个,然后点击【齿轮】按钮

4.png

6、再弹出的窗口中选择【+】,根据图示填写X3派的远程主机连接相关配置信息,点击【OK】

5.png

7、配置成功后会看到如下图所示的信息,点击【OK】

6.png

8、根据下图所示,打开远程主机的文件游览器

7.png

9、在弹出的界面中,通过下拉菜单选择刚刚配置的远程主机

8.png

10、选择后你会看到X3派远程主机上的文件资源

9.png

11、点击Clion的【File】->【Settings】,在弹出的窗口按照下图所示选择X3派中的ROS2工作空间

10.png

11.png

12、进行本地程序和X3派远程程序的上传和下载操作

12.png

13、按照上图的三步操作可以将X3派的程序下载到本地电脑进行代码编写

13.png

14、你也可以使用CLion中的命令行工具直连X3派进行命令行的调试

14.png

原作者:MakerYang

更多回帖

发帖
×
20
完善资料,
赚取积分