周末学习深蓝的路径规划课程,作业需要编写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的博客-优快云博客