本文作为作者的学习笔记使用,初学ubuntu操作系统和ros2,遇到了很多意想不到的问题,现在边做论文边把流程整理下来,以供之后学习使用。ubuntu系统版本为20.04,PX4版本为v1.14,ros2版本为Foxy。
前置系统配置
1. 新建虚拟机设置
(1)一般把内存改为40GB(默认20GB),运行内存调到推荐最大(之前会出现运行内存不够然后代码报错的情况),cpu改成4核(编译的更快)。
(2)更改主机host,让系统连接github更稳定(不改的话我这边大概率上不去非常折磨)。具体方法参见文末参考文章【1】。
2.设置中文输入法及中文界面(个人喜好)
右上角下三角号->settings->Region & Language->Manage Installed Languages->Chinese(Simplified)添加完成后在主界面将语言改为汉语,输入法改为汉语拼音即可。
一、ROS2安装与配置
小鱼一键安装ros(包括换源操作,十分方便)
wget http://fishros.com/install -O fishros && . fishros
根据安装提示即可成功安装ros2-foxy。
二、PX4安装与配置
1.安装PX4:
mkdir PX4
cd PX4
git clone https://github.com/PX4/PX4-Autopilot.git --recursive
#下载px4源码,注意--recursive,起到作用是把所有代码都下载下来,编译的时候不会出现依赖缺失
bash ./PX4-Autopilot/Tools/setup/ubuntu.sh
cd PX4-Autopilot/
make px4_sitl
2.为了使ROS 2与PX4通信,安装Micro XRCE-DDS代理和客户端:
(1)首先升级cmake,我的默认版本会报错:
去cmake官网去下载压缩包,官网地址:https://cmake.org/download/
我这里下载的是3.30.8版本
下载完成后执行代码安装:
tar -zxvf cmake-3.30.8-linux-x86_64.tar.gz
sudo mv cmake-3.30.8-linux-x86_64 /usr/share/cmake-3.30.8
sudo ln -sf /usr/share/cmake-3.30.8/bin/cmake /usr/bin/cmake
使用cmake --version进行版本号查询,显示为v3.30.8。
(2)安装Micro XRCE-DDS代理和客户端(这里要确保稳定连接github不然会报错):
git clone https://github.com/eProsima/Micro-XRCE-DDS-Agent.git
cd Micro-XRCE-DDS-Agent
mkdir build
cd build
cmake ..
make
sudo make install
sudo ldconfig /usr/local/lib/
安装完成后用 下面命令进行检查:
MicroXRCEAgent udp4 -p 8888
若出现错误,大概率是因为搜索不到库。执行下面的操作:
sudo apt-get install vim
sudo vim /etc/ld.so.conf
在文件末尾添加/usr/local/lib/
保存并关闭文件后,在终端执行sudo ldconfig来更新库缓存
vim中的操作是按i键进入编辑模式,编辑好以后按esc键,输入:":qw"保存退出(不用输入双引号)
在上面安装的 PX4 Autopilot 仓库的根目录中打开一个新终端(注意之前的启动代理的终端不要关),执行下面代码启动gazebo:
make px4_sitl gazebo-classic
3.构建工作区
mkdir -p ~/ws_sensor_combined/src/
cd ~/ws_sensor_combined/src/
git clone https://github.com/PX4/px4_msgs.git
git clone https://github.com/PX4/px4_ros_com.git
将 ROS 2 开发环境源化到当前终端中,
cd ..
source /opt/ros/foxy/setup.bash
colcon build
4.运行示例:
新终端中导航到工作区目录的顶层并获取 ROS 2 环境:
cd ~/ws_sensor_combined/
source /opt/ros/foxy/setup.bash
source install/local_setup.bash
ros2 launch px4_ros_com sensor_combined_listener.launch.py
最后出现下如所示界面即为成功 :
【2】ROS2+PX4 开发笔记