ROS+clion代码按步调试

作者在周末学习深蓝的路径规划课程时,遇到了使用A*算法编程的困难,特别是C++的指针异常问题。通过修改launch文件,将地图部分的代码以launch方式执行,并借助CLION进行调试,最终解决了指针引用错误。此外,还提到了使用rviz工具进行可视化验证路径规划的结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

周末学习深蓝的路径规划课程,作业需要编写A*算法,并在ROS下仿真验证,但我对C++很不熟悉,代码编写得磕磕绊绊,有一个指针引用异常总是排查不出来。开始是用ROS_WARN打印输出。自己还是没找出来。后来在助教的指导下修改launch文件,将地图部分的代码用lanuch文件执行,然后在CLION上进行代码调试运行验证可行。也帮我找到了程序代码中的指针引用错误。下面贴一下修改后的map.launch文件。

<launch>

<arg name="map_size_x" default="10.0"/>
<arg name="map_size_y" default="10.0"/>
<arg name="map_size_z" default=" 5.0"/>

<arg name="start_x" default=" 0.0"/>
<arg name="start_y" default=" 0.0"/>
<arg name="start_z" default=" 1.0"/>

  <node pkg ="grid_path_searcher" name ="random_complex" type ="random_complex" output = "screen">

      <param name="init_state_x"   value="$(arg start_x)"/>
      <param name="init_state_y"   value="$(arg start_y)"/>

      <param name="map/x_size"     value="$(arg map_size_x)" />
      <param name="map/y_size"     value="$(arg map_size_y)" />
      <param name="map/z_size"     value="$(arg map_size_z)" />

      <param name="map/circle_num" value="40"/>
      <param name="map/obs_num"    value="300"/>
      <param name="map/resolution" value="0.1"/>

      <param name="ObstacleShape/lower_rad" value="0.1"/>
      <param name="ObstacleShape/upper_rad" value="0.7"/>
      <param name="ObstacleShape/lower_hei" value="1.0"/>
      <param name="ObstacleShape/upper_hei" value="3.0"/>


      <param name="sensing/rate"   value="0.5"/>
  </node>

  <node pkg="waypoint_generator" name="waypoint_generator" type="waypoint_generator" output="screen">
      <remap from="~goal" to="/goal"/>
      <param name="waypoint_type" value="manual-lonely-waypoint"/>
  </node>

  <node name="rviz" pkg="rviz" type="rviz" args="-d $(find grid_path_searcher)/launch/rviz_config/demo.rviz"/>

</launch>

另外,clion的设置参考了这篇博文:CLion + ROS 开发平台搭建_clion ros_wswtyy的博客-优快云博客

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值