赞
踩
目录
在上一讲开发环境搭建中,我们讲解了如何搭建Ubuntu系统环境和ROS2开发运行环境。
1.Ubuntu系统安装
2.ROS2系统环境安装
查看帮助:
ros2 daemon -h
启动daemon
ros2 daemon start
查看状态
ros2 daemon status
停止daemon
ros2 daemon stop
守护进程用途:按照字面意思起到守护用途。类似ros1 master中心节点功能,用于减少节点之间发现的时间。
启动一个节点用于测试
ros2 run demo_nodes_cpp talker
输出节点列表:
ros2 node list
查看节点信息
ros2 node info /talker
创建功能包命令:指定包名、编译方式、依赖项、节点名等
命令格式:
ros2 pkg create RobotDotTest --build-type ament_python --node-name RobotDotTest_node --dependencies rclpy std_msgs sensor_msgs --license Apache-2.0
命令 | 说明 |
ros2 pkg create | ROS2功能包创建命令 |
RobotDotTest | 所建功能包名称 |
--build-type ament_python | 指定编程语言 |
-node-name RobotDotTest_node | 节点名称 |
--dependencies rclpy std_msgs sensor_msgs | 指定依赖模块,rclpy是python编程必选的, std_msgs和sensor_msgs是我们要用的消息模块,也可以不指定手动配置 |
--license Apache-2.0 | 指定license Apache-2.0 |
查看
---------------------------------------
查看包列表
ros2 pkg list
executables输出特定于软件包的可执行文件列表:
ros2 pkg executables turtlesim
prefix 输出包的前缀路径:
ros2 pkg prefix turtlesim
ros2 run turtlesim turtlesim_node
- ros2 run [-h] [--prefix PREFIX] package_name executable_name ...
- package_name 软件包名称
- executable_name 执行名称
- argv 执行对应参数
- usage: ros2 topic [-h] [--include-hidden-topics]
-
- bw 显示使用话题带宽
- delay 通过header中的时间戳计算消息延迟
- echo 输出话题信息
- find 按消息类型查找相关话题
- hz 显示话题平均发布频率
- info 显示话题消息类型,订阅者数量,发布者数量
- list 列出域内可使用的主题列表
- pub 发布一个话题消息
- type 打印话题数据类型
-
list 列出域内可使用的主题列表
ros2 topic list
info 显示话题消息类型,订阅者数量,发布者数量
ros2 topic info /turtle1/pose
type 打印话题数据类型
ros2 topic type /turtle1/pose
find 按消息类型查找相关话题
ros2 topic find turtlesim/msg/Pose
pub 发布一个话题消息
ros2 topic pub control_node/action geometry_msgs/msg/TwistStamped "{header: {stamp:{sec: 0, nanosec: 0}, frame_id: control_node}, twist: {linear: {x: 0.3, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}}"
echo 输出话题信息
ros2 topic echo /control_node/action
hz 显示话题平均发布频率
ros2 topic hz /control_node/action
打开节点主题显示图形
rqt_graph
打开主题列表
ros2 topic list -t
查看主题数据
ros2 topic echo <topic_name>
ros2 topic echo /turtle1/cmd_vel
查看主题信息
ros2 topic info /turtle1/cmd_vel
查看主题数据结构
ros2 interface show geometry_msgs/msg/Twist
发布主题数据消息
ros2 topic pub --once /turtle1/cmd_vel geometry_msgs/msg/Twist "{linear: {x: 2.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 1.8}}"
ros2 topic pub --rate 1 /turtle1/cmd_vel geometry_msgs/msg/Twist "{linear: {x: 2.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 1.8}}"
注:--once 单次发送 --rate 1 循环发送频率1HZ
查看主题信息
ros2 topic echo /turtle1/pose
查看主题发送速率
ros2 topic hz /turtle1/pose
- create_enclave Create enclave
-
- create_key 创建秘钥
-
- create_keystore 创建秘钥库
-
- create_permission 创建许可
-
- generate_artifacts 从身份和策略文件列表中生成密钥和许可文件
-
- generate_policy Generate XML policy file from ROS graph data
-
- list_enclaves List enclaves in keystore
-
- list_keys DEPRECATED: List enclaves in keystore. Use list_enclaves instead
-

