目录
通信框架ROS
安装ROS
测试ROS
控制协同
协同感知
ROS是一种分布式软件框架,节点之间通过松耦合的方式进行组合,在很多应用场景下,节点可以运行在不同的计算平台上,通过Topic、Service进行通信。但是“一山不容二虎”,ROS只允许存在一个Master,在多机系统中Master只能运行在一个机器上,其他机器需要通过 ssh 的方式和Master取得联系。(摘自网络)
ubuntu18 安装ROS教程:http://wiki.ros.org/melodic/Installation/Ubuntu
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
sudo apt update
sudo apt install ros-melodic-desktop-full
安装包有点大,可以按照官方推荐安装缩减版。
环境变量配置。
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
sudo apt install python-rosdep
sudo rosdep init
rosdep update
sudo rosdep init 出错解决:
ERROR: cannot download default sources list from:
https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list
Website may be down.
sudo vi /etc/hosts
末尾添加。
151.101.84.133 raw.githubusercontent.com
再次以下命令:
sudo rosdep init
rosdep update
成功:
检查ROS,执行 roscd 指令、roswtf指令。
执行roscore指令。
Ctrl+c退出。
以上说明ROS安装成功。
小乌龟测试:新开三个终端。
第一个终端输入:roscore 启动
第二个终端输入:rosrun turtlesim turtlesim_node 显示小乌龟
第三个终端输入: rosrun turtlesim turtle_teleop_key 控制小乌龟(键盘上下左右控制)
找到的两个入门使用教程参考:
http://wiki.ros.org/ROS/Tutorials
https://www.cnblogs.com/liu-fa/p/5761448.html
控制协同多智能体动态系统是通过通信图进行相互联系的动力学问题,通信图表明了各个节点之间的信息流。协同控制的目标是为各个节点设计控制协议,以保证所有节点在某种特定意义上的状态同步行为。在协同系统中,任何控制协议都必须按照其所规定的图拓扑结构进行分布式控制,也就是说,每个节点的控制协议只允许依赖于关于该节点及其在图中的邻居节点的信息,拓扑图施加的通信限制可能会严重限制每个节点上的本地分布式控制协议所能完成的工作。(摘自网络)
协同感知另一方面是对目标信息的感知,包括目标的种类、数量、当前及未来的位置和运动信息等。快速准确探测作战环境是协同作战任务成功的关键,而协同数据融合是实现协同感知的核心。由于单架战机对目标信息的感知是不完整和不精准的,每架有人机/无人机上均需要携带多个或多类传感器,这就产生了大量的高维的冗余数据。因此,混合编队协同作战要求分布式多层次的数据融合:首先初步融合单架载机上的传感器数据;然后多机成一级子网络,纵向和横向融合不同无人机上的传感器输出数据;最后融合有人机/无人机协同综合体和作战指挥系统提供的信息。这使得不同传感器性能可以优势互补,提高探测性能及探测信息的可信度、系统的容错能力和抗干扰能力增强。(摘自网络)
简单来说:实现某个设计时,可以用多个设备搭载不同传感器采集信息,多个设备信息互传融合。