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,具体大家可以去看生成的源码。
本文结束。