目录
一、【课程前言】
简介:博主依托自动化学院学生学习与发展指导中心,开设了一门课程竞赛兴趣班,主要内容为ROS智能车—自动驾驶入门与实战,旨在帮助对ROS机器人操作系统、智能车、自动驾驶相关方面感兴趣的大一、大二、大三同学,深入学习基础知识并进行对应实战,从基础开始一步一步,最后在智能小车上完成实战,全过程引导,保姆级教程!~
⭐在这里,你能收获到ROS智能车的开发经验实战技巧,以及各类比赛信息
⭐在这里,你能接触到自动驾驶相关技术开发流程经验
⭐在这里,你能从基础开始一步一步构建自己的智能车开发系统
⭐在这里,你能学会Linux基础、Ubuntu基础、ROS基础等保姆级教程
我是本门课程的leader,大三物联网工程专业,拥有较为丰富的ROS智能车开发,和自动驾驶相关项目的经验
-----------------------------------------------------------------------------------------
课程安排
第一次课—课程基本介绍/学习资源推荐/网课/课程安排等【重要】
第二次课—环境配置以及软件安装(虚拟机/Ubuntu/Vscode/ROS)【重要】
第三次课—ROS 基础—话题/服务/参数服务器/常用命令及 API/launch 文件/TF 坐标变换/常用工具【重要】
第四次课—ROS 进阶—概述/坐标系/定位/导航/路径规划/SLAM/地图构建/导航【重要】
第五次课—基于 ROS 架构的智能小车实战——1(软件安装/配置/硬件架构/文件了解)
第六次课—基于 ROS 架构的智能小车实战——2(手动控制小车跑起来)
第七次课—基于 ROS 架构的智能小车实战——3(让小车无人自主导航)
第八次课—基于 ROS 架构的智能小车实战——4(综合开发进阶实战)
-----------------------------------------------------------------------------------------
学习目的
1)学习基于 ROS 的基本 Python、C++开发语法规则
2)了解当前自动驾驶领域的应用前景、市场行业等
3)学习基于的 ROS 智能小车基本架构
4)学习掌握自动驾驶的关键技术:多传感器融合感知、定位、通信、导航等
5)通过学习在智能小车上完成自主导航实战
-----------------------------------------------------------------------------------------
集邮册
【挑战任务】参与课程的同学,在每次课都会有两个挑战任务,成功完成后,即可集邮——小汽车印章,小汽车印章可以兑换神秘奖品喔~~~ 兑换规则在文末~~~
-----------------------------------------------------------------------------------------
二、【课程正文】
接下来是第三次课程的内容,一起来回顾前面两次课程的知识,并且学习一些补充课外知识,学习ROS的三大通信机制:话题通信,服务通信,参数服务器,并且深入了解ROS的话题通信,基于ROS编写发布方Publisher和订阅方Subscriber!
1.【上次课程回顾 / 课外补充知识】
1.1上次课程回顾
鱼香ROS【指令】wget http://fishros.com/install -O fishros && bash fishros
百度网盘链接:https://pan.baidu.com/s/1dGRP3EW1qBxFZ8lko6BrPg?pwd=AAAA
1.2课外补充知识
1.2.1科学找资料
1.2.2重生之—霸总教我查文献
1.2.3手把手玩转Linux指令
示例:akaxi@akaxi-PC:~$
akaxi //用户名,root为超级用户
@ //分隔符
Akaxi-PC //主机名称
~ //当前所在目录,默认用户目录为~,会随着目录切换而变化
$ //表示当前用户是普通用户为$(管理员是#)
【指令】ls
【指令】cd
【指令】pwd
【指令】clear
【指令】mkdir
1.2.4如何优雅使用Github和Gitee
----------------------云端代码克隆到本地------------------------
*从github仓库克隆到本地文件夹
git clone https://github.com/Akaxi6/Tracking_Car.git
*挂梯子连github需要改变改变端口
git config --global http.proxy http://127.0.0.1:7890
*取消代理,不挂梯子连gitee
# 取消代理
git config --global --unset http.proxy
git config --global --unset https.proxy
# 查看代理
git config --global --get http.proxy
git config --global --get https.proxy
*查看本地文件夹/仓库的情况
git status
*提交文件到暂存仓库
git add Sendor_learning_Akaxi_1.pdf
*提交到仓库
git commit -m "commit pdf" # ""引号内为备注
*查看仓库日志
git log
*推送到github云端
git push origin master/main
----------------------本地仓库推到云端------------------------
初始化本地仓库:git init
关联仓库:git remote add origin https://github.com/Akaxi6/Sensor_learning.git
将云仓库拉到本地:git pull origin master【初次提交跳过此步骤】
本地文件添加到本地仓库:git add . 【点 . 表示全部】
然后提交:git commit -m "备注"
本地仓库推到云仓库:git push origin master
1.2.5错过一个亿之重邮图书馆
2.【ROS通信机制 / ROS话题通信】
2.1ROS通信机制
2.2ROS话题通信
3.【Publisher / Subscriber】
3.1Publisher
【快捷键】Ctrl + Shift + B
#include <ros/ros.h>
#include <std_msgs/String.h>
int main(int argc, char *argv[])
{
setlocale(LC_ALL,"");
ros::init(argc, argv, "pub_pic_node"); // 发布节点创建
ROS_INFO("节点pub_pic_node启动成功"); // 打印信息
ros::NodeHandle nh; // 初始化节点大管家
ros::Publisher pub = nh.advertise<std_msgs::String>("my_pic", 10); //设置话题名称
ros::Rate loop_rate(10); // 设置发布频率1秒10次
while(ros::ok())
{
ROS_INFO("图片.jpg\n");
std_msgs::String msg; // 定义话题消息的类型为String
msg.data = "图片.jpg";
pub.publish(msg); // 发布消息
loop_rate.sleep(); // 休眠频率
}
return 0;
}
【快捷键】Ctrl + Shift + B
【指令1】roscore
【指令2】rosrun publish_pic pub_pic_node
【指令】rostopic list
🚗任务五
3.2Subscriber
#include <ros/ros.h>
#include <std_msgs/String.h>
void pic_callback(std_msgs::String msg) // 回掉函数,处理接收到的话题信息
{
ROS_INFO(msg.data.c_str()); // 打印得到的话题数据
ROS_INFO("\n");
}
int main(int argc, char *argv[])
{
setlocale(LC_ALL,"");
ros::init(argc, argv, "sub_pic_node");
ROS_INFO("节点pub_pic_node启动成功"); // 打印信息
ros::NodeHandle nh;
ros::Subscriber sub = nh.subscribe("my_pic", 10, pic_callback); //订阅发布者的话题my_pic,并进入回掉函数
while (ros::ok())
{
ros::spinOnce(); // 循环一直回掉
}
return 0;
}
🚗任务六
-------------------------------------------END-------------------------------------------
三、【课程补充】
总结
-----------------------------------------------------------------------------------------
集邮兑换
-----------------------------------------------------------------------------------------
相信读到这里的朋友,一定是坚持且优秀的
给博主一个免费的赞👍吧
扫描二维码进ROS智能车-自动驾驶入门与实战群,问题交流 | 吹吹水 | 一起变得更加优秀
2024.4.30
渝北仙桃数据谷