硬件简介:硬件是NVIDA Jetson Nano为主控的差速控制小车,主要由主控板、转接板、两个电机(动力来源)、高清摄像头、tof传感器、imu传感器、前后各两组车灯,顶部开关按钮、显示屏以及万向轮组成。
调试环境:调试环境要求ubuntu系统,可以是独立安装的主机,也可以是虚拟机,这里以VMware Workstation 15 Pro安装桌面版ubuntu20.04虚拟机为例来说明,虚拟机安装要求配置50G以上硬盘空间(小车系统镜像下载解压后占用32G左右空间),网络设置为NAT模式。
注:该功能也可以移植到树莓派小车上,应用层基本可以通用,主要是驱动层需要按应用层需要的接口去实现。
目录
1、安装VMware
运行安装包VMware-workstation-full-15.5.2-15785246.exe,等待安装程序启动:
点击【下一步】,勾选【我接受许可协议中的条款(A)】,点击【下一步】:
修改安装位置后(不建议在C盘)【确定】,并点击【下一步】:
取消勾选【启动时检查产品更新】和【加入客户体验提升计划】,点击【下一步】:
快捷方式保持默认勾选状态,点击【下一步】,点击【安装】等待安装:
点击【许可证】,输入许可证密钥,也可以先点【完成】,在软件帮助中再次输入许可证:
点击【输入】,完成许可验证,点击【完成】,完成软件安装,
双击桌面VMware Workstation Pro快捷方式,打开软件。
2、VMware基本操作
1)安装虚拟机:详见下节
2)加载已有虚拟机:
工具栏【文件】-->【打开】-->选择已有虚拟机文件(.vmx格式)-->【打开】;
3)打开虚拟机:
点选要打开的虚拟机-->点击
/从工具栏绿色按钮启动所选虚拟机;
4)关闭虚拟机:
可以在虚拟机内部操作关闭虚拟机,也可以从工具栏绿色按钮下拉选择关闭虚拟机;
5)编辑虚拟机:
点选要编辑的虚拟机-->工具栏【虚拟机】-->【设置】-->对虚拟机硬件配置进行修改-->【确定】-->重新启动虚拟机
6)连接外部USB存储
工具栏【虚拟机】-->可移动设备-->选择USB设备-->连接
3、安装ubuntu20.04
VMware工具栏【文件】-->【新建虚拟机】:
默认【自定义】,点击【下一步】,默认并点【下一步】:
勾选【安装程序光盘映像文件】,浏览文件所在目录,选择打开对应iso文件,点【下一步】,输入用户信息和开机密码(名称:mycar,密码:1,可自行设置),点【下一步】:
修改虚拟机名称(自定义),修改虚拟机安装位置(自行选择,不建议C盘,要求空余磁盘100G以上),点击【下一步】,处理器配置默认1:1,可根据主机配置自行修改,点击【下一步】:
内存容量建议4G以上,可根据主机配置自定义,点击【下一步】,网络勾选【使用桥接网络】,点击【下一步】:
注:如果电脑有多网卡的话,网络类型也可以先选在使用网络地址转换,即NAT模式,可以保证虚拟机可以联网完成必要的安装,在安装完成后再配置网络类型。
I/O控制器类型默认推荐,点击【下一步】,磁盘类型默认推荐,点击【下一步】:
创建新磁盘,点击【下一步】,磁盘容量建议100G(不得少于60G),默认勾选磁盘拆分模式,点击【下一步】:
磁盘文件默认即可,点击【下一步】,确定虚拟机配置,点击完成,开始安装虚拟机:
等待虚拟机安装完成并自行启动,选择配置的账户,输入设置的密码,进入虚拟机。
4、虚拟机基本配置
1)提醒软件有更新,自动安装即可,安装后需要重启虚拟机
2)设置时区:Settings-->Date&Time-->Time Zone-->Shanghai China
3)设置黑屏时间:Settings-->Power-->Blank Screen-->Never
4)安装网络工具:CTRL+ALT+T打开命令终端,输入sudo apt install net-tools -y ,密码认证后自动安装,安装完成后输入 ifconfig,可查看本机网络配置
5)如果在安装虚拟机时,主机未联网,需要手动安装open-vm-tools,终端输入sudo apt install open-vm-tools -y
6)终端输入sudo apt-get update
5、Ubuntu常用指令
1)apt-get
apt-get update // 更新源文件,并不会做任何安装升级操作
apt-get upgrade // 升级所有已安装的包
apt-get install packagename // 安装指定的包
apt-get install packagename --only-upgrade // 仅升级指定的包
apt-get install packagename --reinstall // 重新安装包
2)关机和重启
shutdown -h now 立刻关机
shutdown -h 5 5分钟后关机
poweroff 立刻关机
shutdown -r now 立刻重启
shutdown -r 5 5分钟后重启
reboot 立刻重启
3)目录切换 cd
命令: cd 目录
cd / 切换到根目录
cd /usr 切换到根目录下的usr目录
cd ../ 切换到上一级目录或者 cd ..
cd ~ 切换到home目录
cd - 切换到上次访问的目录
4)目录查看 ls [-al]
命令:ls [-al]
ls 查看当前目录下的所有目录和文件
ls -a 查看当前目录下的所有目录和文件(包括隐藏的文件)
ls -l 或 ll 列表查看当前目录下的所有目录和文件(列表查看,显示更多信息)
ls /dir 查看指定目录下的所有目录和文件 如:ls /usr
5)创建目录【增】 mkdir
命令:mkdir 目录
mkdir aaa 在当前目录下创建一个名为aaa的目录
mkdir /usr/aaa 在指定目录下创建一个名为aaa的目录
6)删除目录或文件【删】rm
命令:rm [-rf] 目录
删除文件:
rm 文件 删除当前目录下的文件
rm -f 文件 删除当前目录的的文件(不询问)
删除目录:
rm -r aaa 递归删除当前目录下的aaa目录
rm -rf aaa 递归删除当前目录下的aaa目录(不询问)
全部删除:
rm -rf * 将当前目录下的所有目录和文件全部删除
rm -rf /* 【自杀命令!慎用!慎用!慎用!】将根目录下的所有文件全部删除
7)目录修改【改】mv 和 cp
Ø 重命名目录
命令:mv 当前目录 新目录
例如:mv aaa bbb 将目录aaa改为bbb
注意:mv的语法不仅可以对目录进行重命名而且也可以对各种文件,压缩包等进行 重命名的操作
Ø 剪切目录
命令:mv 目录名称目录的新位置
示例:将/usr/tmp目录下的aaa目录剪切到 /usr目录下面 mv /usr/tmp/aaa /usr
注意:mv语法不仅可以对目录进行剪切操作,对文件和压缩包等都可执行剪切操作
Ø 拷贝目录
命令:cp -r 目录名称目录拷贝的目标位置 -r代表递归
示例:将/usr/tmp目录下的aaa目录复制到 /usr目录下面 cp /usr/tmp/aaa /usr
注意:cp命令不仅可以拷贝目录还可以拷贝文件,压缩包等,拷贝文件和压缩包时不用写-r递归
8)搜索目录【查】find
命令:find 目录参数文件名称
示例:find /usr/tmp -name 'a*' 查找/usr/tmp目录下的所有以a开头的目录或文件
9)新建文件【增】touch
命令:touch 文件名
示例:在当前目录创建一个名为aa.txt的文件 touch aa.txt
10)删除文件【删】rm
命令:rm -rf 文件名
11)修改文件【改】 vi或vim
【vi编辑器的3种模式】
基本上vi可以分为三种状态,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下:
1) 命令行模式command mode)
控制屏幕光标的移动,字符、字或行的删除,查找,移动复制某区段及进入Insert mode下,或者到 last line mode。
命令行模式下的常用命令:
【1】控制光标移动:↑,↓,j
【2】删除当前行:dd
【3】查找:/字符
【4】进入编辑模式:i o a
【5】进入底行模式::
2) 编辑模式(Insert mode)
只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。
编辑模式下常用命令:
【1】ESC 退出编辑模式到命令行模式;
3) 底行模式(last line mode)
将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号……等。
底行模式下常用命令:
【1】退出编辑: :q
【2】强制退出: :q!
【3】保存并退出: :wq
Ø 打开文件
命令:vi 文件名
示例:打开当前目录下的aa.txt文件 vi aa.txt 或者 vim aa.txt
注意:使用vi编辑器打开文件后,并不能编辑,因为此时处于命令模式,点击键盘i/a/o进入编辑模式。
Ø 编辑文件
使用vi编辑器打开文件后点击按键:i ,a或者o即可进入编辑模式。
i:在光标所在字符前开始插入
a:在光标所在字符后开始插入
o:在光标所在行的下面另起一新行插入
Ø 保存或者取消编辑
保存文件:
第一步:ESC 进入命令行模式
第二步:: 进入底行模式
第三步:wq 保存并退出编辑
取消编辑:
第一步:ESC 进入命令行模式
第二步:: 进入底行模式
第三步:q! 撤销本次修改并退出编辑
12)文件的查看【查】
文件的查看命令:cat /more/less/tail
cat:看最后一屏
示例:使用cat查看/etc/sudo.conf文件,只能显示最后一屏内容
cat sudo.conf
more:百分比显示
示例:使用more查看/etc/sudo.conf文件,可以显示百分比,回车可以向下一行,空格可以向下一页,q可以退出查看
more sudo.conf
less:翻页查看
示例:使用less查看/etc/sudo.conf文件,可以使用键盘上的PgUp和PgDn向上 和向下翻页,q结束查看
less sudo.conf
tail:指定行数或者动态查看
示例:使用tail -10 查看/etc/sudo.conf文件的后10行,Ctrl+C结束
tail -10 sudo.conf
13)网络通信命令
ifconfig:查看网卡信息
命令:ifconfig 或 ifconfig | more
ping:查看与某台机器的连接情况
命令:ping ip
netstat -an:查看当前系统端口
命令:netstat -an
搜索指定端口
命令:netstat -an | grep 8080
6、更新软件包并安装常用工具
$ sudo apt update
$ sudo apt upgrade
$ sudo apt install -y python3-pip git git-lfs curl wget -y
7、安装docker并配置
下载安装
$ sudo apt install docker.io -y
添加用户
$ sudo adduser `whoami` docker
安装docker-compose
$ sudo apt install docker-compose -y
重启虚拟机,测试docker
$ docker run hello-world
8、安装Duckietown Shell
$ pip3 install --no-cache-dir --user --upgrade duckietown-shell
重启虚拟机后设置命令版本和令牌
$ dts --set-version daffy
$ dts tok set dt1-3nT8KSoxVh4MdKBWdBDdexqAPFFC5NX8YDcM5VgNMqDa5sr-43dzqWFnWd8KBa1yev1g3UKnzVxZkkTbfgkb4xRu1FHbvrYx1NU8TdwoenF36xqzWD
初始化dts:输入dts,等待初始化完成后进入等待指令输入状态:
输入?或者help,可以查看命令列表: