-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathROS_PX4教程.tex
executable file
·165 lines (146 loc) · 9.92 KB
/
ROS_PX4教程.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
\documentclass{article}
\usepackage[UTF8]{ctex}
\usepackage{minted}
\usepackage{appendix}
\usepackage{hyperref}
\usepackage{geometry}
\geometry{a4paper}
\geometry{centering}
\geometry{left=2cm}
\geometry{right=2cm}
\geometry{top=1cm}
\geometry{bottom=1cm}
\renewcommand\contentsname{\textbf{Content}}
\newcommand\mintbash[1]{\mintinline[breakanywhere,breaklines]{bash}| #1 |}
\newcommand\bash[1]{\mintinline[breakanywhere,breaklines]{bash}| #1 |}
\begin{document}
\author{Wei Hu}
\date{\today}
\title{\textbf{ROS PX4 仿真教程}}
\maketitle
%\section{Ubuntu安装}
%使用\href{URLhttps://rufus.ie/en/}{Rufus}制作系统镜像盘,注意新一点的电脑选择GPT硬盘格式,UEFI启动,之后制作镜像启动盘即可
\section{Ubuntu下ROS开发的配置}
首先应使用命令\bash{sudo apt update && sudo apt upgrade}更新系统软件源以及软件,之后在进行以下操作
\subsection{Ubuntu系统配置}
\subsubsection{系统时间设置}
完成双系统安装完成之后,\texttt{Ubuntu}系统与原有的\texttt{Windows}系统的时间会发生错乱
,\href{URLhttps://zhuanlan.zhihu.com/p/492885761}{双系统下的时间错乱},
总而言之就是两个系统对于主板上的\mintinline{bash}| BIOS |时间认识不一致
,解决方法如下命令
\begin{minted}{bash}
timedatectl status
# 查看系统时间状态
timedatectl set-local-rtc 1
# 设置Ubuntu系统时间与BIOS同步
timedatectl status
# 此条命令可以不用输入,也是用于查看修改后的系统时间状态
# 会有一个Warning输出.
\end{minted}
\subsubsection{中文输入法}
进入设置,转到地区与语言,点击管理已下载的语言,会有弹窗提示更新,更新完之后重启电脑,之后再次进入设置转到地区与语言
在输入源中添加\bash{Chinese(Intelligent Pinyin)}中文应该是智能拼音.
\subsection{相关软件安装}
这一部分是为了更好的使用\texttt{ROS},我们需要下载以下几个软件
\begin{itemize}
\item [1.]\href{https://code.visualstudio.com/download}{Visual Studio code},
其中很多插件可以使得编写代码更为方便快捷.\\插件推荐:C/C++,Python,ROS,CMake,One Dark Pro,
\item [2.]\href{https://www.google.com/chrome/}{Google Chrome},
使用\texttt{Google}的话需要
自己的电脑有科学上网的能力,如果不能够科学上网,
可以使用\texttt{Ubuntu}自带的\texttt{Firefox}浏览器,在设置里将浏览器修改为\texttt{Bing}就可以了.
\item [3.]\href{https://git-scm.com/downloads}{Git},一般而言,
如果正确安装t\texttt{Ubuntu}的话,在命令行输入\texttt{Git}
就会有相关内容显示,关于\texttt{Git}相关的教程请看附录
\item [4.]\href{https://www.vim.org/download.php}{Vim},一个可以集成到终端中的代码编辑器,不用离开终端,
只需输入命令就可以在终端直接编辑文件.
当然了,在\texttt{Ubuntu}下可以直接使用命令行输入命令
\mintinline{bash}{sudo apt install vim},但是令人头疼的也是它的上手门槛,
相关简单操作以及\texttt{Vim}配置见附录.
\end{itemize}
\section{ROS安装}
\href{URLhttps://wiki.ros.org/ROS/Introduction}{\textbf{ROS介绍}}
\\
\href{https://wiki.ros.org/noetic/Installation/Ubuntu}{\textbf{ROS安装}}
\begin{itemize}
\item ROS安装最好是在使用科学上网的前提下进行,否则会遇到各种各样的报错,在科学上网的前提下,按照官网的安装指令,一步一步的执行即可
\item \href{https://fishros.org.cn/forum/topic/20/%E5%B0%8F%E9%B1%BC%E7%9A%84%E4%B8%80%E9%94%AE%E5%AE%89%E8%A3%85%E7%B3%BB%E5%88%97?lang=en-US}{fishros}一键安装,使用命令:\bash{wget http://fishros.com/install -O fishros && . fishros}
\end{itemize}
\section{PX4仓库克隆及编译}
在正式克隆\texttt{PX4}仓库之前需要保证以下几点
\begin{itemize}
\item 成功访问\href{URLhttps://github.com/}{Github},并且注册一个自己的\texttt{Github}账户.
\item 观看过附录的\textbf{Linux终端常用命令}
\item 观看过附录的\textbf{Git简易教程}
\end{itemize}
打开终端,切换到合适的目录下输入命令\mintbash{git clone https://github.com/PX4/PX4-Autopilot.git}并进入\mintbash{ PX4-Autopilot }目录,输入命令\mintbash{bash ./Tools/setup/ubuntu.sh}
,等待命令执行结束之后,输入命令\mintbash{sudo reboot}重启电脑.
\\
等待重启完毕之后,进入\mintbash{PX4-Autopilot}目录,输入命令\mintbash{make px4_sitl gazebo-classic}即可启动仿真界面,并在刚刚输入命令的界面再次输入\mintbash{commander takeoff}即可实现飞机起飞
输入命令\mintbash{commander land}\\可实现飞机降落
\subsection{PX4仿真与ROS通讯}
需要下载\mintbash{mavros}功能包,打开终端输入命令
\begin{minted}{bash}
sudo apt install ros-noetic-mavros ros-noetic-mavros-extras ros-noetic-mavros-msgs
\end{minted}
根据官网的\href{https://docs.px4.io/main/en/ros/mavros_offboard_cpp.html}{\bash{demo}}修改对应的配置文件,启动节点即可实现\bash{ROS 与 PX4通讯}
以下是启动无人机正方形飞行的命令
\begin{appendices}
\section{Linux终端常用命令}
\begin{itemize}
\item 打开终端:\mintinline{bash}|Ctrl + Alt + t|
\item 创建目录:\bash{mkdir <folder_name>}
\item 在终端下切换目录:\mintinline{bash}| cd <path> |\\
回到上一级目录\mintinline{bash}| cd .. |\\
\mintinline{bash}| . |表示当前目录,所以也可以使用相对于当前目录来使用\mintinline{bash}| cd |命令来切换目录,
\\如果当前目录的父目录\bash{parent}有个叫\bash{parent_test}的目录,
则可以使用命令\mintinline{bash}| cd ../parent_test |来切换到\bash{parent_test}目录\\
如果当前目录的子目录\mintinline{bash}| child |下有个\bash{child_test}的目录,则可以使用命令\bash{cd ./child/child_test}來切換到\bash{child_test}目录.
\item 执行文件:使用命令\bash{./<file_name>}
\end{itemize}
\section{Git 简易教程}
下載git之后,需要配置自己的用户名以及用户邮箱,使用\mintinline{bash}| Ctrl + Alt + t |打开终端,输入以下命令:
\begin{minted}{bash}
git config --global user.name "your name"
git config --global user.email "your email"
\end{minted}
\subsection{Github 简易使用}
如果是自己要在\mintbash{Github}创建仓库或者团队开发需求,首先要在自己的机器上
生成用于访问\mintbash{Github}\\的\mintbash{SSH}密钥,在终端输入\mintbash{ssh-keygen -r rsa -C "youremail"},如果只是个人使用的话,在输入万命令之后一路回车或者输入\mintbash{yes}即可
生成的密钥一般会存放在用户目录下的隐藏文件夹\mintbash{.ssh}下,拷贝该目录下一个名为\mintbash{id_ras.pub}文件中的内容,登陆\mintbash{Github},
转到\mintbash{Settings}中的\mintbash{SSH and GPG keys},点击\mintbash{New},将\mintbash{id_ras.pub}中的内容粘贴进去,
点击\mintbash{Add SSH key},之后点击\mintbash{Save}即可.
\subsubsection{克隆自己仓库}
使用命令
\begin{minted}{bash}
git clone https://github.com/yourname/yourrepository
\end{minted}
即可克隆自己的仓库,克隆到本地之后就可以开始编辑工作,
要想将本地的修改上传到\mintbash{Github}仓库中,
需要在本地仓库中执行\mintbash{git add .},然后执行\mintbash{git commit -m "commit message"},
最后执行\mintbash{git push}即可上传到\mintbash{Github}仓库中,如果是第一次推送的话,需要
添加参数\mintbash{git push -u origin main},之后推送直接使用\mintbash{git push}即可。
如果后续在\bash{Github}上修改了仓库里的代码,本地机器上的代码与\bash{Github}代码不同,则使用命令\bash{git pull}即可拉取远程仓库的代码。
\subsubsection{克隆他人仓库}对于公开仓库,直接使用以下命令即可克隆他人仓库
\begin{minted}{bash}
git clone https://github.com/othername/otherrepository
\end{minted}
如果是私有仓库的话,需要在\mintbash{Github}中添加自己的\mintbash{SSH}密钥,然后使用下列命令,即可克隆他人仓库,克隆到本地之后就可以开始编辑工作。
\begin{minted}{bash}
git clone [email protected]:othername/otherrepository
\end{minted}
如果后期他人仓库中的内容有所改动,则只需要输入命令\bash{git pull}即可拉取他人仓库更新后的源码.
\section{Vim 简易教程及其配置}
\subsection{Normal模式}
\mintbash{Vim}有多种模式,一般使用命令打开文件进入的是\mintbash{Normal}模式,可以使用\mintbash{hjkl}来进行光标的运动,
\mintbash{h&l}分别代表光标左右运动,\mintbash{k&j}分别代表光标上下行运动
然后使用\mintbash{gg}命令跳转到\emph{文件开头},使用\mintbash{dd}命令删除\emph{光标所在行},使用\mintbash{yy}复制光标所在行,使用\mintbash{p}则是粘贴之前所复制的行.、
\subsection{Insert模式}
在\mintbash{Normal}模式下输入\bash{i}进入光标所在位置开始编辑,输入\bash{a}进入光标之后位置开始编辑(更加符合我们平时编辑的模式),
输入\bash{o}从当前光标所在行新起一行开始编辑,输入\bash{shift + o}从当前光标所在行向上新起一行开始编辑。
% \subsection{Vim 配置}
% 打开终端切换到家目录下,命令:\bash{cd ~}
% 输入命令\bash{git clone https://gitee.com/mirrorvim/vim-fast.git}
% 进入\bash{vim-fast}目录,使用命令\bash{sudo ./install.sh}等待完成之后,在当前目录下使用命令下的\bash{shell}目录
\end{appendices}
\end{document}