• 用vscode调试ros或ros2的python程序(rclpy)


    vscode调试ros2,官方有明确的说明与教程,具体可以参考这里(aka.ms/ros/vscode)

    ROS - Visual Studio Marketplace

    不过这里很啰嗦,其实过程却非常简单。vscode这里我默认你已经安装了ms的ros扩展。

    首先,确保你已经安装了ros2,比如我的ros2安装在这里,

    C:\dev\ros2_humble

    我的测试源码是从github上拉下来的,

    cd D:\mc\ros2prj\example_humble
    git clone -b humble --recursive https://github.com/ros2/examples.git  src 
    call C:\dev\ros2_humble\local_setup.bat
    colcon build --merge-install

    完成后,打开cmd窗口,启动vscode,

    D:\>call C:\dev\ros2_humble\local_setup.bat
    D:\>cd D:\mc\ros2prj\example_humble
    D:\mc\ros2prj\example_humble>code .

    这样ros2环境启动后再运行vscode,就可以直接运行example中的python脚本了。

    下面我先举个例子,不通过vscode的方法来运行,每个打开的窗口都要运行
    call C:\dev\ros2_humble\local_setup.bat
    下面我就不再重复了,

    (1)找到服务程序service-script.py,然后启动运行
    D:\mc\ros2prj\example_humble>ros2 pkg executables | find "minimal_service"
    examples_rclcpp_minimal_service service_main.exe
    examples_rclpy_minimal_service service-script.py
    examples_rclpy_minimal_service service.exe
    examples_rclpy_minimal_service service_member_function-script.py
    examples_rclpy_minimal_service service_member_function.exe

    D:\mc\ros2prj\example_humble>ros2 run examples_rclpy_minimal_service service-script.py
    [INFO] [1664112590.633624000] [minimal_service]: Incoming request
    a: 41 b: 1

    (2)再打开另一个命令窗口,找到客户程序client-script.py,然后启动运行
    D:\mc\ros2prj\example_humble>ros2 pkg executables | find "minimal_client"
    examples_rclcpp_minimal_client client_main.exe
    examples_rclpy_minimal_client client-script.py
    examples_rclpy_minimal_client client.exe
    examples_rclpy_minimal_client client_async-script.py
    examples_rclpy_minimal_client client_async.exe
    examples_rclpy_minimal_client client_async_callback-script.py
    examples_rclpy_minimal_client client_async_callback.exe
    examples_rclpy_minimal_client client_async_member_function-script.py
    examples_rclpy_minimal_client client_async_member_function.exe

    D:\mc\ros2prj\example_humble>ros2 run examples_rclpy_minimal_client client-script.py
    [INFO] [1664112517.409998100] [minimal_client]: Result of add_two_ints: for 41 + 1 = 42

     可以看到,结果正常。

    (3)用vscode调试client。

    此时我们可以关闭前面的那个client-script.py的窗口,用vscode打开这个文件夹,
    D:\mc\ros2prj\example_humble

    然后找到这个文件,

    D:\mc\ros2prj\example_humble\src\rclpy\services\minimal_client\examples_rclpy_minimal_client\client.py

    在里面打上断点,就可以直接运行了。lanch.json之类的基础配置这里就不啰嗦了,和普通python程序没什么不同。运行完可以看到在service-script.py的命令窗口有响应。

     服务程序service-script.py的内容大致如下

    值得说明的是,调试的时候运行的程序是client.py,而不是install文件夹下的那个client-script.py,其实client-script.py只做了一件事,就是调用这个client.py,具体大家可以去看生成的源码。

    本文结束。 

  • 相关阅读:
    FPGA 学习笔记:Vitis IDE launch failed 的解决方法
    java调用Excel中的GAMMADIST函数返回伽玛分布
    英语单词12大前缀3大词性后缀
    医院陪诊小程序源码 医院陪诊陪护系统源码
    【Java项目】讲讲我用Java爬虫获取LOL英雄数据与图片(附源码)
    构建系列之前端脚手架vite
    fastjson2与fury的巅峰对决,谁会笑到最后?
    Pwn 学习 fmt_str_level_1_x86 格式化字符串
    循环链表3
    商淘云八周年 与实体店业务共发展
  • 原文地址:https://blog.csdn.net/tanmx219/article/details/127044098