小车在Gazebo仿真环境中无法进行避障

本文指导如何在将小车模型引入ROS时,确保激光雷达配置正确以实现避障功能。需关注URDF中的sensor_frame和topicName参数,并根据实际情况调整costmap_common_params.yaml中的配置。
摘要由CSDN通过智能技术生成

前言

有些小伙伴刚进入公司可能需要使用公司自己小车的模型去进行一些算法验证或者其他方面的一些工作。而我们经常会git clone网上已经做好gazebo世界以及其他方面部署的小车,然后将其模型换成我们自己模型,就能运用他们的很多功能了。

问题

但是刚接触ROS的小伙伴可能会碰见将加载的URDF什么的换成我们自己小车的URDF,小车模型是出来了,全局路径也可以跑,但是激光雷达扫描到前方障碍物但是局部路径规划没有生成,无法进行避障。

解决方案

这种情况经常是因为没有更换激光雷达的一些配置,导致的避障实效。我们打开costmap_common_params.yaml会发现有一行关于激光雷达的配置,当然这是我的雷达配置,你们需要更换成你们自己的激光雷达。

scan: {sensor_frame: pavo2_laser, data_type: LaserScan, topic: pavo2_scan, marking: true, clearing: true}

这里的sensor_frame就是你雷达的名字,topic就是这个激光雷达的话题名,可以去小车模型的URDF文件中找到,在URDF里面我们可以找到雷达相关的配置,我的是这样的

<gazebo reference="pavo2_laser">
    <sensor type="ray" name="ray_scan1">
      <pose>0 0 0 0 0 0</pose>
      <visualize>false</visualize>
      <update_rate>50</update_rate>
      <ray>
        <scan>
          <horizontal>
            <!-- <samples>1042</samples> -->
            <samples>1042</samples>
            <!-- <resolution>1</resolution> -->
            <min_angle>-2.443460953</min_angle>
            <max_angle>2.443460953</max_angle>
          </horizontal>
        </scan>
        <range>
          <min>0.50</min>
          <max>50.0</max>
          <resolution> 0.01</resolution>
        </range>
        <noise>
          <type>gaussian</type>
          <mean>0.0</mean>
          <stddev>0.01</stddev>
        </noise>
      </ray>
      <plugin name="scan1_plugin" filename="libgazebo_ros_laser.so">
        <topicName>pavo2_scan</topicName>
        <frameName>pavo2_laser</frameName>
      </plugin>
    </sensor>
  </gazebo>

这里代码下面有个frameName就是我们雷达的名字,即填在sensor_frame里面的内容,还有一个参数叫topicName就是我们填在costmap_common_params.yaml里面那个topic的内容。data_type一般都是LaserScan,当然我们也可以在终端使用rostopic type验证一下

后面marking和clearing一般都是设置成true的没啥问题,具体含义可以看一下ros wiki的说明,主要意思就是通过传感器数据对障碍物信息进行实时更新(标记或清除)。

翻译:

结语

对模型进行迁移时,一定要注意参数配置名称是否的更换成我们自己模型的一些名称,否则会出现很多很多功能失效或者其他千奇百怪的问题。希望这篇帖子可以解决大家小车无法避障的问题。

进行MoveIt配置后,需要在Gazebo仿真环境进行实验,可以按照以下步骤进行: 1. 启动Gazebo仿真环境 使用roslaunch命令启动Gazebo仿真环境,加载机械臂模型和MoveIt配置文件。例如,如果机械臂模型的ROS包名称为my_robot,MoveIt配置文件的名称为my_robot_moveit_config,可以使用以下命令启动仿真环境: ``` roslaunch my_robot_gazebo my_robot_world.launch roslaunch my_robot_moveit_config move_group.launch ``` 2. 运行MoveIt节点 在终端输入以下命令,启动MoveIt的ROS节点: ``` roslaunch my_robot_moveit_config moveit_rviz.launch config:=true ``` 该命令会启动MoveIt的可视化工具,可以用来可视化机械臂的运动规划结果。 3. 进行机械臂运动规划 使用MoveIt的API或者可视化工具,在仿真环境进行机械臂的运动规划。可以手动设置机械臂的起始姿态和目标姿态,然后使用MoveIt的运动规划插件进行运动规划。 4. 执行机械臂运动 在机械臂运动规划完成后,将运动规划结果发送给机械臂控制器,控制机械臂执行运动规划。可以使用以下命令启动机械臂控制器: ``` roslaunch my_robot_moveit_config moveit_planning_execution.launch ``` 该命令会启动机械臂控制器节点,将运动规划结果转换为机械臂的控制命令,并驱动机械臂在仿真环境执行运动。 需要注意的是,在进行实验时需要注意机械臂的安全性,避免机械臂与环境的障碍物发生碰撞。同时,还需要对机械臂的运动规划、控制等方面进行细致的调试,确保机械臂能够准确地执行任务。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值