1、重新建立工作空间
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace
cd ~/catkin_ws
catkin_make
2、安装Arbotix
cd ~/catkin_ws/src
git clone https://github.com/vanadiumlabs/arbotix_ros.git
cd ..
catkin_make
source ~/devel/setup.bash
(插入安装依赖包)
sudo apt-get install ros-kinetic-turtlebot-bringup \
ros-kinetic-turtlebot-create ros-kinetic-openni-* \
ros-kinetic-openni2-* ros-kinetic-freenect-* ros-kinetic-usb-cam \
ros-kinetic-laser-* ros-kinetic-hokuyo-node \
ros-kinetic-audio-common gstreamer0.10-pocketsphinx \
ros-kinetic-pocketsphinx ros-kinetic-slam-gmapping \
ros-kinetic-joystick-drivers python-rosinstall \
ros-kinetic-orocos-kdl ros-kinetic-python-orocos-kdl \
python-setuptools ros-kinetic-dynamixel-motor \
libopencv-dev python-opencv ros-kinetic-vision-opencv \
ros-kinetic-depthimage-to-laserscan ros-kinetic-arbotix-* \
ros-kinetic-turtlebot-teleop ros-kinetic-move-base \
ros-kinetic-map-server ros-kinetic-fake-localization \
ros-kinetic-amcl
ros-kinetic-hokuyo-node(北阳激光雷达)、gstreamer0.10-pocketsphinx和ros-kinetic-pocketsphinx(语音识别库)
3、在src中安装rbx1
git clone https://github.com/pirobot/rbx1.git
cd ..
catkin_make
source ~/devel/setup.bash
rospack profile //加入ROS package路径
4、导航仿真
在src终端下输入roscore
再打开一个终端运行机器人:roslaunch rbx1_bringup fake_turtlebot.launch
再打开一个终端: roslaunch rbx1_nav fake_move_base_blank_map.launch (空白地图)
或者 roslaunch rbx1_nav fake_amcl.launch map:=test_map.yaml (测试acml)
或者 roslaunch rbx1_nav fake_move_base_map_with_obstacles.launch(避障)
再打开一个终端查看模拟的机器人:rosrun rviz rviz -drospack find rbx1_nav/sim.rviz
启动小车: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}}
PS:避免每次都source 可以修改~/.bashrc文件,在文件末尾添加 source ~/catkin_ws/devel/setup.sh(这个路径是根据自己工作空间的地址修改的)
https://www.cnblogs.com/talugirl/p/5962806.html 这个里边的内容很全
同时附上navigation导航包和gmapping地图构建包地址
git clone https:
//github.com/ros-planning/navigation.git
git clone https:
//github.com/ros-perception/slam_gmapping.git
下载一个别人的包,安装依赖:
rosdep install --from-paths src --ignore-src --rosdistro=kinetic -y
这部分原文的链接是:https://blog.csdn.net/allians/article/details/80450383
Arbotix程序解析
1.launch文件夹中两个文件:
display.launch—启动仿真机器人底盘
fake_mover.launch—启动机器人导航(navigation)
2.config文件夹中三个文件夹分别为:
arbotix—存有mover_arbotix.yaml为arbotix模拟器的配置文件。
controller—存有joint_state_controller.yaml,joint_state_controller属于controller_manager,联合robot_state_publisher,实现仿真模型上base_link到各个旋转关节的变换。
mover—存有robot的导航参数文件,具体配制在后续高级教程介绍。
3.map文件夹存放地图文件
4.robot文件夹存放机器人的urdf模型
5.rviz文件夹存放rviz图形界面配置文件
rbx1文件树 原文链接是:https://www.ncnynl.com/archives/201706/1674.html
├── amcl.rviz
├── bag_files
├── cfg #动态参数配置文件
│ ├── CalibrateAngular.cfg
│ └── CalibrateLinear.cfg
├── CMakeLists.txt
├── config #导航参数配置文件
│ ├── fake
│ │ ├── base_local_planner_params.yaml #基本的本地规划配置
│ │ ├── costmap_common_params.yaml #共用代价地图配置
│ │ ├── global_costmap_params.yaml #全局代价地图配置
│ │ └── local_costmap_params.yaml #本地代价地图配置
│ ├── nav_obstacles_params.yaml #导航避障配置
│ ├── nav_test_params.yaml #测试配置
│ ├── pi_robot
│ │ ├── base_local_planner_params.yaml #pi基本的本地规划配置
│ │ ├── costmap_common_params.yaml #pi共用代价地图配置
│ │ ├── global_costmap_params.yaml #pi全局代价地图配置
│ │ └── local_costmap_params.yaml #pi本地代价地图配置
│ └── turtlebot
│ ├── base_local_planner_params.yaml #TB本地代价地图配置
│ ├── costmap_common_params.yaml #TB共用代价地图配置
│ ├── global_costmap_params.yaml #TB全局代价地图配置
│ └── local_costmap_params.yaml #TB本地代价地图配置
├── fake_laser.rviz #伪雷达的rviz配置
├── gmapping.rviz #gmapping的rviz配置
├── interactive_markers.rviz #交互的rviz配置
├── launch
│ ├── fake_amcl.launch #启动仿真自主导航
│ ├── fake_move_base_amcl.launch #启动仿真movebase自主导航
│ ├── fake_move_base_blank_map.launch #启动仿真空白地图的movebase导航
│ ├── fake_move_base.launch #启动仿真movebase
│ ├── fake_move_base_map_with_obstacles.launch #启动仿真带地图的避障
│ ├── fake_move_base_obstacles.launch #启动仿真避障
│ ├── fake_nav_test.launch #启动仿真导航测试
│ ├── gmapping_demo.launch #gmapping建图
│ ├── gmapping.launch #gmapping建图
│ ├── interactive_markers.launch #启动交互
│ ├── joystick_teleop.launch #游戏杆控制
│ ├── keyboard_teleop.launch #键盘控制
│ ├── move_base.launch #启动movebase
│ ├── move_base_obstacle.launch #启动带避障的movebase
│ ├── nav_demo.launch #导航演示
│ ├── tb_amcl.launch #TB自主导航
│ ├── tb_demo_amcl.launch #TB自主导航演示
│ ├── tb_move_base_blank_map.launch #TB空白地图movebase
│ ├── tb_move_base.launch #TBmovebaze
│ └── tb_nav_test.launch #TB导航测试
├── mainpage.dox
├── maps #各种地图
│ ├── blank_map.pgm #空白地图
│ ├── blank_map_with_obstacle.pgm #带障碍的空白地图
│ ├── blank_map_with_obstacle.yaml #带障碍的空白地图配置
│ ├── blank_map.yaml #空白地图配置
│ ├── tb_condo_2.pgm
│ ├── tb_condo_2.yaml
│ ├── test_map.pgm
│ └── test_map.yaml
├── nav_ekf.rviz #导航滤波rviz配置
├── nav_obstacles.rviz #导航障碍rviz配置
├── nav.rviz #导航rviz配置
├── nav_test.rviz #导航测试rviz配置
├── nodes
│ ├── calibrate_angular.py #角度校准
│ ├── calibrate_linear.py #直线校准
│ ├── move_base_square.py #走方形
│ ├── nav_square.py #方形导航
│ ├── nav_test.py #导航测试
│ ├── odom_out_and_back.py #里程测试
│ └── timed_out_and_back.py #定时测试
├── package.xml
├── setup.py #使用python包
├── sim.rviz #仿真的rviz配置
└── src #python包
├── __init__.py
└── rbx1_nav
├── cfg
│ └── __init__.py
├── __init__.py
└── transform_utils.py #变换工具