北大智航杯仿真平台基础配置(代码全)

依赖安装

sudo apt install ninja-build exiftool ninja-build protobuf-compiler libeigen3-dev genromfs xmlstarlet libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev python3-pip gawk
pip3 install pandas jinja2 pyserial cerberus pyulog==0.7.0 numpy toml pyquaternion empy pyyaml 
pip3 install packaging numpy empy toml pyyaml jinja2 pyargparse

ROS安装

参考这个:cn/noetic/Installation/Ubuntu - ROS Wiki

1.1配置ubuntu软件仓库

配置你的Ubuntu软件仓库(repositories)以允许使用“restricted”“universe”和“multiverse”存储库

1.2设置source.list

设置电脑以安装来自packages.ros.org的软件

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

若下载速度缓慢,推荐就近选择一个镜像源替换上面的命令。例如,Tsinghua University为: 

sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'

1.3设置密钥

sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

1.4开始安装

首先,确保你的Debian软件包索引是最新的:

sudo apt update

 完整桌面版安装(Desktop-Full,推荐):除了桌面版的全部组件外,还包括2D/3D模拟器(simulator)和2D/3D 感知包(perception package)

sudo apt install ros-noetic-desktop-full

1.5设置环境

echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc

至此,ROS安装完毕。

如果之前没有catkin_ws,则需要新建工作空间,之后除去PX4仿真环境启动外,其余ROS相关工程在此工作空间下管理。

mkdir -p ~/catkin_ws/src
mkdir -p ~/catkin_ws/scripts
cd catkin_ws && catkin init #使用catkin_make话,则为cd catkin_ws/src && catkin_init_workspace
catkin build  #使用catkin_make话,则为 cd .. && catkin_make 

使用catkin build前,先需要先装catkin-tools,命令为

sudo apt install python3-catkin-tools

Gazebo安装

Gazebo包括Gazebo本身和ROS的插件,需要分别安装。首先卸载之前的Gazebo

sudo apt-get remove gazebo* 
sudo apt-get remove libgazebo*
sudo apt-get remove ros-noetic-gazebo* #kinetic melodic对应修改

然后就是安装

sudo sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-stable.list'

你可以通过输入以下命令来检验是否成功

cat /etc/apt/sources.list.d/gazebo-stable.list

如果显示以下内容,则表明成功

deb http://packages.osrfoundation.org/gazebo/ubuntu-stable bionic main
#bionic为ubuntu的版本号

 setup keys

wget https://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -

更新软件库

sudo apt-get update

安装

sudo apt-get install gazebo11
sudo apt-get install libgazebo11-dev

 按步骤安装完Gazebo后,升级所有的包,以保证gazebo所有依赖版本一致

sudo apt upgrade

对Gazebo的ROS插件做了修改,因此需要源码编译。首先装依赖

sudo apt-get install ros-noetic-moveit-msgs ros-noetic-object-recognition-msgs ros-noetic-octomap-msgs ros-noetic-camera-info-manager ros-noetic-control-toolbox ros-noetic-polled-camera ros-noetic-controller-manager ros-noetic-transmission-interface ros-noetic-joint-limits-interface

#不同ROS版本请对应修改

然后克隆并编译Gazebo的插件gazebo_ros_pkgs,放在~/catkin_ws/src下(如果编译时还缺其他的依赖,同上方法安装)

cd ~/catkin_ws/src
git clone -b noetic-devel https://github.com/ros-simulation/gazebo_ros_pkgs.git
cd ~/catkin_ws
catkin build

编译成功后执行如下两条指令,判断gazebo_ros是否安装成功

roscore 

Ctrl+Alt+T新建一个终端,执行如下命令

source ~/catkin_ws/devel/setup.bash
rosrun gazebo_ros gazebo

MAVROS安装

sudo apt install ros-noetic-mavros ros-noetic-mavros-extras 	#for ros-noetic
wget https://gitee.com/robin_shaun/XTDrone/raw/master/sitl_config/mavros/install_geographiclib_datasets.sh
sudo chmod a+x ./install_geographiclib_datasets.sh
sudo ./install_geographiclib_datasets.sh #这步需要装一段时间

PX4配置

git clone https://github.com/PX4/PX4-Autopilot.git
mv PX4-Autopilot PX4_Firmware
cd PX4_Firmware
git checkout -b xtdrone/dev v1.13.2
git submodule update --init --recursive
make px4_sitl_default gazebo

修改 ~/.bashrc,加入以下代码,注意路径匹配,前两个source顺序不能颠倒。

vim ~/.bashrc
source ~/catkin_ws/devel/setup.bash
source ~/PX4_Firmware/Tools/setup_gazebo.bash ~/PX4_Firmware/ ~/PX4_Firmware/build/px4_sitl_default
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/PX4_Firmware
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/PX4_Firmware/Tools/sitl_gazebo
source ~/.bashrc

然后运行如下命令,此时会启动Gazebo

cd ~/PX4_Firmware
roslaunch px4 mavros_posix_sitl.launch

并运行

rostopic echo /mavros/state

若connected: True,则说明MAVROS与SITL通信成功。如果是false,一般是因为.bashrc里的路径写的不对,请仔细检查。

然后需要安装地面站QGroundControl,点此安装链接

XTDrone源码下载

git clone https://gitee.com/robin_shaun/XTDrone.git
cd XTDrone
git checkout 1_13_2
git submodule update --init --recursive
# 修改启动脚本文件
cp sitl_config/init.d-posix/* ~/PX4_Firmware/ROMFS/px4fmu_common/init.d-posix/
# 添加launch文件
cp -r sitl_config/launch/* ~/PX4_Firmware/launch/
# 添加世界文件
cp sitl_config/worlds/* ~/PX4_Firmware/Tools/sitl_gazebo/worlds/
# 修改部分插件
cp sitl_config/gazebo_plugin/gimbal_controller/gazebo_gimbal_controller_plugin.cpp ~/PX4_Firmware/Tools/sitl_gazebo/src
cp sitl_config/gazebo_plugin/gimbal_controller/gazebo_gimbal_controller_plugin.hh ~/PX4_Firmware/Tools/sitl_gazebo/include
cp sitl_config/gazebo_plugin/wind_plugin/gazebo_ros_wind_plugin_xtdrone.cpp ~/PX4_Firmware/Tools/sitl_gazebo/src
cp sitl_config/gazebo_plugin/wind_plugin/gazebo_ros_wind_plugin_xtdrone.h ~/PX4_Firmware/Tools/sitl_gazebo/include
# 修改CMakeLists.txt
cp sitl_config/CMakeLists.txt ~/PX4_Firmware/Tools/sitl_gazebo
# 修改部分模型文件
cp -r sitl_config/models/* ~/PX4_Firmware/Tools/sitl_gazebo/models/ 
# 替换同名文件
cd ~/.gazebo/models/
rm -r stereo_camera/ 3d_lidar/ 3d_gpu_lidar/ hokuyo_lidar/

重新编译PX4固件

cd ~/PX4_Firmware
make px4_sitl_default gazebo

用键盘控制无人机飞行

cd ~/PX4_Firmware
roslaunch px4 indoor1.launch
cd ~/XTDrone/communication/
python3 multirotor_communication.py iris 0
cd ~/XTDrone/control/keyboard
python3 multirotor_keyboard_control.py iris 1 vel

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Amelia&pku

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值