work_doc/4.17组会.md

128 lines
3.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

4.17组会
### 上周工作内容:
##### 1. python文件实现按键控制启动launch文件实现割草机各个功能
a:摄像头
b:导航
c:客户端
d:服务端
出现的问题:想要实现按键退出 识别按键后并没有终止运行当关闭终端时并没有停止运行程序由于启动各个launch会在终端打印调试信息信息刷新很快不能识别到按键的输入。
##### 2. 摄像头设备号总是发生变化
由于r是全局变量从主函数中读取设备号参数较麻烦。所以更改ranging类的初始化方式。在初始化过程中尝试打开设备0如果打开设备失败则打开设备40.
##### 3. 草地测试割草机定位和避障效果
### 下周工作内容
##### 1. 将usb-hid改为ros工程gcc改为CMake读取超声波数据。
##### 2.在3588上发送信号给标签通知其发送手持标签的定位数据还是割草机的定位数据。
4.24组会
为了解决串口冲突使用usb-hid通过识别pid、vid。
##### usb-hid 非root用户在linux下使用串口权限不够。
解决需要设置udev规则来实现。
![1](./image/1.png)
通常情况下udev规则文件的命名规则是按照数字和规则名称的顺序来加载的。数字越小的规则文件会先被加载而数字越大的规则文件会后被加载。因此可以选择一个数字较大的数字作为规则文件的名称以确保在其他规则文件之后加载。
1. 创建规则文件
```c++
sudo gedit /etc/udev/rules.d/99-usb-serial.rules
```
2. 写入规则
```
SUBSYSTEM=="usb" ATTRS{idVendor}=="YOUR_VENDOR_ID", ATTRS{idProduct}=="YOUR_PRODUCT_ID", MODE:="0777"
```
3. 重新加载udev规则以使更改生效
```
sudo udevadm control --reload-rules
sudo udevadm trigger
```
##### 通过发送指令给车上的标签发送0x00启动的是手持标签的定位发送0x01启动的是车自身的定位以实现手持标签划范围
```
tmp_char[0] = 0x00;
r = libusb_interrupt_transfer(dev_handle, (0x01 | LIBUSB_ENDPOINT_OUT), tmp_char, 64, &transferred, 1000);
```
切换模式时:当从手持标签模式切换到车自身模式时,需要将手持标签断开,否则会干扰定位数据,收上来的数据是乱的。
##### 下周工作内容
联合调试:用手持标签画的边界执行全覆盖。
超声波、碰撞数据接入
### 5.28 组会
##### 1. 将超声波和碰撞模块数据接入并转化为ros消息格式以供避障使用
<img src="./image/5.png" alt="5" style="zoom:67%;" />
2. ##### app测试
<img src="./image/2.png" alt="2" style="zoom:50%;" />
<img src="./image/3.png" alt="3" style="zoom:50%;" />
<img src="./image/4.png" alt="4" style="zoom:50%;" />
### 6.4 组会
##### 这周完成了:
1. 完成了UPbot的通信协议设计
2. 沟通研一完成了APP具体功能的实现
![](./image/6.png)
3. 制作初始化定位的视频渲染
4. 实际草坪的数据采集
5. 单独测试APP功能实现不通过协议简单通过发送指令例如1等实现程序启动
##### 下周工作:
根据协议解析客户端的数据,在服务端实现割草机的相关功能
### 6.18 组会
1. 解析了客户端的数据,能够正常启动定位导航;全覆盖;手持标签划定范围
2. 修改服务端程序启动各个launch后会在当前服务端窗口打印调试信息这是的键盘检测不到其他键的输入。所以改为将调试信息以log形式存在文件中。后台运行launch文件
<img src="D:\FORK\work_doc\image\7" alt="./image" style="zoom:150%;" />
问题:调试文件过大会占内存。有视频
3. 测试最新的app:有视频
![image-20240618192206242](D:\FORK\work_doc\image\8)
<img src="D:\FORK\work_doc\image\9" alt="a3ef4270154bc1536f6a09b94ea4b0a" style="zoom: 33%;" />