ROS2的常用命令(控制小乌龟)

1、启动仿真小乌龟节点:ros2 run turtlesim turtlesim_node

2、查看节点列表:ros2 node list

3、查看节点信息:ros2 node info /turtlesim

4、列出所有功能包下的可执行文件:ros2 pkg executables

5、列出指定功能包下的可执行文件:ros2 pkg executables turtlesim

6、列出所有的功能包:ros2 pkg list

7、列出功能包所在的路径:ros2 pkg prefix turtlesim

8、列出功能包的描述文件:ros2 pkg xml turtlesim

9、节点通信查看命令:

(1)启动listener:ros2 run demo_nodes_py listener

(2)启动talker:ros2 run demo_nodes_py talker

(3)启动rqt(选择node gragh):rqt

10、查询系统中当前活动的所有话题列表:ros2 topic list

        增加消息类型:ros2 topic list -t

        打印实时话题内容:ros2 topic echo /chatter

        查看话题信息:ros2 topic info /chatter

       查看消息类型:ros2 interface show  std_msgs/msg/String

       手动发布命令:ros2 topic pub /chatter std_msgs/msg/String "{data:  "学习ros2"}"

11、查询过滤功能包:ros2 pkg list  | grep turtle

####命令行控制控制小乌龟

1、启动小乌龟虚拟环境:ros2 run turtlesim turtlesim_node

2、查看当前活动话题和类型:ros2 topic list -t

3、手动发布控制小乌龟的指令:ros2 topic pub -r 10 /turtle1/cmd_vel geometry_msgs/msg/Twist "linear:

x: 1.0

y: 0.0

z: 0.0

angular:

x: 0.0

y: 0.0

z: 1.0"

执行结果:小乌龟画一个圆

####编写一个话题通信代码:控制小乌龟

      1、创建工作空间(文件夹):mkdir -p ctrl_turtle/src

             进入功能包的目录:cd ctrl_turtle

             用vscode打开当前目录:code ./

             在vscode中打开集成终端(file->Open in Integrated Terminal)

             创建功能包turtle_movPUB:ros2 pkg create turtle_movPUB --build-type ament_python --dependencies rclpy

              进入turtle_movPUB在__init__py目录建一个名为publisher_member_function.py的新文件,写入以下内容:

import rclpy
from rclpy.node import Node

from geomestry_msgs.msg import Twist


class MinimalPublisher(Node):

    def __init__(self):
        super().__init__('minimal_publisher')
        self.publisher_ = self.create_publisher(Twist, '/turtle1/cmd_vel', 10)
        timer_period = 0.5  # seconds
        self.timer = self.create_timer(timer_period, self.timer_callback)
        self.i = 0.0

    def timer_callback(self):
        msg = Twist()
        msg.linear.x=1.0

        msg.angular.z=1.0
        self.publisher_.publish(msg)
        self.get_logger().info('Publishing: "%.2f"' % msg.linear.x)
        self.i += 0.0


def main(args=None):
    rclpy.init(args=args)

    minimal_publisher = MinimalPublisher()

    rclpy.spin(minimal_publisher)

    # Destroy the node explicitly
    # (optional - otherwise it will be done automatically
    # when the garbage collector destroys the node object)
    minimal_publisher.destroy_node()
    rclpy.shutdown()


if __name__ == '__main__':
    main()

2、添加修改:

entry_points={
        'console_scripts': [
                'mov_node =turtle_movPUB.publisher_member_function:main',
        ],
},

3、编译:colcon build

4、添加:source install/setup.bash

5、运行小乌龟节点:ros2 run turtlesim turtlesim_node

6、运行新编译节点:ros2 run turtle_movPUB mov_node

结果小乌龟画了一个圆圈        

参考鱼香ROS、小巨同学等B站视频、ros2官网说明文档

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值