前言
我的电脑环境是:Ubuntu20.04 ros版本是noetic
一、安装gazebo
执行以下指令安装gazebo和相关插件:因为我的系统是Ubuntu20.04,所以安装了gazebo11,以及ros相关插件的版本是noetic.
1
2
3
4
5
6----------------------------------下载安装gazebo---------------------------------- sudo apt-get update sudo apt-get install gazebo11 sudo apt-get install libgazebo11-dev ----------------------------------下载安装gazebo----------------------------------
1
2
3
4
5
6
7---------------------------为了让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链接,执行以下指令:----------------------
1
2
3
4
5
6
7
8
9
10
11----------------------下载安装其他有的没的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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38--------------------------------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文件夹下执行以下指令,开始编译项目工程。
1
2catkin_make
2.如何启动仿真小车
打开终端,cd 到/car_simulation文件夹下,执行以下指令
1
2
3source devel/setup.bash roslaunch car_model spawn_car.launch
再打开一个新的终端,执行以下指令
1
2rosrun rviz rviz
打开rviz之后,点击左上角的file,选择Open Config,然后选中下面图片中的smart.rviz文件。
最后就可以在rviz中显示该小车了。
注意:rviz左上角的Global Option选项的Fixed Frame要选择world;
然后打开新的终端,执行以下指令
1
2rosrun 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二、仿真小车代码内容请搜索靠谱客的其他文章。
发表评论 取消回复