一个用于驱动漫游机器人的Python驱动程序

roverpro的Python项目详细描述


RoverPro Python套件

这是Rover Robotics“Rover Pro”机器人的官方Python驱动程序。以此为起点,快速启动并运行。在

此软件包包括:

  1. 一个Python库,用于通过USB与Rover进行编程接口
  2. 用于升级和配置月球车固件的命令行应用程序“pitstop
  3. 确认固件和硬件按预期运行的测试套件。在

Rover Pro

设置

要从PyPi安装官方版本:

python3 -m pip install -U pip setuptools
python3 -m pip install -U roverpro --no-cache-dir

在Linux上,您可能没有访问USB设备的权限。如果是这种情况,请运行以下操作,然后重新启动计算机:

^{pr2}$

pitstop

Pitstop是一个帮助程序,用于引导您的月球车并设置选项。安装roverpro包后,可以使用pitstoppython3 -m roverpro.pitstop调用它。在

> pitstop --help
  usage: pitstop [-h] [-p port] action ...
  
  Rover Pro companion utility to upgrade firmware, configure settings, and test hardware health.
  
  positional arguments:
    action
      flash               write the given firmware hex file onto the rover
      checkversion        Check the version of firmware installed
      test                Run tests on the rover
      config              Update rover persistent settings
  
  optional arguments:
    -h, --help            show this help message and exit
    -p port, --port port  Which device to use. If omitted, we will search for a possible rover device

测试

要运行测试,首先通过断开电缆连接探测器,然后运行pitstop test。 默认情况下,涉及运行电机的测试将被跳过,因为你可能不想让一个漫游者从你的计算机上扯下电缆。如果您已经确定运行电机不会损坏任何东西,可以选择使用标志--motorok进行这些测试。在

> pitstop test --motorok
Scanning for possible rover devices
Using device /dev/ttyUSB0
========================== test session starts ============================
platform linux -- Python 3.8.2, pytest-5.4.3, py-1.9.0, pluggy-0.13.1
rootdir: /home/dan/Documents/roverpro-python/roverpro
plugins: trio-0.6.0
collected 73 items                                                                                                                                                                                           

tests/test_bootloader.py .s                                                                                                                                                                            [  2%]
tests/test_find_device.py .....                                                                                                                                                                        [  9%]
tests/test_roverpro_protocol.py ....                                                                                                                                                                  [ 15%]
tests/test_rover.py ..................x.x.........x................Xxxx..........                                                                                                                      [ 98%]
tests/burnin/test_burnin.py s                                                                                                                                                                          [100%]

===== 64 passed, 2 skipped, 6 xfailed, 1 xpassed in 83.94s (0:01:23) =====

开发设置

手动先决条件:

  • Python3(建议安装Python3.6、Python3.7和Python3.8,如果您计划对所有人使用tox):
  • Poetry
    • curl -sSL https://raw.githubusercontent.com/sdispater/poetry/master/get-poetry.py | (python3 || python)

然后获取并初始化项目:

git clone https://github.com/RoverRobotics/roverpro-python.git
cd roverpro-python
poetry install
poetry run githooks setup

要运行单个命令:poetry run pitstop --help

有用的命令

注意,您没有调用poetry shell,必须在下面的前面加上poetry run

注意事项

  • 在调试模式下以PyCharm运行时,您将收到一个警告,如“RuntimeWarning:您似乎已经有了一个自定义的系统异常挂钩已安装处理程序…https://github.com/python-trio/trio/issues/1553
  • 注意这是一个pyproject(PEP-517)项目,因此它不能用于pip install --editable ...进行开发。请使用poetry install,如上所述。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java使用无循环和乘法的递归调用查找值   java字符串大小冲突   在一组Java文件对象中查找唯一的超级目录   没有Eclipse控制台输出窗口(Java)?   java这怎么等于105而不是15?   java Adempiere列调出,用于不处理从(代码)选项导入和创建行的字段   java tomcat、2个webapps、2个log4js,但这两个应用都记录到一个文件中   lambda理解Java谓词   HotspotFX上的Java EOF问题   java google应用程序引擎:如何向连接/断开通道“ping”添加信息?   java如何使用VTDXML获取一个元素的所有名称空间声明?   java如何使用drawLine()获得一条线以随机方向拍摄?   java transactionManager应该使用哪个SessionFactory?   java在安卓上播放声音   在Mac上使用JBDC对SQL Server进行java Windows身份验证   java基本列表和字符串[]   java NamedParameterJdbcTemplate从中选择*   扩展上的java Android可扩展列表视图   使用ApacheAxis2的java SOAP附件