概述
前言
我的电脑环境是: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来改变前轮转角。
三、常见问题
- 出现 [ Err] [REST.cc:205] Error in REST request的问题;我个人认为,这个问题可以暂时忽略,这个影响不大。
- 还有下图的问题,也可以忽略:只是说找不到PID参数,其实找不到这个PID参数的效果是,你下发车辆1m/s的速度,车子的速度就立刻达到1m/s,而不是从0逐渐加速到1m/s,说白了就是直接把车辆的执行器直接理想化了,忽略了电机响应过程,让我们只需要关注上层的算法开发。当然了,如果你不想这样,可以找到图下这个文件夹,把图中选中的代码的注释放开,自己去调参,实现车辆速度控制。
总结
好了,现在我们有了仿真小车,我们就可以借助该仿真车辆来进行算法设计。
最后
以上就是丰富紫菜为你收集整理的学习自动驾驶第一期:仿真环境搭建前言一、安装gazebo二、仿真小车代码的部署三、常见问题总结的全部内容,希望文章能够帮你解决学习自动驾驶第一期:仿真环境搭建前言一、安装gazebo二、仿真小车代码的部署三、常见问题总结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复