配置
1、安装开发工具
①gcc
sudo apt-get install gcc
gcc -v
②CMake
sudo apt install cmake
//查看cmake版本
cmake --version
//查看cmake路径
which cmake
③安装ros工具链
//创建ROS工作空间
mkdir catkin_ws
cd catkin_ws
mkdir src
cd src
catkin_init_workspace
注:一键安装ros:
wget http://fishros.com/install -O fishros && . fishros
rosversion -d//查看ros版本 ubuntu20.04的版本是 noetic
另一台win电脑需要下载dji Assistant 2(Enterprise Series)用于设置和模拟。
2、安装依赖软件
① 安装DJI Onboard SDK4.1.0(GitHub - dji-sdk/Onboard-SDK at 4.1)
在DJI Onboard SDK 目录下使用如下命令安装DJI Onboard SDK。
mkdir build
cd build
cmake ..
sudo make -j7 install
②各种驱动
ACM驱动
内核编译Device Drivers -> USB support ->USB Modem(CDC ACM)
装nema-comms(高级视觉)
sudo apt install ros-noetic-nmea-comms
安装FFmpeg
sudo apt install ffmpeg
安装LibUSB
sudo apt-get install libusb-1.0-0-dev
sudo apt install libsdl2-dev
3、添加UART 读写权限
-
使用
sudo usermod -a -G dialout $USER
(whoami看user名,比如我的catlab)sudo usermod -a -G dialout catlab
-
命令将用户添加至dialout 组中。
-
重新登录所添加的账户后,该账户即可获取UART 读写权限。
-
全部重启(板载电脑和无人机)
添加DJI USB 设备节点:
在/etc/udev/rules.d/目录下创建文件DJIDevice.rules。 在DJIDevice.rules文件中添加:
SUBSYSTEM=="usb",ATTRS{idVendor}=="2ca3",MODE="0666"
sudo udevadm control --reload #加载
4、运行ROS示例代码
①将Onboard-SDK-ROS示例代码复制在src下(4.1版本GitHub - dji-sdk/Onboard-SDK-ROS at 4.1)
② 编译示例代码
-
在
catkin_ws
目录下,使用catkin_make
命令,编译OSDK 示例代码。 -
配置当前工作空间
source devel/setup.bash
③更改dji_vehicle_node.launch里面的id和key
//注意要与设置飞机的账号一样//
-
OSDK ROS 4.0 节点配置文件的路径:
catkin_ws/src/Onboard-SDK-ROS/launch/dji_vehicle_node.launch
④运行ROS 的主节点:
cd catkin_ws && source devel/setup.bash
roslaunch dji_osdk_ros dji_vehicle_node.launch
运行XX节点:
cd catkin_ws && source devel/setup.bash
rosrun dji_osdk_ros camera_stream_node
(记得修改ros sleep时间)
或者
rosrun dji_osdk_ros flight_control_node #可以在Assistant模拟飞机飞行
rosbag record -b 4096 /dji_osdk_ros/gps_position
使用rosbag record记录gps数据
查看bag文件信息:rosbag info <name.bag>
将bag文件转成txt文件:rostopic echo -b <name.bag> -p <topic_name> > <file_name.txt>
无人机连线
无人机与win电脑相连,无人机(type-c)->电脑(usb),使用Assistant 注意勾选enabled sdk、baudrate
无人机与板载电脑相连,osdk拓展接口->转接板,转接板(杜邦线)->板载电脑(usb)
整体过程:
1、运行主节点:
cd catkin_ws source devel/setup.bash
roslaunch dji_osdk_ros dji_vehicle_node.launch
2、运行接口节点
source devel/setup.bash
rosrun dji_osdk_ros flight_control_node(Assistant模拟起飞+飞行+降落)
3、记录gps
附加:
运行主节点会出现的问题:
1、第一次运行会出现激活问题,注意在Assistant上出现的弹窗
2、Requesting update policy ... 这个提示不用管
3、注意RX接TX线、注意接口权限