Skip to content

修改代码

本文将介绍如何基于 tianracer_gazebo中的代码模板来修改实现自己的比赛代码。

注意

本节的内容,将会省略一些基础的细节,以方便大家快速上手修改代码,涉及到的基础知识和技巧请自行学习(如gitvi等)。

代码模板

我们提供了基于比赛的代码模板,你可以基于下面的 2 个模板来改进出自己代码。

  • multi_goals.py
  • follow_the_gap.py

注意

修改代码时建议拷贝 1 份,进行修改,不建议在模板代码上直接修改。

提示

关于代码模板的详细解释,此处不再赘述,无论是 multi_goal.py 还是 follow_the_gap.py,其速度控制消息均通过话题 robot_name + /ackermann_cmd_stamped进行下发,其消息类型 ackermann_msgs 中的AckermannDriveStamped

运行如下命令,即可查看测试样例代码,关于vi的使用,请自行学习。

  • multi_goals.py
sh
roscd tianracer_gazebo/scripts/ && gedit multi_goals.py
  • follow_the_gap.py
sh
roscd tianracer_gazebo/scripts/ && gedit follow_the_gap.py

代码测试

需要运行测试环境和测试代码的时候需要按照顺序执行以下的命令

1. 启动仿真环境

shell
roslaunch tianracer_gazebo demo_tianracer_teb_nav.launch

等待一段时间之后,会自动弹出 gazebo 和 rviz 的界面如下图3图4,表示测试环境已经启动成功

图 3 gazebo 界面图

图 4 rviz 界面图

2. 启动导航任务

shell
rosrun tianracer_gazebo f1tenth_racer.py __ns:=tianracer

即可发现测试环境中的小车开始移动,表示代码已经可以运行。

在测试过程中我们提供了两个测试样例代码

  1. multi_goals.py

提示

此代码通过运行 multi_goals 的函数进行目标点轮询,发送目标位置,通过 move_base 实现运动

如何运行:

shell
rosrun  tianracer_gazebo multi_goals.py __ns:=tianracer
  1. follow_the_gap.py

提示

此代码通过 follow_the_gap 的方法主动进行雷达数据判断,并给出目标位置进行运动。

shell
rosrun  tianracer_gazebo follow_the_gap.py __ns:=tianracer

注意

如果代码没有成功运行,小车没有移动,或者有其他报错,请检查自己代码是否写的有问题,尤其是rospy的发布和订阅。