SOTER是一个开发分布式移动机器人软件的框架。下面主要介绍SOTER装在ROS机器人操作系统中的过程。
确定版本对应关系
由于SoterOnROS需要基于ROS进行相应的开发。因此,首先要将ROS与对应的版本安装完毕。查看ROS官网可知,ROS有不同的发行版本,Ubuntu 16.04对应kinetic,Ubuntu 18.04对应Melodic。SoterOnROS给的tutorial中,用的是Ubuntu 18.04,Melodic,所以我们采用这个版本。
安装ROS
对于一个ROS小白来说,是不懂ROS的架构的,也没搞清楚ROS和catkin的关系。不过仅仅对于安装来说,暂时不需要理解的很透彻,只需知道,虽然SoterOnROS是在catkin里运行的,但是装好了ROS,就默认装好了catkin。
前期准备
- 配置源
勾选上面的main,universe,restricted,multiverse,将下面的ros路径加到源中。
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
接下来,配置key,这样就可以访问上述ROS包的路径
sudo apt install curl # if you haven't already installed curl
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
然后更新源
sudo apt update
下载安装
更新好ROS源后,可以直接从其ROS库中进行apt安装,可以不用从ROS源码进行安装。
sudo apt install ros-melodic-desktop-full
这样下载好后,ROS和catkin也就安装好了
-
环境配置
ROS装好后,首先要配置环境变量。用apt安装的路径默认在
/opt/ros/$version$/
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc source ~/.bashrc
然后为了构建run ROS的包,需要装以下的依赖
sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
-
最后一步是对ROS进行一个初始化
sudo rosdep init rosdep update
**PS:**在进行这步初始化的时候,会出现网络问题而中断,此时有两个解决办法。
①科学上网
②对那个无法连接网页,通过查公网IP,加入网络的配置文件中
xxx.xxx.xxx.xxx nameserver
安装P语言
P语言是一种构建状态机的语言,不同的版本适用不同的Ubuntu版本,目前是支持21.04,20.04,18.04,16.04
我们选择18.04版本,安装命令如下:
- 首先将安装包的路径添加到包管理器中
wget https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb
-
更新apt并安装SDK
sudo apt-get update; \ sudo apt-get install -y apt-transport-https && \ sudo apt-get update && \ sudo apt-get install -y dotnet-sdk-5.0
-
安装ASP.NET
sudo apt-get update; \ sudo apt-get install -y apt-transport-https && \ sudo apt-get update && \ sudo apt-get install -y aspnetcore-runtime-5.0
-
验证
运行以下命令查看pc是否已经安装
which pc
安装成功后,显示pc所在的路径一般在
~/.dotnet/tools/pc
安装SOTERonROS
一些package的依赖安装
-
安装OMPL
https://ompl.kavrakilab.org/install-ompl-ubuntu.sh //安装脚本 chmod u+x install-ompl-ubuntu.sh ./install-ompl-ubuntu.sh --python
-
git sjtu-drone
cd ~/catkin_ws/src
git clone https://github.com/tahsinkose/sjtu-drone.git
-
git multi_robot
cd ~/catkin_ws/src https://github.com/sumukhshiv/multi_robot.git
运行SOTERonROS的一个drone case study
-
git SoterOnROS源码到本地
git clone https://github.com/Drona-Org/SOTERonROS.git
-
建立catkin workspce,并将Soter源码复制到src中
mkdir ~/catkin_ws/src cp -r ~/SOTERonROS ~/catkin_ws/src
-
打开一个terminal 运行roscore,建议用tmux
roscore
然后在另一个terminal中运行仿真器gazebo
cd ~/catkin_ws catkin_make . devel/setup.sh roslaunch multi_robot drone.launch
接着再打开一个terminal,编译P文件
cd ~/catkin_ws/src/SOTERonROS/PSrc/SoftwareStack/ pc ../Applications/DroneExploration/MainDroneTaskPlanner.p RTAMotionPlanner.p RTAPlanExecutor.p RTADecisionModuleDrone.p Robot.p -outputDir:../Applications/DroneExploration
运行application
rosrun SOTERonROS soter_test