目录
一、【课程前言】
简介:博主依托自动化学院学生学习与发展指导中心,开设了一门课程竞赛兴趣班,主要内容为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文件系统,利用Vscode进行开发,学习ROS的各类API接口,利用Python和C++对ROS系统进行开发!
1.【ROS环境搭建 / 问题总结】
1.1ROS环境搭建
安装源【指令】sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'
设置key【指令】sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
更新apt【指令】sudo apt update
安装ROS【指令】sudo apt install ros-noetic-desktop-full
【指令1】echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
【指令2】source ~/.bashrc
【指令1】sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential
【指令1】sudo rosdep init
【指令2】rosdep update
鱼香ROS【指令】wget http://fishros.com/install -O fishros && bash fishros
【指令】rosdepc update
【指令1】roscore
【指令2】rosrun turtlesim turtlesim_node
【指令3】rosrun turtlesim turtle_teleop_key
1.2问题总结
1.2.1虚拟机分辨率问题
1.2.2虚拟机网络问题
1.2.3Ubuntu网络问题
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu/ focal-security main restricted universe multiverse
# deb-src http://security.ubuntu.com/ubuntu/ focal-security main restricted universe multiverse
# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
# # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
【指令】sudo gedit sources.list
【指令】sudo apt-get update
1.2.4输入密码问题
鱼香ROS【指令】wget http://fishros.com/install -O fishros && bash fishros
2.【ROS文件系统 / Vscode开发】
2.1ROS文件系统
2.2Vscode开发
【指令】sudo dpkg -i code_1.88.0-1712152114_amd64.deb
【指令1】mkdir -p <你的名字缩写>_01/src
【指令1】mkdir -p Akaxi_01/src
【指令2】cd Akaxi_01/
【指令3】catkin_make
【指令】code .
【快捷键】Ctrl + Shift + B
{
// 有关 tasks.json 格式的文档,请参见
// https://go.microsoft.com/fwlink/?LinkId=733558
"version": "2.0.0",
"tasks": [
{
"label": "catkin_make:debug", //代表提示的描述性信息
"type": "shell", //可以选择shell或者process,如果是shell代码是在shell里面运行一个命令,如果是process代表作为一个进程来运行
"command": "catkin_make",//这个是我们需要运行的命令
"args": [],//如果需要在命令后面加一些后缀,可以写在这里,比如-DCATKIN_WHITELIST_PACKAGES=“pac1;pac2”
"group": {"kind":"build","isDefault":true},
"presentation": {
"reveal": "always"//可选always或者silence,代表是否输出信息
},
"problemMatcher": "$msCompile"
}
]
}
【快捷键】Ctrl + Shift + B
🚗任务三
3.【ROS接口 / Python和C++】
3.1ROS接口
3.2Python和C++
【快捷键】Ctrl + Shift + B
【指令】source ./devel/setup.bash
【指令】rosrun hello_ROS hello_node
【指令】ls 列出目录下所有文件
【指令】cd XXX 进入指定文件
【指令】ll 列出目录下所有文件权限
【指令】sudo chmod 777 XXX.py 添加权限
【指令】roscore
【指令】source ./devel/setup.bash
【指令】rosrun hello_ROS hello.py
🚗任务四
-------------------------------------------END-------------------------------------------
三、【课程补充】
总结
-----------------------------------------------------------------------------------------
集邮兑换
-----------------------------------------------------------------------------------------
相信读到这里的朋友,一定是坚持且优秀的
给博主一个免费的赞👍吧
扫描二维码进ROS智能车-自动驾驶入门与实战群,问题交流 | 吹吹水 | 一起变得更加优秀
2024.4.29
渝北仙桃数据谷