ROS2基本命令与简单列子(python与C++)
初次学习ROS2机器操作系统,本博客将简单入门记录于此。
一. ros2安装:
sudo apt-get install curl && curl http://fishros.com/tools/install/ros-foxy | bash
二.编译工具colcon安装:
sudo apt-get install python3-colcon-common-extensions
三.编译使用 :
colcon build
说明:工作包源码为src,使用colcon build 命令可生成build install log文件夹
python 代码编译:若src中有py代码,使用colcon build仅将src中.py代码拷贝install中,若修改src中.py代码需使install执行有效,(时实修改)使用:
colcon build --symlink-install
四.Python与C++创建工作空间、功能包及节点方法:
节点存在功能包中,功能包存在工作空间中,因此创造节点需创造工作空间与功能包:
工作空间创造(实际为文件夹):
mkdir -p town_ws/src
cd town_ws/src
功能包创建(在路径src下运行):
ros2 pkg create village_li --build-type ament_python --dependencies rclpy
village_li :功能包的名字,可以任意名称修改
--build-type : 选择版本创建,共有三个,分别为 ament_python ament_cmake cmake ,默认为ament_cmake
--dependencies :依赖库 ,如rclpy ros2的python客户端接口
python节点创建
直接在功能包下给.py文件,如下红框
li4.py节点代码编译:
import rclpy from rclpy.node import Node ''' 编写ros2节点一般步骤 1.导入库文件 2.初始化客户端库 3.新建节点对象 4.spin循环节点 5.关闭客户端库 ''' def main(args=None): rclpy.init(args=args) li4_node=Node("li4") li4_node.get_logger().info("打印内容") rclpy.spin(li4_node) rclpy.shutdown() # 关闭
节点完后需要配置,指定找到节点,节点名为:li4_node,配置如下:
编译:
在town_ws路径下,执行:
colcon build
然后执行(告诉系统路径):
source install/setup.bash
运行:
ros2 run village_li li4_node
C++节点创建
C++功能包创建
ros2 pkg create village_wang --build-type ament_cmake --dependencies rclcpp
village_wang:功能包的名字,可以任意名称修改
--build-type : 选择版本创建,共有三个,分别为 ament_python ament_cmake cmake ,默认为ament_cmake
--dependencies :依赖库 ,如rclpp ros2的C++客户端接口
#include "rclcpp/rclcpp.hpp" int main(int args,char**argv){ rclcpp::init(argc,argv);
auto node=std::make_shared<rclcpp::Node>("wang2");//构建节点
RCLCPP_INFO(node->get_logger(),"大家好"); // 内容
rclcpp::spin(node);//运行节点
rclcpp::shutdown();
return 0;
}
cmakelists.txt重点内容