donkeyCar学习记录

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/Mr_Dec/article/details/102373144

三个网站:

  • 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

  1. 进行手柄与nano适配
  2. 用usb连接手柄和nano,打开nano电源
  3. 进入nano命令行
  4. bluetoothctl
  5. agent on
  6. devices
  7. trust + mac地址
  8. default-agent
  9. quit
  10. ls /dev/input/js0
  11. source env/bin/activate //进入env模式
  12. cd d2/
  13. python manage.py drive --js //记住通电后放入轨道
  14. 按一下手柄中间的键就能打开蓝牙
  15. 左边摇杆是角度,右边摇杆是速度
  16. 右边的上是提高速度,下是减低速度
  17. 跑五十到一百圈
  18. ctrl+c 采集结束,自动产生在data的tub
  19. 安装好conda后
  20. cd projects
  21. cd donkey
  22. conda … env 建立依赖
  23. activiate donkey
  24. pip install -e .
  25. donkey createcar --path …\d2
  26. cd d2/data
  27. scp -r [email protected]:~/d2/data/tub
  28. cd
  29. cd d2
  30. python manage.py train --tub data/tub…/ --model models/mypilot
  31. cd models
  32. scp mypilot [email protected]:~/d2/models
  33. 进入nano命令行
  34. cd d2
  35. cd models
  36. ls -l看文件更新时间
  37. cd
  38. source env/bin/activate
  39. cd d2
  40. python manage.py drive --model ~/d2/models/mypilot
  41. 按手柄中间打开蓝牙,按slat键进入locol_angle

由于没手柄,使用网址控制小车

首先是nano的小车
小车的主机连接路由器,然后电脑连接路由器给的端口就可控制小车

  1. 连接小车的路由器wifi
  2. ssh [email protected] -X
  3. workon donkey
  4. cd d2
  5. python manage drive --model /model/xaivier
  6. 192.168.1.8:8887
  7. deactivate //退出虚拟环境
  8. sudo shutdown -f now

代码理解

有七个python文件

  1. config.py
  2. geom.py
  3. init.py
  4. la.py
  5. memory.py
  6. utils.py
  7. 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
一次开始和一次结束就会记录一个时间差

猜你喜欢

转载自blog.csdn.net/Mr_Dec/article/details/102373144