# offboard **Repository Path**: guanty18/offboard ## Basic Information - **Project Name**: offboard - **Description**: No description available - **Primary Language**: C++ - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2021-02-05 - **Last Updated**: 2021-09-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ros_px4_gazebo仿真环境搭建 ### 简介 * 本项目将从零开始构建基于ROS和px4的gazebo无人机仿真环境 * /px4-autopilot文件夹为px4源代码中可能需要修改的配置文件 * /src文件夹中提供仿真无人机控制的模板源代码,供使用者测试 * 项目下载: ``` cd ~/ git clone https://gitee.com/guanty18/offboard.git ``` ## 安装Ubuntu18.04系统 ---- * 由于使用的机载计算机 Jetson Nano 上默认使用 ubuntu18.04 发行版作为系统环境,所以进行仿真时最好使用该版本,以避免意想不到的问题。 * 以下内容使用 windows10 系统的 WSL2 子系统,结合 Xlaunch(xfce4) 作为图形用户界面,然而其他虚拟机或者双系统的搭建过程也是完全一样的。 ---- 1. 安装 Ubuntu18.04 系统 2. 更换软件源为[清华镜像站](https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/) - 在终端输入 `sudo vim /etc/apt/sources.list` - 将原内容用 `#` 注释 - 在下方添加清华镜像提供的代码 ## 安装ROS环境 1. 安装 ROS-melodic - 参照[ros官网教程](http://wiki.ros.org/cn/melodic/Installation/Ubuntu) - 安装时间可能比较长,出现未知错误可以尝试 `sudo apt update` 更新系统文件后重新安装。 2. 测试 ROS 环境 - 依次打开三个终端页面,分别输入以下三行代码 ``` roscore rosrun turtlesim turtlesim_node rosrun turtlesim turtle_teleop_key ``` - 见到蓝色背景的“小乌龟”界面后,通过键盘的上、下、左、右方向键控制其移动,则安装成功。 3. 建立工作空间 - 创建初始路径 ``` mkdir -p ~/catkin_ws/src cd ~/catkin_ws/ ``` - 初始化工作空间 ``` catkin_make echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc source ~/.bashrc ``` ROS的源代码需放置在对应的工作文件夹内才可编译,因此需要建立专门的工作空间 以后每当对ws工作目录中源代码文件进行修改后,都需要在对应的ws文件夹下执行`catkin_make`完成编译 以后每当建立新的ws工作目录时,都需要执行后两行代码(注意修改文件夹名称)完成初始化 当编译信息中没能找到所修改的源代码时,同样可以尝试`source ~/.bashrc`以添加新文件到配置中 4. 安装 MAVROS - 方法一:在终端输入 ``` sudo apt install ros-melodic-mavros ``` - 方法二:用二进制包安装 参考[mavros官方教程](https://github.com/mavlink/mavros) 5. ROS学习 - 参考[中科院软件所-机器人操作系统入门(ROS入门教程)](https://www.bilibili.com/video/BV1mJ411R7Ni) - 重点在于第 1,2,3,5.1,7 讲中的内容 ## 编译px4源代码 1. 下载px4源代码 - 进入用户根目录 `cd ~/` - 用Git下载文件 `git clone https://gitee.com/px4/px4-autopilot.git` 2. 配置ubuntu下的px4工具链 - 进入px4文件目录 `cd ~/px4-autopilot` - 运行自带的配置脚本 `./Tools/setup/ubuntu.sh` 注意:如果下载出现中断,可能是网络连接问题或者其他依赖库没有安装,可以根据错误提示进行解决 3. 编译px4_sitl px4_sitl是进行无人机仿真的项目,支持gazebo等仿真环境,此前gazebo应该已经在安装ROS时同时安装 - 在px4文件目录输入 `make px4_sitl gazebo`,开始编译 - 编译时间可能较长,如果出现报错或者超过半小时没有变化,可以kill掉编译进程,然后执行以下内容 ---- 1. 如果出现报错无法连接到github - 进入px4文件目录,将其中的 '.gitmodules' 文件备份。 - 进入本文件夹中的px4-autopilot文件夹,将其中的各文件夹中的'.gitmodules'复制到对应的px4文件夹目录下,替换之。 - 以上文件中将github替换成国内gitee源,重新编译即可 2. 如果编译过程中内存占用过多,或者因内存不足而中断报错 - 配置SWAP虚拟内存,可参考网络教程 - 经测试4G物理内存+8G虚拟内存即可完成编译 3. 如果编译过程中出现各类权限不足的错误提示 - 执行 `sudo make px4_sitl gazebo`,以管理员身份运行编译 4. 如果重新编译时出现未知错误,可以尝试 - 在px4文件目录输入 `make clean`,清除已有的所有编译文件 - 重新编译 ---- 4. 编译成功后,会自动开启gazebo仿真环境界面,即可进行下一步操作 ## 控制gazobo仿真无人机 1. 建立新ROS工作空间 ``` cd ~/ mkdir -p ~/px4_ws/src cd ~/px4_ws/ catkin_make echo "source ~/px4_ws/devel/setup.bash" >> ~/.bashrc source ~/.bashrc ``` 2. 将本文件夹复制到工作目录并编译 ``` cp -r ~/offboard ~/px4_ws/src rm -rf ~/px4_ws/src/offboard/px4-autopilot source ~/.bashrc catkin_make ``` 3. 控制仿真无人机 * 分别在不同终端执行以下命令 - 启动gazebo环境 ``` cd ~/px4-autopilot make px4_sitl gazebo ``` - 用mavros建立ros与px4无人机之间的联系 ``` roslaunch mavros px4.launch fcu_url:="udp://:14540@127.0.0.1:14557" ``` - 运行offboard控制程序 ``` rosrun offboard offboard_node ``` 4. 使用px4_command控制无人机 - 下载并编译px4_command包 ``` cd ~/px4_ws/src git clone https://github.com/amov-lab/px4_command cd ~/px4_ws/ source ~/.bashrc catkin_make ``` - 使用与(3)中同样的流程,只是在最后rosrun时替换成px4_command中的ROS节点或者任务