racecar仿真竞赛经验总结(二)- racecar仿真模型介绍

racecar仿真竞赛经验总结(二)- racecar仿真模型介绍

上篇博客链接:racecar仿真竞赛经验总结(一) - 前言

模型搭建

在上篇博客的依赖安装完全的基础上:

直接使用github上搭建好的模型

  • 访问racecar_github仓库并下载相应功能包
  • 新建一个workspace,并将/src移动到该工作空间下
  • 在当前工作空间中右键打开终端,输入以下命令编译:
catkin_make
  • 建议直接将工作路径添加到系统总bashrc文件中,用以下命令可以进行编辑
gedit ~/.bashrc

在最后添加 source + 工作空间路径 即可,这样每次roslaunch就可以自动source,如果不添加需要在每次打开工作空间时在终端输入 source devel/setup.bash 进行手动source(一定要在总目录下)

由于该模型用到了robot_pose_ekf,odom_tf_converter,rf2o_laser_odometry三个额外功能包,可能需要安装一些其他依赖,根据cmake提示进行安装即可(melodic版本可能会遇到一些问题无法正常使用,建议还是使用kinetic)

鉴于博主开源代码中的模型已搭建完成,进行到这一步就可以直接使用launch文件启动了,这里简要介绍一些常用功能的启动,具体的使用方法在github中已详细说明

  • 启动rviz和gazebo查看小车结构以及初始地图
roslaunch racecar_gazbeo racecar_rviz.launch
  • 启动键盘控制节点

由于博主将这个node编写到racecar.launch文件中了,这里找到racecar.launch文件中的节点控制取消注释后重新使用上面的roslaunch,在打开的gazebo环境中就可以使用键盘控制小车运动

image-20200801215552429

重新搭建模型

为了方便入门,这里建议直接使用北邮老哥提供的racecar_demo

  • 创建新的工作空间
mkdir -p smartcar_ws/src
  • 初始化工作空间
cd ~/smartcar_ws/src
catkin_init_workspace

然后导入仿真文件,将百度云下载的压缩文件解压,将其中的racecar_description.7z文件复制到smartcar_ws/src下并提取(如下图):

image-20200801223218118

将压缩文件中的smartcar_plane.7z文件提取到.gazebo下的models下,具体操作如下:

  • 在home目录下ctrl + h显示隐藏文件
  • 找到.gazebo文件
  • 进入文件中的models文件夹(如果没有就自己创建一个)
  • 将smartcar_plane.7z解压到models下

image-20200801223555985

image-20200801223608474

  • 在racecar_description文件夹下创建worlds文件夹,然后把百度网盘的world文件放到下面:

image-20200801223642163

  • 修改一下launch文件夹中的racecar.launch文件:

image-20200801223756961

  • 编译工程:
cd ~/smartcar_ws
catkin_make
  • 使能环境变量:
echo "source ~/smartcar_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc
  • 启动仿真环境:
roslaunch racecar_description racecar.launch

image-20200801223934398

  • 启动rviz和gazebo:
roslaunch racecar_description racecar_rviz.launch

image-20200801224012014

关于运动控制的配置

官方提供的车模已经配置好了关节,要做的就是写关节的控制器,关节控制器代码在racecar_control/config/racecar_control.yaml文件中,内容如下:

image-20200801224518936

其中Velocity Controllers部分控制转速的pid以及关节定义,Position Controllers部分配置转向关节的pid以及关节定义,对照官方的车模(文件路径在~/urdf/racecar.urdf.xacro下)修改对应的关节名字就行,也可以根据launch文件修改相应关节名:

image-20200801224842229

在<!–load the controllers–>中指明了各个关节名,对应进行修改就行,有问题也可以参考github中/src文件下已修改的文件就行


racecar仿真竞赛经验总结(二)- racecar仿真模型介绍
http://example.com/2020/08/01/racecar仿真竞赛经验总结(二)- racecar仿真模型介绍/
Author
Zachary Deng
Posted on
August 1, 2020
Licensed under