ROS2学习
安装ROS已经用鱼香ROS2安装过了,安装的是 jazzy
ROS 第一课
体验小乌龟
命令为 ros2 run turtlesim turtlesim_node这是生成乌龟 ,ros2 run turtlesim turtle_teleop_key是生成键盘操控乌龟移动
colcon构建工具
colcon实现过程自动化,用于改进变异,测试,和使用多个软件包的流程。但是我们的ROS2没有默认安装
命令为sudo apt install python3-colcon-common-extensions
ROS2 的 HelloWorld 程序
分五大步骤:
1.创建功能包(在工作空间中的src/)
2.编辑源文件
3.编辑配置文件(xml文件,CMake文件)
4.编译
5.执行
注意:下面代码写的风格是不被推荐的,ROS2更推荐以继承Node方式来创建节点
因为继承方式可以在一个进程内组织多个节点,可以提高进程间的通信效率
#include "rclcpp/rclcpp.hpp"
//1.包含头文件
int main(int argc, char **argv)
{
//2.初始化ROS客户端
rclcpp::init(argc,argv);
//3.创建节点指针
auto node = rclcpp::Node::make_shared("helloworld_node_cpp");
//4.输出日志
RCLCPP_INFO(node->get_logger(),"hello world!");
//5.释放资源
rclcpp::shutdown();
printf("hello world hello_world_cpp package\n");
return 0;
}
改进后的:(更推荐的方式)
#include "rclcpp/rclcpp.hpp"
class Entity:public rclcpp::Node
{
public:
Entity() : Node("hello_node_cpp")
{
RCLCPP_INFO(this->get_logger(),"helloworld!");
}
};
int main(int argc,char const *argv[])
{
//初始化
rclcpp::init(argc,argv);
//实例化自定义类
auto node = std::make_shared<Entity>();
//资源释放
rclcpp::shutdown();
return 0;
}
PS:ROS生态主要由 通信 + 工具 + 功能 + 社区 组成
ROS 体系框架
ROS分层:操作系统层、中间层(客户端、DDS【数据分发服务】、进程内通讯API组成)、应用层(以功能包为核心)
我们开发一般都是在 应用层上开发
功能包的命令
1、创建 ros2 pkg create 包名 --build-type 构建类型 --dependencies 依赖列表 --node-name 可执行程序名称
(--build-type是指功能包构建类型(ament_cmake)、--dependencies 所依赖的功能包列表)
2、编译 colcon build (可以加参数 --packages-select)
3、查找
ros2 pkg list 列出所有功能包名
ros2 pkg executables [包名] 输出所有功能包或指定功能包下的可执行程序
4、执行 ros2 run [包名] 可执行文件
本文来自博客园,作者:Alaso_shuang,转载请注明原文链接:https://www.cnblogs.com/Alaso687/p/19500908

浙公网安备 33010602011771号