1.安装ROS
参考文献
流程参照
官网安装
rosdep init和update失败
验证
roscore
rosrun turtlesim turtlesim_node
出现小海龟gui界面就行了,因为我这里安装完整版所以有界面显示。comm版本运行roscore不报错即可。
2.安装mavros
参考文献
安装参考
官网二进制安装
可能出现的错
二进制安装就这几步
sudo apt-get install ros-kinetic-mavros ros-kinetic-mavros-extras
sudo /opt/ros/kinetic/lib/mavros/install_geographiclib_datasets.sh
测试mavros
roslaunch mavros px4.launch
如果只出现
FCU: DeviceError:serial:open: No such file or directory
说明成功了。这里不用开启roscore。
3.创建工作空间,在空间里创建节点再编译
参考文献
1
2
cd catkin_ws/src
catkin_create_pkg demo std_message mavros roscpp
demo文件名,后面3个是属性。
要修改demo里面的cmakelist,不然不具备运行的属性
119 include
136add_executable
149target_link_libraries开始3行
复制136行后面文件名demo_node.cpp在demo的src里面创建demo_node.cpp文件,内容直接移植,随便找一个例子好了。
cd catkin_ws
catkin_make
source ./devel/setup.bash
使用ros节点的话一定要运行上面的代码添加一下环境变量,再启动ros节点。这里直接把他添加到bashrc这样每次运行就不用添加环境变量。
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
4.仿真
1.在Firmware中打开gazebo:
make posix_sitl_default gazebo
2.在Firmware中打开ros内核:
roscore
3.在Firmware中打开连接飞控和ubuntu:
roslaunch mavros px4.launch fcu_url:="udp://:[email protected]:14557"
连接本地,这是仿真,不连接数传
roslaunch mavros px4.launch fcu_url:=/dev/ttyUSB0:57600
连接飞控,这是真的飞,数传连接;需要把qgc参数SYS_COMPAION设置成对应57600,才能连接上。
4.创建好mavros节点后编译,就是上一步
5.
cd ~/catkin_ws
打开终端输入
rosrun demo demo_node
开启节点,可以看到gazebo无人机飞起来或者实体无人机直接开始飞了,在室内最好把螺旋桨去掉。