ROS -by- Example slam

2024-05-25 12:18
文章标签 slam ros example

本文主要是介绍ROS -by- Example slam,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

ROS-by-example的安装

在这里我之前用的VM12安装成功之后,仿真器机器人会有问题,故把电脑做成双系统的形式来重新安装;

环境:Ubuntu14.04 LTS 32bits

ROS版本:ROS Indigo

在学习本部分之后的内容,请先学习 beginner_Tutorialslearning_tfROS 相关教程。

下面是安装准备

1、在下载机器人程序包之前,我需要先安装一些必要的软件包。直接执行下面的命令进行安装:
注意:如果你还没有使用 ROS 的国内镜像网站,请先配置相关文件。将 ROS 的下载网站设置为国内镜像网站。参考网站:http://blog.csdn.net/github_35160620/article/details/52337181,这里面有讲:如何设置软件源配置文件。)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
sudo apt-get install -y ros-indigo-turtlebot-bringup \
  ros-indigo-turtlebot-create-desktop ros-indigo-openni-* \
  ros-indigo-openni2-* ros-indigo-freenect-* ros-indigo-usb-cam \
  ros-indigo-laser-* ros-indigo-hokuyo-node \
  ros-indigo-audio-common gstreamer0.10-pocketsphinx \
  ros-indigo-pocketsphinx ros-indigo-slam-gmapping \
  ros-indigo-joystick-drivers python-rosinstall \
  ros-indigo-orocos-kdl ros-indigo-python-orocos-kdl \
  python-setuptools ros-indigo-dynamixel-motor-* \
  libopencv-dev python-opencv ros-indigo-vision-opencv \
  ros-indigo-depthimage-to-laserscan ros-indigo-arbotix-* \
  ros-indigo-turtlebot-teleop ros-indigo-move-base \
  ros-indigo-map-server ros-indigo-fake-localization \
  ros-indigo-amcl git subversion mercurial

ros-by-example包 提供了2个测试用的模拟机器人:TurtleBot Pi Robot

2、在必要软件安装好之后,下载rbx1.

复制代码
$ cd ~/catkin_ws/src
$ git clone https://github.com/pirobot/rbx1.git
$ cd rbx1
$ git checkout indigo-devel
$ cd ~/catkin_ws
$ catkin_make
$ source ~/catkin_ws/devel/setup.bash
$ rospack profile
复制代码

在ROS By Example包中都是以rbx1开头,使用如下命令

roscd rbx1
cd ..
ls -F

一、简单节点仿真

1. 运行fake_turtlebot节点:

[html] view plain copy
  1. $ roslaunch rbx1_bringup fake_turtlebot.launch  


2. 运行rbx1_nav仿真:

[html] view plain copy
  1. $ rosrun rviz rviz -d  `rospack find rbx1_nav` /sim.rviz  

3. 发布一个topic,让机器人动起来:

[html] view plain copy
  1. $ rostopic pub -r 10 /cmd_vel  geometry_msgs/Twist  '{ linear:{x: 0.2, y: 0, z: 0 }, angular:{x: 0, y: 0, z: 0.5} }'   

这里特别要注意,命令中冒号(:)后面要有一个空格,不然会报错。运行效果如下:


4. 让机器人停止运动:

首先,用ctrl+c结束掉上条命令的执行,然后运行:

[html] view plain copy
  1. $  rostopic pub -r 10 /cmd_vel  geometry_msgs/Twist  '{ }'   
仿真器中机器人就会停止运动。然后再使用ctrl+c结束掉当前命令即可。

二、导航仿真

1. 运行fake_turtlebot节点

首先得用ctrl+c关闭先前运行的fake_turtlebot节点,然后运行:

[html] view plain copy
  1. $ roslaunch rbx1_bringup fake_turtlebot.launch  

2. 运行蒙特卡洛粒子滤波算法节点,同时加载地图:

[html] view plain copy
  1. $ roslaunch rbx1_nav fake_amcl.launch map:=test_map.yaml  

3. 运行rviz仿真器

[html] view plain copy
  1. $ rosrun rviz rviz -d `rospack find rbx1_nav`/nav_test.rviz  
可以看到:


点击左上角2D Nav Goal,选择目标点,即可看到导航的仿真效果。到此,总结完毕!



一、用move_base导航走正方形

 1、

1
roscore

2、执行

1
roslaunch rbx1_bringup fake_turtlebot.launch

  然后

1
roslaunch rbx1_nav fake_move_base_blank_map.launch

  接着

1
rosrun rviz rviz -d `rospack find rbx1_nav`/nav.rviz

  然后:

1
rosrun rbx1_nav move_base_square.py

  

 

二、避开模拟障碍物

1、

1
roscore

2、执行

1
roslaunch rbx1_bringup fake_turtlebot.launch

  然后:

1
rosparam delete /move_base

  接着:

1
roslaunch rbx1_nav fake_move_base_map_with_obstacles.launch

  开启rviz:

