安装ROS2
ubuntu22.04-安装 ros humble
这里使用国内大佬弄得 鱼香ROS(一件安装ros,官网教程需要科学上网)
运行以下代码,会提示用户进行选择安装ros,按自己需求即可
wget http://fishros.com/install -O fishros && . fishros
当然,这也有相关安装教程
https://www.bilibili.com/video/BV1gr4y1Q7j5?p=7
安装完后,运行 ros2 ,如图则安装成功
你也可以看安装视频上的教程,运行示例ros2程序看看怎么样。(在这里就不过多叙述)
创建第一个节点
1.节点是什么
在ros中,机器人的各个部位是通过节点中的 话题or服务器 来进行消息传递的。节点相当于话题和服务器的管家,他管理这自己的话题、服务器。
2.节点创建
cd #回到主目录
mkdir -p ~/ros2_ws/src/ #在主目录下创建ros2_ws文件夹,并包含src文件夹
cd ros2_ws/src/ #进入src文件夹
ros2 pkg create my_pkg --build-type ament_cmake --dependencies rclcpp --license Apache
# ros2 pkg create ros2创建功能包的指令
# my_pkg 包的名字
# --build-type ament_cmake C++功能包
# --dependencies rclcpp 载入rclcpp包
# --license Apache ros2协议选择(humble版要选)
cd my_pkg/src/ #进入功能包src文件夹中
3.节点代码
touch one_node.cpp #创建名为 one_node.cpp 文件
sudo nano one_node.cpp #编辑节点cpp文件
代码如下
#include "rclcpp/rclcpp.hpp"
int main(int argc, char **argv)
{
rclcpp::init(argc, argv);/* 初始化rclcpp */
auto node = std::make_shared<rclcpp::Node>("node_01");/*产生一个node_01的节点*/
RCLCPP_INFO(node->get_logger(), "node_01节点已经启动.");// 打印一句自我介绍
rclcpp::spin(node);/* 运行节点,并检测退出信号 Ctrl+C*/
rclcpp::shutdown();/* 停止运行 */
return 0;
}
编辑功能包下的CMakeLists.txt 文件
#在最后面加上以下内容
add_executable(node_01 src/node_01.cpp)#生成可执行文件node_01.exe
ament_target_dependencies(node_01 rclcpp)#向node_01载入rclcpp包
#将可执行文件加入ros2可查询队列中
install(TARGETS
node_01
DESTINATION lib/${PROJECT_NAME}
)
3.编译节点
cd
cd ros2_ws/
colcon build #编译
source install/setup.bash #载入当前ros2的文件节点路径
4.运行ros2节点
ros2 run example_cpp node_01
出现如图则节点创建成功