路径规划考题
一、规则(30 分,每空 1.5 分) 八字环绕测试布局图
两个圆心之间距离为_____。内圆直径为______,外圆直径为______。
八字环绕测试程序 发车位置-赛车的最前面部分在计时线前方 ______ 米处。 启动-来自 _____ 的 _____ 信号用于指示开始。
直线加速赛道布局
直线加速赛赛道从起点到终点的直线距离为 _____ 米,赛道宽度从路标桩桶内 边缘计算为 ___ 米。路标桩桶摆放的间隔大概为______米。路标桩桶的位置将 不会在赛道上做标记。
直线加速测试程序
穿过终点线后,赛车必须在标记的出口车道内 _____ 内完全停止。 发车位置-赛车的最前面部分在起跑线后 _____ 处为起始位置。赛车将从静止开始加 速。
高速循迹赛道布局
在完成比赛之后,赛车必须在赛道上的终点线后 ______ 米内完全停止,并进入任务完成 状态。
最后一圈是否有提示?
答:
动态项目罚时
DNF 表示_______。 如果赛车熄火,并没有外力帮助的情况下不能重新发动,比赛被判为 _______。
二、相关软件及技术(20 分)
1、 在路径规划方面用来与 Ros 联合仿真的有哪些软件(列出两个),并写出其功能。
【5 分】
2、 简单列写一个 Urdf 文件,用于构建一个二轮机器人。【7 分】
3、 如果要实现一个遥感控制小车仿真,并获得其小车的位姿,如何实现(罗列节点及话题,
节点及话题名可自定义,并写出每个节点的作用和话题发布的内容)【8 分】 三、C++及 ros 的相关知识(30 分)
1、简述以下红色代码的含义【10 分】 #include <ros/ros.h>
#include <std_msgs/String.h>
#include
int main(int argc, char** argv) {
ros::init(argc, argv,“talker”);
ros::NodeHandle n;
ros::Publisher chatter_pub= n.advertise<std_msgs::String>(“chatter”, 100); ros::Rate loop_rate(10);
int count=0;
while(ros::ok())
{
std_msgs::String msg; std::stringstream ss; ss << “hello” << cont; msg.data = ss.str();
ROS_INFO(“%s”,msg.data.C_str()); Chatter_pub.publish(msg);
ros::spinOnce();
loop_rate.sleep();
++count }
return 0; }
#include “ros/ros.h”
#include “std_msgs/String.h”
void chatterCallback(const std_msgs::String::ConstPtr& msg) {
ROS_INFO(“I heard: [%s]”, msg->data.c_str()); }
int main(int argc, char **argv) {
ros::init(argc, argv, “listener”);
ros::NodeHandle n;
ros::Subscriber sub = n.subscribe(“chatter”, 1000, chatterCallback);
ros::spin();
return 0; }
2、以下 launch 文件可以打开那些节点和文件。【6 分】
6、下面这段代码想要实现的功能是【3 分】