标签:create 搜索 splay stream 自适应 最优路径 isp sub sphinx
在总体框架图中可以看到,move_base提供了ROS导航的配置、运行、交互接口,它主要包括两个部分:
(1) 全局路径规划(global planner):根据给定的目标位置进行总体路径的规划;
(2) 本地实时规划(local planner):根据附近的障碍物进行躲避路线规划。
在ROS的导航中,首先会通过全局路径规划,计算出机器人到目标位置的全局路线。这一功能是navfn这个包实现的。
navfn通过Dijkstra最优路径的算法,计算costmap上的最小花费路径,作为机器人的全局路线。将来在算法上应该还会加入A*算法。
本地的实时规划是利用base_local_planner包实现的。该包使用Trajectory Rollout 和Dynamic Window approaches算法计算机器人每个周期内应该行驶的速度和角度(dx,dy,dtheta velocities)。
base_local_planner这个包通过地图数据,通过算法搜索到达目标的多条路经,利用一些评价标准(是否会撞击障碍物,所需要的时间等等)选取最优的路径,并且计算所需要的实时速度和角度。
其中,Trajectory Rollout 和Dynamic Window approaches算法的主要思路如下:
(1) 采样机器人当前的状态(dx,dy,dtheta);
(2) 针对每个采样的速度,计算机器人以该速度行驶一段时间后的状态,得出一条行驶的路线。
(3) 利用一些评价标准为多条路线打分。
(4) 根据打分,选择最优路径。
(5) 重复上面过程。
git clone https://github.com/ros-perception/slam_gmapping.git
git clone https://github.com/ros-planning/navigation.git
sudo apt-get install 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-* \(我安装的过程中提示没有这个: ERROR:cannot launch node of type [arbotix_python/arbotix_driver]:arbotix_python) ros-indigo-turtlebot-teleop ros-indigo-move-base ros-indigo-map-server ros-indigo-fake-localization ros-indigo-amcl git subversion mercurial
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
roslaunch rbx1_bringup fake_turtlebot.launch
rosrun rviz rviz -d `rospack find rbx1_nav`/sim.rviz
提示错误:Error: package ‘rbx1_nav‘ not found。vmw_ioctl_command error Invalid argument.
解决:退出后,在终端中运行:
$ export SVGA_VGPU10=0
1.打开一个终端 cd ~/catkin_ws/ catkin_make source ./devel/setup.bash cd src roslaunch rbx1_bringup fake_turtlebot.launch
//新打开一个终端
cd ~/catkin_ws/ catkin_make source ./devel/setup.bash cd src rosrun rviz rviz -d `rospack find rbx1_nav`/nav_fuerte.rviz
//新打开一个终端 cd ~/catkin_ws/ catkin_make source ./devel/setup.bash cd src roslaunch rbx1_nav fake_move_base_blank_map.launch
//打开一个新终端, cd ~/catkin_ws/ catkin_make source ./devel/setup.bash cd src rosrun rbx1_nav move_base_square.py
代码解释 move_base_square.py
roslaunch rbx1_nav fake_move_base_map_with_obstacles.launch
rosrun rbx1_nav move_base_square.py
运行效果:
若没有显示障碍物,在rviz里加载了这几个display,其中global plan下的costmap,RobotModel,global plan下的Path,Axes是必须的。
//打开一个新终端
cd ~/catkin_ws/ catkin_make source ./devel/setup.bash cd src roslaunch rbx1_bringup fake_turtlebot.launch
amcl是二维环境下的概率定位系统,之所以说是概率定位系统,是因为它用的是自适应的蒙特卡洛的定位方法,就是之前的粒子滤波,用这个粒子滤波去跟踪机器人当前的状态/
//打开一个新终端
cd ~/catkin_ws/ catkin_make source ./devel/setup.bash cd src roslaunch rbx1_nav fake_amcl.launch map:=test_map.yaml
cd ~/catkin_ws/ catkin_make source ./devel/setup.bash cd src rosrun rviz rviz -d `rospack find rbx1_nav`/nav_fuerte.rviz
参考:
https://www.cnblogs.com/talugirl/p/5962806.html
https://blog.csdn.net/hcx25909/article/details/9470297
标签:create 搜索 splay stream 自适应 最优路径 isp sub sphinx
原文地址:https://www.cnblogs.com/yrm1160029237/p/10104290.html