𝖄𝕺🌎𝕿𝕽𝕺¥

𝖄𝕺🌎𝕿𝕽𝕺¥

𝕴 𝖉𝖔 𝖒𝖆𝖌𝖎𝖈
github

ROS1 基础及常用指令 笔记

ros#

roslaunch#

通过启动文件启动多个 ROS 节点。

roslaunch {package name} {launch file}
roslaunch turtlebot3_gazebo turtlebot3_empty_world.launch

rosnode#

显示有关活动 ROS 节点的信息。

rosnode list

rosrun#

在 ROS 包内运行可执行文件。

rosrun {package name} {script name}
rosrun rqt_graph rqt_graph

rostopic#

显示有关活动 ROS 主题的信息。

rostopic list
rostopic list | grep /camera     //过滤以仅显示与 '/camera' 相关的主题

rostopic info /{topic_name}
$ rostopic info /cmd_vel

<!-- echo:深入这些消息元素并找出它们的值 -->
$ rostopic echo /chatter      //显示发布到主题 chatter 的消息
$ rostopic echo -h    // 额外选项
$ rostopic echo /chatter -n2      // 2 组信息

$ rostopic echo -c /odom      //odom

rostopic pub {topic_name} {message_type} {data}     //从命令行调用一个动作。

rosmsg#

显示可在 ROS 应用程序中使用的所有 ROS 消息的信息。

rosmsg info {Type}      //Type 通过 'rostopic info' 获取
$ rosmsg info geometry_msgs/Twist

rosservice#

可以获取 Type,Type 告诉我们此服务使用的消息类型。 Rosrun 然后 rosservice call,两个终端都会得到输出。 Rosrun 如果设置了打印,rosservice call 将返回响应(例如 response_signal,response_message)

rosservice list
rosservice info /{service_name}

$ rosservice info /move_service    //名称应为 'service_name = "move_service"'
$ rosservice call /move_service[SPACE][TAB]

rossrv info#

对动作不实用
显示服务请求和响应

rossrv info {Type}
$ rossrv info tuos_ros_msgs/SetBool

<!-- 示例输出 -->

bool request_signal     <-- 请求
---
bool response_signal    <-- 响应 (参数 1/2)
string response_message <-- 响应 (参数 2/2)

chmod#

设置读取或写入权限。

chmod +x publisher.py

catkin_create_pkg#

catkin_create_pkg week1_pubsub std_msgs rospy

catkin build#

catkin build week1_pubsub
source ~/.bashrc    //构建后应运行

roscore#

启动 ROS 主节点:ROS 功能所需的基线节点和程序。重新启动 ROS 主节点。

roscore

backup#

wsl_ros backup

restore#

wsl_ros restore

eog#

通过命令行打开图像

eog .

应用程序#

服务器#

先实现服务器,然后是客户端
服务器和客户端应具有相同的主题名称

客户端#

来自 client.py 的请求,服务器.py 的响应

服务#

......

动作#

rostopic#

  • rostopic list: 识别网络上可用的动作服务器。
  • rostopic echo: 查看由给定动作服务器发布的消息。
  • rostopic pub: 从命令行调用一个动作。

获取需要什么参数?#

  • rostopic info: 获取动作服务器的信息格式。复制 {Type}
  • rosmsg info {Type}

步骤:#

  • 将客户端初始化为类或设置为对象
    包括名称、速率、参数,客户端等待服务器
    可以有 shutdown_ops

  • 设置 feedback_callback 函数
    可以在面板上打印
    此客户端的函数将由服务器自动调用,而不是由其自身的任何函数调用。

  • 设置目标
    在客户端内部包含 send_goal 函数,例如 client.send_goal(self.goal, feedback_cb=self.feedback_callback)

  • 主循环
    可以有 while
    可以更改布尔值然后到 shutdown_ops

  • shutdown_ops 函数
    应该 if 条件然后 rospy.logwarn()
    应该在函数内部显示结果

  • if __name__ == '__main__':
    可能有 try , except

过程:#

  • 客户端 --- 目标 ---> 服务器:仅一次
    rostopic pub {goal}[Tab][Space]

  • 客户端 <--- 反馈 --- 服务器:每次都有更新

客户端的回调函数将由服务器自动调用,而不是由此客户端的任何函数调用。

  • 客户端 <--- 状态 --- 服务器

状态值将由服务器判断并设置,然后发送给客户端

  • 客户端 <--- 结果 --- 服务器

可以使用 client.get_result() 在 client.py 中获取值

更多#

from geometry_msgs.msg import Twist
Twist 是类型
geometry_msgs 是包

基于主题:其他节点可以理解

服务:低风险、快速、操作或计算

动作:持续时间较长,可能失败

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。