修改代码
本文将介绍如何基于 tianracer_gazebo
中的代码模板来修改实现自己的比赛代码。
注意
本节的内容,将会省略一些基础的细节,以方便大家快速上手修改代码,涉及到的基础知识和技巧请自行学习(如git
、vi
等)。
代码模板
我们提供了基于比赛的代码模板,你可以基于下面的 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
即可发现测试环境中的小车开始移动,表示代码已经可以运行。
在测试过程中我们提供了两个测试样例代码
multi_goals.py
提示
此代码通过运行 multi_goals 的函数进行目标点轮询,发送目标位置,通过 move_base 实现运动
如何运行:
shell
rosrun tianracer_gazebo multi_goals.py __ns:=tianracer
follow_the_gap.py
提示
此代码通过 follow_the_gap 的方法主动进行雷达数据判断,并给出目标位置进行运动。
shell
rosrun tianracer_gazebo follow_the_gap.py __ns:=tianracer
注意
如果代码没有成功运行,小车没有移动,或者有其他报错,请检查自己代码是否写的有问题,尤其是rospy
的发布和订阅。