三个网站:
- https://www.ncnynl.com/category/DonkeyCar/
- https://www.donkeycar.com/
- https://github.com/autorope/donkeycar
首先有个小电脑,然后连接显示屏,鼠标
连接wifi,然后打开终端ifconfig
最后一个ip地址
ssh [email protected]
scp -r [email protected]:~/Work/donkey/* /home/liudecheng/projects/carcatch
训练好后,将文件移到pc,训练,然后把model再放到nano
- 进行手柄与nano适配
- 用usb连接手柄和nano,打开nano电源
- 进入nano命令行
- bluetoothctl
- agent on
- devices
- trust + mac地址
- default-agent
- quit
- ls /dev/input/js0
- source env/bin/activate //进入env模式
- cd d2/
- python manage.py drive --js //记住通电后放入轨道
- 按一下手柄中间的键就能打开蓝牙
- 左边摇杆是角度,右边摇杆是速度
- 右边的上是提高速度,下是减低速度
- 跑五十到一百圈
- ctrl+c 采集结束,自动产生在data的tub
- 安装好conda后
- cd projects
- cd donkey
- conda … env 建立依赖
- activiate donkey
- pip install -e .
- donkey createcar --path …\d2
- cd d2/data
- scp -r [email protected]:~/d2/data/tub
- cd
- cd d2
- python manage.py train --tub data/tub…/ --model models/mypilot
- cd models
- scp mypilot [email protected]:~/d2/models
- 进入nano命令行
- cd d2
- cd models
- ls -l看文件更新时间
- cd
- source env/bin/activate
- cd d2
- python manage.py drive --model ~/d2/models/mypilot
- 按手柄中间打开蓝牙,按slat键进入locol_angle
由于没手柄,使用网址控制小车
首先是nano的小车
小车的主机连接路由器,然后电脑连接路由器给的端口就可控制小车
- 连接小车的路由器wifi
- ssh [email protected] -X
- workon donkey
- cd d2
- python manage drive --model /model/xaivier
- 192.168.1.8:8887
- deactivate //退出虚拟环境
- sudo shutdown -f now
代码理解
有七个python文件
- config.py
- geom.py
- init.py
- la.py
- memory.py
- utils.py
- vehicle.py
class Vehicle: mem =None
构造函数:进行初始化
mem=mem
parts=[]
on : True
threads =[]
profiler :PartProfiler对象
add 方法
传入参数:
part,inputs,outputs,threaded,run_condition
print添加part提示
构造字典entry:
part:
inputs:
outputs:
run_condition:
thread:进程对象
if threaded
使用了Thread()方法
方法介绍:
Thread对象.damon = True 设置线程后台运行
添加字典:thread
给本身对象的变量赋值:
parts: append(entry)
profiler.profile_part(part)
remove方法
start方法
让线程开始
将标志on 设置为true
print开始信息
循环
update_parts()方法
stop方法
class PartProfiler:
变量:
records是一个字典
初始化
添加part
part开始的时间
part结束的时间差
有可能添加了多个part
一次开始和一次结束就会记录一个时间差