ros2的hello工程

第一步:在任意一个目录下创建功能包

ros2 pkg create --build-type ament_cmake ros2_demo --dependencies rclcpp std_msgs

ros2 pkg create --build-type ament_python learning_pkg_python # Python

ros2命令中:
pkg:表示功能包相关的功能;
create:表示创建功能包;
build-type:表示新创建的功能包是C++还是Python的,如果使用C++或者C,那这里就跟ament_cmake,如果使用Python,就跟ament_python
package_name:新建功能包的名字。比如在终端中分别创建C++和Python版本的功能包:

第二步:确定功能包,会在当前目录下生成一个名为ros2_demo的功能包。目录架构如下:

1、c/c+++功能包

首先看下C++类型的功能包,其中必然存在两个文件:package.xml和CMakerLists.txt。

package.xml文件的主要内容如下,包含功能包的版权描述,和各种依赖的声明。

CMakeLists.txt文件是编译规则,C++代码需要编译才能运行,所以必须要在该文件中设置如何编译,使用CMake语法。

第三步:在src目录下创建节点文件sub_node.cpp

#include <chrono>
#include "rclcpp/rclcpp.hpp"
using namespace std::chrono_literals;
/* This example creates a subclass of Node and uses a fancy C++11 lambda
 * function to shorten the timer syntax, at the expense of making the
 * code somewhat more difficult to understand at first glance if you are
 * unaccustomed to C++11 lambda expressions. */
class MinimalTimer : public rclcpp::Node
{
public:
    MinimalTimer(): Node("minimal_timer")
    {
        auto timer_callback = [this]()-> void { RCLCPP_INFO(this->get_logger(),"Hello, world!");};
        timer_ = create_wall_timer(500ms, timer_callback);
    }
private:
    rclcpp::TimerBase::SharedPtr timer_;
};
int main(int argc, char * argv[])
{
  rclcpp::init(argc, argv);
  rclcpp::spin(std::make_shared<MinimalTimer>());
  rclcpp::shutdown();
  return 0;

第四步:修改CMakeLists.txt

在CMakeLists.txt中添加

find_package(rclcpp REQUIRED)
find_package(std_msgs REQUIRED)

添加可执行文件的名字为sub_node

add_executable(sub_node src/sub_node.cpp)
ament_target_dependencies(sub_node rclcpp std_msgs)

添加 install(TARGETS…) 把可执行文件安装到install去

install(TARGETS
  sub_node
  DESTINATION lib/${PROJECT_NAME})

第五步:编译运行

1、编译节点

colcon build --packages-select ros2_demo
source install/setup.bash   

注意

1、为了防止build出来的文件污染原工程文件结构。尽量在ros2_demo所在包(文件夹)同级目录下编译。

2、需要编译成功后需要source install/setup.bash,不然找不到ros2-demo包中的可执行文件sub_node。

2、运行节点

ros2 run ros2_demo sub_node

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 编译ROS2的工程可以按照以下步骤进行: 1. 首先,需要安装ROS2的开发环境。具体安装方法可以参考ROS2官方文档。 2. 打开终端,进入ROS2的工作空间目录。 3. 运行以下命令,使用colcon工具编译工程: ``` colcon build --symlink-install ``` 这个命令会在当前工作空间目录下创建build和install两个目录,并在build目录下编译源代码,并将编译后的可执行文件和库文件安装到install目录下。 4. 如果编译成功,可以使用以下命令运行工程: ``` . install/setup.bash ros2 run package_name executable_name ``` 其中,package_name是工程的包名,executable_name是要运行的可执行文件名。 注意:编译ROS2工程需要安装ROS2的开发环境,并且需要保证工程的依赖项已经安装。如果编译出现错误,可以根据错误信息进行排查和修复。 ### 回答2: 编译ROS 2的工程可以按照以下步骤进行: 1. 安装ROS 2:首先,您需要在您的计算机上安装ROS 2。您可以访问ROS 2官方网站,按照指导下载适合您操作系统版本的ROS 2安装包,并按照安装说明进行安装。 2. 创建工作空间:在您的计算机上创建一个ROS 2工作空间,以便用于编译和管理ROS 2工程。可以使用以下命令创建一个新的工作空间: ``` mkdir -p ~/ros2_ws/src cd ~/ros2_ws ``` 3. 下载ROS 2包:在src目录下使用git clone或者其他方式下载所需的ROS 2软件包,这些包将构成最终工程。您可以访问ROS 2官方仓库或其他可用的第三方仓库来获取您需要的软件包。 4. 安装依赖项:在编译ROS 2工程之前,您需要确保您的系统已安装所有所需的依赖项。可以使用以下命令安装ROS 2运行时和开发工具的依赖项: ``` sudo apt install -y python3-rosdep2 rosdep update rosdep install --from-path src --ignore-src -y ``` 5. 构建工程:一旦所有依赖项都被安装,您可以使用以下命令构建ROS 2工程: ``` source /opt/ros/dashing/setup.bash colcon build --symlink-install ``` 6. 激活工程:构建完成后,在新的终端窗口中,可以使用以下命令激活ROS 2工程以便使用: ``` source ~/ros2_ws/install/setup.bash ``` 7. 运行工程:现在您可以编写和运行ROS 2节点和包。通过使用ROS 2命令行工具或编程语言的API,您可以启动、订阅和发布消息,以及与其他节点进行通信。 请注意,以上步骤提供了一个基本的示例,实际情况可能因ROS 2的版本、工程需求和操作系统的不同而有所变化。在开始编译ROS 2工程之前,建议仔细阅读官方文档并遵循其中的具体说明。 ### 回答3: 编译ROS 2工程需要以下步骤: 1. 安装ROS 2:首先,您需要按照ROS 2的官方指南进行安装。根据您的操作系统,选择合适的安装方法,并正确设置环境变量。 2. 创建ROS 2工程:使用ROS 2提供的命令行工具创建一个新的ROS 2工程。例如,可以使用`ros2 pkg create`命令创建一个新的包,并在其中编写源代码。 3. 编写源代码:在工程的包中,您可以创建您的源代码文件。ROS 2支持C++和Python。您可以编写节点、服务、发布器和订阅器等等。 4. 编写CMakeLists.txt文件:在工程的根目录中,创建一个名为`CMakeLists.txt`的文件。在其中,您需要指定编译工程所需的依赖项、源文件和其他编译选项。 5. 配置编译环境:使用ROS 2提供的命令行工具,选择要编译的工程并配置编译环境。例如,可以使用`colcon build`命令配置编译环境。 6. 编译工程:运行编译命令开始编译工程ROS 2使用colcon作为默认的构建系统。例如,可以使用`colcon build`命令编译工程。 7. 运行工程:完成编译后,可以使用ROS 2的命令行工具运行您的工程。使用`ros2 run`命令运行节点,`ros2 service call`命令调用服务等等。 请注意,以上步骤仅为一般的编译ROS 2工程的过程。具体步骤和命令可能会因为您的使用情境而有所变化。建议您参考ROS 2的官方文档和教程以获取更详细的信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

恋上钢琴的虫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值