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 [包名]   可执行文件 
posted @ 2026-01-19 16:40  Alaso_shuang  阅读(0)  评论(0)    收藏  举报
2 3
4