1
rosrun rviz rviz -d `rospack find rbx1_nav`/nav_obstacles.rviz

  当move_base节点正在运行时,可看到RViz中的障碍物,点击reset按钮刷新显示,然后运行python脚本:

1
rosrun rbx1_nav move_base_square.py

  


这篇关于ROS -by- Example slam的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1001478

相关文章

无人叉车3d激光slam多房间建图定位异常处理方案-墙体画线地图切分方案

墙体画线地图切分方案 针对问题:墙体两侧特征混淆误匹配,导致建图和定位偏差,表现为过门跳变、外月台走歪等 ·解决思路:预期的根治方案IGICP需要较长时间完成上线,先使用切分地图的工程化方案,即墙体两侧切分为不同地图,在某一侧只使用该侧地图进行定位 方案思路 切分原理:切分地图基于关键帧位置,而非点云。 理论基础:光照是直线的,一帧点云必定只能照射到墙的一侧,无法同时照到两侧实践考虑:关

ROS - C++实现RosBag包回放/提取

文章目录 1. 回放原理2. 回放/提取 多个话题3. 回放/提取数据包,并实时发布 1. 回放原理 #include <ros/ros.h>#include <rosbag/bag.h>#include <std_msgs/String.h>int main(int argc, char** argv){// 初始化ROS节点ros::init(argc, argv,

ROS - C++实现RosBag包录制

文章目录 1. 录制原理2. 录制多个话题3. 订阅ROS消息,实时录制 1. 录制原理 #include <ros/ros.h>#include <rosbag/bag.h>#include <std_msgs/String.h>int main(int argc, char** argv){// 初始化ROS节点ros::init(argc, argv, "reco

hector_quadrotor编译总结 | ubuntu 16.04 ros-kinetic版本

hector_quadrotor编译总结 | ubuntu 16.04 ros-kinetic版本 基于Ubuntu 16.04 LTS系统所用ROS版本为 Kinetic hector_quadrotor ROS包主要用于四旋翼无人机的建模、控制和仿真。 1.安装依赖库 所需系统及依赖库 Ubuntu 16.04|ros-kinetic|Gazebo|gazebo_ros_pkgs|ge

hector_quadrotor编译总结 | ubuntu 14.04 ros-indigo版本

hector_quadrotor编译总结 | ubuntu 14.04 ros-indigo版本 基于Ubuntu 14.04 LTS系统所用ROS版本为 Indigo hector_quadrotor ROS包主要用于四旋翼无人机的建模、控制和仿真。 备注:两种安装方式可选:install the binary packages | install the source files

Ubuntu20.04+ros-noetic配置Cartographer

一、概述         因为要配置激光SLAM,Cartographer属于激光雷达SLAM 中比较经典的一款,在学习之前先将其在Ubuntu20.04首先配置出来并成功运行demo。 二、具体操作 (一)概述         使用平台是Windows的wsl2上的Ubuntu20.04子系统,双系统与虚拟机的安装原理与这个相同。主要依照的安装操作是官方文档,链接如下所示。 Runni

激光SLAM如何动态管理关键帧和地图

0. 简介 个人在想在长期执行的SLAM程序时,当场景发生替换时,激光SLAM如何有效的更新或者替换地图是非常关键的。在看了很多Life-Long的文章后,个人觉得可以按照以下思路去做。这里可以给大家分享一下 <br/> 1. 初始化保存关键帧 首先对应的应该是初始化设置,初始化设置当中会保存关键帧数据,这里的对应的关键帧点云数据会被存放在history_kf_lidar当中,这个数据是和

用python fastapi写一个http接口,使ros2机器人开始slam toolbox建图

如果你想使用Python的FastAPI框架编写一个HTTP接口,以便通过接口启动ROS 2机器人的SLAM Toolbox建图,可以按照以下方式进行: 首先,确保你已经安装了fastapi和uvicorn库。你可以使用以下命令进行安装: pip install fastapi uvicorn 接下来,创建一个Python文件(例如app.py),并将以下代码添加到文件中: import

ROS学习记录-ubuntu系统和ROS的安装

一、ubuntu安装 使用的是ubuntu14.04.4系统,从官网下载,也可以从国内镜像下载。 官网:http://cdimage.ubuntu.com/netboot/14.04/?_ga=1.178505383.2009389272.1483453317 国内镜像 网易:http://mirrors.163.com/ubuntu-releases/14.04/ 厦大:http://

linux(ubuntu)安装QT-ros插件

Linux下的qt安装ros插件 查看qt版本和对应的ros插件版本查看qt版本查看 qt creator 版本 qt creator进行更新升级下载版本对应的ros_qtc_plugin 插件插件安装安装成功 查看qt版本和对应的ros插件版本 想要qt与ros联合开发,我门需要在qt creator中添加ros的插件,之前查资料有哦 一个方法是直接下载安装带有ros插件版本的