学习自动驾驶第一期:仿真环境搭建


前言

我的电脑环境是:Ubuntu20.04 ros版本是noetic


一、安装gazebo

执行以下指令安装gazebo和相关插件:因为我的系统是Ubuntu20.04,所以安装了gazebo11,以及ros相关插件的版本是noetic.

----------------------------------下载安装gazebo----------------------------------
sudo apt-get update
sudo apt-get install gazebo11
sudo apt-get install libgazebo11-dev
----------------------------------下载安装gazebo----------------------------------
---------------------------为了让ROS与gazebo链接,执行以下指令:----------------------
sudo apt install ros-noetic-gazebo-ros-pkgs  
sudo apt install ros-noetic-gazebo-msgs  
sudo apt install ros-noetic-gazebo-plugins  
sudo apt install ros-noetic-gazebo-ros-control
---------------------------为了让ROS与gazebo链接,执行以下指令:----------------------
----------------------下载安装其他有的没的gazebo插件(建议都装,即使用不到)---------------
sudo apt install ros-noetic-diff-drive-controller
sudo apt install ros-noetic-joint-state-controller
sudo apt install ros-noetic-position-controllers
sudo apt install ros-noetic-velocity-controllers
sudo apt install ros-noetic-effort-controllers
(对于最后一条指令谨慎使用,建议先别用,因为我在使用这个代码工程的时候好像是python3与python2的环境冲突导致gazebo报错,
  我看了看其他博主,才跟着用此命令,然后问题就稀里糊涂解决了)
sudo apt install python-is-python3 
---------------------下载安装其他有的没得gazebo插件(建议都装,即使用不到)---------------

二、仿真小车代码的部署

代码工程的百度云链接

1.如何使用该代码?

拿到该代码后,需要将urdf文件夹中的smart.xacro文件中的5个绝对路径修改成你电脑上的绝对路径不然小车模型无法加载出来:
注意:若系统为ubuntu20.04路径地址前面最好是四条斜杠,18.04系统的话,路径地址前面最好是三条斜杠。我也不知道为什么,我实验室的电脑是18.04,就是三条斜杠“///”才可以找到地址,我电脑是20.04却要是4条斜杠“”。我也很疑惑,不过懒得去分析了,毕竟主要工作是在规划跟踪算法,这个会使用就行。

--------------------------------1---------------------------
    <visual>
        <origin xyz="0.05 0 ${base_collision_height}" rpy="0 0 ${PI/2}"/>
        <geometry>
           <mesh filename="file:你的绝对路径/car_simulation/src/car_model/meshes/vehicle_body.dae"/>
        </geometry>
    </visual>

--------------------------------2---------------------------
    <visual>
        <origin xyz="0 0 0" rpy="0 0 -${PI/2}"/>
        <geometry>
           <mesh filename="file:你的绝对路径/car_simulation/src/car_model/meshes/wheel.dae"/>
        </geometry>
    </visual>

--------------------------------3---------------------------
    <visual>
        <origin xyz="0 0 0" rpy="0 0 ${PI/2}"/>
        <geometry>
           <mesh filename="file:你的绝对路径/car_simulation/src/car_model/meshes/wheel.dae"/>
           <cylinder length="${rear_tyre_length}" radius="${rear_tyre_r}"/>
        </geometry>
    </visual>
    
--------------------------------4---------------------------

    <visual>
        <origin xyz="0 0 0" rpy="0 0 -${PI/2}"/>
        <geometry>
           <mesh filename="file:你的绝对路径/car_simulation/src/car_model/meshes/wheel.dae"/>
        <cylinder length="${front_tyre_length}" radius="${front_tyre_r}"/>
        </geometry>
    </visual>

--------------------------------5---------------------------
    <visual>
        <origin xyz="0 0 0" rpy="0 0 ${PI/2}"/>
        <geometry>
            <mesh filename="file:你的绝对路径/car_simulation/src/car_model/meshes/wheel.dae"/>
        </geometry>
    </visual>

修改好文件路径并保存后,回到car_simulation文件夹下执行以下指令,开始编译项目工程。

catkin_make

2.如何启动仿真小车

打开终端,cd 到/car_simulation文件夹下,执行以下指令

source devel/setup.bash
roslaunch car_model spawn_car.launch

请添加图片描述

再打开一个新的终端,执行以下指令

rosrun rviz rviz

打开rviz之后,点击左上角的file,选择Open Config,然后选中下面图片中的smart.rviz文件。

请添加图片描述

最后就可以在rviz中显示该小车了。注意:rviz左上角的Global Option选项的Fixed Frame要选择world;

请添加图片描述

然后打开新的终端,执行以下指令

rosrun rqt_gui rqt_gui

第一次打开 rqt_gui 后,点击顶部plugins 菜单栏,选择Topics选项,然后选择右边弹出的 Message Publisher选项,点击Topic栏右边的小三角形,选择可选项中的/smart/cmd_vel,然后按照图下的样子设置参数,最后点击 打钩选项,就可以发送topic,同时小车也动了起来。通过修改参数X来改变车辆的纵向速度,通过修改参数angular x来改变前轮转角。
请添加图片描述

三、常见问题

  1. 出现 [ Err] [REST.cc:205] Error in REST request的问题;我个人认为,这个问题可以暂时忽略,这个影响不大。
  2. 还有下图的问题,也可以忽略:请添加图片描述只是说找不到PID参数,其实找不到这个PID参数的效果是,你下发车辆1m/s的速度,车子的速度就立刻达到1m/s,而不是从0逐渐加速到1m/s,说白了就是直接把车辆的执行器直接理想化了,忽略了电机响应过程,让我们只需要关注上层的算法开发。当然了,如果你不想这样,可以找到图下这个文件夹,把图中选中的代码的注释放开,自己去调参,实现车辆速度控制。请添加图片描述

总结

好了,现在我们有了仿真小车,我们就可以借助该仿真车辆来进行算法设计。

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

琴郎同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值