call调用服务
list列出所有的服务
ros2 service list
服务基于呼叫->应答模型
查看服务列表
ros2 service list
ros2 service list -t
查看服务类型
ros2 service type <service_name>
ros2 service type /clear
查看服务查找
ros2 service find <type_name>
ros2 service find std_srvs/srv/Empty
服务展示显示
ros2 interface show <type_name>.srv
ros2 interface show std_srvs/srv/Empty.srv
ros2 interface show turtlesim/srv/Spawn
服务调用call
ros2 service call <service_name> <service_type> <arguments>
ros2 service call /clear std_srvs/srv/Empty
ros2 service call /spawn turtlesim/srv/Spawn "{x: 2, y: 2, theta: 0.2, name: 'turtle2'}"
查看参数列表
ros2 param list
ros2参数get
ros2 param get <node_name> <parameter_name>
ros2 param get /turtlesim background_g
ros2 参数set
ros2 param set <node_name> <parameter_name> <value>
ros2 param set /turtlesim background_r 150
ros2参数存储
ros2 param dump <node_name>
ros2 param dump /turtlesim
ros2 参数加载
ros2 param load <node_name> <parameter_file>
ros2 param load /turtlesim ./turtlesim.yaml
ros2 节点启动时加载参数
ros2 run <package_name> <executable_name> --ros-args --params-file <file_name>
ros2 run turtlesim turtlesim_node --ros-args --params-file ./turtlesim.yaml
(1)节点信息查看
ros2 node info /turtlesim
ros2 node info /teleop_turtle
(2)查询操作列表
ros2 action list
ros2 action list -t
(3)操作动作信息
ros2 action info /turtle1/rotate_absolute
(4)操作界面显示
ros2 interface show turtlesim/action/RotateAbsolute
(5)发送目标动作
ros2 action send_goal <action_name> <action_type> <values>
ros2 action send_goal /turtle1/rotate_absolute turtlesim/action/RotateAbsolute "{theta: 1.57}"
ros2 action send_goal /turtle1/rotate_absolute turtlesim/action/RotateAbsolute "{theta: -1.57}" --feedback
消息等级:
Fatal消息指示系统将终止以尝试保护自身免受损害。
Error消息指示不一定会损坏系统,但会阻止其正常运行的重大问题。
Warn消息指示可能代表更深层次问题的意外活动或非理想结果,但不会完全损害功能。
Info消息指示事件和状态更新,用于直观验证系统是否按预期运行。
Debug消息详细说明了系统执行的整个分步过程。
启动信息终端
ros2 run rqt_console rqt_console
设置节点启动消息等级
ros2 run turtlesim turtlesim_node --ros-args --log-level WARN
执行自动文件
ros2 launch <package_name> <launch_file_name>
ros2 launch <path_to_launch_file>
执行自动文件后接参数
ros2 launch <package_name> <launch_file_name> background_r:=255
ros2 launch <path_to_launch_file> background_r:=255
参考启动文件
<!-- example.launch.xml -->
<launch>
<!-- args that can be set from the command line or a default will be used -->
<arg name="background_r" default="0"/>
<arg name="background_g" default="255"/>
<arg name="background_b" default="0"/>
<arg name="chatter_ns" default="my/chatter/ns"/>
<!-- include another launch file -->
<include file="$(find-pkg-share demo_nodes_cpp)/launch/topics/talker_listener.launch.py"/>
<!-- include another launch file in the chatter_ns namespace-->
<group>
<!-- push-ros-namespace to set namespace of included nodes -->
<push-ros-namespace namespace="$(var chatter_ns)"/>
<include file="$(find-pkg-share demo_nodes_cpp)/launch/topics/talker_listener.launch.py"/>
</group>
<!-- start a turtlesim_node in the turtlesim1 namespace -->
<node pkg="turtlesim" exec="turtlesim_node" name="sim" namespace="turtlesim1"/>
<!-- start another turtlesim_node in the turtlesim2 namespace and use args to set parameters -->
<node pkg="turtlesim" exec="turtlesim_node" name="sim" namespace="turtlesim2">
<param name="background_r" value="$(var background_r)"/>
<param name="background_g" value="$(var background_g)"/>
<param name="background_b" value="$(var background_b)"/>
</node>
<!-- perform remap so both turtles listen to the same command topic -->
<node pkg="turtlesim" exec="mimic" name="mimic">
<remap from="/input/pose" to="/turtlesim1/turtle1/pose"/>
<remap from="/output/cmd_vel" to="/turtlesim2/turtle1/cmd_vel"/>
</node>
</launch>
建立测试环境
ros2 run turtlesim turtlesim_node
ros2 run turtlesim turtle_teleop_key
建立记录数据存储区域
mkdir bag_files
cd bag_files
选择对应主题信息
ros2 topic list
ros2 topic echo /turtle1/cmd_vel
数据记录命令
ros2 bag record <topic_name>
ros2 bag record /turtle1/cmd_vel
记录多个主题信息
ros2 bag record -o subset /turtle1/cmd_vel /turtle1/pose
查看记录信息
ros2 bag info <bag_file_name>
ros2 bag info subset
播放记录信息
ros2 bag play subset
ros2 topic hz /turtle1/pose
本节文章到此结束,谢谢大家阅读。。。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。