`
一些概念
节点之间通过发布和订阅话题来通信。
一个工作空间 (起初理解为文件夹就OK) 下有多个功能包,一个功能包有多个节点。
每个节点只负责单一的模块化功能 (如一个节点负责控制车轮转动,一个节点负责从激光雷达获取数据、一个节点负责处理激光雷达的数据、一个节点负责定位等)
ubuntu20.04,ROS noetic 和 ROS2 foxy 都装的情况下,可以通过注释bashrc文件的末行来选用ros1还是ros2
打开bashrc文件
gedit ~/.bashrc
把ROS1的source给屏蔽掉:
#source /opt/ros/noetic/setup.bash
source /opt/ros/foxy/setup.bash
另外在source源的时候:
ROS1用 source ./devel/setup.bash
ROS2用 source local_setup.bash
编译
ros2组合拳
mkdir -p imu_ws/src
cd imu_ws/src
ros组合拳
mkdir -p imu_ws/src
cd imu_ws/src
catkin_create_pkg imu_path roscpp rospy tf nav_msgs
cd ..
catkin_make
创建功能包
ros2 pkg create <package-name> --build-type {cmake,ament_cmake,ament_python} --dependencies <依赖名字> {rclpy,rclcpp}
catkin_create_pkg <package_name> [depend1] [depend2] [depend3]
catkin_create_pkg imu_path roscpp rospy tf nav_msgs
构建
colcon build
catkin build 或 catkin_make
单独编译1个包
colcon build --packages-select village_li
ROS没试
节点
运行节点
ROS2格式
ros2 run <package_name> <executable_name>
ros2 run turtlesim turtlesim_node
ROS格式
单开一个终端运行 roscore
rosrun <package_name> <executable_name>
rosrun turtlesim turtlesim_node
查看节点
查看节点列表
ros2 node list
rosnode list
查看节点信息
ros2 node info <node_name>
ROS没试
查看话题列表
ros2 topic list
rostopic list
查看服务列表
ros2 service list
rosservice list
节点重映射
ros2 run turtlesim turtlesim_node --ros-args --remap __node:=my_turtle
ROS没试
查看话题发布的数据
ros2 topic pub /sexy_girl_money std_msgs/msg/UInt32 "{data: 10}"
ros2 topic pub /sexy_gril_money std_msgs/msg/UInt32 data:\ 10\
运行节点
ROS2运行一个发布节点
source install/setup.bash //工作空间下先source一下源
ros2 run examples_rclcpp_minimal_publisher publisher_member_function
ROS2运行一个订阅节点
source install/setup.bash //工作空间下先source一下源
ros2 run examples_rclcpp_minimal_subscriber subscriber_member_function
ROS没试