树莓派

FRC终端

FRC | reg | Raspberry PI的映像包含一个控制台,可以在任何Web浏览器中查看该控制台,从而可以轻松地:

  • Look at the Raspberry PI status

  • 查看摄像头的后台进程状态

  • 查看或者更改网络设置

  • 查看接入树莓派的摄像头以及额外的摄像头

  • 加载一个视觉程序到树莓派上

设置树莓派为只读还是读写

通常来说树莓派是被设置为只读的,这意味着其文件系统是无法被更改的,这保证了如果电源在树莓派的文件系统关闭前先关闭,文件系统不会被破坏。但是当一些设置被改变了(接下来的内容),那么新的设置将无法被保存在树莓派的文件系统当中。提供了按钮来允许文件系统设置为只读或者读写。如果按钮无法被点击,请查看系统的只读状态。

树莓派的网络连接状态

在终端的右上角有一个标签显示树苺派是否处于连接状态。如果树苺派断开了连接,那么标签就会从Connected变为Disconnected。

../../../../_images/the-raspberry-pi-frc-console.png

系统状态

../../../../_images/system-status.png

系统状态显示了在任何时候树莓派的CPU状态。这里有两列状态值:第一列是在过去1s当中的平均值,第二列是在过去5s当中的平均状态。如下:

  • Free and available RAM on the PI

  • CPU usage for user processes and system processes as well as idle time

  • Network bandwidth - which allows one to determine if the used camera bandwidth is exceeding the maximum bandwidth allowed in the robot rules for any year

视觉状态

../../../../_images/vision-status.png

用来监控树苺派中运行摄像头程序的进程,可能是默认程序,也可能是使用Java,C++, Python编写的自定义程序。同样,你可以允许控制台输出并查看后台摄像头服务的输出信息。在˙这个示例中,树莓派只是连接到一台没有运行NetworkTables服务器(通常是roboRIO)的笔记本电脑,所以将会出现很多无法连接到网络表(Network Tables)的提示信息(NT:connect( ))。

网络设置

树莓派有以下几个网络连接选项:

  • DHCP - the default name resolution usually used by the roboRIO. The default name is wpilibpi.local.

  • Static - 需要明确填写静态IP地址,网络掩码,以及路由器信息

  • DHCP with Static FallBack - 树苺派将通过DHCP获得IP地址。但如果找不到DHCP服务器,那么它会使用提供的静态IP地址和其他参数

../../../../_images/network-settings1.png

上图描述的是DHCP和静态IP地址的设置。无论使用那种选项,树莓派的mDNS域名应始终有效。

视觉设置

../../../../_images/vision-settings-1.png

The Vision Settings are to set the parameters for each camera and whether the rPI should be a NetworkTables client or server. There can only be one server on the network and the roboRIO is always a server. Therefore when connected to a roboRIO, the rPI should always be in client mode with the team number filled in. If testing on a desktop setup with no roboRIO or anything acting as a server then it should be set to Server (Client switch is off).

如果要查看并更改某一摄像头的所有设置,请点击此摄像头的名称。如上图所示,摄像头的名称是Camera rPi Camera 0。点击后,会有如下图所示的配置界面。

../../../../_images/vision-settings-2.png

在这个状态下可以对摄像头进行设置。在图示页面的底部还有此摄像头所支持的所有模式(包含长度,宽度,帧率)。

备注

如果摄像机图像在“打开流”屏幕上不可见,请在页面底部检查支持的视频模式。 然后返回“视觉设置”并单击有问题的摄像机,并验证所支持的视频模式中是否列出了像素格式,宽度,高度和FPS。

保存现在的设置以在重启后使用

树苺派会在启动的时候加载所有的摄像头设置。如上图所示的修改是临时的。想要让其储存下来,需要点击按钮“Load Source Config From Camera”,之后当前设置会填入如下所示的界面。最后点击页面下方的保存按钮。提醒:必须要让文件系统处于Writeable(读写)的状态,设置其的按钮位于页面的顶部。

../../../../_images/vision-settings-3.png

上图展示了一些常用的摄像头设定值,包括亮度、白平衡、曝光。这些都会在用户的JSON文件被应用之前载入摄像头。所以如果用户JSON文件包含了这些设置,那么文本框内的这些内容将会被用户JSON中的相关内容覆盖。

应用

应用程序一栏展示了当前正在树苺派上运行的程序。

视觉工作流

对于每一种支持的编程语言:C++、Java、Python,都有OpenCV的样例程序。这些样例程序都可以捕获并且传输视频流到树苺派上。另外,这些示例程序少量地使用了OpenCV,并都可作为模板根据具体需求扩展内容。树苺派的应用程序一栏还支持以下的程序工作流:

  • 传输一个或者多个摄像头的视频到Driver Station,并通过ShuffleBoard显示图像

  • 在树苺派上通过内置的工具链编辑并编译一个示例程序(每种程序语言都有对应的一个示例:C++、Java、Python)

  • 下载一个你所需要的编程语言的示例程序并且在开发用电脑上进行编辑和编译。之后再将其上传至树苺派

  • 通过自定义的应用程序和脚本(DIY)完成所有的任务(通常是基于一个示例的)

../../../../_images/application-1.png

通过选择下拉菜单中的选项,可以改变正在运行的应用程序。选择有:

  • Built-in multi camera streaming which streams whatever cameras are plugged into the rPi. The camera configuration including number of cameras can be set on the “Vision Settings” tab.

  • 自定义的应用程序,不会上传任何东西到树苺派,假定开发者想要运行其自己的程序和脚本

  • Java, C++ or Python pre-installed sample programs that can be edited into your own application.

  • Java,C ++或Python上传的程序。Java程序需要带有已编译程序的.jar文件,而C ++程序需要将rPi可执行文件上载到rPI。

../../../../_images/application-2.png

When selecting one of the Upload options, a file chooser is presented where the jar, executable, or Python program can be selected and uploaded to the rPi. In the following picture an Uploaded Java jar is chosen and the “Choose File” button will select a file and clicking on the “Save” button will upload the selected file.

提醒:为了向树莓派保存新文件,必须要让文件系统处于Writeable(读写)的状态,而设置其的按钮位于页面的上方。但是在保存之后,建议将其改回只读状态,这样可以保护文件系统不被误操作。

../../../../_images/application-3.png