Skip to content

Commit

Permalink
FIXME:完善readme
Browse files Browse the repository at this point in the history
  • Loading branch information
popfishy committed Aug 21, 2024
1 parent aa0e212 commit 862ecf1
Show file tree
Hide file tree
Showing 6 changed files with 25 additions and 9 deletions.
13 changes: 7 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,21 @@
#### 一、使用说明

1. 请自行配置PX4和XTDrone环境,下载QGC地面站,并将地面站QGroundControl.AppImage放在scripts文件夹下。
1. [自行配置PX4和XTDrone环境](https://www.yuque.com/xtdrone/manual_cn/basic_config_13)(具体为ros noetic + px4 1.13),下载QGC地面站,并将地面站QGroundControl.AppImage放在scripts文件夹下。
2. 阅读scripts脚本目录下的start.sh文件,修改相应配置,'dji'中修改为自己电脑密码。

```
echo 'dji' | sudo -S chmod 777 QGroundControl.AppImage
```

3. 运行scripts脚本目录下的start.sh即可,目前为测试版本。现对代码进行说明:
- **测试版本需模拟公司发送数据**,即在仿真初始化完毕后,运行/communication/scripts下的company_to_group6.py程序,发布话题"/ResearchGroup5ResultTest"给receive_company_data.py进行接收。正式版本不需要模拟发送公司数据,但是需要修改receive_company_data.py中接收话题名称为"/ResearchGroup5Result”。(两个版本不同的具体原因:ROS不能存在两个相同名称的话题)
- communication/json文件夹下为各个课题具体数据,test.json为测试数据,用于测试版本。目前该数据由课题五提供,存在每个任务规划的path最后两个点相同,导致路径生成代码报错。
3. 运行scripts脚本目录下的start.sh即可。目前为正式版本。现对代码进行说明:
- TEST_FLAG为是否开启测试,为0时接收公司方数据;为1时为测试模式,模拟公司方发布数据。
- **测试版本模拟公司发送数据**,即在仿真初始化完毕后,运行/communication/scripts下的company_to_group6.py程序,发布话题"/ResearchGroup5ResultTest"给receive_company_data.py进行接收。正式版本不需要模拟发送公司数据,但是需要修改receive_company_data.py中接收话题名称为"/ResearchGroup5Result”。(两个版本不同的具体原因:ROS不能存在两个相同名称的话题)
- communication/json文件夹下为各个课题具体数据,test.json为测试数据,用于测试版本。目前该数据由课题五提供,存在每个任务规划的path最后两个点相同,导致路径生成代码报错。(目前已解决)
- 数据处理部分需注意,所有WGS84坐标系均转化为MAVROS使用的ENU坐标系,之后PX4接收到来自MAVROS的ENU坐标系数据后,会自行转化为NED坐标系。同理,无人机数据发送给公司时,需将来自gazebo的ENU数据转化为WGS84数据。
- QGC地面站参数通过mavros_msgs下的ParamSet服务进行修改,具体代码可参考fixed_wing_formation下的QGC_param_set.py代码。

#### 二、后续工作

1. 四旋翼代码接入:思考如何修改QGC中的EKF参数(可参考QGC_param_set.py) 思考如何模拟深度数据(越简单越好)
2. 如何解决固定翼飞机的local坐标系原点为px4上电位置(获取固定翼飞机在gazebo中初始化的位置表,课题七还还还还没给我们
3. 空速无法到达60m/s,可能需要等比例缩放数据。
2. 如何解决固定翼飞机的local坐标系原点为px4上电位置(获取固定翼飞机在gazebo中初始化的位置表,课题七还没给我们
3. 空速无法到达60m/s,可能需要等比例缩放数据。(可行解决办法:修改gazebo中plane模型动力相关参数,修改混控器等)
3 changes: 3 additions & 0 deletions mavros坐标系及接口说明.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,9 @@ mavros的话题中常见的坐标系有global坐标系、local坐标系、body

- global系好理解,是gps坐标系,经纬度什么的,用的不多;
- local系指当地坐标系,一般是ENU东北天坐标系,坐标原点一般在PX4上电点**(如何修改?)**

![PX4局部坐标系](pic/PX4局部坐标系.png)

- body坐标系就是指机体坐标系,二进制安装的kinetic版本的mavros,其坐标系是RFU(右前上)坐标系,坐标原点在机体上。之后版本的mavros都统一改为FLU(前左上)坐标系 **(我们用不太上)**

(2)坐标系安装朝向划分
Expand Down
Binary file added pic/PX4局部坐标系.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added pic/QGC油门杆量.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added pic/QGC空速.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
18 changes: 15 additions & 3 deletions scripts/start.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,18 @@ clear
alias python="python3"

cd ~/ResearchGroup6/scripts
#echo 'dji' | sudo -S chmod 777 QGroundControl.AppImage
echo 'dji' | sudo -S chmod 777 QGroundControl.AppImage

# 定义变量
UAV_NUM=7
TEST_FLAG=0

if [ $TEST_FLAG -eq 0 ]; then
echo "正式模式,接收来自公司方的数据,从而运行代码"
fi
if [ $TEST_FLAG -eq 1 ]; then
echo "测试模式,该模式模拟公司方发布数据,从而运行代码"
fi

# 启动仿真环境
gnome-terminal -- bash -c "cd ~/PX4_Firmware && roslaunch px4 multi_vehicle.launch"
Expand All @@ -26,12 +34,16 @@ sleep 1.5
# 启动无人机键盘控制,需手动解锁起飞,按o发送航点后切换至offboard模式。在未接收到公司数据前,无人机将在(0,0,200)处盘旋
gnome-terminal -- bash -c "cd ~/ResearchGroup6/src/fixed_wing_formation/scripts && python plane_keyboard_control.py $UAV_NUM "
sleep 1
# 修改部分QGC参数
gnome-terminal -- bash -c "cd ~/ResearchGroup6/src/fixed_wing_formation/scripts && python QGC_param_set.py plane $UAV_NUM "
sleep 0.5
# 发送无人机数据到公司
gnome-terminal -- bash -c "cd ~/ResearchGroup6/src/communication/scripts && python send_data_to_company.py plane $UAV_NUM "
sleep 1
# 等待接收公司数据
# 等待接收公司数据,对公司数据进行解析
gnome-terminal -- bash -c "cd ~/ResearchGroup6/src/communication/scripts && python receive_company_data.py; exec bash"
# 对公司数据进行解析,生成无人机的航迹,并进行仿真
gnome-terminal -- bash -c "cd ~/ResearchGroup6/src/fixed_wing_formation/scripts && python GVF_ode_node.py; exec bash"
sleep 0.5
if [ $TEST_FLAG -eq 1 ]; then
gnome-terminal -- bash -c "cd ~/ResearchGroup6/src/communication/scripts && python company_to_group6.py "
fi

0 comments on commit 862ecf1

Please sign in to comment.